Зависают VPN? мы идём к вам.....

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
EdkiyGluk
Сообщения: 241
Зарегистрирован: 21 сен 2014, 08:34
Откуда: 34
Контактная информация:

31 май 2015, 19:02

Доброго времени суток, Форумчане))
На форуме уже встречался скрипт призванный убивать зависшие VPN ... Вот вам моя версия скрипта, который заливается на удалённые Микротики, которые стучаться VPN-ном на центральный. Его плюшка в том, что скрипт не нужно переписывать под каждую железку, он будет всё делать сам. Единственное, что нужно будет сделать, это поправить имена своих VPN клиентов и добавить в начало их имён "VPN_"


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


#Made by EdkiyGluk
:global cnt 3
:foreach i in=[/ip address find interface~"VPN_"] do={ 

:global remaddr [/ip address get $i network]
:global locaddr [:pick [/ip address get $i address ] 0 ([:len [/ip address get $i address ]]-3)]
:global vpnname [/ip address get $i interface]
:global check [/ping $remaddr src-address=$locaddr count=$cnt]
:if ($check <2) do={
:interface disable $vpnname
:log warning ("VPN " . $vpnname . " disable")
:interface enable $vpnname
:log warning ("VPN " . $vpnname . " enable")
}
}


====
Следующий скрипт будет направлен на установку на центральном Микротике... Но я пока его не написал :-[


wolf_ktl
Сообщения: 417
Зарегистрирован: 25 июн 2013, 18:12

07 июл 2015, 16:33

а смысл ? у меня в текстовике готовые команды лежат, меня имя и пароль и все ))


Аватара пользователя
drpioneer
Сообщения: 53
Зарегистрирован: 30 май 2013, 10:20

11 май 2020, 12:59

Добрый день.

Этот скрипт с минимальными изменениями уже несколько лет трудится на благо моих VPN-соединений.
За все время эксплуатации только положительное мнение о его работе.
У себя на клиентах запускаю его по расписанию раз в минуту.
Добавлено автоматическое включение VPN-интерфейса, если по какой-то причине он выключился.

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


# Script VPN connection error handler by EdkiyGluk
# http://forummikrotik.ru/viewtopic.php?f=14&t=6258
# tested on ROS 6.48
# updated 2021/02/14

:do {
    :local nameVPN "VPN";
    :local countPing 3;
    if ([ /interface find name~$nameVPN; ] != "") do={
        /interface set [ /interface find name~$nameVPN disabled=yes; ] disabled=no;
        :foreach activeVPN in=[ /ip address find interface~$nameVPN; ] do={
            :do {
                :local remoteAddress [ /ip address get $activeVPN network; ];
                :local localAddress  [ :pick [ /ip address get $activeVPN address; ] 0 ([ :len [ /ip address get $activeVPN address; ]] - 3)];
                :local interfaceVPN  [ /ip address get $activeVPN interface; ];
                :local checkPing [ /ping $remoteAddress src-address=$localAddress count=$countPing; ];
                :if ($checkPing < ($countPing / 3 * 1)) do={
                    /interface disable $interfaceVPN;
                    delay delay-time=3s;
                    /interface enable $interfaceVPN;
                    :log warning (">>> VPN interface ".$interfaceVPN." reactivated");
                }
            } on-error={ :log warning (">>> Script error. Working VPN interface not found"); }
        }
    } else={ :log warning (">>> VPN interface '".$nameVPN."' not found"); }
}




Ответить