1 | изначальная версия редактировать | |
хотелось бы узнать алгоритм определения source IP исходящих пакетов SIP у asterisk на linux
пока удалось выяснить опытным путём что исх. IP зависит от маршрута до клиента (сейчас маршрут по умолчанию через eth0 и шлюз там 10.66.66.8, а для VoIP-трафика есть vlan-интерфейс там шлюз 172.16.66.8 и SIP-соединения приходят из инета на 172.16.66.4 через DNAT)
так вот asterisk получает входящие пакеты на 172.16.66.4 (vlan0), а отвечает пакетами с 10.66.66.7 (eth0), ответные пакеты до клиента не доходят
но если добавить индивидуальный маршут до клиента через шлюз 172.16.66.8 то asterisk уже отвечает с 172.16.66.4 (vlan0) и всё работает норм.
вопрос, как можно повлиять на asterisk чтобы он всегда отвечал с того же IP на который пришёл вх. пакет SIP-соеднинения? или это от настройки сети в ядре linux зависит?
(вариант bindaddr=172.16.66.4 понятен и работат, но тут он не подходит; externip=/localnet= также не рассматривается ибо SIP-ALG включен на маршрутизаторе)
2 | No.2 Revision редактировать |
хотелось бы узнать алгоритм определения source IP исходящих пакетов SIP у asterisk на linux
пока удалось выяснить опытным путём что исх. IP зависит от маршрута до клиента (сейчас маршрут по умолчанию через eth0 и шлюз там 10.66.66.8, а для VoIP-трафика есть vlan-интерфейс там шлюз 172.16.66.8 и SIP-соединения приходят из инета на 172.16.66.4 через DNAT)
так вот asterisk получает входящие пакеты на 172.16.66.4 (vlan0), а отвечает пакетами с 10.66.66.7 (eth0), ответные пакеты до клиента не доходят
но если добавить индивидуальный маршут до клиента через шлюз 172.16.66.8 то asterisk уже отвечает с 172.16.66.4 (vlan0) и всё работает норм.
вопрос, как можно повлиять на asterisk чтобы он всегда отвечал с того же IP на который пришёл вх. пакет SIP-соеднинения? или это от настройки сети в ядре linux зависит?
(вариант bindaddr=172.16.66.4 понятен и работат, но тут он не подходит; externip=/localnet= также не рассматривается ибо SIP-ALG включен на маршрутизаторе)
вот как это выглядит через tcpdump:
14:12:11.606668 IP 212.57.180.157.24027 > 172.16.66.4.5060: SIP, length: 551 14:12:11.607370 IP 10.66.66.7.5060 > 212.57.180.157.24027: SIP, length: 590
3 | No.3 Revision редактировать |
хотелось бы узнать алгоритм определения source IP исходящих пакетов SIP у asterisk на linux
пока удалось выяснить опытным путём что исх. IP зависит от маршрута до клиента (сейчас маршрут по умолчанию через eth0 и шлюз там 10.66.66.8, а для VoIP-трафика есть vlan-интерфейс там шлюз 172.16.66.8 и SIP-соединения приходят из инета на 172.16.66.4 через DNAT)
так вот asterisk получает входящие пакеты на 172.16.66.4 (vlan0), а отвечает пакетами с 10.66.66.7 (eth0), ответные пакеты до клиента не доходят
но если добавить индивидуальный маршут до клиента через шлюз 172.16.66.8 то asterisk уже отвечает с 172.16.66.4 (vlan0) и всё работает норм.
вопрос, как можно повлиять на asterisk чтобы он всегда отвечал с того же IP на который пришёл вх. пакет SIP-соеднинения? или это от настройки сети в ядре linux зависит?
(вариант bindaddr=172.16.66.4 понятен и работат, но тут он не подходит; externip=/localnet= также не рассматривается ибо SIP-ALG включен на маршрутизаторе)
вот как это выглядит через tcpdump:
14:12:11.606668 IP 212.57.180.157.24027 > 172.16.66.4.5060: SIP, length: 551 551
14:12:11.607370 IP 10.66.66.7.5060 > 212.57.180.157.24027: SIP, length: 590
590
4 | No.4 Revision редактировать |
хотелось бы узнать алгоритм определения source IP исходящих пакетов SIP у asterisk на linux
пока удалось выяснить опытным путём что исх. IP зависит от маршрута до клиента (сейчас маршрут по умолчанию через eth0 и шлюз там 10.66.66.8, а для VoIP-трафика есть vlan-интерфейс там шлюз 172.16.66.8 и SIP-соединения приходят из инета на 172.16.66.4 через DNAT)
так вот asterisk получает входящие пакеты на 172.16.66.4 (vlan0), а отвечает пакетами с 10.66.66.7 (eth0), ответные пакеты до клиента не доходят
но если добавить индивидуальный маршут до клиента через шлюз 172.16.66.8 то asterisk уже отвечает с 172.16.66.4 (vlan0) и всё работает норм.
вопрос, как можно повлиять на asterisk чтобы он всегда отвечал с того же IP на который пришёл вх. пакет SIP-соеднинения? или это от настройки сети в ядре linux зависит?
(вариант bindaddr=172.16.66.4 понятен и работат, но тут он не подходит; externip=/localnet= также не рассматривается ибо SIP-ALG включен на маршрутизаторе)
вот как это выглядит через tcpdump:
14:12:11.606668 IP 212.57.180.157.24027 > 172.16.66.4.5060: SIP, length: 551
14:12:11.607370 IP 10.66.66.7.5060 > 212.57.180.157.24027: SIP, length: 590
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.