Простой скрипт для автоматического переключения
каналов.
|
Работает на версиях (в
теории)
|
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})
В общих чертах, если приложить ум и
напильник получится весьма работоспособный скрипт, а в таком виде
в каком он есть я бы не стал его использовать даже в домашнем маршрутизаторе.
При использовании материалов ссылка
на автора и источник ОБЯЗАТЕЛЬНЫ!