Страница 1 из 2

Как сбрасывать подвисшие connections?

Добавлено: 15 июл 2013, 14:46
Uttar
Добрый день.
Есть микротик, 2 провайдера, за микротиком астериск.
По умолчанию работает через первого провайдера. Проблема в следующем - первый провайдер отваливается, весь трафик должен идти через второго. Всё бы хорошо, новые соединения устанавливаются через второй провайдер, но в firewall-connections висят старые коннекты через первого провайдера с таймаутом до 15 минут. И соответственно пока таймаут не закончится, либо пока их не убить ручками, через второго провайдера соединение не устанавливается и телефония не работает. Пробовал отключать\включать интерфейс, к которому подключен сервер с астериском - не помогает, всё равно соединения висят.
И команд, которые бы сбрасывали коннекты не нашёл. Так бы можно было скрипт сделать.

Re: Как сбрасывать подвисшие connections?

Добавлено: 15 июл 2013, 16:56
iSupport
ip firewall connection tracking set enabled=no
ip firewall connection tracking set enabled=yes

то есть выключить и включить коннтрак

Re: Как сбрасывать подвисшие connections?

Добавлено: 20 авг 2013, 18:34
chek_
всем привет. у меня точно такая же проблема с телефонией. подскажите, что данные команды делают и как может выглядеть скрипт по сбросу соединений??

Re: Как сбрасывать подвисшие connections?

Добавлено: 20 авг 2013, 18:52
seven

Код: Выделить всё

:foreach i in=[/ip firewall connection find dst-address~":5060" protocol~"udp"] do={ /ip firewall connection remove $i }


viewtopic.php?f=15&t=4075

Re: Как сбрасывать подвисшие connections?

Добавлено: 20 авг 2013, 18:57
chek_
да, я видел это сообщение, но автор через планировщик каждые 5 мин разрывает соединение, мне же не особо хочется, что б каждые 300 секунд телефоны по новой регистрировались на сервере. хотелось бы скрипт, который проверял инет на первом провайдере и делал дроп, после чего. если провайдер снова заработал, делал еще один дроп. либо научить как-нибудь микротик разрывать соединения, если канал по которому он их поднимал, не работает.

Re: Как сбрасывать подвисшие connections?

Добавлено: 20 авг 2013, 19:02
seven
Тогда я тоже присоединюсь к поиску такого скрипта, т.к. 2 дня назад сделал именно так, как там написано. Тоже не нравится, но пока работает...

Re: Как сбрасывать подвисшие connections?

Добавлено: 20 авг 2013, 22:39
podarok66
Что там искать? Сели, вечерок почитали Вики и написали скриптик. А разыскивать можно достаточно долго, особенно если искать в одной теме на форуме. В готовых скриптах на форуме есть код, пингующий заданные адреса. Адаптируйте его под свои нужды, условия выполнения итоговых команд пропишите свои и пользуйтесь

Re: Как сбрасывать подвисшие connections?

Добавлено: 21 авг 2013, 15:46
Илья Никаноров
Так если у вас 2 провайдера, то просто в скрипт переключающий ISP добавить строчку и все. Соединения будут сброшены.

Re: Как сбрасывать подвисшие connections?

Добавлено: 21 авг 2013, 16:51
seven
Это хорошо, но проблема в том, что скрипта нет)
Переключение реализовано через Distance в роутах.
Как мне видится ее решение: нужно все таки писать скрипт, который будет пинговать шлюз первого провайдера и если пинга нет - выполнять эту строку.
Или же все таки придется переключение на другого провайдера переложить на этот скрипт.

Re: Как сбрасывать подвисшие connections?

Добавлено: 21 авг 2013, 17:24
Илья Никаноров
seven писал(а):Это хорошо, но проблема в том, что скрипта нет)
Переключение реализовано через Distance в роутах.
Как мне видится ее решение: нужно все таки писать скрипт, который будет пинговать шлюз первого провайдера и если пинга нет - выполнять эту строку.
Или же все таки придется переключение на другого провайдера переложить на этот скрипт.


Что то типа такого может быть, не уверен, что будет работать. Не знаю как реализовано через distance. Вместо ya.ru какой нибудь шлюз пинговать. Надо попробовать.

:local pingcount 5;
:local hostping ya.ru;
:local pingresultA [/ping $hostping count=$pingcount];
:if ($pingresultA > 0) do={:put "connect"} else= { :foreach i in=[/ip firewall connection find dst-address~":5060" protocol~"udp"] do={ /ip firewall connection remove $i } }