I am using NFS client to connect to NFS cluster. I have noticed that the default behaviour when server is unavailable is to retry the TCP connections from the same source TCP port, which I have confirmed by tcpdump (many SYN packets, different seq numbers, but same source port). By default NFS uses priviledged ports (<1024), in my example port 940.

This for some reason causes issues with Azure Load Balancer (my other question). However when I mount the share with option noresvport (and export with insecure), the NFS client uses ports >1024 and and now on each reconnect attempt will be from different TCP port.

NFS client is SLES12 SP4, the same behaviour is also on Oracle Linux 7.7.

NFS server is HAE cluster based on SLES12 SP4.

Is this behaviour documented somewhere? Why it does use the same port every time by default but not when using noresvport?

1 Answer 1


We have ran across this with a L4 (f5, firewall, security device) device in the middle not having torn down the connection and it still exists in the connection table when a SYN comes from the same Source port. The client never randomizes the source port and keeps the connection table entry alive.

Typically happens when NFS server crashes and no RSTs are sent to the host. Our guys use Hard Links for everything as rooteq and wonder why they are always running into problems.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .