Задача проста. Переключения с провайдера Один isp1, который дает белый динамический адрес, на LTE свисток(который даёт серый динамический адрес). В Нетвотче стоит задание Пингуй 1.1.1.1, если пингуется то ищи маршрут с комментарием ISP1, включай его, а маршрут с комментарием ISP2 выключай. А если НЕ пингуется 1.1.1.1 то наоборот isp1 выключай, а isp2 включай. Короче простое переключение на резервный канал.
Пинг до 1.1.1.1 у меня будет идти только через провайдера один isp1
И загвоздка в том, что в маршрутах не могу руками прописать статикой маршрутизацию до 0.0.0.0 и им дать комментарий, т.к. в поле гетевэй нужно вписывать цифры\ip адрес, маршрутизатора\шлюза провайдера , а не интерфейс микротика. А так же вписать на этом маршруте нужно Комментарий, и если динамическим его оставить, то после переключения\отключения провайдера динамический маршрут исчезнет, и когда восстановится и после мой комментарий исчезнет.
надеюсь нормально объяснил.
Скрипт DHCP-клиента для создания маркированного маршрута
-
- Сообщения: 41
- Зарегистрирован: 03 сен 2018, 12:47
-
- Сообщения: 3781
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Скрипт DHCP-клиента для создания маркированного маршрута
Я снова потерялся... Если isp1 совсем отвалится - то пропадут и все его маршруты, включая 1.1.1.1. А значит, пинг к 1.1.1.1 пойдёт через isp2, скрипт добросовестно включит ISP1, выключит ISP2... Я правильно описываю? В полночь выглядит так, что эта схема будет работать только тогда, когда линк к ISP1 есть, адрес по DHCP получает, а в Интернет он не ходит.
-
- Сообщения: 41
- Зарегистрирован: 03 сен 2018, 12:47
Re: Скрипт DHCP-клиента для создания маркированного маршрута
Так... видимо я чего то не понимаю, для чего данный скрипт темы нужен. Как я понимаю, Для того что бы статический маршрут автоматически появлялся, с нужной мне метрикой и плюсом маркировкой. В тот момент когда DHCP клиент получает адрес от isp1, следовательно при отключении интернета\провайдера\провода isp1 этот СТАТИЧЕСКИЙ адрес останется, и будет продолжать пытаться работать через isp1. под цифрой 3 удалится, а под цифрой 1 останется. У меня же проблема с цирой 4, т.к. гетевэй указан "ether1", что не правильно, и не правильно отрабатывает маршрут, а нужно указать гетэвэй как у цифры 1, по скрину 178.ХХХ.ХХХ.ХХХ. И тогда у меня будет отрабатывать нетвоч как надо, и переключать правильный isp. (естественно в фаирволе у меня пинг может идти до 1.1.1.1 только через ether1 )
В общем как мне резервирование настроить если посмотреть на мой скриншет?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 3781
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Скрипт DHCP-клиента для создания маркированного маршрута
Почему роут под цифрой 1 останется? Нижняя видимая строка скрипта DHCP-клиента на вашем скриншоте (/ip route remove ...) как раз и удалит его, когда DHCP-клиент потеряет адрес
А ещё он маркированный (routing-mark=ether1), поэтому используется только для маркированного трафика. А ещё даже если его не удалить - при потере адреса шлюз станет неактивным, поэтому неактивным станет и сам роут, и использоваться в процессе поиска маршрута не будет.
Если же вам надо просто, например, обновить шлюз у всех маршрутов к 1.1.1.1/32 при переполучении адреса DHCP-клиентом, то можно сделать вот так:
З.Ы. Смотрю, через пару недель после публикации моего скрипта здесь в вики добавили параметр "gateway-address", так что мой скрипт можно упростить, удалив две строчки 

Если же вам надо просто, например, обновить шлюз у всех маршрутов к 1.1.1.1/32 при переполучении адреса DHCP-клиентом, то можно сделать вот так:
Код: Выделить всё
:if ($bound=1) do={
:set gw "$"gateway-address"%$interface"
/ip route set [ find dst-address=1.1.1.1/32 gateway!=$gw ] gateway=$gw
}

-
- Сообщения: 3781
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Скрипт DHCP-клиента для создания маркированного маршрута
Подправил первое сообщение темы. Оказывается, в скрипте доступна переменная gateway-address - используем её. И добавил скрипт для RouterOS v7 - там поменяли routing-mark на routing-table и надо заранее создавать таблицу маршрутизации.
-
- Сообщения: 41
- Зарегистрирован: 03 сен 2018, 12:47
Re: Скрипт DHCP-клиента для создания маркированного маршрута
На сколько я знал скрипт в DHCP выполнятся только в момент получения ip адреса. Сейчас вики причитал пишут при изменении статуса DHCP.
Но тогда как быть? как мне автопереключение интернета настроить между isp1 и isp2 ? при условии что isp1 основной, и по dhcp получает адрес.
При статике я делал как, пинговал к примеру 8.8.8.8 только через isp1, в маршрутах на это указывал, и в фаирволе запрещал через isp2 идти до 8.8.8.8. И всё работало.
-
- Сообщения: 3781
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Скрипт DHCP-клиента для создания маркированного маршрута
Я бы попробовал так:
Этот скрипт будет создавать маршрут к 1.1.1.1 с scope=10 через isp1. При этом добавление default gateway в DHCP-клиенте надо выключить и создать маршрут /ip route add gateway=1.1.1.1 check-gateway=ping. Он будет активным тогда, когда 1.1.1.1 активный и пингуется. Netwatch не нужен.
Код: Выделить всё
:local count [ /ip route print count-only where dst-address=1.1.1.1/32 scope=10 ]
:if ($bound=1) do={
:local gw "$"gateway-address"%$interface"
:if ($count=0) do={
/ip route add dst-address=1.1.1.1/32 scope=10 gateway=$gw
} else={
/ip route set [ find dst-address=1.1.1.1/32 scope=10 gateway!=$gw ] gateway=$gw
}
}