Случается так, что при разрыве соединения VPN клиенты зависают на роутере и заново не удается подключиться. Если конечно вы не используете "Only One", то клиент без проблем подключится, но получит новый IP адрес. В моем случае это недопустимо и я разрешаю подключаться только под выделенным клиенту IP для того, что-бы была возможна маршрутизация в сторону этого клиента (это единственный способ подключения к клиентам за NAT провайдера). Так вот, в похожих случаях, зависший клиент может висеть сколь угодно долго. Можно конечно ограничивать сессии или период бездействия, но ограничение сессии будет периодически прерывать передачу данных, а ограничение периода бездействия будет работать не всегда, если включена проверка работоспособности маршрута.
Я нашел решение данной проблемы, написав небольшой скрипт. Он не будет работать с клиентами (будет их отключать), которые не отвечают на пинг-запросы, поэтому прежде позаботьтесь о том, что-бы виндовые и другие клиенты правильно настроили файрволы. В случае, если подключаются только другие микротики, то все работает вообще идеально.
Скрипт имеет 2 блока (проверку PPTP и L2TP клиентов).
Я запускаю данный скрипт каждую минуту через планировщик.
# VPN TESTING SCRIPT V.1.1.2
# Author: Sergey Krivosheyev (frozer@mail.ru)
:local PingCount 5;
# укажите адрес вашего VPN сервера:
:local SRCAddress 10.25.50.1;
:foreach i in=[/ip address find interface~"<pptp-"] #do={
:local CheckInt [/ping [/ip address get $i network] #count=$PingCount src-address $SRCAddress];
if ($CheckInt = 0) do={
:log info ("Client " . [/ip address get $i interface] . " is down - removing");
/interface pptp-server remove [/ip address get $i interface];
}
}
:foreach i in=[/ip address find interface~"<l2tp-"] do={
:local CheckInt [/ping [/ip address get $i network] count=$PingCount src-address $SRCAddress];
if ($CheckInt = 0) do={
:log info ("Client " . [/ip address get $i interface] . " is down - removing");
/interface l2tp-server remove [/ip address get $i interface];
}
}
Отключение зависших VPN клиентов
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
- LESHIY_ODESSA
- Сообщения: 2
- Зарегистрирован: 14 фев 2015, 17:14
Вставьте скрипт в [code], движок форума его подпортил.
- podarok66
- Модератор
- Сообщения: 4280
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Код: Выделить всё
:foreach i in=[/ip address find interface~"<pptp-"] #do={
:local CheckInt [/ping [/ip address get $i network] #count=$PingCount src-address $SRCAddress];
Вот эти строки непонятны? Хотелось бы увидеть подробный комментарий по поводу interface~"<pptp-" , #do= , #count=
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
interface~"<pptp-"
Содержит в имени интерфейса "<pptp-"
Тобиш "<pptp-123>"~"<pptp-" есть истина
Так же можно тупо написать interface~"pptp"
Содержит в имени интерфейса "<pptp-"
Тобиш "<pptp-123>"~"<pptp-" есть истина
Так же можно тупо написать interface~"pptp"
Есть интересная задача и бюджет? http://mikrotik.site
- podarok66
- Модератор
- Сообщения: 4280
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Здравствуй, уважаемый. Рад видеть тебя на этом форуме... 
Вот меня и смутил значок <. А дальше вообще часть строки закомментирована, словно автор не понимал, что за кусок кода он привел)))

Вот меня и смутил значок <. А дальше вообще часть строки закомментирована, словно автор не понимал, что за кусок кода он привел)))
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Модератор
- Сообщения: 3605
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация: