Ahoj,
mám dvě VDSL připojení na mém MikroTiku RB433, pppoe_out1 a pppoe_out2. Dostanu přidělené 2 věřejné adresy.
Obě připojení fungují, každé připojení mám pomocí routing marku přesměrované na samostatný počítač v LAN.
Nicméně se mi nedaří z internetu připojit pomocí winboxu na veřejnou adresu přidělenou pppoe_out2, nejde ping, nejdou vidět žádné porty, prostě se to chová jak kdyby na té IP ani žádné zařízení nebylo. Připojení na adresu přidělenou pppoe_out1 funguje bezproblému!
V čem je problém?
pak mě ještě napadlo že by to mohlo kolidovat, protože obě ppoe_out mají stejné ID sítě, čili jsou na stejném subnetu, takže se ty interfacy mezi sebou bijí a jako brána se prostě použije ten který pppoe vytočí jako první... je to možné? jde to nějak ošetřit?
Děkuji za každou radu.
❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz
2 x VDSL na MikroTiku
Cca:
/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
/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=output connection-mark=from_linka1 new-routing-mark=linka1
add action=mark-routing chain=output connection-mark=from_linka2 new-routing-mark=linka2
/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
/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=output connection-mark=from_linka1 new-routing-mark=linka1
add action=mark-routing chain=output connection-mark=from_linka2 new-routing-mark=linka2
0 x
ako napisal majklik a toto tu uz bolo niekolko krat riesene pouzi hledat a najdes tu toho az az...
0 x
Děkuji moc Majkliku!
zápisu celkem rozumím až na:
add type=blackhole distance=5 routing-mark=linka1
add type=blackhole distance=5 routing-mark=linka2
co to dělá?
Ještě jedna věc, jak vyřešit DNS? Když vypadne pppoe_out1 tak klientovi na pppoe_out2 nepojede DNS překlad, protože MikroTik používá jako výchozí bránu pppoe_out1.
zápisu celkem rozumím až na:
add type=blackhole distance=5 routing-mark=linka1
add type=blackhole distance=5 routing-mark=linka2
co to dělá?
Ještě jedna věc, jak vyřešit DNS? Když vypadne pppoe_out1 tak klientovi na pppoe_out2 nepojede DNS překlad, protože MikroTik používá jako výchozí bránu pppoe_out1.
0 x
to ti zabezpeci aby si mohol mat dve defaul cesty....
a to dns si mozes nastavit od toho ako to chces pouzivat...
ze ti budu sa pingak tie linky a ked bude nejaka strata paketu urobi prikaz to a to (cize zmeni dns na co len ty chces).. a zas naopak, to uz si musis naprikazovat podla tvojich poziadaviek...
a to dns si mozes nastavit od toho ako to chces pouzivat...
ze ti budu sa pingak tie linky a ked bude nejaka strata paketu urobi prikaz to a to (cize zmeni dns na co len ty chces).. a zas naopak, to uz si musis naprikazovat podla tvojich poziadaviek...
0 x
pedro4444 píše:to ti zabezpeci aby si mohol mat dve defaul cesty....
a to dns si mozes nastavit od toho ako to chces pouzivat...
ze ti budu sa pingak tie linky a ked bude nejaka strata paketu urobi prikaz to a to (cize zmeni dns na co len ty chces).. a zas naopak, to uz si musis naprikazovat podla tvojich poziadaviek...
děkuji za pomoc!
pokud to tedy zabezpečí dvě defaultní cesty, kterou z nich mikrotik použije když se bude ptát na DNS překlad? byl by si ochotný uvést příklad jednoduchého scriptu na změnu výchozí brány z pppoe_out1 na pppoe_out2 a naopak v případě výpadku jedné z nich
0 x
najprv si musis stanovit ktoru linku ches pouzivat.. to je velmi dolezite... ktora bude hlavna a ktora nahradna.... alebo to spojit ale to uz ina tema...
ak budes mat jednu nahradnu a druhu hlavnu script je velmi jednoduchy uz tu bol niekolko krat rieseny kukni script temu a tma toho najdes ale ak to chces spajat a v pripade vypadku aby to preslo na tu funkcnu to uz je troska zlozitejsie a ak v Mk len zacians odporucam precitat navod pretoze toto uz nie je jednoduche nastavenie...
ak budes mat jednu nahradnu a druhu hlavnu script je velmi jednoduchy uz tu bol niekolko krat rieseny kukni script temu a tma toho najdes ale ak to chces spajat a v pripade vypadku aby to preslo na tu funkcnu to uz je troska zlozitejsie a ak v Mk len zacians odporucam precitat navod pretoze toto uz nie je jednoduche nastavenie...
0 x
Ono je hlanáí, jak má ty pppoe klienty definované.
Co má pak v routovací tabulce, když jsou oba nahozeny.
A také, co pavažáuje, že jedna pppoe linka chcípla.
Obecně ROS použije jako odhozí bránu tu, která je v main tabulce s nejnižší cenou, pokud jich tma je víc, tak je střídá. Pokud to má dobře nastavneo, tak mu má pi chcípnutí jendé linky se ta default routa přes to deaktivovat a ros pojede tou druhou.
Co má pak v routovací tabulce, když jsou oba nahozeny.
A také, co pavažáuje, že jedna pppoe linka chcípla.
Obecně ROS použije jako odhozí bránu tu, která je v main tabulce s nejnižší cenou, pokud jich tma je víc, tak je střídá. Pokud to má dobře nastavneo, tak mu má pi chcípnutí jendé linky se ta default routa přes to deaktivovat a ros pojede tou druhou.
0 x
doktorx píše:add type=blackhole distance=5 routing-mark=linka1
add type=blackhole distance=5 routing-mark=linka2
Zajišťuje, že spojení přicházející jendou linkou se zahodí při výpadku dané linky a neude se snažit zbytečně odpovídat do linky druhé.
0 x
Tak abych to uvedl na pravou míru, má situace je následující:
na pppoe_out1 je klient A,B (addresss list=group1)
na pppoe_out2 je klient C,D (addresss list=group2)
přes routing mark (linka1, linka2) nadefinovaný v MANGLu je rozhazuji na jednotlivé linky (omlouvám se za syntaxi, snad to pochopíte)
ip mangle
chain=prerouting src-address-list=group1 dst-address-list=!LAN routingmark=linka1
chain=prerouting src-address-list=group2 dst-address-list=!LAN routingmark=linka2
čili pokud klient nesměruje do vnitřní sítě LAN (v address listu ji mám definouvanou několika rozsahy které používám) tak je označen routing markem a tudíž je natvrdo přesměrován na dané pppoe_out dle grupy ve které se nachází.
oba pppoe_out klienti mají zakázáno přidávat defaultní bránu, v routovací tabulce mám tedy manuálně nastavenou bránu na pppoe_out1 a dva záznamy s routing markem, tedy:
gateway=pppoe_out1
gateway=pppoe_out1 routing-mark=linka1
gateway=pppoe_out2 routing-mark=linka2
Takhle s tím funguji, s tím že když mě vypadne pppoe_out1 tak mě nepůjde ani DNS a tedy klienti na pppoe_out2 jsou odstřihlí od DNS přestože pppoe_out2 je plně funkční.
na pppoe_out1 je klient A,B (addresss list=group1)
na pppoe_out2 je klient C,D (addresss list=group2)
přes routing mark (linka1, linka2) nadefinovaný v MANGLu je rozhazuji na jednotlivé linky (omlouvám se za syntaxi, snad to pochopíte)
ip mangle
chain=prerouting src-address-list=group1 dst-address-list=!LAN routingmark=linka1
chain=prerouting src-address-list=group2 dst-address-list=!LAN routingmark=linka2
čili pokud klient nesměruje do vnitřní sítě LAN (v address listu ji mám definouvanou několika rozsahy které používám) tak je označen routing markem a tudíž je natvrdo přesměrován na dané pppoe_out dle grupy ve které se nachází.
oba pppoe_out klienti mají zakázáno přidávat defaultní bránu, v routovací tabulce mám tedy manuálně nastavenou bránu na pppoe_out1 a dva záznamy s routing markem, tedy:
gateway=pppoe_out1
gateway=pppoe_out1 routing-mark=linka1
gateway=pppoe_out2 routing-mark=linka2
Takhle s tím funguji, s tím že když mě vypadne pppoe_out1 tak mě nepůjde ani DNS a tedy klienti na pppoe_out2 jsou odstřihlí od DNS přestože pppoe_out2 je plně funkční.
0 x
Můžete mi tedy navrhnou jak to celé efektivně překopat? (S tím že použiju to co mi psal Majklik abych se dostal zvenčí na obě veřejné IP)
0 x
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. 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. 
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

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
0 x
Majklik píše: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?
Majklik píše: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
Majklik píše: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 ?
omlouvám se že se tak tupě ptám, ale jsem začátečník a rád bych si to ujasnil, děkuji!
0 x
doktorx píše:Majklik píše: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.
doktorx píše:Majklik píše: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.
doktorx píše:Majklik píše: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.
0 x
Tak to bylo vyčerpávající, děkuji moc za rady, pravdou je že ten konec už byl na mě lehce hutnější čtení, ale snažil jsem si z toho vzít co možná nejvíce poznatků.
Nicméně mám ty klienty na různých interface, takže VRF se raději vyhnu (je to na mě už trochu moc složité).
Ano, linky mám od stejného providera, nicméně vzhledem k stavu vedení se často stává že vypadne jen "jedna cesta", co ti budu vykládat, telefoní dvoulinka je natažena po stromech, visí mezi baráky atd...takže to i podle toho funguje...
Po všem co jsi mi napsal jsem se rozhodl, že překopu konfiguraci následujícím způsobem:
(kurzívou jsou pravidla která jsem již měl nastavena a tučně která se chystám přidat)
Můžeš na to prosím mrknout a potvrdit předpoklad na konci příspěvku? Díky!!!
/ip firewall mangle
add chain=prerouting out-interface=pppoe_out1 src-address-list=group1 action=mark-routing new-routing-mark=linka1
add chain=prerouting out-interface=pppoe_out2 src-address-list=group2 action=mark-routing new-routing-mark=linka2
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=output connection-mark=from_linka1 new-routing-mark=linka1
add action=mark-routing chain=output connection-mark=from_linka2 new-routing-mark=linka2
/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
add gateway=pppoe_out1
add gateway=pppoe_out2 distance=5
Po úpravě konfigurace následujícím způsobem předpokládám že:
Pokud bude směřován provoz od klientů mimo pppoe_out1 nebo out2, nebudou označkování routing markem, tedy dle main tabulky budou přesměrovány na příslušný interface v LAN. Pokud budou směřovat klienti do internetu, tedy do out1 nebo out2, budou příslušně označeni, udělá se vyhodnocení dle main tabulky (kde nalezne živou gateway buď out1 nebo out2) a následně se předá tabulce linka1 nebo linka2 dle značky, která nasměruje provoz na příslušné pppoe_out. Pokud bude daná pppoe-out linka mrtvá, skončí provoz v černé díře, takže ušetří práci firewallu, který by ho stejně dle mých pravidel nepustil.
Díky posledním čtyř pravidel v manglu budu mít Mikrotik přístupný na obou veřejných IP adresách, pojede tedy winbox, ping , prostě veškerá komunikace s mikrotikem na obou IP.
V případě výpadku linky pppoe_out1 změní mikrotik default gateway na pppoe_out2, tedy překlad DNS bude dál fungovat korektně, jakmile pppoe_out1 naskočí, začne jej opět používat místo out2.
Nicméně mám ty klienty na různých interface, takže VRF se raději vyhnu (je to na mě už trochu moc složité).
Ano, linky mám od stejného providera, nicméně vzhledem k stavu vedení se často stává že vypadne jen "jedna cesta", co ti budu vykládat, telefoní dvoulinka je natažena po stromech, visí mezi baráky atd...takže to i podle toho funguje...
Po všem co jsi mi napsal jsem se rozhodl, že překopu konfiguraci následujícím způsobem:
(kurzívou jsou pravidla která jsem již měl nastavena a tučně která se chystám přidat)
Můžeš na to prosím mrknout a potvrdit předpoklad na konci příspěvku? Díky!!!
/ip firewall mangle
add chain=prerouting out-interface=pppoe_out1 src-address-list=group1 action=mark-routing new-routing-mark=linka1
add chain=prerouting out-interface=pppoe_out2 src-address-list=group2 action=mark-routing new-routing-mark=linka2
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=output connection-mark=from_linka1 new-routing-mark=linka1
add action=mark-routing chain=output connection-mark=from_linka2 new-routing-mark=linka2
/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
add gateway=pppoe_out1
add gateway=pppoe_out2 distance=5
Po úpravě konfigurace následujícím způsobem předpokládám že:
Pokud bude směřován provoz od klientů mimo pppoe_out1 nebo out2, nebudou označkování routing markem, tedy dle main tabulky budou přesměrovány na příslušný interface v LAN. Pokud budou směřovat klienti do internetu, tedy do out1 nebo out2, budou příslušně označeni, udělá se vyhodnocení dle main tabulky (kde nalezne živou gateway buď out1 nebo out2) a následně se předá tabulce linka1 nebo linka2 dle značky, která nasměruje provoz na příslušné pppoe_out. Pokud bude daná pppoe-out linka mrtvá, skončí provoz v černé díře, takže ušetří práci firewallu, který by ho stejně dle mých pravidel nepustil.
Díky posledním čtyř pravidel v manglu budu mít Mikrotik přístupný na obou veřejných IP adresách, pojede tedy winbox, ping , prostě veškerá komunikace s mikrotikem na obou IP.
V případě výpadku linky pppoe_out1 změní mikrotik default gateway na pppoe_out2, tedy překlad DNS bude dál fungovat korektně, jakmile pppoe_out1 naskočí, začne jej opět používat místo out2.
0 x