Резервный канал почемуто не работает(HELP!!!)

Обсуждение ПО и его настройки
Ответить
Seen
Сообщения: 5
Зарегистрирован: 02 июн 2013, 21:35

Всем привет
RB-750 прошивка 5.17
В общем решил я настроить 2 WAN порта
WAN1 постоянный WAN2 как резервный
на 1 порту статика на втором dhcp
Использовал для всего этого эту статью
В результате получилось настроить но возникла проблема с маркировкой (ну я так думаю)
то есть при подключении 1 порта интернет работает
при подключении 2ого порта интернет работает
при подключении обоих портов одновременно скрипт пишет в логи ошибку WAN1 подключения(статика)
и автоматически перекликаться на второй
если вытащить WAN2 то WAN1 начинает работать
Немного подумав и погуглив я возможно нашел в чем причина
Причина в том что нет маркировки
я ее настроил как было написано в кометах под статьей

 Маркировка
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no in-interface=nlink-ppp new-connection-mark=nlink_c passthrough=yes
add action=mark-connection chain=prerouting disabled=no in-interface=dlink-ppp new-connection-mark=dlink_c passthrough=yes
add action=mark-routing chain=prerouting connection-mark=nlink_c disabled=no new-routing-mark=nlink_r passthrough=yes
add action=mark-routing chain=prerouting connection-mark=dlink_c disabled=no new-routing-mark=dlink_r passthrough=yes

/ip route
add comment=gw-nlink disabled=no distance=1 dst-address=0.0.0.0/0 gateway=nlink routing-mark=nlink_r scope=30 target-scope=10
add comment=gw-dlink disabled=no distance=1 dst-address=0.0.0.0/0 gateway=dlink routing-mark=dlink_r scope=30 target-scope=10


За одним исключением что gw-nlink у меня был статикой и я ему дал конкретный шлюз

