Problem s ip & routingem (long) Was: Ztraceni paketu & tcpdump

Jaroslav Stribrsky Jaroslav.Stribrsky na vscht.cz
Pátek Leden 12 16:28:42 CET 2001


Stepan Liska wrote:
>   poslouzim zkusenosti. Nektere sitovky s cipem RTL8029 (noname,
> Planet), ktere jsme masivne pouzivali v siti s cca 30ti pocitaci se po
> nejakem case (rok-dva) "zblazni". Dokonce jsou schopny shodit provoz na
> celem segmentu site. Byva celkem zahul zjistit, ktera to zase je.
> Diagnosticke utility se sitovkou dodavane zpravidla nic neohlasi.

Diky, ja jsem se zase podobnym style zbavoval 3COM (pod NT uplny des, na
Linuxu taky nejake problemy). Ale tady to tento problem na 99.9% nebude.

Objevil jsem neco jineho - konecne jsem nasel ve zdrojacich, co znamena
to pismeno P ve vypisu tcpdumpu (je to tam pridano v patchich od
RedHatu, proto jsem to nemohl najit). Symbol < znamena prichozi paket
pro tento pocitac, > odchozi, P znamena PACKET_OTHERHOST - z cehoz
usuzuji, ze ten linux (routovani) si to spatne prebere a nepochopi, ze
tento paket je pro nej a ze ho ma dale forwardovat :-( 

Pro oziveni - tohle je problematicky paket
16:42:31.211832 P 192.168.201.21 > 10.0.0.1: icmp: echo request
a melo by to vypadat
16:05:08.955246 < 192.168.201.21 > 10.0.0.1: icmp: echo request
16:05:08.955307 > 10.0.0.1 > 192.168.201.21: icmp: echo reply

mam router (Linux 2.2.18 + stealth patch + 5 sitovek)
ze tri vnitrnich siti 192.168.x.y se vse preklada na adresu vnejsi (v
prikladu 10.0.0.1). Na ctvrte sitovce je delana specialni maskarada tak,
ze kazdy z pocitacu za ni s adresami 172.16.1.y se pro vnejsek preklada
na IP adresy 10.1.1.y.

router - vypis ip addr show
1: lo: <LOOPBACK,UP> mtu 3924 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.1/24 brd 10.1.1.255 scope global dummy0
    inet 10.1.1.2/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.3/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.4/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.5/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.6/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.7/24 brd 10.1.1.255 scope global secondary dummy0
    inet 10.1.1.8/24 brd 10.1.1.255 scope global secondary dummy0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0
4: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet 192.168.201.1/24 brd 192.168.201.255 scope global eth1
5: eth2: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet 192.168.203.1/24 brd 192.168.203.255 scope global eth2
6: eth3: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet 192.168.202.1/24 brd 192.168.202.255 scope global eth3
7: eth4: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet 172.16.1.220/16 brd 172.16.255.255 scope global eth4

vypis rout - ip route show
10.0.0.1 dev eth0  scope link
10.1.1.1 dev dummy0  scope link
192.168.201.1 dev eth1  scope link
192.168.203.1 dev eth2  scope link
172.16.1.220 dev eth4  scope link
192.168.202.1 dev eth3  scope link
10.1.1.0/24 dev dummy0  proto kernel  scope link  src 10.1.1.1
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.1
192.168.201.0/24 dev eth1  proto kernel  scope link  src 192.168.201.1
192.168.203.0/24 dev eth2  proto kernel  scope link  src 192.168.203.1
192.168.202.0/24 dev eth3  proto kernel  scope link  src 192.168.202.1
172.16.0.0/16 dev eth4  proto kernel  scope link  src 172.16.1.220
127.0.0.0/8 dev lo  scope link
default via 10.0.0.254 dev eth0

rozhrani lo, eth0 a dummy0 se nejprve nahodi standardne pres skripty od
RedHatu a dalsi upravy routovani se nahazuje pres nasledujici prikazy:

	ip addr add dev dummy0 10.1.1.2 brd 10.1.1.255
.. atd pro dalsi IP
	ip rule add prio 310 from 172.16.1.1 nat 10.1.1.1
.. atd pro dalsi IP
	ip route flush cache

Vidite v tom nekdo chybu, proc obcas routing jede a obcas se to zblazni
? Mozna jsem zbytecne prestrelil s tim dummy zarizenim, jak tak
premyslim, urcite by stacilo dat vic tech IP adres na eth0. Ale vzhledem
k tomu, ze se mi to bez problemu rozebehlo, zatim jsem to nemenil.

	Jarda

P.S. Ted me napadlo kontrolovat/hlidat cache route tabulku pri
problemech, dam vedet, jestli jsem na neco prisel.

-- 
******************************************************
      Ing. Jaroslav Stribrsky
      Vysoka skola chemicko-technologicka
      Ustav pocitacove a ridici techniky
      Technicka 1905, 166 28 Praha 6, CZ
      E-mail: Jaroslav.Stribrsky(at)vscht.cz 
      WWW: http://staff.vscht.cz/~stribrsj
      Tel: +420-2-24352970

Az mi bude tak sto deset, prijde Buh a zmackne RESET ! 
******************************************************


Další informace o konferenci Linux