Страница 1 из 1

Переподключение зависших соединения к интернету

Добавлено: 04 дек 2013, 11:04
wolf_ktl
И так в одном офисе у меня роутер подключается к инету и зависает соединение.
Вот написал скриптик который переключает это соединение

:log info "*************************************"
:log info " vvod peremennih"
:log info "*************************************"
#Glavniy interface name
:local MainIf "l2tp-flex"

:log info "*************************************"
:log info " End peremennih"
:log info "*************************************"

:local PingCount 3
:log info "*************************************"
:log info " Proverka interneta"
:log info "*************************************"

#www.ru
:local PingTarget1 194.87.0.50

#ya.ru
:local PingTarget2 87.250.250.203

#google dns
:local PingTarget3 8.8.8.8
:log info "******* servers***********************"


#Check main internet connection
:local MainIfInetOk false;

:log info "pinguem internet"
:log info "******* ping***********************"
:local PingResult1 [/ping $PingTarget1 count=$PingCount interface=$MainIf]
:log info "******* ping $PingTarget1***********************"
:local PingResult2 [/ping $PingTarget2 count=$PingCount interface=$MainIf]
:log info "******* ping $PingTarget2***********************"
:local PingResult3 [/ping $PingTarget3 count=$PingCount interface=$MainIf]
:log info "******* ping $PingTarget3***********************"

:set MainIfInetOk (($PingResult1 + $PingResult2 + $PingResult3) >= (2 * $PingCount))

:log info "test internet $MainIfInetOk"
:if ($MainIfInetOk = false) do={
/log error "Internet upal"
#Glavniy interface upal
:interface l2tp-client disable $MainIf;
:interface l2tp-client enable $MainIf;
}
:log info "******* ping***********************"
:put "MainIfInetOk=$MainIfInetOk"

:if ($MainIfInetOk = true) do={
:log info "Internet OK"
}


:log info "*************************************"
:log info "End Proverka interneta"
:log info "*************************************"

Re: Переподключение зависших соединения к интернету

Добавлено: 21 ноя 2018, 03:38
Stas788
Здравствуйте!

у вас используется интерфейс :local MainIf "l2tp-flex", а у меня interface-list=ISP.
как поправить ваш скрипт, чтобы у меня с интерфейс листом заработало? какую переменную вместо :local MainIf "l2tp-flex" нужно использовать?

Re: Переподключение зависших соединения к интернету

Добавлено: 21 ноя 2018, 04:49
vqd
Данный скрипт есть костыль. Будет работать только в случае если у ас PtP интерфейсы.
Ну и если вы хотите использовать список интерфейсов то оборачивайте его в цикл foreach и прогоняйте по каждому интерфейсу в списке ну и момент отключения и включения интерфейсов нужно поправить.

В общем проще с нуля написать человеческий скрипт который проверяет работоспособность основываясь на таблице маршрутизации.

Если в двух словах то для каждого оператора создаем свою таблицу, жестко привязываем марки к нужным таблицам (это нужно что бы в случае если интерфейс отвалится микротик не перекинул в main) Дальше все это скриптом обрабатываете. Тут опять же можно сваять решение универсальное которое само будет искать внешних операторов и проверять их доступность, а можно с жесткой привязкой по каждому оператору. Я лично второй вариант предпочитаю ибо периодически для каждого оператора нужно свои действия проделать.

Re: Переподключение зависших соединения к интернету

Добавлено: 21 ноя 2018, 08:48
Stas788
насколько я понял, MainIf - это наименование переменной для интерфейса, а какая будет переменная для интерфейс-листа? Не хотелось бы для моих двух интерфейсов загрузать два ваших скрипта и каждые 1-5минут проверять наличие интернета на каждом из них. Т.к. во-первых один будет заведомо отключен, а во-вторых боюсь создать лишнюю нагрузку на железо. Предполагаю, что заменой переменной инферфейса на переменную листа можно поправить ваш скрипт. Как думаете?

Re: Переподключение зависших соединения к интернету

Добавлено: 21 ноя 2018, 09:00
vqd
Это слава богу не мой скрипт ))

Про интерфейс-лист я Вам уже ответил

Re: Переподключение зависших соединения к интернету

Добавлено: 22 ноя 2018, 02:53
Stas788
я далек от самостоятельного написания скриптов. У меня на микротике два провайдера pppoe и usb-модем mts. У них в routes list выставлены 1 и 2. Поэтому если пропадает один, то переключается на другой. А теперь я озадачен тем, как этот скрипт из сабж прикрутить к моей ситуации. Интересует готовое решение. А предложение типа "возьми и напиши" не принимаются - не умею, умел бы - написал бы сам и сюда не обращался.... =) Помогите плз люди добрые )))

Re: Переподключение зависших соединения к интернету

Добавлено: 22 ноя 2018, 04:42
vqd
Stas788 писал(а): 22 ноя 2018, 02:53 А предложение типа "возьми и напиши" не принимаются - не умею
Ну для этого случая баннер сверху есть