Простой скрипт для автоматического переключения каналов.
Работает на версиях (в теории)
2.xx
3.xx
4.xx
5.xx
 
Тестировался на версиях
2.9.27

 

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

:local pingcount 3
:local checkip 212.122.1.2
:local ipA 192.168.2.3
:local GatewayA 192.168.2.1
:local ipB 172.16.2.5
:local GatewayB 172.16.2.4

ip route add gateway=$GatewayA dst-address=$checkip comment="check"
:local pingresultA [/ping $checkip src-address=$ipA count=$pingcount]
ip route remove [find comment="check"]

ip route add gateway=$GatewayB dst-address=$checkip comment="check"
:local pingresultB [/ping $checkip src-address=$ipB count=$pingcount]
ip route remove [find comment="check"]

:if (($pingresultA=pingcount) && ($pingresultB=pingcount)) do={ip route set [find comment="Default Gateway"] gateway=192.168.2.1,172.16.2.4}
:if (($pingresultA=pingcount) && ($pingresultB=0)) do={ip route set [find comment="Default Gateway"] gateway=$pingresultA}
:if (($pingresultA=0) && ($pingresultB=pingcount)) do={ip route set [find comment="Default Gateway"] gateway=$pingresultB}

 

Можно сказать, что скрипт относительно нормально работает, но имеет ряд недостатков, по этой причине он мне не подошел.

Итак, по недостаткам:

Утилита Ping на микротике не всегда корректно работает и пропускает пакеты, в связи с этим можно наблюдать ложные срабатывания и лишние переключения маршрутов.

GatewayA и GatewayB заданы жестко и в случае смены IP шлюза "скрипт встрянет" у моего провайдера за последний год так было 4 раза, исходя из этого - для проектирования автономной системы данный скрипт не подходит.

Так же скрипт требует ввода текущих IP адресов внешних интерфейсов, которые меняются еще чаще.

Еще больше удивляет частичное использование переменных в коде, что мягко говоря для программиста не очень хорошая черта. (Gateway"] gateway=192.168.2.1,172.16.2.4})

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

 

При использовании материалов ссылка на автора и источник ОБЯЗАТЕЛЬНЫ!

 





Рейтинг@Mail.ru
Яндекс цитирования

Григорьев Дмитрий Владимирович (Inlarion) 2010-2016 (C) Все права защищены. При копировании материалов с сайта, ссылка на автора и источник обязательны!!!