Как уведомлять о восстановлении связи в микротике?
Каждую секунду выполняю скрипт:
if (![ip route get 1 active]) do={tool e-mail send to=mail@mail.ru subject="!GSM is down!" body="GSM modem in unavailable"}
Проблема: я не знаю, поднялся ли этот роут или нет и приходится тимвьюить. Как сделать, чтобы после того, как маршрут вырубится и потом включится обратно, скрипт тоже отправлял письмо?
не получается - у меня настроено резервирование (и балансировка, когда оба маршрута живы) с автоматическим переключением маршрутов - netwatch не видит проблем при отключении основного канала связи, пинги просто начинают ходить по резервному.
lazix, так добавьте статический маршрут до восьмерок с меньшей метрикой через проверяемый шлюз без опции check gateway. К сожалению, не знаю, как оно на USB модемах работает, но по логике должно.
При проверке на down в глобальную переменную записывать состояние, например 1, а при проверке на up в условие также включить проверку этуй глобальную переменную (через И), и потом ей присваивать 0. Таким образом, сообщения при up будет отсылаться только один раз когда переменная равно 1.
При помощи route rules и route mark заставляете микротик пинговать опеределенные адреса только через определенные шлюзы. И потом на эти адреса вешаете netwatch.
korsar182, тем, что при недоступности шлюза для правила на один конкретный адрес отработает правило с более широкой областью (0.0.0.0/0). Потому что все правила находятся в таблице main.
В случае с route rules создается изолированная таблица (по имени заданной routing mark) и в ней будет лишь один маршрут. Если применять действие 'lookup only in table' то в таблицу main система даже не посмотрит.
kprohorow, достаточно добавить дополнительный blackhole маршрут, который будет активироваться после падения основного. VRF в этом случае - стрельба из пушки по воробьям.
korsar182, а в этом случае VRF и не нужен. На мой взгляд blackhole самое неочевидное решение, всупротив весьма наглядного, логичного и очевидного правила роутинга.
А дальше каждый мочит так как хочет.