Jump to content
  • 0

Dual WAN failover


draid

Въпрос

Здравейте колеги,

Взех един hAP ac2, с който да имам възможност да си поиграя и да се запозная с ROS, но се сблъсках с първия проблем при настройката на fail-over-a. Желанието ми е да настроя само fail-over, без load balancing и т.н. Когато използвам елементарната настройка с промяна само на distance всичко работи, но искам да го подкарам с рекурсия и проверка към някой външен хост.

В момента постановката е следната:

WAN1 (Main)  - optic -> convertor -> mikrtoik pppoe client on eth1

WAN2 (Backup) - phone line -> ADSL modem -> mikrotik static address on eth2

Цитат

/ip route
add check-gateway=ping distance=1 gateway=8.8.8.8
add check-gateway=ping distance=2 gateway=8.8.4.4
add distance=1 dst-address=8.8.4.4/32 gateway=192.168.x.x scope=10
add distance=1 dst-address=8.8.8.8/32 gateway=109.x.x.x scope=10

Тук идва и големият проблем. При свързване към сървъра remote address-a на pppoe-то се променя, а смени ли се адреса gateway-а на 4-тия ред започва да сочи към друг адрес и възстановяването към главната връзка е невъзможно. Пробвах метод, който предложиха едни колеги - да създам нов /ppp profile  с избран от мен адрес и да използвам в pppoe клиента този профил, а след това за /ip route да ползвам избраният адрес, който ще е постоянен независимо взетия при връзка. Когато се опитам да направя това обаче, не е възможно свързването към сървъра и дава че връзката  е терминирана.

Имате ли някаква идея как може да се прескочи този проблем  по някакъв начин?

Редактирано от draid
Адрес на коментара
Сподели в други сайтове

13 отговори на този въпрос

Recommended Posts

  • 0
  • Администратор

На рррое клиента задаваш дистанция 2

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

  • 0
Преди 7 часа, 111111 написа:

На рррое клиента задаваш дистанция 2

 

Ами не виждам как това ще ми помогне, тъй като pppoe връзката трябва да бръде главната.

Адрес на коментара
Сподели в други сайтове

  • 0
  • Администратор

Ако втората връзка е с дестинация 3 няма да имаш проблем

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

  • 0
Преди 3 часа, 111111 написа:

Ако втората връзка е с дестинация 3 няма да имаш проблем 

Добре, но в този случай с какво променяме факта, че при всяко свързване pppoe-то ще взема различен remote address и съответно рекурсията ще се чупи?

В момента го подкарах с помощта на скрипт, но ми се ще да го направя без такъв ако е възможно.

 

Цитат

/system script
add name=update-pppoe-route source=":local gtw \$\"remote-address\"\
    \n:local rte [/ip route find dst-address~\"8.8.8.8/32\"]\
    \n:if ([/ip route get \$rte gateway]!=\$gtw) do={\
    \n /ip route set \$rte gateway=\$gtw\
    \n}\
    \n"

/ppp profile
add name=my-pppoe on-up=update-pppoe-route

 

Адрес на коментара
Сподели в други сайтове

  • 0

На роута сложи просто dev=pppoe-client, вместо гейт/айпи. И няма да имаш проблеми.

Той ппп интерфейса си знае кой му е ремоте.

Адрес на коментара
Сподели в други сайтове

  • 0
Преди 1 час, byte написа:

На роута сложи просто dev=pppoe-client, вместо гейт/айпи. И няма да имаш проблеми.

Той ппп интерфейса си знае кой му е ремоте.

За скрипта ли говориш или за /ip route? Защото през настойките за съжаление не става. Това беше първото нещо, коеот пробвах. Оказа се че когато се ползва рекурсия, то трябва да се посочи точен адрес и следователно не се получава с интерфейс. Би било чудесно за мен ако работеше в този вариант.

Редактирано от draid
Адрес на коментара
Сподели в други сайтове

  • 0
  • Администратор

Дестинацията на рррое клиента се задава в интерфейса не в ip>routes

по подразбиране рррое конекцията ще е с  дестинация 2

 

https://wiki.mikrotik.com/wiki/Advanced_Routing_Failover_without_Scripting

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

  • 0
Преди 2 часа, 111111 написа:

Дестинацията на рррое клиента се задава в интерфейса не в ip>routes

по подразбиране рррое конекцията ще е с  дестинация 2

 

https://wiki.mikrotik.com/wiki/Advanced_Routing_Failover_without_Scripting

Мисля, че не се разбираме колега.  Реализацията е ясна, но проблема е,  че remote address-а на PPPoE-то не е постоянне, т.е. при всяко свързване клиента взема различен адрес (или поне при всяко). Когато това стане, рекурсията се чупи или по-точно се чупи по следният начин:

/ip route
add dst-address=8.8.8.8 gateway=10.20.30.40 scope=10
add dst-address=8.8.4.4 gateway=1.2.3.4 scope=10

Тук адрес 1.2.3.4 е постоянен и е реално адреса на ADSL  модема. Ситуацията с адрес 10.20.30.40 обаче не е същата, защото той може да се смени при всяко свързване на PPPoE клиента, а когато това стане, то адреса става недостъпен. Ако се използва интерфейса на мястото на 10.20.30.40,  достъпа до 8.8.8.8 е винаги наличен, но се оказва, че рекурсията не може да работи с интерфейс и изисква зададен адрес, т.е. ако сложа интерфейса gateway-a 8.8.8.8 в следващата точка става недостъпен.

