Пинг pppoe интерфейса

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Аватара пользователя
Sir_Prikol
Сообщения: 556
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Пинг pppoe интерфейса

Сообщение Sir_Prikol »

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

Пытаюсь создать скрипты в ppp профиле, которые будут делать следующее:

On UP - начинает пинговать клиента, который подцепился на pppoe сервер микротика
On Down - прекращает пинговать данного клиента

Скрипты нужны временно, пока не пойму, почему не проходит алайв пакет по свитчам. Клиент отваливается, если не траффа, при этом я его спокойно удерживаю пингом вручную.

Проблему с alive пакетами - решаю, но до этого момента нужны вышеуказанные скрипты

UPD: Забыл сказать, IP клиент получает динамически

OnUp

Код: Выделить всё

:local interfaceName [/interface get $interface name]; 
:local currentip [/ip address get [/ip address find interface=$interfaceName ] address];
ping $currentip;

По всей моей кривой логике - таким образом он начнёт пинговать. Далее, чтоб прекратить пинг по отвалу ифейса, думаю, надо дропнуть ScriptJob, вот только как его обозначить, чтоб убить нужный?
Была мысль создавать виртуального юзверя, равному названию подключённого абонента, и дропать ScriptJob с этим автором, от чьего имени запускается, но это совсем уже из области фантастики
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3623
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Пинг pppoe интерфейса

Сообщение Chupaka »

Доброго.

Как насчёт динамически запихнуть их в адрес-лист (через профиль), а уже в Scheduler каждые N секунд/минут просто пробегаться по текущим активным клиентам и пинговать их с минимальным таймаутом (чтобы пакет быстро улетел и не следить, вернётся ли что-то)?
Аватара пользователя
Sir_Prikol
Сообщения: 556
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Пинг pppoe интерфейса

Сообщение Sir_Prikol »

У меня сейчас работает такой скрипт:

Код: Выделить всё

:local addr
/ppp active {
   :foreach i in=[find] do={
      :if ([get $i service] = "pppoe") do={
         :set addr [get $i address]
         /ping ($addr) count=1;
#: log warning "Client $addr - Ok";
      }
   }
}
Запуск раз в минуту - не хватает, клиенты падают по кипалайву
В адресслисте они так-же находятся, радиус их пихает туда автоматом. Тут проблема в том, что как только я прекращаю пинговать клиента - происходит отвал по кипалайву. Бег по кругу происходит дольше по времени, нежели у них кипалайв срабатывает.
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Sir_Prikol
Сообщения: 556
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Пинг pppoe интерфейса

Сообщение Sir_Prikol »

Изображение

После этого запустил пинг:

Изображение

Всё, клиент встал мёртво и не падает. Отпущу пинг - клиент отвалится

Последнее время - это я потушил порт на свитче и поднял, чтоб инициилизировать соединение от абона
Дома: CCR2004 (7-ISP(GPON)белый IP)
Аватара пользователя
Chupaka
Сообщения: 3623
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Пинг pppoe интерфейса

Сообщение Chupaka »

Вот предлагаю в тот скрипт в пинг дописать "interval=10ms", чтобы ответа никто не ждал и отправка происходила быстро.
Аватара пользователя
Sir_Prikol
Сообщения: 556
Зарегистрирован: 14 апр 2018, 15:21
Откуда: СССР

Re: Пинг pppoe интерфейса

Сообщение Sir_Prikol »

Дописал, спасибо, посмотрим на состояние :)
Дома: CCR2004 (7-ISP(GPON)белый IP)