RE: Linux routing - podivná záhada
Jozef RAČEK
Jozef_RACEK na tempest.sk
Čtvrtek Červenec 30 08:52:43 CEST 2015
Preco je default GW ako prve pravidlo ? Ostatne pravidla sa nepouziju.
V Linuxoch byva ako posledne.
Vyhodnocovanie byva - pravidlo za pravidlom, a ked sa najde pouzitelne, tak sa pouzije a vyskoci z prehladavania dalsich.
Dalsie problemy mozu byt v pripade, ze je na zariadeniach nastavene rozne staticke routovanie a odpoved sa vrati "inou trasou" ako odchadzala. Vtedy FW zatvaraju spojenia a pod...
Dodo
________________________________________
From: Hw-list [hw-list-bounces na list.hw.cz] on behalf of Pavel Troller [patrol na sinus.cz]
Sent: Thursday, July 30, 2015 8:36
To: hw-list na list.hw.cz
Subject: Linux routing - podivná záhada
Zdravím,
jak asi víte, jsem v okolí považován za Linuxáka a dokonce o tom i učím :-).
Ale co se mi děje na jednom stroji v poslední době mne natolik mate, že se
s tím obrátím sem, schválně, jestli někdo přijde na to, čím to je a jak to
vyřešit bez rebootu stroje :-).
Zbláznil se tam routing. Pakety si chodí, kudy chtějí a ne tudy, kudy mají.
Nastalo to po úpravách routingu kvůli vnějším zásahům.
Takže, vzhůru k problému.
root na box:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 x.x.x.126 0.0.0.0 UG 1 0 0 eth0
10.0.0.0 x.x.x.8 255.0.0.0 UG 0 0 0 eth0
192.168.0.0 x.x.x.8 255.255.0.0 UG 0 0 0 eth0
x.x.x.0 0.0.0.0 255.255.255.128 U 0 0 0 eth0
O co tu jde: Default gateway vede na jednu IP, privátní rozsahy jsou z toho
vyčleněny a mají separátní statické routy vedoucí na jiný router v téže síti.
x.x.x.0 je síť, v níž je stroj umístěn, jeho vlastní IP je x.x.x.5.
Ale, viz následující případy:
root na box:~# traceroute 192.168.20.3
traceroute to 192.168.20.3 (192.168.20.3): 1-30 hops, 46 byte packets
1 x.x.x.8 (x.x.x.8) 0.130 ms (ttl=64!) 0.104 ms (ttl=64!) 0.91 ms (ttl=64!)
2 192.168.192.200 (192.168.192.200) 12.2 ms 11.6 ms 11.9 ms
3 192.168.20.27 (192.168.20.27) 13.3 ms 13.2 ms 16.3 ms
4 192.168.20.3 (192.168.20.3) 13.1 ms (ttl=248!) * 16.3 ms (ttl=248!)
Zde je vše OK, šlape to, jak má.
root na box:~# traceroute 192.168.20.4
traceroute to 192.168.20.4 (192.168.20.4): 1-30 hops, 46 byte packets
1 x.x.x.126 (x.x.x.126) 0.819 ms 0.568 ms 0.500 ms
2 x.x.x.161 (x.x.x.161) 7.7 ms 5.67 ms 5.65 ms
3 * * *
4 * * *
Bum! Místo do statické route se to snaží hnát do default route! A to se
prosím ta IP liší jen o 1 v posledním oktetu! Tím je osud paketu samozřejmě
zpečetěn.
A to nejlepší na konec:
root na box:~# traceroute 192.168.20.5
traceroute to 192.168.20.5 (192.168.20.5): 1-30 hops, 46 byte packets
1 x.x.x.5 (x.x.x.5) * 7.4 ms (ttl=64!) !H *
Tak to už je úplně špatně - ten paket není poslán vůbec nikam a jeví se to,
jako by měl být doručen v lokální síti a příslušný stroj byl nedostupný.
A opět jde jen o velmi blízkou IP adresu.
S rozlišením na individuální IP adresy (viz tyto příklady) je "kdesi"
zapamatován tento nesmyslný routing. Je to v čase stálé, jednotlivé IP
failují vždy stejným způsobem (buď do default gw místo do statiky nebo
úplný fail). Jiné problémy to nemá, tj. routing mimo ty privátní rozsahy
správně vede do default route.
Networking uvedeného stroje byl několikráte zcela reinicializován - všechny
routy pryč, všechny interface down atd. a poté znovu zadán. Na tento problém
to však nemá žádný vliv, po zadání to začne routovat úplně stejně nesmyslně,
jako před tím.
Ještě poznámka - na stroji se používá "advanced routing", kdy na základě
pravidel (ip rule ...) se volí individuální směrovací tabulka (ip route
... table X). Avšak v těchto tabulkách jsou jen výjimky, 1 - 2 řádky.
Napsal jsem si script na výpis všech 256 speciálních routovacích tabulek
jádra a tyto nesmysly nejsou v žádné z nich.
Ještě info - jádro 3.1.0. Celkem vykopávka, ale jde o produkční stroj, u
kterého jsou updaty značně nežádoucí, pokud stroj funguje, jak má :-).
Zdraví Pavel
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list