Исключение флуда в логе при попытках подключения pptp-клиента

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Предположим имеется связка Микротиков: PPTP-сервер - PPTP-клиент.

Если в качестве клиента выступает мобильный роутер (подключаемый к Интернет по 3G или LTE), то при отрицательном балансе, не смотря на отсутствие возможности выйти в Интернет, он всё равно будет пытаться подключиться к PPTP-серверу и в логах Микротика сервера (да и клиента тоже) будет полно флуда типа ... TCP connection established .... и опять по кругу ... (т.к. трафик то не идет).

Чтобы не захламлять логи Микротиков этими записями (а, то так можно и пропустить что-нибудь важное) предлагаю следующее:

1. На микротике-клиенте в профиль pptp-клиента добавим следующий скрипт (в событие "Down"):

:if (![/interface pptp-client get pptp-out1 disabled]) do={/interface pptp-client set pptp-out1 disabled=yes}

Что он делает: когда pptp-клиент "упал" - выключить его интерфейс, чтобы не флудил.

2. В Планировщик Микротика-клиента вставляем второй скрипт с интервалом на Ваш вкус (думаю, нормально секунд 30 - 1 минута):

:if ([ping 8.8.8.8 count=5] >2) do={:if ([/interface pptp-client get pptp-out1 disabled]) do={/interface pptp-client set pptp-out1 disabled=no}}

Что он делает: проверяет - если пинг до Интернета есть, проверить включен ли pptp-клиент. Если включен - ничего не делать, если выключен - включить).

Таким образом, как только на счет pptp-клиента положат денежки (или Интернет появится по другим причинам - например у провайдера авария была), основной скрипт из планировщика поднимет VPN-канал.

Естественно имя pptp-интерфейса нужно поставить в оба скрипта своё.

Тоже самое можно легко адаптировать под любой VPN-клиент Микротика (l2tp или open).

Проверено, работает.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

/system logging set [find topics~"info"] topics=info,!pptp и информационных сообщений по pptp не будет в логе

можно добавить можно добавить отдельный лог для pptp

/system logging action add name=pptpinfo target=memory
/system logging add topics=info,pptp action=pptpinfo

тогда:
/log print where buffer=pptpinfo - видим только лог сообщений pptp
/log print where buffer=memory - видим все остальное кроме pptp


Есть интересная задача и бюджет? http://mikrotik.site
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

vqd спасибо, но кроме флуда в логе предложенное решение еще и снимает флуд pptp-интерфейса.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

)) Ну видимо вы еще не сталкивались на практике с флудом, когда на собственной шкуре почувствуете что это такое то попытки соединения пптп при отвалившемся внешнем канале вам детским лепетом покажутся, которые не стоят внимания. А вот информативность лога - это уже действительно важно


Есть интересная задача и бюджет? http://mikrotik.site
vqd
Модератор
Сообщения: 3605
Зарегистрирован: 26 сен 2013, 14:20
Откуда: НСК
Контактная информация:

Sertik писал(а): 14 дек 2018, 11:39
:if ([ping 8.8.8.8 count=5] >2) do={:if ([/interface pptp-client get pptp-out1 disabled]) do={/interface pptp-client set pptp-out1 disabled=no}}
{
/interface pptp-client
:if (([:ping 8.8.8.8 count=5] >2) and ([get pptp-out1 disabled ])) do={enable pptp-out1}
}


Есть интересная задача и бюджет? http://mikrotik.site
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Спасибо, можно и так, хотя не сильно короче.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
SergeyN
Сообщения: 20
Зарегистрирован: 04 ноя 2021, 10:00

Отличное решение, как раз его применил. Только вместо проверки по 8.8.8.8 лучше провериться по самому PPP серверу. Так так может интернет работать, а сервер при этом не отвечать.


Ответить