Jump to content
  • 0

Dual WAN failover


draid

Question

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

Взех един 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 да ползвам избраният адрес, който ще е постоянен независимо взетия при връзка. Когато се опитам да направя това обаче, не е възможно свързването към сървъра и дава че връзката  е терминирана.

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

Edited by draid
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0
  • Administrator

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

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

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


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

Link to comment
Share on other sites

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

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

 

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

Link to comment
Share on other sites

  • 0
  • Administrator

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

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

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


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

Link to comment
Share on other sites

  • 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

 

Link to comment
Share on other sites

  • 0

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

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

Link to comment
Share on other sites

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

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

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

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

Edited by draid
Link to comment
Share on other sites

  • 0
  • Administrator

Дестинацията на рррое клиента се задава в интерфейса не в 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 ǝɥʇ

Link to comment
Share on other sites

  • 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 клиента ще вземе същия адрес от сървъра или ще вземе нов, в който случай възстановяването ще бъде невъзможно.

Link to comment
Share on other sites

  • 0
  • Administrator

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

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

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

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

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


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

Link to comment
Share on other sites

  • 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 работи. Просто се чудех дали няма друг начин това да се реализира без скриптове.

Edited by draid
Link to comment
Share on other sites

  • 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, които се използват от малки и средни компании в целият свят.

Link to comment
Share on other sites

  • 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, която май е като еднорог из средите на микротик.

Edited by draid
Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

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