Ubuntu – Unable to NFS mount from Ubuntu 14.04.1 LTS against QNAP NAS

14.04mountnetworkingnfstimeout

Note, this is a cross posting question in the QNAP NAS community here: http://forum.qnap.com/viewtopic.php?f=35&t=96526&p=427018#p427018

Any comments and suggestions, as well as pointers to relevant information pieces are very appreciated.


I cannot NFS mount from my NFS client running Ubuntu 14.04.1 (LTS) against my NFS server (QNAP NAS). My environment is:

  • NFS Server: QNAP TS-669 Pro running firmware 4.1.0 (dated: 2014/06/12)
  • NFS Client: ECS LIVA (a small barebone PC) running Ubuntu 14.04.1 LTS Desktop.
  • The two systems are connected via 1000Base-T Ethernet and IP reacheable.
  • Name resolution is done by local registry (/etc/hosts) and getent hosts host-name command returns the correct and consistent IP address on both nodes.
  • NFS service is enabled on the NFS server and NO_LIMIT access right is given on the specific share folder, namely "/nfs", on the "NFS host access" tab of the "Shared Folders" configuration app: in fact, I can confirm it is world NFS exported via issueing the "exportfs -rva" command on NAS.
  • Because Ubuntu (the NFS client) does not install NFS client packages by default, I explicitly installed the nfs-common package as described in here: Setting Up NFS HOW-TO ( https://help.ubuntu.com/community/SettingUpNFSHowTo#NFS_Client ); The rpcbind package seems to be installed by default.

On the NFS client, If I run the command "mount -t nfs nas:/nfs /mnt", it gives the output "mount.nfs: Connection timed out" after five or 10 minutes later. The same result is returned even if I specify NFS version 3 protocol with -overs=3 option while trying to NFS mount.
Also the command "showmount -e" lists up the exported NFS shared folder (directory) names eventually, but it also takes five or 10minutes to complete.

On the NFS server, the "exportfs -rva" command returns the following warning message, but I do believe the message does not relate with the problem (I am accessing the NAS via SSH in this code exmple):

[~] # exportfs -rva
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/share/MD0_DATA/Public".
Assuming default behaviour ('no_subtree_check').   NOTE: this default has changed since nfs-utils version 1.0.x

exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "*:/share/MD0_DATA/nfs".
Assuming default behaviour ('no_subtree_check').   NOTE: this default has changed since nfs-utils version 1.0.x

exporting *:/share/MD0_DATA/nfs exporting *:/share/MD0_DATA/Public

On the NFS client, the mount command takes long time (more than five minutes) to complete. I specified the vers=3 option, because I understand QNAP does not support NFS V4 by default and NFS V3 suffices my requirement. It does not matter whether or not specifying the tcp and/or nolock options (same behavior).

root@livak5:~# mount -t nfs -vvv -overs=3,tcp,nolock nas:/share/MD0_DATA/nfs /mnt
mount: fstab path: "/etc/fstab"
mount: mtab path:  "/etc/mtab"
mount: lock path:  "/etc/mtab~"
mount: temp path:  "/etc/mtab.tmp"
mount: UID:        0
mount: eUID:       0
mount: spec:  "nas:/share/MD0_DATA/nfs"
mount: node:  "/mnt"
mount: types: "nfs"
mount: opts:  "vers=3,tcp,nolock"
mount: external mount: argv[0] = "/sbin/mount.nfs"
mount: external mount: argv[1] = "nas:/share/MD0_DATA/nfs"
mount: external mount: argv[2] = "/mnt"
mount: external mount: argv[3] = "-v"
mount: external mount: argv[4] = "-o"
mount: external mount: argv[5] = "rw,vers=3,tcp,nolock"
mount.nfs: timeout set for Sun Aug 24 11:24:44 2014
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: trying text-based options 'vers=3,tcp,nolock,addr=192.168.11.50'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=6
mount.nfs: trying 192.168.11.50 prog 100005 vers 3 prot TCP port 41687
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out

On the NFS client, portmapper seeems working just fine against NFS version 2, 3, and 4:

root@livak5:~# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  57148  status
    100024    1   tcp  52831  status

On the NFS server, I tried to check if the pormapper is runing on it from the NFS client, since it does not have the rpcinfo command installed:

root@livak5:~# nc -zv nas 111
Connection to nas 111 port [tcp/sunrpc] succeeded!
root@livak5:~# rpcinfo -s nas
   program version(s) netid(s)                         service     owner
    100000  2,3,4     local,udp,tcp                    portmapper  superuser
    100011  2,1       tcp,udp                          rquotad     superuser
    100005  3,2,1     tcp,udp                          mountd      superuser
    100003  3,2       udp,tcp                          nfs         superuser
    100227  3,2       udp,tcp                          -           superuser
    100021  4,3,1     tcp,udp                          nlockmgr    superuser
    100024  1         tcp,udp                          status      superuser

The later command (rpcinfo) takes long time (more than five minutes) to complete which replicates the problem root cause, I believe.
Please note that on both the TCP ports, 2049 and 41687, appropriate daemon processes are listening on NAS. I can confirm this fact since the nc command returns instantly on the NFS client against NAS as shown in the following output:

root@livak5:~# nc -zv nas 2049
Connection to nas 2049 port [tcp/nfs] succeeded!
root@livak5:~# nc -zv nas 41687
Connection to nas 41687 port [tcp/*] succeeded!

Strangely enough, I can NFS version 3 mount on NAS itself as shown in the following output (I am accessing the NAS via SSH in this code exmple):

[~] # mkdir /mnt2
[~] # mount -overs=3 nas:/share/MD0_DATA/public /mnt2
[~] # df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0               154691    137854     16837  89% /
devtmpfs               1531580         4   1531576   0% /dev
tmpfs                    65536       160     65376   0% /tmp
/dev/md9                521684    126312    395372  24% /mnt/HDA_ROOT
/dev/md0             11622485880 410664920 11211296672   4% /share/MD0_DATA
/dev/md13               379888    259868    120020  68% /mnt/ext
tmpfs                    32768         0     32768   0% /.eaccelerator.tmp
nas:/share/MD0_DATA/public/11622485888 411189216 11211296672   4% /mnt2

Although it looks as if I have some sort of blocked ports problem on NFS Client, but it seems Ubuntu 14.04.1 does not enable ufw (uncomplicated firewall, it is actually a front-end to iptables) by default as shown in the following wiki document: Uncomplicated Firewall (somehow, I cannot put the wiki URL in here).
I can confirm nothing blocked on it by running command on the NFS client:

root@livak5:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Best Answer

It turns out the problem root cause is the firmware bug of Ethernet Switch I am using (NetGEAR GS116Ev2). After updating the firmware to 2.0.1.17 from 2.0.0.23, the problem is gone.

Related Question