❗️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

Script na rozdělení dvou připojení a zároveň, aby fail-over

Návody a problémy s konfigurací.
sanevil
Příspěvky: 2
Registrován: 19 years ago
Kontaktovat uživatele:

Script na rozdělení dvou připojení a zároveň, aby fail-over

Příspěvekod sanevil » 19 years ago

Zdravím všechny používající mikrotik. Jsem docela začátečník na Mikrotik. Potřebuju vyřešit tento problém: Mám dvě připojení: WiFi a ADSL. Na mikrotiku bych potřeboval vyřešit napsání skriptu na load-balancing, aby mi připojení jelo přes oba ISP a zároveň, pokud mi jedno připojení spadne, tak aby se přepojil mikrotik na to funkční. Díky moc za radu.
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

Staci dat dve default routy a on to mezi ne rozdeli. Podrobnosti Manual 2.9 od strany 117.
0 x

pekr
Příspěvky: 70
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod pekr » 19 years ago

Myslím si že dát pouze dvě defaultní routy nestačí ani náhodou. Pokud toto uděláš, tak to bude fungovat metodou ECMP (Equal Cost Multi Path routing), bude to fungovat metodou FIFO, tedy paket sem, paket tam. Toto by nemuselo vadit, než člověk narazí na aplikace jako ICQ - tam se server podívá, zjistí že tam je člověk nalogovaný z veřejného IP GW1, najednou zasílá zprávu z IP2 GW, tak ho odpojí. Alespoň tak si myslím že to funguje a myslím že jo.

Každopádně - na bonding asi zapomeňte (sloučení dvou lajn do jedné virtuální). Co se tedy musí udělat?

Nejprve - je třeba se rozhodnout, jak to chcete dělat - myslím že asi nejrozumnější by bylo natvrdo určit networky, které lezou ven GW1, a pak ty, které lezou GW2. Mě to ovšem dobře nefungovalo, protože mám určitě nedotáhnutý marking. Vycházel jsem přitom z:

http://www.mikrotik.com/docs/ros/2.9/ip/route

, ale tam je chain="prerouting", netuším jestli by spíše neměl být forward, ale to chce vyzkoušet.

1) Tak tedy - omangloval bych pakety pro routing skrze GW1 a pro routing skrze GW2.

2) Přidal bych 2 default routy (0.0.0.0/0), každou pro jednu GW, s tím že bych tam dal routing-mark=viz-ten-co-udelate-v-manglu

3) si nejsem jist, jestli je to všechno - tímto jsme teoreticky zajistili, že data z networků xy polezou GW1 a data z networků zw polezou přes GW2. Jenže co když jedna GW spadne? Má teorie na vyzkoušení je, že bych tam přidal k těm dvěma pravidlům check-gw=ping, a dodefinoval další dvě routy 0.0.0.0/0, tentokrát bez dalších pravidel, takže:

0.0.0.0/0 GW1 routing-mark=pres-gw1 check-gw=ping
0.0.0.0/0 GW2 routing-mark=pres-gw1 check-gw=ping
0.0.0.0/0 GW1 check-gw=ping
0.0.0.0/0 GW2

Teoreticky by to mohlo fungovat, ale na to by tu mohli být jiní odborníci, co by mohli poradit - ovšem asi nebude častý případ, že má člověk záložní lajnu ....

Tady je link na thread, kde jsem se snažil získat další info:

http://forum.mikrotik.com/viewtopic.php ... light=pekr

Je tam jedna zajímavá informace, na kterou mi nikdo neodpověděl - tzv. look-up tables - týpek tam prostě ty gw nastavuje jinak v routing tabulce zavádí rules ... nevím jestli se tak dá vyhnout manglu? Z dokumentace jsem to nějak nepochopil ...

-pekr-
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

ne ne, dela to podle paru srcIP/dstIP, takze by to nemelo nicemu vadit. Alespon dle manualu.
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

Jeste dodam ze samotne dve gw nezajisti failover. na to ale staci pridat check gateway v nastaveni routy.
0 x

pekr
Příspěvky: 70
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod pekr » 19 years ago

Jan Holub píše:ne ne, dela to podle paru srcIP/dstIP, takze by to nemelo nicemu vadit. Alespon dle manualu.


