x-system Опубликовано 20 ноября, 2012 (изменено) · Жалоба Добро время суток. Есть две точки, подключенные через интернет, между ними поднимается openvpn. На первой точке - роутер Mikrotik 943g, на другой коммутатор и еще одно сетевое устройство. На первой точке так же имеется IRZ RUH2 3g-Router, который подключается к инету по 3г и потом через него поднимается openvpn. Надо сделать следующее: на тике создать скрипт, который будет отслеживать основной канал, и если он порвался, то пускать соединение через 3g. Вроде скрипт написали, но примерно через сутки он перестает работать( ## time settings :global checkInterval 5 :global vpnTimeout 1 ## network settings :global gateway1=201.0.0.2 :global remoteVpnIp=172.20.0.1 # ip to check first connection # must have direct route via $gateway1 :global ipCheck1=8.8.8.8 :global gateway2=202.0.0.2 # ip to check second connection # must have direct route via $gateway2 :global ipCheck2=8.8.8.8 ## armada interaction :global armadaUrl="http://172.20.200.21/armada/conn_status/" :global armadaUser="user" :global armadaPassword="password" ## pre-defined variables for infinite cycle :global status # next connection to try :global nextGateway $gateway2 :while (true) { # if slow connection - try to re-establish with fast connection :if ($status = "connection_2_ok") do={ :if ( [ ping interval=0.5 count=2 $ipCheck1 ] != 0 ) /ip route set dst-address=0.0.0.0/0 gateway=$gateway1 /interface ovpn-client set ovpn1 disabled=yes /interface ovpn-client set ovpn1 disabled=no } :global avail ( [/ping interval=0.5 count=2 $remoteVpnIp] != 0 ) :global current_gw [/ip route get [/ip route find dst-address=0.0.0.0/0] gateway ] :if ( avail ) do={ :if (current_gw = gateway1) do={ :global currentStatus="connection_1_ok" } else={ :global currentStatus="connection_2_ok" } :if ($status != $currentStatus) do={ :global status $currentStatus /tool fetch url="$armadaUrl$status" user="$armadaUser" password="$armadaPassword" keep-result=no } :delay $checkInterval } else={ :global currentStatus="no_network" :if ($status != $currentStatus) do={ :global status $current_status /tool fetch url="$armadaUrl$status" user="$armadaUser" password="$armadaPassword" keep-result=no } # try to use next connection /ip route set dst-address=0.0.0.0/0 gateway=$nextGateway /interface ovpn-client set ovpn1 disabled=yes :delay 0.5 /interface ovpn-client set ovpn1 disabled=no :delay $vpnTimeout :if ( $nextGateway = $gateway1 ) do={ :global nextGateway $gateway2 } else={ :global nextGateway $gateway1 } } } В чем может быть проблема?( Идея о том, что бы пустить одновременно два тунеля и прыгать между ними через stp - полностью отмели, из-за дороговизны сотовой связи. Изменено 20 ноября, 2012 пользователем x-system Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
t1bur1an Опубликовано 20 ноября, 2012 · Жалоба http://wiki.mikrotik.com/wiki/Advanced_Routing_Failover_without_Scripting Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 20 ноября, 2012 · Жалоба Поднимите 2 туннеля. Один пойдет через дефолтный маршрут, для второго пропишите отдельно маршрут только для конкретного адреса. По туннелям запустите OSPF. Пропишите веса для маршрутов. Поднимите туннель. Теперь все будет работать автоматически без скриптов и вмешательств со стороны. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x-system Опубликовано 20 ноября, 2012 · Жалоба Saab95 Это первое, до чего я додумался))) OSPF - это чудно и очень красиво. Но заказчик не хочет, что бы какой либо трафик ходил через 3г пока основной канал работает, так как 3г для него ооочень дорог. У нас как всегда все.. Вот и приходится костыль придумывать( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x-system Опубликовано 22 ноября, 2012 · Жалоба t1bur1an кстати, спасибо за идею. Не было времени. Сегодня - завтра поработаю над ней. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x-system Опубликовано 26 ноября, 2012 · Жалоба t1bur1an check-gateway - вещь хорошая, но чекает она только шлюз провайдера. А если за шлюзом у провайдера по ломался инет?( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x-system Опубликовано 27 ноября, 2012 · Жалоба всем спасибо. Написал скрипт. Точнее, доработал найденный. Нужен кому-то? выложить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x-system Опубликовано 23 января, 2015 · Жалоба Если кому-то нужен скрипт - могу кинуть в личку. Пишите. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Diamont Опубликовано 23 января, 2015 · Жалоба А в чём была проблема? Почему скрипт не работал? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mamontov Опубликовано 24 июля, 2015 · Жалоба заводской брак или невнимательность,скорее всего.с каждым может случиться) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...