LINUX.ORG.RU

Сообщения kruft

 

SNAT на неверный source-адрес udp-пакетов SIP после смены маршрута по-умолчанию на маршрутизаторе

Имеется система-маршрутизатор (Debian current, 2.6.32-5-686) с двумя аплинками (оба Ethernet, без ppp и pppoe) и еще одним интерфейсом локальной сети, внутри которой есть сервер с pbx Asterisk.

Из аплинков один является основным, на него по-умолчанию ведет default route в основной таблице маршрутизации. Также на маршрутизаторе настроен source-routing для раздельного доступа по Linux Advanced Routing HowTo (чтобы ответные пакеты уходили туда же, откуда пришли запросы).

В данном режиме все работает как надо.

Кроме того, настроен самодельный мониторинг работоспособности аплинков (пинг одного внешнего адрес каждые 10 секунд, в случае недоступности адреса через умолчательный аплинк происходит удаление текущего default-маршрута, ip route flush cache, принудительное разрывание всех активных tcp-сессий в течение 3-х секунд средствами iptables и в конце установка маршрутом по-умолчанию резервного аплинка). При этом у всего, кроме Asterisk-а соединения быстро переподнимаются через нового аплинка.

!!! udp sip-пакеты от Asterisk-а (на регистрацию на вышестоящем sip-прокси) тоже начинают отправляться в новый интерфейс по-умолчанию, согласно правилам, НО - SNAT отрабатывает на старый адрес источника (в качестве исходящего устанавливается адрес интерфейса первого аплинка). После чего, соответственно, ничего не работает, т.к. первый же маршрутизатор провайдера блокирует пакеты с IP-адресом источника, не принадлежащим его подсетям. Такая ситуация происходит до ребута нашего маршрутизатора. Там нат начинает снова работать как надо, но до смены default-маршрута назад на провайдера по-умолчанию, после этого SNAT sip-пакетов происходит по инерции на адрес резервного провайдера.

kruft
()

RSS подписка на новые темы