Stránka 1 z 2

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

Napsal: 12 May 2006 15:25
od sanevil
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.

Napsal: 16 May 2006 12:02
od Jan Holub
Staci dat dve default routy a on to mezi ne rozdeli. Podrobnosti Manual 2.9 od strany 117.

Napsal: 17 May 2006 12:45
od pekr
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-

Napsal: 17 May 2006 13:06
od Jan Holub
ne ne, dela to podle paru srcIP/dstIP, takze by to nemelo nicemu vadit. Alespon dle manualu.

Napsal: 17 May 2006 13:08
od Jan Holub
Jeste dodam ze samotne dve gw nezajisti failover. na to ale staci pridat check gateway v nastaveni routy.

Napsal: 17 May 2006 15:00
od pekr
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-

Napsal: 17 May 2006 15:12
od Leeonek
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?

Napsal: 17 May 2006 16:44
od Jan Holub
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?

Napsal: 17 May 2006 17:42
od pekr
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-

Napsal: 17 May 2006 20:27
od Leeonek
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.

Napsal: 17 May 2006 22:45
od Jan Holub
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.

Skriptik na hlidani gw

Napsal: 18 May 2006 07:45
od Jan Holub

Napsal: 18 May 2006 13:44
od pekr
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-

Napsal: 18 May 2006 13:57
od Jan Holub
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.

Napsal: 18 May 2006 14:47
od pekr
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-