Не так давно подключили дополнительного провайдера в виде беспроводной йоты, простого «свистка». Имеем Mikrotik CCR1009-8G-1S-1S+, на котором есть usb. Но возникла проблема, йота периодически зависает и пока не перезагрузишь — ничего не работает. Обращался в техническую поддержку Йоты, предложили купить роутер Zyxel, либо поставить между йотой и микротиком устройство которое будет отключать и включать электропитание 1 раз в сутки. Покупать дополнительный роутер который будет использоваться для йоты никто не хотел, а ставить переключатель тоже не вариант-вдруг йота подвиснет днем, а переключатель настроен на 23:00. Конечных решений для данной проблемы в ресурсах сети не нашел (а возможно плохо искал). Поэтому решено было настроить автоматический reset yota.
Предварительно в самой йоте настраиваем адрес из отличной от вашей локальной сети. Например я использую сеть 192.168.32.0/24, поэтому адрес йоты выбрал 172.16.0.1.
На интерфейс lte маршрутизатора:
Скрипт для переключения йоты и отправки уведомления на почту. Необходимо в меню winbox зайти в /system script, нажать «добавить», дать имя — reboot_yota.
Ниже сам скрипт, тут все понятно.
Далее заходим в Netwatch, данная фича от микротик позволяет мониторить состояние канала через определенные промежутки времени:
Видно из правила, что при отсутствии доступности 172.16.0.1- выполняется скрипт. На Up ничего не указываем т.к. в данной ситуации мы следим только за падением канала.
И в дополнение, если вы все таки решили купить белый адрес у йоты, то для этого необходимо правильно настроить правила маркировки и сделать маршруты:
Порты пробрасываются корректно, удаленный доступ к роутеру по внешнему адресу есть. В случае зависания, Yota перегружается и уведомляет об этом администратора. Если есть замечания, дополнения и критика — пишите.
Предварительно в самой йоте настраиваем адрес из отличной от вашей локальной сети. Например я использую сеть 192.168.32.0/24, поэтому адрес йоты выбрал 172.16.0.1.
На интерфейс lte маршрутизатора:
/ip address
add address=172.16.0.10/24 interface=lte1 network=172.16.0.0
Скрипт для переключения йоты и отправки уведомления на почту. Необходимо в меню winbox зайти в /system script, нажать «добавить», дать имя — reboot_yota.
Ниже сам скрипт, тут все понятно.
/system routerboard usb power-reset duration=3
— сбрасывает питание подаваемое к «свистку»/tool e-mail send server=work.ru port=25 user=router@work.ru password=password to=admin@work.ru from="router1" \
subject="MikroTik: $[/system clock get date], $[/system clock get time]" \
body="Yota reboot: $[/system clock get date]\nDate: $[/system clock get time]\nMyName: $[/system identity get name]:";
— отправляет уведомление на адрес admin@work.ru о том, в какое время и какой роутер сбросил питание йоте.Далее заходим в Netwatch, данная фича от микротик позволяет мониторить состояние канала через определенные промежутки времени:
/tool netwatch
add down-script=reboot_yota host=172.16.0.1 interval=30s
Видно из правила, что при отсутствии доступности 172.16.0.1- выполняется скрипт. На Up ничего не указываем т.к. в данной ситуации мы следим только за падением канала.
И в дополнение, если вы все таки решили купить белый адрес у йоты, то для этого необходимо правильно настроить правила маркировки и сделать маршруты:
/ip firewall mangle add action=mark-connection chain=input in-interface=lte1 new-connection-mark=conn_yota_in add action=mark-routing chain=output connection-mark=conn_yota_in new-routing-mark=out_yota passthrough=no add action=mark-connection chain=prerouting connection-state=new in-interface=lte1 new-connection-mark=conn-yota-fw add action=mark-routing chain=prerouting connection-mark=conn-yota-fw in-interface=bridge-local new-routing-mark=route-yota-fw passthrough=no /ip route add distance=1 gateway=172.16.0.1 routing-mark=out_yota add distance=1 gateway=172.16.0.1 routing-mark=inet_for_yota add distance=1 gateway=172.16.0.1 routing-mark=route-yota-fw
Порты пробрасываются корректно, удаленный доступ к роутеру по внешнему адресу есть. В случае зависания, Yota перегружается и уведомляет об этом администратора. Если есть замечания, дополнения и критика — пишите.
anitspam
Потестировал решение и заметил такую проблему.
Вот вы пишите
и при этом проверяете доступность самой йоты её пингом.
Но у меня при зависании йоты она сама по себе пингуется. Может быть подскажете вариант проверки зависания йоты кроме пинга внешнего адреса?
iwram
Для чего пинговать внешний адрес? Вы пингуете адрес йоты который находится в одной среде с микротиком, в любом случае если зависла именно йота, то она не будет отвечать на icmp. Если йота пингуется по внутреннему адресу, а доступ в интернет не работает, то возможно проблема в самом свистке. Других проверок на зависание я пока не знаю.