NFS-V3 SYN-ACK from server is answered by RST from client after idle connection timeout
Issue
An NFS-V3 client of RHEL-7 connecting to NFS server of Microsoft Windows Server 2012 R2.
After disconnection of 5 minutes idle timeout of NFS, when the client begins TCP
reconnection with the server, the client always replies RST against SYN-ACK from the server.
Three seconds later, the client retries and succeeds TCP connection.
xxx.xxx.xxx.xxx rhel-7 nfs client
yyy.yyy.yyy.yyy windows nfs server
Source Destination Protocol Length Info
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy NFS 202 V3 READDIRPLUS Call (Reply In 336)[Packet size limited during capture]
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx NFS 554 V3 READDIRPLUS Reply (Call In 335)
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 991 → 2049 [ACK] Seq=789 Ack=1265 Win=33536 Len=0 TSval=2912146104 TSecr=106490
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 [TCP Keep-Alive] 991 → 2049 [ACK] Seq=788 Ack=1265 Win=33536 Len=0 TSval=2912206064 TSecr=106490
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 66 [TCP Keep-Alive ACK] 2049 → 991 [ACK] Seq=1265 Ack=789 Win=2107392 Len=0 TSval=166492 TSecr=2912146104
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 [TCP Keep-Alive] 991 → 2049 [ACK] Seq=788 Ack=1265 Win=33536 Len=0 TSval=2912266544 TSecr=166492
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 66 [TCP Keep-Alive ACK] 2049 → 991 [ACK] Seq=1265 Ack=789 Win=2107392 Len=0 TSval=226972 TSecr=2912146104
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 [TCP Keep-Alive] 991 → 2049 [ACK] Seq=788 Ack=1265 Win=33536 Len=0 TSval=2912327984 TSecr=226972
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 66 [TCP Keep-Alive ACK] 2049 → 991 [ACK] Seq=1265 Ack=789 Win=2107392 Len=0 TSval=288412 TSecr=2912146104
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 [TCP Keep-Alive] 991 → 2049 [ACK] Seq=788 Ack=1265 Win=33536 Len=0 TSval=2912389422 TSecr=288412
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 66 [TCP Keep-Alive ACK] 2049 → 991 [ACK] Seq=1265 Ack=789 Win=2107392 Len=0 TSval=349850 TSecr=2912146104
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 [TCP Keep-Alive] 991 → 2049 [ACK] Seq=788 Ack=1265 Win=33536 Len=0 TSval=2912450862 TSecr=349850
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 66 [TCP Keep-Alive ACK] 2049 → 991 [ACK] Seq=1265 Ack=789 Win=2107392 Len=0 TSval=411290 TSecr=2912146104
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 991 → 2049 [FIN, ACK] Seq=789 Ack=1265 Win=33536 Len=0 TSval=2912467246 TSecr=411290
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 54 2049 → 991 [RST, ACK] Seq=1265 Ack=790 Win=0 Len=0
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 74 [TCP Port numbers reused] 991 → 2049 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=2912470313 TSecr=0 WS=128
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 74 2049 → 991 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=430741 TSecr=2912470313
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 54 991 → 2049 [RST] Seq=1 Win=0 Len=0
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 74 [TCP Port numbers reused] 991 → 2049 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=2912473326 TSecr=0 WS=128
yyy.yyy.yyy.yyy xxx.xxx.xxx.xxx TCP 74 2049 → 991 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=433754 TSecr=2912473326
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy TCP 66 991 → 2049 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=2912473326 TSecr=433754
xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy NFS 178 V3 GETATTR Call (Reply In 6518)[Packet size limited during capture]
The reconnection causes 3 seconds delay in the client to use the share after an idle timeout.
Environment
rhel-7 kernels prior kernel-3.10.0-950.el7 and after kernel-3.10.0-982.el7
rhel-7 nfs v3 client
windows server nfs share
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.