Zlobivy linuxovy router, ktery nepinka

Martin Pustka Martin.Pustka na vsb.cz
Úterý Září 5 08:49:27 CEST 2000


Dobry den.

Mam problem a zatim netusim jak ho vyresit ani co je jeho pricinou. Problem je
v linuxovem routeru.

Zapojeni site vypada nasledovne:


 Inet --- CISCO 80x ---[eth0]-- LinuxGW +--[ eth1 ]--- net1
                                        +--[ eth2 ]--- net2
			                +--[ eth3 ]--- net3

Vsechny pouzite IP adresy jsou verejne. Nic se nemaskuje. MTU je vsude
nastaveno na 1500. Na eth2 jsou bezdraty.

Firewalling je nastaven, nicmene v dobe, kdy jsem se zabyval timto problemem,
tak byl pro jistotu vyrazen. Neni tam ani CBQ ani jiny shaping. Routy jsou
jednoduche (odpovida situaci) a staticke. Sitovky jsou stejneho typu. Pouzity
jsou staticke ARP tabulky.

Distribuce: Redhat 6.2CZ
Kernel: 2.2.16

V cem je problem (popisu priznaky - kdo to precte vsechno :)?):

1) Kdyz z LinuxGW pinkam na kterykoliv system v sitich net1-net3, tak
nedostavam odpoved. Kdyz pinkam do Internetu, tak je to v poradku. Kdyz
sleduji ICMP pakety (logovani pres IPchains), tak cilovy system vzdy posle
odpoved. 

Jeste vypis z IPtraf: 

ICMP echo request (84 bytes) from x.x.x.33 to x.x.x.39 on eth2
ICMP echo reply (84 bytes) from x.x.x.39 to x.x.x.33 on eth2

A pro jistotu vypis z IPchains:

kernel: Packet log: output ACCEPT eth2 PROTO=1 x.x.x.33:8 x.x.x.38:0 L=84 S=0x00 I=24130 F=0x0000 T=64 (#1) 
kernel: Packet log: input ACCEPT eth2 PROTO=1 x.x.x.38:0 x.x.x.33:0 L=84 S=0x00 I=8301 F=0x0000 T=64 (#1) 

Nicmene ping to nezaznamena.

2) Kdyz z LinuxGW pinkam na vlastni rozhrani, tak nedostavam odpoved (a to mi
pripada velmi divne). Jen z eth0 vzdy odpoved prijde naprosto bez problemu.

3) Zajimavy je fakt, ze obcas po tom pingu dostanu jednu odpoved a nic
vic: 

[root na linux /root]# ping -b x.x.x.32
WARNING: pinging broadcast address
PING x.x.x.32 (x.x.x.32) from x.x.x.33 : 56(84) bytes of data.
64 bytes from x.x.x.33: icmp_seq=0 ttl=255 time=0.4 ms
[vic nic]

Toto byla odpoved jen z rozhrani linuxu.

Nasleduje dalsi ping z nej nedostanu zadnou odpoved.

4) Situace je uplne sama i pri traceroute.

5) Veskere dalsi protokoly jedou bez problemu (aspon se to tak jevi).

6) Ping i traceroute z vnejsich systemu jedou bez problemu at uz na
vlastni rozhrani linuxu nebo na systemy v siti. Ze systemu v sitich je
mozne taky pinkat. 

7) Routovani chodi take bez problemu.

8) Situace se projevila po zmene MTU na eth2. Do te doby tam byla velmi nizka
hodnota (500), coz se projevovalo problemy - nejcasteji u HTTP. Po zmene se
problemy vytratily, nicmene se objevily tyto. Kdyz jsem zkusil nastavit MTU
zase na 500, tak to problemy s ICMP nevyresilo.

9) Nemyslim, ze to ma vliv, ale uvedu to: majitel systemu ma neustale pustene
tri instance IPtrafu, ktere prepinaji karty do promiskuintnich modu. Zkouska:
po ukonceni iptrafu (a karty skoncily s promiskuitnim modem) - nepomohlo.

10) Zkousel jsem vymenit ping na LinuxGW (nekde jsem si vzpomel, ze snad verze
pingu byla nejaka chybova), nicmene ani to nepomohlo.

11) Ha! Ted jsem tu mel zapomenuty ping, jehoz vysledek je zajimavy:

# ping x.x.x.38
PING x.x.x.38 (x.x.x.38) from x.x.x.33 : 56(84) bytes of data.
64 bytes from x.x.x.38: icmp_seq=0 ttl=64 time=13.9 ms
64 bytes from x.x.x.38: icmp_seq=1 ttl=64 time=13.7 ms
64 bytes from x.x.x.38: icmp_seq=2 ttl=64 time=74001.3 ms
64 bytes from x.x.x.38: icmp_seq=3 ttl=64 time=148001.3 ms
(a odpovedi uz chodily driv...)

Nema nekdo nejakou ideu v cem muze byt problem, popr. jak ho resit? 

Predem diky.

Martin Pustka




Další informace o konferenci Linux