В итоге интернет отпал вообще ))) Если точнее доступ к нему со стационарных ПК а с самого микротика пинг проходит
Я так подозреваю что возможно что то надо добавить в firewall но что не знаю (((



Помогите кто ни будь до настроить микротик :?

PS Firewall настроен по умолчанию я только добавил проброс портов


gmx
Модератор
Сообщения: 3290
Зарегистрирован: 01 окт 2012, 14:48

Вы как-то топитесь...

Начните вот с этого viewtopic.php?f=15&t=3280

Самый простой способ переключения вот здесь
http://wiki.mikrotik.com/wiki/Advanced_ ... _Scripting

Он же упоминается и по вышеприведенной ссылке.


Seen
Сообщения: 5
Зарегистрирован: 02 июн 2013, 21:35

gmx писал(а):Вы как-то топитесь...

Начните вот с этого viewtopic.php?f=15&t=3280

Самый простой способ переключения вот здесь
http://wiki.mikrotik.com/wiki/Advanced_ ... _Scripting

Он же упоминается и по вышеприведенной ссылке.


Да понятно что есть проще варианты
проблема не в скрипте он работает
вся проблема
1) Маркировка
2) возможно Firewall
+ еще что ни будь

Просто странно что при подключении 2х WAN портов отваливается 1 канал
если решить эту проблему все будет нормально функционировать )) так как переключение на резервный канал работает
Но у меня своими силами не хватает навыков что бы заставить его работать как надо (

И тем более я читал это ранее
Но учитывая что я создал тут топик это говорит о том что информатор находящаяся там не дала необходимый результат


Аватара пользователя
simpl3x
Модератор
Сообщения: 1532
Зарегистрирован: 19 апр 2012, 14:03

покажите что пишет в лог, и сам скрипт.


Seen
Сообщения: 5
Зарегистрирован: 02 июн 2013, 21:35

 Скрипты
Скрипты

Установка глобальных параметров при запуске роутера

Скрипт называется set_global_parameters
#Main interface name
:global MainIf nlink
#Reserve interface name
:global RsrvIf domolink
#Main interface ip address
:global MainIfAddress ""
#Reserve interface ip address
:global RsrvIfAddress ""

Определение IP-адресов интерфейсов

Определение IP-адреса основного интерфейса

Скрипт называется define_main_if_ip
:global MainIf
:global MainIfAddress ""
:set MainIfAddress [/ip address get [find interface=$MainIf] address]

Данный скрипт определяет IP-адрес основного интерфейса для доступа в интернет. Если этот интерфейс отсутствует, то скрипт будет завершаться с ошибкой, а в переменной MainIfAddress будет пустая строка.
Определение IP-адреса резервного интерфейса

Скрипт называется define_reserved_if_ip
:global RsrvIf
:global RsrvIfAddress ""
:set RsrvIfAddress [/ip address get [find interface=$RsrvIf] address]

Определение этих адресов вынесено в отдельные скрипты, т.к. эти значения я использую ещё в ряде скриптов на роутере (например, обновление записей в DynDNS), а пользовательские функции тут создавать нельзя. Следует заметить, что напрямую команды определения адресов нельзя использовать в других скриптах, т.к. в случае проблем с интерфейсом они генерируют ошибку и приводят к завершению скрипта.
Переключение каналов

Скрипт называется connection_check
:global MainIf
:global RsrvIf
:global MainIfAddress
:global RsrvIfAddress

:local PingCount 3

#www.ru
:local PingTarget1 194.87.0.50

#ya.ru
:local PingTarget2 87.250.250.203

#google dns
:local PingTarget3 8.8.8.8

#Check main internet connection
:local MainIfInetOk false;

if ($MainIfAddress="") do={delay 5}

if ($MainIfAddress!="") do={
:local PingResult1 [/ping $PingTarget1 count=$PingCount interface=$MainIf]
:local PingResult2 [/ping $PingTarget2 count=$PingCount interface=$MainIf]
:local PingResult3 [/ping $PingTarget3 count=$PingCount interface=$MainIf]

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

#Check reserved internet connection
:local RsrvIfInetOk false;

if ($RsrvIfAddress="") do={delay 5}

if ($RsrvIfAddress!="") do={
:local PingResult1 [/ping $PingTarget1 count=$PingCount interface=$RsrvIf]
:local PingResult2 [/ping $PingTarget2 count=$PingCount interface=$RsrvIf]
:local PingResult3 [/ping $PingTarget3 count=$PingCount interface=$RsrvIf]

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

:put "MainIfInetOk=$MainIfInetOk"
:put "RsrvIfInetOk=$RsrvIfInetOk"

if (!$MainIfInetOk) do={
/log error "Main internet connection error"
}

if (!$RsrvIfInetOk) do={
/log error "Reserve internet connection error"
}

:local MainGWDistance [/ip route get [find comment="MainGW"] distance]
:local RsrvGWDistance [/ip route get [find comment="RsrvGW"] distance]
:put "MainGWDistance=$MainGWDistance"
:put "RsrvGWDistance=$RsrvGWDistance"

#SetUp gateways
if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={
/ip route set [find comment="MainGW"] distance=1
/ip route set [find comment="RsrvGW"] distance=2
/log info "Switch to main internet connection"
}

if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={
/ip route set [find comment="MainGW"] distance=2
/ip route set [find comment="RsrvGW"] distance=1
/log warning "Switch to reserve internet connection"
}


в логе он пишет Main internet connection error

Но может с начало поможете разобраться с маркировкой ?
по скольку при настройке ее вообще интернет для ПК не доступен
а так если маркировка заработает то вполне возможно что и 1 канал работать начнет со включенными WAN1 WAN2


Seen
Сообщения: 5
Зарегистрирован: 02 июн 2013, 21:35

Ну дак что кто ни будь поможет?


Tamriel
Сообщения: 3
Зарегистрирован: 15 июн 2013, 09:13

Так же настроил по данной статье как у автора.
И так же проблема.

При подключении основного канала и присвоении ему наименьшей метрики все работает.
Когда переключаю на резерв то скрипт уже говорит что основной канал не работает.
у меня pppoe1-out резерв от ADSL
второй оптика по DHCP основной канал (первый порт ether1-gateway)
дефолт роут отключён.

Когда работает резерв то ping ya.ru interface=ether1-gateway выдаёт тайм аут.
А когда на основном канале работает то ping ya.ru interface=pppoe1-out отрабатывает нормально (пинг идёт)


А в скрипте именн такой метод и заложен.


Tamriel
Сообщения: 3
Зарегистрирован: 15 июн 2013, 09:13

Вообщем причина в том что когда микротик переключает на резерв то с основного канала пинги дальше своего шлюза не идут.
поменял в качестве хоста для опроса шлюз своего провайдера.
Как это исправить я пока не знаю.


Seen
Сообщения: 5
Зарегистрирован: 02 июн 2013, 21:35

То есть пинг идет до шлюза перед микротиком или в общем до шлюза провайдера ?
не много не понял тебя


Tamriel
Сообщения: 3
Зарегистрирован: 15 июн 2013, 09:13

Seen писал(а):То есть пинг идет до шлюза перед микротиком или в общем до шлюза провайдера ?
не много не понял тебя

Дальше шлюза провайдера.

Тоесть если у меня ip 85,234,61,195 а шлюз провайдера 85,234,61,1
то пинги идут только до 61,1


Ответить