Не могу контролировать состояние канала

Обсуждение ПО и его настройки
Ответить
DemNZV
Сообщения: 13
Зарегистрирован: 27 июл 2020, 12:20

Доброго с=времени суток!

Нарисовал скрипт... всякие проверки, переключения и прочее. Работать должен! НО!!! Не работает. Суть такова.
В начале скрипта есть команда:
# Пингуем Инет через основной интерфейс
:set WanStatus ([/ping 8.8.8.8 interface=ether1 count=3]+[/ping 77.88.8.8 interface=ether1 count=3]);

Если маршрут по умолчанию дохлый, то есть пинги не проходят, то я включаю альтернативный маршрут и поднимаю "вес" неработающего маршрута. Типа...
# Вес=110... работает PiterTelecom. Вес=120... работает ComLink. Вес=200... нифига не работает.

То есть. Альтернативные маршруты имеют вес = 100. А вот основной, меняю в зависимости от того, что доступно из оставшегося. (Изначально, основной маршрут = 1).

Так вот. Если основной канал падает, то легко и непринуждённо запускается альтернативный. Работает сие стабильно - переключает на альтернативный маршрут, который "живой".

А вот обратно - НИ КАК! Я все время пытаюсь проверить, что основной маршрут поднялся. Но, через него не пингуется... несмотря на то, что ЯВНО указан интерфейс, через который пинговать. В итоге, если основной канал поднялся, все равно, обратного переключения не происходит... ибо, пинги не проходят
Вес альтернативного маршрута = 100 (через ether3)
Вес основного маршрута = 110 (через ether1)
Команда /ping 8.8.8.8 interface=ether1 count=3 возвращает - timeout.

Чем еще можно проверить, что интерфейс живой и готов работать?


DemNZV
Сообщения: 13
Зарегистрирован: 27 июл 2020, 12:20

... то есть, до строк скрипта ниже, выполнение не доходит.
# Если пинги пошли, но при этом вес основного маршрута отличается от "1", то возвращаем все параметры на место... "как было".
# Вес маршрута, "distance", меняем при проверке доступных альтернативных маршрутов.
# Вхождение в этот IF только при условии отработки переключения на альтернативные маршруты.
:if ($WanStatus>0 and [/ip route get [find comment ="Main Route"] distance]>1) do={
/ip route set [find comment ="Main Route"] distance=1
:delay 5s
/ip route set [find comment="Alt Route PT"] disable=yes
/ip route set [find comment="Alt Route CL"] disable=yes
tool e-mail send to=mail@server.local subject="Status of Main Route (Mikrotik R1)" body="Main Route is UP! Full functionality has been restored."
};


-13-
Сообщения: 125
Зарегистрирован: 18 мар 2021, 12:45

Ничего не понятно из Вашего описания
Скрипт целиком выкладывайте, а проще не заниматься ерундой и настроить рекурсивную маршрутизацию...


Ответить