Jinak jak to máš, tak je to nemáš asi dobře. Pokud spadne linka1, tak se ani nedostanou ven lidi směřovaní na tu linku2.
proč myslíš? pravda že to nemám ještě vyzkoušené jak se to chová v případě výpadků, nicméně uvažuji tak že pokud vypadne pppoe_out1 tak lidi ze group2 jsou markovaní na routu linka2, takže jich vůbec nezajímá že nefunguje linka1, ne?
Chybný předpoklad. Routování v routovací tabulce linka2 je při policy routingu vždy svázáno s tabulkou main pro volbu next hop. Když to hodně zjednoduším a obrátím pro pochopení (z dálky to tka vypadá, reálně funguje jinak):
Nejdříve se provede routování dle main tabulky, pokud je úspěšné, provede se případná změna routovacího rozhodnutí dle příslušné alternativní tabulky. Takže pokud v main máš defualt routu jen přes pppoe_out1, tak odchozí paket se nasměruje přes pppoe_out1 a nasledně se rozhodnutí upraví, pokud spadá pod route table linka2, že se má použít pppoe_out2 a tím to odejde. Pokud ti z main tabulky brána pppoe_out1 vypadne pro nedostupnost a jiná defualt brána není, tak paket v main nemá žádnou uplatnitelnou routu, tak se paket zahodí a už se vůbec nezkoumá, že existuje nějaká linka2 tabulka s jiným názorem na věc...
V reálu to funguje kapánek jinak, ale pro zjendodušení, při pohledu z dálky, se to chová dle uvedeného popisu.
Pokud spadne linka2, tak lidi z druhé grupy se ti pošlou ven 1. linkou. On policy routing dělá často zcela něco jiného, než by člověka napadlo. :-)
to máš pravdu, ale tohle je pro mě nežádoucí, takže je zahazuji pomocí firewallu, mám to nastaveno tak že přes pppoe_ou1 proleze jen group1 a přes pppoe_out2 jen group2, zbytek je zahozen
A přesně stejně se to bude chovat po doplnění té druhé default routy pro případ selhání první linky. Jinak přesně toto řeší to:
/ip route
add gateway=pppoe_out1 routing-mark=linka1
add type=blackhole distance=5 routing-mark=linka1
add gateway=pppoe_out2 routing-mark=linka2
add type=blackhole distance=5 routing-mark=linka2
Pokud je paket poslán skrz lina2 tabulku a její defualt routa přes pppoe_out2 nebude funční, tak se uplatní ten blackhole, který paket zahodí. Místo blackhole jde použít i prohibit/unreachable, ať se to omlátí odesilateli o hlavu.
Když ti paket prosviští tou linka2 tabulkou a nenajde se v ní aktivní záznam, který by se uplatnil, tak se použijí routy dle main tabulky, které to pošlou do out1. Blackhole to zastaví, aby to tu tabulku linka2 neopustilo.
Když přidáš i druhou default bránu přes pppoe_out2 do main tak máš vystaráno s DNS. Když chcípne první linka, začne se router ptát přes druhou:
/ip route add gateway=pppoe_out2 distance=5
ok, chápu to tedy tak že defaultní gateway kterou jsem si přidal na pppoe_out1 má distance=1, tedy gateway přes pppoe_out2 s větší distancí se použije pouze v případě výpadku pppoe_out1....... a jakmile se pppoe_ou1 opět nahodí zpět bude používat zase ji ?
Jo, pojede to přes out1, po výpadku přejde na out2, pak se zase vrátí. Předokládám, že máš dvě ADSL od jednoho operátora, takže netřeba řešit případ, že umře linka někde dál, než poslední míle k tobě. Když je oboje přes jednoho operátora, tak umřou obě linky vždy současně.
Jinak pro danou konfiguraci by možná šlo použít i VRF. Pokud by ti klienti A,B byl jeden interfejs a C,D druhý interfejs. Pokud by obě PPPoE interfejsy byly třeba dostupné přes ether1 a pak první půlka klientů byla ether2 a zbytek ether3, tak se dá udělat toto:
/ip route vrf
add routing-mark=A-B interfaces=ether2
add routing-mark=C-D interfaces=ether3
/ip route
add routing-mark=A-B dst-address=0.0.0.0/0 gateway=pppoe_out1@main
add routing-mark=C-D dst-address=0.0.0.0/0 gateway=pppoe_out2@main
add dst-address=0.0.0.0/0 gateway=pppoe_out1
add dst-address=0.0.0.0/0 gateway=pppoe_out5 distance=5
/ip firewall mangle
add chain=prerouting in-interface=pppoe_out1 connection-state=new action=mark-connection connection-mark=from_linka1
add chain=prerouting in-interface=pppoe_out2 connection-state=new action=mark-connection connection-mark=from_linka2
add action=mark-routing chain=prerouting connection-mark=from_linka1 new-routing-mark=A-B
add action=mark-routing chain=prerouting connection-mark=from_linka2 new-routing-mark=C-D
Tohle ti udělá, že kdo je za ether2, tak ven jde jen přes pppoe_out1 a kdo za ether3, tak přes ppppoe_out2 a nepustí ho do druhé linky. Také to zařídí, že DNS resolver odchází normálně první linkou a při selhání půjde druhou.
V podstatě to rozdělilo RBčko na tři routery - vlastní, ten zahrnuje ty PPPoE linky, druhá instance je na ether2 a třetí na ether3 s tím, že do instancí A-B a C-D se injektuje z main pouze příslušná default routa.
Pokud by jedna ta veřejná IP adresa byla statická, tak jde to tím VRF rozpůlit jinak (předpokládám, že A.B.C.D je statická IP přidělená na ADSL druhou linku:
/ip route vrf
add routing-mark=C-D interfaces=ether3,pppoe_out2
/ip route
add dst-address=0.0.0.0/0 gateway=pppoe_out1
add routing-mark=C-D dst-address=0.0.0.0/0 gateway=pppoe_out2 vrf-interface=pppoe_out2
add dst-address=0.0.0.0/0 gateway=pppoe_out2@C-D pref-src=A.B.C.D distance=5
/ip route rule add src-address=A.B.C.D table=C-D action=lookup-only-in-table
/ip firewall filter add chain=forward in-interface=!ether3 out-interface=pppoe_out2 action=drop
Tohle ti zase rozpůlí router tak, že jedna nezávislá část jsou interfejsy ether3 a pppoe_out2 a druhá ten zbytek. Opět by DNS mělo být schopno použít obě linky, proto se do main naijektuje default routa z instace C-D a pak tím filtrem blokuje, aby tím neodcházely forwardované pakety z main instance.