NFS-V3 SYN-ACK from server is answered by RST from client after idle connection timeout

Solution In Progress - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content