← Back to team overview

sslug-teknik team mailing list archive

iptables problem (FIN når ikke altid igennem)

 

Jeg har det problem med linux-2.4.0-test3 + iptables at den
ikke altid tillader at mine forbindelser bliver afsluttet.

Connections hænger fordi den sidste FIN ikke får lov at
komme ind.

netstat -na på klientmaskinen, 130.226.0.110 siger bl.a.:
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        1      0 130.226.0.110:4265      130.228.2.8:80          CLOSE_WAIT  
tcp        1      0 130.226.0.110:4264      130.228.2.8:80          CLOSE_WAIT  
tcp        1      0 130.226.0.110:4263      130.228.2.8:80          CLOSE_WAIT  
tcp        1      0 130.226.0.110:4262      130.228.2.8:80          CLOSE_WAIT  

Den venter på noget, for Recv-Q=1 og State=CLOSE_WAIT.

Firewall loggen viser at 130.228.2.8 retransmitterer en FIN for
at få afsluttet forbindelsen. Men den bliver afvist hver gang,
så forbindelsen ikke kan afsluttes:

Aug 24 14:26:37 jailbird kernel: IN=eth0 OUT=eth1 SRC=130.228.2.8 DST=130.226.0.110 LEN=52 TOS=0x00 PREC=0x00 TTL=58 ID=40561 DF PROTO=TCP SPT=80 DPT=4263 WINDOW=31856 RES=0x00 ACK FIN URGP=0  
Aug 24 14:28:37 jailbird kernel: IN=eth0 OUT=eth1 SRC=130.228.2.8 DST=130.226.0.110 LEN=52 TOS=0x00 PREC=0x00 TTL=58 ID=40564 DF PROTO=TCP SPT=80 DPT=4263 WINDOW=31856 RES=0x00 ACK FIN URGP=0  
Aug 24 14:30:37 jailbird kernel: IN=eth0 OUT=eth1 SRC=130.228.2.8 DST=130.226.0.110 LEN=52 TOS=0x00 PREC=0x00 TTL=58 ID=40566 DF PROTO=TCP SPT=80 DPT=4263 WINDOW=31856 RES=0x00 ACK FIN URGP=0  
Aug 24 14:32:37 jailbird kernel: IN=eth0 OUT=eth1 SRC=130.228.2.8 DST=130.226.0.110 LEN=52 TOS=0x00 PREC=0x00 TTL=58 ID=40568 DF PROTO=TCP SPT=80 DPT=4263 WINDOW=31856 RES=0x00 ACK FIN URGP=0  

Øv.
Hvad gør man ved det?

Linux plejer at stoppe retransmissionerne efter 20 minutter. Men andre
unix'er kan være meget længere om det.

-- 
torben fjerdingstad


Follow ups