FreeBSD NFS server not responding to TCP SYN packets from
Linux/SunOS clients
Nicolas KOWALSKI
Nicolas.Kowalski at imag.fr
Fri Oct 14 01:25:10 PDT 2005
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
More information about the freebsd-fs
mailing list