Date: Fri, 14 Oct 2005 10:24:58 +0200 From: Nicolas KOWALSKI <Nicolas.Kowalski@imag.fr> To: freebsd-fs@freebsd.org, freebsd-net@freebsd.org Subject: FreeBSD NFS server not responding to TCP SYN packets from Linux/SunOS clients Message-ID: <Pine.LNX.4.64.0510141021290.22064@corbeau.imag.fr>
next in thread | raw e-mail | index | archive | help
Hello, This is a repost of a question I sent to freebsd-questions 10 days ago. I "crosspost" it to freebsd-fs and freebsd-net, because the question is about both... Our FreeBSD 4.10 NFS server has some problems serving files by NFS on TCP (no problem with UDP) when the Linux (2.6) or Solaris (5.9) clients shut down in an unclean manner (power failure). When the clients try to mount the shares from the server after an unclean shutdown, the mount process hang during several minutes (delay is varying), then succeeds. I used ethereal on a Linux client, just after an unclean shutdown, and it looks like the client is sending SYN packets to the 2049 port of the server, but the server does not respond to this ; the client retries a few seconds later, and the server still does not acknoledge it ; and it continues several times, until succeeding. Here is a trace ; the frames showing the problem are 33-36, when the client request a SYN to the 2049 port. No. Time Source Destination Protocol Info 16 0.001774 <client-ip> <server-ip> MOUNT V3 MNT Call (Reply In 17) 17 0.001983 <server-ip> <client-ip> MOUNT V3 MNT Reply (Call In 16) 18 0.002013 <client-ip> <server-ip> TCP 909 > 805 [ACK] Seq=105 Ack=73 Win=5840 Len=0 TSV=4294748848 TSER=1226883802 19 0.002233 <client-ip> <server-ip> TCP 911 > sunrpc [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=4294748848 TSER=0 WS=2 20 0.002418 <server-ip> <client-ip> TCP sunrpc > 911 [SYN, ACK] Seq=0 Ack=1 Win=57344 Len=0 MSS=1460 WS=0 TSV=1226883802 TSER=4294748848 21 0.002447 <client-ip> <server-ip> TCP 911 > sunrpc [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=4294748848 TSER=1226883802 22 0.002579 <client-ip> <server-ip> Portmap V2 GETPORT Call (Reply In 23) 23 0.002782 <server-ip> <client-ip> Portmap V2 GETPORT Reply (Call In 22) 24 0.002807 <client-ip> <server-ip> TCP 911 > sunrpc [ACK] Seq=61 Ack=33 Win=5840 Len=0 TSV=4294748849 TSER=1226883802 25 0.002941 <client-ip> <server-ip> TCP 911 > sunrpc [FIN, ACK] Seq=61 Ack=33 Win=5840 Len=0 TSV=4294748849 TSER=1226883802 26 0.003042 <server-ip> <client-ip> TCP sunrpc > 911 [ACK] Seq=33 Ack=62 Win=57920 Len=0 TSV=1226883803 TSER=4294748849 27 0.003057 <server-ip> <client-ip> TCP sunrpc > 911 [FIN, ACK] Seq=33 Ack=62 Win=57920 Len=0 TSV=1226883803 TSER=4294748849 28 0.003105 <client-ip> <server-ip> TCP 911 > sunrpc [ACK] Seq=62 Ack=34 Win=5840 Len=0 TSV=4294748849 TSER=1226883803 29 0.003264 <client-ip> <server-ip> TCP 909 > 805 [FIN, ACK] Seq=105 Ack=73 Win=5840 Len=0 TSV=4294748849 TSER=1226883802 30 0.003417 <server-ip> <client-ip> TCP 805 > 909 [ACK] Seq=73 Ack=106 Win=57920 Len=0 TSV=1226883803 TSER=4294748849 31 0.003433 <server-ip> <client-ip> TCP 805 > 909 [FIN, ACK] Seq=73 Ack=106 Win=57920 Len=0 TSV=1226883803 TSER=4294748849 32 0.003480 <client-ip> <server-ip> TCP 909 > 805 [ACK] Seq=106 Ack=74 Win=5840 Len=0 TSV=4294748849 TSER=1226883803 33 0.003881 <client-ip> <server-ip> TCP 798 > 2049 [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=4294748850 TSER=0 WS=2 34 3.004094 <client-ip> <server-ip> TCP 798 > 2049 [SYN] Seq=0 Ack=0 Win=23360 Len=0 MSS=1460 TSV=4294751850 TSER=0 WS=2 35 9.003506 <client-ip> <server-ip> TCP 798 > 2049 [SYN] Seq=0 Ack=0 Win=23360 Len=0 MSS=1460 TSV=4294757850 TSER=0 WS=2 36 21.001319 <client-ip> <server-ip> TCP 798 > 2049 [SYN] Seq=0 Ack=0 Win=23360 Len=0 MSS=1460 TSV=4294769850 TSER=0 WS=2 Is there something I can set on the server (sysctl variable perhaps), to make it accept the SYN packets from the clients ? As an counter-example, here is a trace when the same Linux client, after an unclean shutdown, tries to mount a previously (before the powerfailure) NFS mounted share from a SunOS 5.9 server. The SYN packet is acknowledged by the server (frames 36-37), so the client does not hang mounting the share. No. Time Source Destination Protocol Info 17 0.002257 <client-ip> <solaris-server> MOUNT V3 MNT Call (Reply In 19) 18 0.002391 <solaris-server> <client-ip> TCP 32785 > 911 [ACK] Seq=1 Ack=93 Win=49140 Len=0 TSV=613133117 TSER=4294753259 19 0.006256 <solaris-server> <client-ip> MOUNT V3 MNT Reply (Call In 17) 20 0.006280 <client-ip> <solaris-server> TCP 911 > 32785 [ACK] Seq=93 Ack=77 Win=5840 Len=0 TSV=4294753263 TSER=613133117 21 0.006514 <client-ip> <solaris-server> TCP 913 > sunrpc [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=4294753264 TSER=0 WS=2 22 0.006670 <solaris-server> <client-ip> TCP sunrpc > 913 [SYN, ACK] Seq=0 Ack=1 Win=49232 Len=0 TSV=613133117 TSER=4294753264 MSS=1460 WS=0 23 0.006700 <client-ip> <solaris-server> TCP 913 > sunrpc [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=4294753264 TSER=613133117 24 0.006838 <client-ip> <solaris-server> Portmap V2 GETPORT Call (Reply In 26) 25 0.007020 <solaris-server> <client-ip> TCP sunrpc > 913 [ACK] Seq=1 Ack=61 Win=49172 Len=0 TSV=613133117 TSER=4294753264 26 0.007452 <solaris-server> <client-ip> Portmap V2 GETPORT Reply (Call In 24) 27 0.007475 <client-ip> <solaris-server> TCP 913 > sunrpc [ACK] Seq=61 Ack=33 Win=5840 Len=0 TSV=4294753265 TSER=613133117 28 0.007598 <client-ip> <solaris-server> TCP 913 > sunrpc [FIN, ACK] Seq=61 Ack=33 Win=5840 Len=0 TSV=4294753265 TSER=613133117 29 0.007712 <client-ip> <solaris-server> TCP 911 > 32785 [FIN, ACK] Seq=93 Ack=77 Win=5840 Len=0 TSV=4294753265 TSER=613133117 30 0.007766 <solaris-server> <client-ip> TCP sunrpc > 913 [ACK] Seq=33 Ack=62 Win=49232 Len=0 TSV=613133118 TSER=4294753265 31 0.007816 <solaris-server> <client-ip> TCP sunrpc > 913 [FIN, ACK] Seq=33 Ack=62 Win=49232 Len=0 TSV=613133118 TSER=4294753265 32 0.007839 <client-ip> <solaris-server> TCP 913 > sunrpc [ACK] Seq=62 Ack=34 Win=5840 Len=0 TSV=4294753265 TSER=613133118 33 0.007893 <solaris-server> <client-ip> TCP 32785 > 911 [ACK] Seq=77 Ack=94 Win=49232 Len=0 TSV=613133118 TSER=4294753265 34 0.008012 <solaris-server> <client-ip> TCP 32785 > 911 [FIN, ACK] Seq=77 Ack=94 Win=49232 Len=0 TSV=613133118 TSER=4294753265 35 0.008145 <client-ip> <solaris-server> TCP 911 > 32785 [ACK] Seq=94 Ack=78 Win=5840 Len=0 TSV=4294753265 TSER=613133118 36 0.008553 <client-ip> <solaris-server> TCP 799 > 2049 [SYN] Seq=0 Ack=0 Win=5840 Len=0 MSS=1460 TSV=4294753266 TSER=0 WS=2 37 0.008790 <solaris-server> <client-ip> TCP 2049 > 799 [SYN, ACK] Seq=0 Ack=1 Win=49232 Len=0 TSV=613133118 TSER=4294753266 MSS=1460 WS=0 38 0.008836 <client-ip> <solaris-server> TCP 799 > 2049 [ACK] Seq=1 Ack=1 Win=5840 Len=0 TSV=4294753266 TSER=613133118 Thanks, -- Nicolas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.64.0510141021290.22064>