Jump to content

Recommended Posts

Posted

Есть два "интернета" от разных провайдеров на микротике, за микротиком 3 SIP устройства за НАТом. Все три коннектятся к внешнему астериску.

Первый интернет "падает" Скрипты благополучно удаляют дефолтный маршрут на упавший интернет и основным становится маршрут на резервный канал. SIP устройства благополочно переавторизовываются и работают через резерв.

А вот дальше - интересно:

Восстанавливается основной интернет. Маршрут на него включается, все пакеты с момента включения как-бы должны идти через новый канал но SIP регистрация при этом падает и не восстанавливается пока руками не удалить из таблицы fierwall -> connectoins  соединения смотрящие на SIP сервер.

Это так и должно быть ? если да, то как настроить чтоб небыло таких проблем ?

SIP ALG включен, прошивка - последняя.

Собственно, если "выключить-включить" интерфейс резервного канала - регистрация через основной канал восстанавливается мгновенно (в тот момент когда резервный канал опустился)

Получается что он, несмотря на смену маршрутизации, что-то все-равно пытается слать по старой памяти через резервный канал.

В принципе если объясните мне почему так происходит - думаю до решения я и сам додумаюсь.

Заранее спасибо.

Posted

conntrack

Это понятно, что conntrack, почему он не разваливается по таймауту после того как маршрутизация поменялась ?

И что в таких случаях полагается делать ?

Posted

Можно, конечно, тупо в переключающий скрипт прописать удаление всех коннекшеннов с этим Reply Dst. Address

Но, по моему мнению, должен быть же какой-то штатный механизм, который при правильной настройке приведет к тому, что нерабочие коннекшены протухнут и умрут.

Под нерабочими я понимаю те, через которые нет двунаправленного потока данных.

Подскажите куда смотреть

Posted

Пока ищу красивое решение, прописал в скрипт:

/ip firewall connection remove [find reply-dst-address~"XXX.XXX.XXX."]

Работает. Но основного вопроса это не отменяет ;)

Posted (edited)

grifin.ru, соединение однажды установленное будет считаться живым, пока не прилетит явный "fin" или не истечет таймаут бездействия.

Для udp-based SIP важен как раз таймаут. Поскольку в соединении пролетают пакеты qualify, registration renew - в соответствии с sip registration interval, оно постоянно обновляет счётчик-таймер таймаута и соединение поддерживается "живым". Это нормальное поведение.

Так, что Ваш путь - только принудительно сбрасывать состояния соединений при восстановлении основного провайдера.

Edited by nkusnetsov
Posted

Сделайте переключение не дефолтными маршрутами, а с помощью маркировки роутов. Тогда все будет отрабатывать без проблем.

А какая разница ?

На самом деле так и сделано. Прописано два дефолта в разных таблицах и в манагле маргируются роуты. Но там я еще много проблем словил:

Во-первых если регистрация через один "интернет" сделана, а RTP пытался установиться через другой - нихрена не работало. Не стал с этим разбираться, сдела на базе адрес-листов, чтоб один и тот-же IP ходил через один и тот-же интернет.

Потом долго бился с глюками, пока не догадался отключить fasttrack.

При включенном fasttrack маршрутизация первого пакета в соединении шла правильно а потом (когда в  forward'е fasttrack включался, больше пакеты правилами FW не маркировались и все летело через MAIN таблицу. Много времени потерял, пока это понял.

Может, кстати, и первя проблема была из-за fasttrack ?

Posted

Проблема может быть из-за того, что приложения, работающие через интернет, не верно отрабатывают изменения IP внешнего канала. Можно попробовать добавить в моменты переключений задачи по отключению и включения серого IP на роутере, через который абоненты ходят, тогда у них все соединения оборвутся.

Posted

Проблема может быть из-за того, что приложения, работающие через интернет, не верно отрабатывают изменения IP внешнего канала. Можно попробовать добавить в моменты переключений задачи по отключению и включения серого IP на роутере, через который абоненты ходят, тогда у них все соединения оборвутся.

Зачем, я просто рублю коннекшены которые построены через отключаемое соединение.

Posted

Зачем, я просто рублю коннекшены которые построены через отключаемое соединение.

 

Представьте что работает интернет 1 и вдруг пропала связь. У клиентов сети соединения установлены с адреса интернета 1, и на всех сайтах они авторизованы с этого адреса. Тут связь поменялась на провайдера 2, в зависимости от настроек сайтов, доступ по авторизованным сессиям может не пропасть, а может и пропасть. Тут снова заработал интернет 1 и все соединения пошли по нему, на сайтах опять путаница - запросы стали снова приходить с другого адреса.

 

Когда вы обрываете соединения на роутере, соединения на абонентских устройствах не обрываются. Именно по этой причине нужно обрывать все абонентские сессии, или делать такие действия, которые позволят оборвать соединения/физические подключения на всех абонентских устройствах, что бы они поняли что связь обрывалась.

Posted

в зависимости от настроек сайтов, доступ по авторизованным сессиям может не пропасть, а может и пропасть

Вы предлагаете оборвать принудительно все сессии. Зачем ? Те, которые пропадут - пропадут сами. Зачем рва те, которые смогут продолжить работать ?

Тем более когда я рву НАТ коннекшены то новые установятся скорее всего, уже с другим номером исходящего порта.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.