Nahodile vypadky SNATovani behem spojeni (was: Re: Problem nekterych lokaci se stahovanim obrazku z webu)

Vladimir Macek macek na sandbox.cz
Pondělí Duben 26 00:31:34 CEST 2010


On 25.4.2010 23:44, Pavel Kankovsky wrote:
> On Sun, 25 Apr 2010, Vladimir Macek wrote:
>
>> Wireshark jsem na to pustil, ale protože jsem laik, nic tam
>> nevidím.
> Taky tam nic nevidím.
>
>> Tcpdump na vnějším rozhraní neukazuje žádný ICMP provoz když se to
>> stane. Takže tím to ovlivněno není.
>
> Hm. A co ten ping?

Nedobře jsem vyjádřil: Neukazuje žádný ICMP provoz, když se to stane a
sleduju zrovna tu anomálii pro TCP spojení.


>> K odstřelení z conntracku podle mě nedojde, protože v případě TCP
>> spojení dojde k jednomu výpadku natování a zas se jede v
>> předchozím spojení. Takže záznam tam pořád bude.
>
> Tím bych si nebyl tak jistý. Conntrackový záznam mohly oživit
> acknowledgementy z klienta (i když samozřejmě záleží na nastavení
> iptables, zda to dovolí). Zkuste to zkontrolovat. Nebo ještě lépe
> monitorovat v reálném čase pomocí conntrack -E.

Zkusím.

Nicméně další zjištění, jak se v tom dloubu:

Po zapnutí logování invalid packetů (nenašel jsem pořádnou dokumentaci,
tohle jsem vygooglil):
echo 255 > /proc/sys/net/ipv4/netfilter/ip_conntrack_log_invalid

Se v logu začínají objevovat tyto zprávy právě ve chvílích, kdy na
vnější rozhraní odchází neodNATovaný paket:

(Pro TCP.) nf_ct_tcp: bad TCP checksum IN= OUT= SRC=192.168.100.2
DST=nejaky-klient LEN=1358 TOS=0x00 PREC=0x00 TTL=63 ID=4833 DF
PROTO=TCP SPT=65501 DPT=18818 SEQ=1151179661 ACK=2217077533 WINDOW=108
RES=0x00 ACK URGP=0

(Pro ICMP.) nf_ct_icmp: bad HW ICMP checksum IN= OUT= SRC=192.168.100.2
DST=doma LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=50120 PROTO=ICMP TYPE=0
CODE=0 ID=3568 SEQ=5

A "doma" toto reply pak samozřejmě nevidím.

Zkoušel jsem dál (i když přesnou dokumentaci ani této volby jsem zatím
nenašel):

echo 0 > /proc/sys/net/netfilter/nf_conntrack_checksum

Změna! Od té chvíle se zřejmě SNATuje vše: tcpdump na vnějším rozhraní
přestává vypisovat odchozí pakety se "zapomenutou" adresou 192.168.
Nicméně ping replies domů stále vypadávájí.
Hypotéza: Něco na cestě v těch paketech stále rozpoznává jakousi závadu
a zahazuje je.

Zeptám se klienta z Milevska, jestli pořád nemůže stahovat.

Každý nápad se mi ale stále hodí.

-- 
\//\/\ : Vladimir Macek : http://macek.sandbox.cz : +420 608 978 164



Další informace o konferenci Linux