Поясните строки в скрипте "удаление соединений"
Добавлено: 28 апр 2016, 20:54
Приветствую!
Появилась необходимость подчищать маршруты после переключения каналов. Знакомый скинул скрипт, позволяющий делать это, вот код (атс висит на 192.168.0.15):
Все работает, но нифига не понял с переменной "i", в общем по порядку:
удаляет все соединения, где в Src. Address значится 192.168.0.15
Если так, то почему там стоит тильда "~", а не знак равно?
ну тут, как я понял, надо грохнуть все соединения, имеющие протокол udp
если в предыдущем правиле мы грохнули все соединения с UDP протоколом, то зачем эти 2 правила? Да, я вижу что адрес назначения идет на 5060 и 5068 порты, но там же протокол UDP, а предыдущее правило уже удалило эти соединения. Тогда зачем они нужны?
Ну и напоследок:
Зачем дублировать правило, которое было в начале?
Заранее спасибо за ответ!
p.s.: на Микротике 2 канала: основной и резервный. Когда тик переключается на резервный, а потом возвращается на основной, то внешний номер отваливался от АТС (пакеты к серверу Телфин не шли), причем маршруты до и после переключения на основной канал не менялись. Трабл оказался в соединениях, из-за которых пакеты не шли до сервера Телфина. Но АТС регается по 5060 порту UDP протокола, может проще грохать только эти соединения?
Появилась необходимость подчищать маршруты после переключения каналов. Знакомый скинул скрипт, позволяющий делать это, вот код (атс висит на 192.168.0.15):
Код: Выделить всё
/ip firewall connection remove [find where src-address~"192.168.0.15"]
:foreach i in=[/ip firewall connection find protocol~"udp"] do={ /ip firewall connection remove $i }
:foreach i in=[/ip firewall connection find dst-address~":5060" protocol~"udp"] do={ /ip firewall connection remove $i }
:foreach i in=[/ip firewall connection find dst-address~":5068" protocol~"udp"] do={ /ip firewall connection remove $i }
/ip firewall connection remove [find where src-address~"192.168.0.15"]
Код: Выделить всё
/ip firewall connection remove [find where src-address~"192.168.0.15"]
Если так, то почему там стоит тильда "~", а не знак равно?
Код: Выделить всё
:foreach i in=[/ip firewall connection find protocol~"udp"] do={ /ip firewall connection remove $i }
Код: Выделить всё
:foreach i in=[/ip firewall connection find dst-address~":5060" protocol~"udp"] do={ /ip firewall connection remove $i }
:foreach i in=[/ip firewall connection find dst-address~":5068" protocol~"udp"] do={ /ip firewall connection remove $i }
Ну и напоследок:
Код: Выделить всё
/ip firewall connection remove [find where src-address~"192.168.0.15"]
Заранее спасибо за ответ!
p.s.: на Микротике 2 канала: основной и резервный. Когда тик переключается на резервный, а потом возвращается на основной, то внешний номер отваливался от АТС (пакеты к серверу Телфин не шли), причем маршруты до и после переключения на основной канал не менялись. Трабл оказался в соединениях, из-за которых пакеты не шли до сервера Телфина. Но АТС регается по 5060 порту UDP протокола, может проще грохать только эти соединения?