Mikrotik: звуковые уведомления при поднятии и падении PPPoE соединения

11 августа 2023

Иногда полезно узнавать о падении/поднятии PPPoE линка не только по светодиоду на передней панели роутера (что легко реализуется штатными средствами), но и по звуковому сигналу (для моделей с встроенным бипером). В этом нам поможет возможность написания скриптов в микротике.

Реализовать это можно несколькими способами:

  • Netwatch — самый простой способ. Но он сработает не только на отсутствие линка, но и на падение проверяемого хоста, поэтому не всегда надёжный. Можно попробовать пинговать шлюз провайдера. Но в любом случае будет небольшой временной лаг от потери линка до срабатывания проверки.
  • PPP Profiles — профили позволяют задать скрипты, которые будут автоматически выполняться при установке соединения и разрывах. То, что нам и нужно:

Но есть минусы: скрипт «падения» будет вызываться каждый раз при неудачной попытке установки соединения, то есть будет повторяться каждые несколько секунд. Попробуем от этого избавиться.

Воспользуемся возможностью задания глобальных переменных в скриптах. Такая переменная будет хранить своё значение между вызовами скрипта. Для этого объявим глобальную переменную :global pppoestate и при появлении линка будем её присваивать значению true. Затем воспроизведём короткий звуковой сигнал. Итоговый скрипт будет выглядеть следующим образом:

:global pppoestate
:set pppoestate true
:beep frequency=1300 length=100ms;
:delay 100ms;
:beep frequency=1550 length=100ms;

Сохраним его в скриптах (System → Scripts) под именем if_up. Права выставляем как на картинке:

Аналогично пишем скрипт для падения линка. В нём мы проверяем текущее состояние переменной pppoestate и если оно не равно false, то только тогда воспроизводим звуковой сигнал. Затем присваиваем этой переменной значение false. В результате данный скрипт будет воспроизводить звук только при первом запуске (и пока не запустится скрипт if_ip):

:global pppoestate
:if ($pppoestate != false) do={
:beep frequency=1300 length=100ms;
:delay 200ms;
:beep frequency=1300 length=100ms;
:delay 200ms;
:beep frequency=1300 length=100ms;
}
:set pppoestate false

Сохраняем его под именем if_down:

Теперь полученные скрипты необходимо вызывать из PPP профиля:

Откройте профиль вашего PPPoE соединения. Если не знаете, какой используется, то можно посмотреть в настройках самого соединения:

На вкладке Scripts выбранного профиля теперь нужно прописать вызов сохранённых скриптов. Делается это с помощью двух команд:

/system script run if_up
/system script run if_down

Соответственно, должно получиться так:

  • mikrotik/mikrotik_zvukovye_uvedomlenija_pri_podnjatii_i_padenii_pppoe_soedinenija.txt
  • Последнее изменение: 02.01.2026 18:00
  • r0wbh