ifpw check-state a mnoho tcp wait

michal_sjx michal_sjx at seznam.cz
Sat Jul 21 17:22:56 CEST 2007


Ahoj,

mam tcpdump. Nekdy kolem 16:40 jsem restartoval apache, abych pripadne
odmazal nejake jeho stare spojeni. V apache server-status neni zadne
"K", ktere by naznacovalo ustalene spojeni.

Porty v prikladu odpovidaji otevrenym portum v netstat. Odstranil jsem z
ipfw check-state a limit. Packety prestali chodit.
Pak jsem ho po 8mi minutach nahodil zpet a zacali mizet z netstat
finwait2. Pritom zadne packety v tcpdump nebyli.

Nastavil jsem pak i sysctl net.inet.ip.fw.dyn_keepalive=0 a uvidim
jestli to na to bude mit vliv.


dump pri check-state a limit:
16:36:56.457045 IP server.http > client.60321: . ack 1 win 65535
16:36:56.457061 IP server.http > client.60567: . ack 1 win 65535
16:36:56.457075 IP server.http > client.60503: . ack 1 win 65535
16:39:01.437872 IP server.http > client.63621: . ack 1 win 0
16:39:01.437947 IP server.http > client.63621: . ack 1 win 65535
16:39:46.431055 IP server.http > client.59437: . ack 1 win 0
16:39:46.431163 IP server.http > client.59437: . ack 1 win 65535
16:41:31.415023 IP server.http > client.62959: . ack 1 win 0
16:41:31.415157 IP server.http > client.62959: . ack 1 win 65535
16:41:41.413490 IP server.http > client.65251: . ack 1 win 0
16:41:41.413519 IP server.http > client.60321: . ack 1 win 0
16:41:41.413537 IP server.http > client.60567: . ack 1 win 0
16:41:41.413552 IP server.http > client.60503: . ack 1 win 0
16:41:41.413612 IP server.http > client.65251: . ack 1 win 65535
16:41:41.413634 IP server.http > client.60321: . ack 1 win 65535
16:41:41.413651 IP server.http > client.60567: . ack 1 win 65535
16:41:41.413665 IP server.http > client.60503: . ack 1 win 65535

Dan Lukes wrote:
> michal_sjx napsal/wrote, On 07/19/07 10:57:
>> Zatim mam dojem, ze tcp zustane ve fin_wait_2 protoze v nastaveni Apache
>> mam povolene KeepAlive a v ipfw ho mam taky
> 
>> net.inet.ip.fw.dyn_keepalive=1.
> 
>> Takze nabyvam dojmu, ze si tihle dve "keep-alive" spolu obcas vymeneji
>> packet, ktery zajisti, ze spojeni zustane ve stavu fin_wait_2.
> 
> 	Jadro by ve fin-wait2 stavu zadne keep-alive pakety posilat snad 
> nemelo. Spis nez sitovy stack podezrivam z pripadneho nekorektniho 
> chovani spis ipfw.
> 
> 	Celkove mi ale tahle hypoteza zni podezrele. Nakonec, je ale snadno 
> overitelna - pro libovolne vybrane spojeni v dotcenem stavu lze preci 
> snadni spustit tcpdump a podivat se, jestli si nejake pakety vymenuji ...
> 
> 	Pokud ne, bude jasne, ze mechanismus vzniku je nejaky zcela jiny.
> 
> 						Dan
> 
> 


-- 
 Hi! I'm a .signature virus! Copy me into your ~/.signature to help me
spread!



More information about the Users-l mailing list