Проблема с настройкой микротика на резервный канал если основной провайдер по dhcp и основной шлюз меняется

Обсуждение ПО и его настройки
Ответить
evgeniy.gojev
Сообщения: 11
Зарегистрирован: 09 янв 2021, 22:13

Имеется задача сделать 2-й резервный канал интернета 4g. основной провайдер приезжает по dhcp (без статики) , основной шлюз меняется , задача: каким то скриптом получить основной шлюз который приехал по dhcp и прописать в другую строку ip-route. 4g прописано статически адрес

1. /ip dhcp-client set default-route-distance=2 numbers=0 - сделал чтобы по умолчанию основной шлюз от основного был с дистанцией 2
2. /ip route add comment=4g distance=1 gateway=10.100.100.1 disabled=yes - 4g с дистанцией 1
3. /ip route add comment=1.1.1.1 distance=1 dst-address=1.1.1.1/32 gateway=@вот сюда нужно написать основной шлюз полученный по dhcp, который меняется@
4. /ip firewall filter add action=drop chain=output dst-address=1.1.1.1 out-interface=ether4 protocol=icmp -отключаю пинг на 1.1.1.1 с 4г.
5. /tool netwatch
add down-script="/ip route set [find comment="4g"] disabled=no" host=\
1.1.1.1 interval=10s timeout=200ms up-script=\
"/ip route set [find comment="4g"] disabled=yes"
проверяю доступность 1.1.1.1. если доступны - дефаулт-роут с 4г отключен, если недоступен, включаем и работаем через него .


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Пихайте скрипт прямо в dhcp-client'а.
Нужная переменная: $"gateway-address"
А запись в /ip route проще всего находить задав ей какой-нибудь комментарий.


Telegram: @thexvo
xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Собственно:

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

{
    :if ($bound=1) do={
       :local test1 [/ip route find where comment="ВАШ_КОММЕНТ"]
       :if ([/ip route get $test1 gateway] != $"gateway-address") do={
               /ip route set $test1 gateway=$"gateway-address"
       }
    }
}


Telegram: @thexvo
Ответить