Ty jo, teï to čtu, fakt že jo! Vím že v práci to admin musel řešit sám a dost dlouho to vyřešeno neměl :-) Tak to je celkem přidaná hodnota, akorát by mě zajímalo, k čemu potom všechen ten humbuk kolem mangle, policy routingu apod. Tam musí být ještě nějaký problém, co čistě ECMP přístup neřeší ....

-pekr-
0 x

Leeonek
Příspěvky: 3485
Registrován: 20 years ago

Příspěvekod Leeonek » 19 years ago

pokud použiju 2 rozhraní a na každé jinou bránu, jak se pak nastaví maškaráda ven? Bude fungovat když nastavím 192.168.0.0/8 na out interface eht1 a pod to další pravidlo s tím samým obsahem a out interface na eht2? to přece nemůže fungovat, nebo jo?
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

v maskarade se vetsinou zadne ip nenastavuji. proste se da:
/ip firewall nat add action=masquerade chain=srcnat out-interface=iface_ven1
/ip firewall nat add action=masquerade chain=srcnat out-interface=iface_ven2

moc nerozumim co mate na mysli. Mate dva iface do netu a na obou stejnou ip sit? nebo o co jde?
0 x

pekr
Příspěvky: 70
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod pekr » 19 years ago

Leeonek píše:pokud použiju 2 rozhraní a na každé jinou bránu, jak se pak nastaví maškaráda ven? Bude fungovat když nastavím 192.168.0.0/8 na out interface eht1 a pod to další pravidlo s tím samým obsahem a out interface na eht2? to přece nemůže fungovat, nebo jo?


základní nepochopení vznika u většiny z toho, že se nechápe kdy se provádí src-nat a maškaráda je src-nat. Tak tedy - src-nat se provádí až PO routingu - už je dávno rozhodnuto, kudy data půjdou. Takže jak radí kolega, stačí dat pouze out-interface ...

-pekr-
0 x

Leeonek
Příspěvky: 3485
Registrován: 20 years ago

Příspěvekod Leeonek » 19 years ago

pekr píše:základní nepochopení vznika u většiny z toho, že se nechápe kdy se provádí src-nat a maškaráda je src-nat. Tak tedy - src-nat se provádí až PO routingu - už je dávno rozhodnuto, kudy data půjdou. Takže jak radí kolega, stačí dat pouze out-interface ...
-pekr-


ok,ok, tímhle jsem se nikdy nezabýval, obšlehl jsem to z nějakých dem a tam to tak bylo. Každopádně to s těma dvěma rozhraníma a dvěma konektivitama funguje a vypadá to že to funguje dobře. Jen nevím co to udělá v momentě kdy brána poskytovatele bude dostupná ode mě ale nebude dostupný net.
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

To bohuzel udela to, ze cast komunikace pujde do ...... To uz by se muselo resit nejakym scriptikem. Neco sem mozna zitra hodim. Chce to nastavit na kazdou branu jednu routu, treba na dalsi hop a na tu spustit pingator, co bude zapinat a vypinat ty routy.
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

0 x

pekr
Příspěvky: 70
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod pekr » 19 years ago

Dobře, tak tedy řekněme, že ECMP funguje. No a nyní trochu složitější věc - když mám 2 GW, a chci selektivně rozdělit networky na tyto GW? (plus failover).

Jak to správně omanglovat? Jednou vidím příklady na prerouting chain, jinde zase na forward. Jde mi o to, abych měl omanglován veškerý trafik a někam mi něco neutíkalo. Jednou jsem to zapnul, ale nejelo to dobře, bylo vidět že tok přes mangl byl menší než tok na interfacech - určitě tam asi nestačí dát ten prerouting - markovat gw1 a gw2 a toto použít v default routách ....

-pekr-
0 x

Uživatelský avatar
Jan Holub
Příspěvky: 210
Registrován: 20 years ago

Příspěvekod Jan Holub » 19 years ago

Melo by to stacit. Dat do mangle, chain prerouting, routing-mark dle src-ip a dst-ip a udelat na to routu. Nevim jak to manglovani vypadalo, takze se tezko hleda kde byl problem.
0 x

pekr
Příspěvky: 70
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod pekr » 19 years ago

Já to právě popisuju v tom threadu co jsem tady nalinkoval - druhý příspěvek:

http://forum.mikrotik.com/viewtopic.php ... light=pekr

A týpek mi na to hned odpovídá, že je to vpodstatě dobře, ale že to nemarkuju všechno. Nechápu proč tam přidával ty policy routy a použil ty look-up tabulky ....

-pekr-
0 x