/ip route
add distance=1 gateway=8.8.8.8 routing-mark=ISP1 check-gateway=ping
add distance=2 gateway=8.8.4.4.routing-mark=ISP1 check-gateway=ping

Общо казано, когато се реализира начално всичко работи, както би трябвало, но в момнта в който WAN1 падне по някаква причина и се задейства резервната връзка всичко става въпрос на шанс - дали при възстановяването на WAN1 PPPoE клиента ще вземе същия адрес от сървъра или ще вземе нов, в който случай възстановяването ще бъде невъзможно.

Адрес на коментара
Сподели в други сайтове

  • 0
  • Администратор

Както се каза по нагоре вместо ип може да се зададе интерфейс

реализирал съм с dhcp wan и домашен 4G в един офис със скрипт
(като има проблеми отвън понеже 4g няма публичен адрес или порт редирект но това е др. тема)

https://wiki.mikrotik.com/wiki/Failover_Scripting

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

  • 0

Ако имаш предвид:

/ip route
add dst-address=8.8.8.8 gateway=pppoe-out1 scope=10

То това определено не сработва  и както казах се оказва, че рекурсията си иска зададен адрес там, а не интерфейс.  В противен случай

/ip route
add distance=1 gateway=8.8.8.8 routing-mark=ISP1 check-gateway=ping

Моментално става недостъпен вместо рекурсивен. Един от вариантите, които очевидно могат да сработят в тозис лучай е да се създаде профил със статичен remote address и при връзката на pppoe клиента да се зададе да се ползва този профил, а след това в маршрута да се ползва статичният адрес. Оказва се обаче, че не всеки сървър позволява това заобикаляне.

Към момента го настроих с помощта на посоченият по-горе скрипт, който при всяко свързване взема адреса на pppoe-то и реално fail-over-a работи. Просто се чудех дали няма друг начин това да се реализира без скриптове.

Редактирано от draid
Адрес на коментара
Сподели в други сайтове

  • 0

Така е recursive routing не работи когато се използва интерфейс вместо адрес за gateway. Аз съм с подобна конфигурация в къщи където единият доставчик е с PPPoE, а другият е със статичен публичен IP адрес. При мен remote адреса на PPPoE връзката е винаги един и същ и съм го задал като gateway. Ако си сигурен, че ако има ping до remote адреса на PPPoE връзката има и Интернет "след" нея можеш да си спестиш recursive route за тази връзка като само отбележиш в 0.0.0.0/0 маршрута check gateway ping. Другото е да имаш устройство преди MikroTik-a, което да вдига само PPPoE връзката с DMZ host MikroTik-a в случай, че имаш публичен IP адрес от PPPoE връзката. От доста време във форумите се обсъждат предложения към MikroTik това check gateway ping да му се добави едно поле където да се посочи кой адрес да се ping-ва, което решава много проблеми, но няма резултат. Това го има отдавна в други enterprise router дистрибуции базирани на BSD или Linux, които се използват от малки и средни компании в целият свят.

Адрес на коментара
Сподели в други сайтове

  • 0
На 24.09.2018 г. at 18:08, ilko-gd написа:

Така е recursive routing не работи когато се използва интерфейс вместо адрес за gateway. Аз съм с подобна конфигурация в къщи където единият доставчик е с PPPoE, а другият е със статичен публичен IP адрес. При мен remote адреса на PPPoE връзката е винаги един и същ и съм го задал като gateway. Ако си сигурен, че ако има ping до remote адреса на PPPoE връзката има и Интернет "след" нея можеш да си спестиш recursive route за тази връзка като само отбележиш в 0.0.0.0/0 маршрута check gateway ping. Другото е да имаш устройство преди MikroTik-a, което да вдига само PPPoE връзката с DMZ host MikroTik-a в случай, че имаш публичен IP адрес от PPPoE връзката. От доста време във форумите се обсъждат предложения към MikroTik това check gateway ping да му се добави едно поле където да се посочи кой адрес да се ping-ва, което решава много проблеми, но няма резултат. Това го има отдавна в други enterprise router дистрибуции базирани на BSD или Linux, които се използват от малки и средни компании в целият свят.

 

Да, когато адреса не се променя би било чудесно. Остава риска, ако доставчика реши да промени нещо, но като цяло шанса е малък. Не виждам причина да няма пинг иначе и може и да се пробва варианта. Като цяло обаче би било чудесно ако бяха помислили и беше възможно да се ползва интерфейс вместо адрес. Иначе като се замисля дори  load balance рутерите на TP-Link имат опция за избор на адрес за пинг, не знам защо не са го добавили. Може би във версия 7, която май е като еднорог из средите на микротик.

Редактирано от draid
Адрес на коментара
Сподели в други сайтове

  • 0

Щом нищо не е натамън, вземи резни PADO пакетите на входа, и си остави един концентратор да ти връща отговор. Ще имаш само един гейт.

Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • No registered users viewing this page.
×
×
  • Създай нов...

Important Information

By using this site, you agree to our Terms of Use.