Score:0

Weird NFS mount client behaviour

be flag

I'm trying to debug why I'm unable to mount an NFS share on a server from a linux client. After much testing around NFS server and being able to mount it locally in the same machine I've started trying to see if it is a networking problem and what I am seeing has me a bit baffled. There is no firewall running on the server and I have a bunch of other services (HTTP/S, DLNA, Mosquitto...) running flawlessly both from my internal network and from the internet in the same server. I have made a tcptraceroute from the client to the server on port 2049 and the server answers properly. I have even tried a pure telnet from client to server on port 2049 while listening with tshark at both ends and I see the proper TCP SYN, SYN,ACK sequence being established at both ends, but when I try to mount the NFS shares from the client I see the TCP SYN coming out the client machine and nothing coming in on tshark on the server machine. It is like the TCP SYN packet never arrives to the server! This is what I see on the client (.3) tshark window:

1 0.000000000  192.168.1.3 → 192.168.1.2  TCP 74 758 → 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121012438 TSecr=0 WS=128
2 1.007908102  192.168.1.3 → 192.168.1.2  TCP 74 [TCP Retransmission] 758 → 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121013446 TSecr=0 WS=128
3 3.024014290  192.168.1.3 → 192.168.1.2  TCP 74 [TCP Retransmission] 758 → 2049 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2121015462 TSecr=0 WS=128

and nothing showing on the server (.2), while a pure tcptraceroute on the client shows:

tcptraceroute 192.168.1.2 2049
Selected device enx9cebe8fc1358, address 192.168.1.3, port 47199 for outgoing packets
Tracing the path to 192.168.1.2 on TCP port 2049 (nfs), 30 hops max
 1  192.168.1.2 [open]  0.501 ms  0.441 ms  0.493 ms

Tshark output:

1 0.000000000  192.168.1.3 → 192.168.1.2  TCP 54 57737 → 2049 [SYN] Seq=0 Win=0 Len=0
2 0.000455085  192.168.1.2 → 192.168.1.3  TCP 60 2049 → 57737 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
3 0.000495873  192.168.1.3 → 192.168.1.2  TCP 54 57737 → 2049 [RST] Seq=1 Win=0 Len=0
4 0.006264763  192.168.1.3 → 192.168.1.2  TCP 54 [TCP Retransmission] 57737 → 2049 [SYN] Seq=0 Win=0 Len=0
5 0.006690795  192.168.1.2 → 192.168.1.3  TCP 60 [TCP Previous segment not captured] [TCP Port numbers reused] 2049 → 57737 [SYN, ACK] Seq=97837 Ack=1 Win=64240 Len=0 MSS=1460
6 0.006737449  192.168.1.3 → 192.168.1.2  TCP 54 57737 → 2049 [RST] Seq=1 Win=0 Len=0
7 0.022031295  192.168.1.3 → 192.168.1.2  TCP 54 [TCP Retransmission] 57737 → 2049 [SYN] Seq=0 Win=0 Len=0
8 0.022406482  192.168.1.2 → 192.168.1.3  TCP 60 [TCP Previous segment not captured] [TCP Port numbers reused] 2049 → 57737 [SYN, ACK] Seq=343671 Ack=1 Win=64240 Len=0 MSS=1460
9 0.022447549  192.168.1.3 → 192.168.1.2  TCP 54 57737 → 2049 [RST] Seq=1 Win=0 Len=0

I'm out of ideas here, so any suggestions are welcomed. I don't think it is the NFS server since tshark does not show any packet arriving to the server on port 2049 that I can see on any interface... Could if be that the server kernel discards the packets before being shown in tshark for some reason? Does the NFS-kernel-server discard the packets before allowing tshark to see them? Could that be possible?

Well, thanks for all the wild possible ideas! /Nacho

Ignacio Más avatar
be flag
I have managed to isolate the problem. Yes, it was networking related and due to the two interfaces on the same subnet. I put down the second interface of rebooted my switch and now I've mounted the NFS share without problem. Beats me though why telnet to the port worked and the other services, but in any case when I just have the bridged (server + KVM VM) interfaces up in one single physical eth port it works. I guess I have to refresh my knowledge of L2 protocols. :-) there was clearly a L2 loop messing up the NFs protocol.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.