Portál AbcLinuxu, 12. května 2025 11:29
Zdravim,
mám Alix desku s OpenWRT a v jedné síti se mi stává podivnost, kdy mi chodí UDP pakety, ale nefunguje TCP spojení. Přesněji, funguje mi posílání UDP packetů po lokální síti i ven (za router). Například funguje ping. TCP spojení se mi daří navazovat z Alixu na lokální stroje, ale nikoli ven. Z jiných strojů mi spojení ven funguje a když desku přenesu do jiné sítě, tak odchozí spojení také fungují.
Pokusy o spojení končí na timeoutu při volání connect(2).
Co me napada je skusit, ale nevim jestli to bude k necemu dobre..
traceroute -T
NN
Nefunguje u TCP široké slovo. Úvodní SYN packet vůbec nedorazí na druhou stranu? Spojení se neustanoví? Ztrácí se (dlouhé) packety, čímž spojení efektivně zamrzá?
Osobně to vidím na velké packety a MTU Popingejte si velkými packety.
zkusit tcpdump jestli dorazi alespon neco z handshake-ku, pripadne zkusit si hrat s MTU nebo mss apod parametry.
tcpdump -vvv -f -x -X port 80
na straně odesílatele hlásí asi pokusy o spojení, když se člověk pokusí použít telnet.
Ve výpisu se to opakuje vícekrát, ale jednou myslím stačí.
10:22:41.381746 IP (tos 0x0, ttl 64, id 14621, offset 0, flags [DF], proto TCP (6), length 52) 196.164.32.77.44170 > 213.151.89.4.80: SWE, cksum 0x20d5 (correct), 1809451629:1809451629(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 4> 0x0000: 4500 0034 391e 4000 4006 ee18 c4a4 204d E..49.@.@......M 0x0010: d597 5904 ac8a 0050 6bda 0a6d 0000 0000 ..Y....Pk..m.... 0x0020: 80c2 16d0 20d5 0000 0204 05b4 0101 0402 ................ 0x0030: 0103 0304
Bohužel, tcpdump na druhé straně nic nechytne.
Tak to máte někde (možná po cestě) nějaký filtr nebo rozbitý router, který to zahazuje. Vyrábět a posílat testovací packety můžete nástrojem hping.
Opingování s větší velikostí funguje. Dokonce funguje na některé cíle i
ping -s 20000 <cíl>
Volání connect z Céčkového programu končí chybou ETIMEDOUT.
mno jo, ale ping je ICMP coz neni to stejne jako TCP?!?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.