# NFS stop working unexpectedly



## sk8harddiefast (Feb 28, 2012)

*uname -a*

```
FreeBSD BSD|ZFS 9.0-RELEASE FreeBSD 9.0-RELEASE #4: Sat Feb 25 21:56:27 EET 2012     root@BSD|ZFS:/usr/obj/usr/src/sys/MYKERNEL  amd64
```
*/etc/rc.conf*

```
nfs_client_enable="YES"
hostname="BSD|ZFS"
defaultrouter="192.168.1.1"
ifconfig_re0="up"
ifconfig_msk0="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto lacp laggport re0 laggport msk0 192.168.1.5/24"
devfs_system_ruleset="localrules"
```
*/etc/resolv.conf*

```
# Generated by resolvconf
nameserver 192.168.1.1
```
192.168.1.4 is FreeNAS server

```
ping 192.168.1.4
PING 192.168.1.4 (192.168.1.4): 56 data bytes
64 bytes from 192.168.1.4: icmp_seq=0 ttl=64 time=0.910 ms
64 bytes from 192.168.1.4: icmp_seq=1 ttl=64 time=0.308 ms
64 bytes from 192.168.1.4: icmp_seq=2 ttl=64 time=0.371 ms
64 bytes from 192.168.1.4: icmp_seq=3 ttl=64 time=0.426 ms
^C
--- 192.168.1.4 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.308/0.504/0.910/0.238 ms
```
*/etc/fstab*

```
192.168.1.4:/mnt/inbox-raidz/datavault          /mnt/Mirror             nfs             rw                              0               0
192.168.1.4:/mnt/inbox-500                            /mnt/500                  nfs             rw                              0               0
192.168.1.4:/mnt/raidon-stripe/dataspeed        /mnt/Stripe             nfs          rw                              0               0
proc                                                       /proc                   procfs                  rw                              0               0
/dev/cd0                                               /cdrom                  cd9660                  ro,noauto                       0               0
```
From my laptop (Windows) I have access on FreeNAS hdd's
From my desktop I get this error on boot:

```
rpcprog_mnt rpc timed out
```
Any ideas?


----------



## SirDice (Feb 28, 2012)

Firewall on the NAS?


----------



## sk8harddiefast (Feb 28, 2012)

Nope. I try 3 -4 days now to understand why is not working. It should be.
Also on my NAS
*freenas# more /etc/exports *

```
/mnt/inbox-500 -alldirs -maproot=root:wheel
/mnt/raidon-stripe/dataspeed -alldirs -maproot=root:wheel
/mnt/inbox-raidz/datavault -alldirs -maproot=root:wheel
```
I give the right path for hdd's on my */etc/fstab*


----------



## SirDice (Feb 28, 2012)

Check if everything is registered correctly with RPC.

`# rpcinfo 192.168.1.4`
`# showmount -e 192.168.1.4`


----------



## sk8harddiefast (Feb 28, 2012)

*rpcinfo 192.168.1.4*

```
program version netid     address                service    owner
    100000    4    tcp       0.0.0.0.0.111          rpcbind    superuser
    100000    3    tcp       0.0.0.0.0.111          rpcbind    superuser
    100000    2    tcp       0.0.0.0.0.111          rpcbind    superuser
    100000    4    udp       0.0.0.0.0.111          rpcbind    superuser
    100000    3    udp       0.0.0.0.0.111          rpcbind    superuser
    100000    2    udp       0.0.0.0.0.111          rpcbind    superuser
    100000    4    tcp6      ::.0.111               rpcbind    superuser
    100000    3    tcp6      ::.0.111               rpcbind    superuser
    100000    4    udp6      ::.0.111               rpcbind    superuser
    100000    3    udp6      ::.0.111               rpcbind    superuser
    100000    4    local     /var/run/rpcbind.sock  rpcbind    superuser
    100000    3    local     /var/run/rpcbind.sock  rpcbind    superuser
    100000    2    local     /var/run/rpcbind.sock  rpcbind    superuser
    100005    1    udp6      ::.3.140               mountd     superuser
    100005    3    udp6      ::.3.140               mountd     superuser
    100005    1    tcp6      ::.3.140               mountd     superuser
    100005    3    tcp6      ::.3.140               mountd     superuser
    100005    1    udp       0.0.0.0.3.140          mountd     superuser
    100005    3    udp       0.0.0.0.3.140          mountd     superuser
    100005    1    tcp       0.0.0.0.3.140          mountd     superuser
    100005    3    tcp       0.0.0.0.3.140          mountd     superuser
    100003    2    udp       0.0.0.0.8.1            nfs        superuser
    100003    3    udp       0.0.0.0.8.1            nfs        superuser
    100003    2    udp6      ::.8.1                 nfs        superuser
    100003    3    udp6      ::.8.1                 nfs        superuser
    100003    2    tcp       0.0.0.0.8.1            nfs        superuser
    100003    3    tcp       0.0.0.0.8.1            nfs        superuser
    100003    2    tcp6      ::.8.1                 nfs        superuser
    100003    3    tcp6      ::.8.1                 nfs        superuser
    100024    1    udp6      ::.2.123               status     superuser
    100024    1    tcp6      ::.2.123               status     superuser
    100024    1    udp       0.0.0.0.2.123          status     superuser
    100024    1    tcp       0.0.0.0.2.123          status     superuser
    100021    0    udp6      ::.2.97                nlockmgr   superuser
    100021    0    tcp6      ::.2.178               nlockmgr   superuser
    100021    0    udp       0.0.0.0.3.200          nlockmgr   superuser
    100021    0    tcp       0.0.0.0.3.33           nlockmgr   superuser
    100021    1    udp6      ::.2.97                nlockmgr   superuser
    100021    1    tcp6      ::.2.178               nlockmgr   superuser
    100021    1    udp       0.0.0.0.3.200          nlockmgr   superuser
    100021    1    tcp       0.0.0.0.3.33           nlockmgr   superuser
    100021    3    udp6      ::.2.97                nlockmgr   superuser
    100021    3    tcp6      ::.2.178               nlockmgr   superuser
    100021    3    udp       0.0.0.0.3.200          nlockmgr   superuser
    100021    3    tcp       0.0.0.0.3.33           nlockmgr   superuser
    100021    4    udp6      ::.2.97                nlockmgr   superuser
    100021    4    tcp6      ::.2.178               nlockmgr   superuser
    100021    4    udp       0.0.0.0.3.200          nlockmgr   superuser
    100021    4    tcp       0.0.0.0.3.33           nlockmgr   superuser
```
*showmount -e 192.168.1.4*

```
Exports list on 192.168.1.4:
/mnt/raidon-stripe/dataspeed       Everyone
/mnt/inbox-raidz/datavault         Everyone
/mnt/inbox-500                     Everyone
```


----------



## SirDice (Feb 28, 2012)

What happens if you try to mount them by hand?


----------



## sk8harddiefast (Feb 28, 2012)

*sudo mount -t nfs 192.168.1.4:/mnt/inbox-raidz/datavault /mnt/Mirror/*

```
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
```


----------



## SirDice (Feb 28, 2012)

sk8harddiefast said:
			
		

> *sudo mount -t nfs 192.168.1.4:/mnt/inbox-raidz/datavault /mnt/Mirror/*
> 
> ```
> [tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
> ```



Is it mounted now? It seems to have a problem using TCP but it should mount using UDP as a fallback.


----------



## joel@ (Feb 28, 2012)

Check that reverse DNS lookups work.


----------



## sk8harddiefast (Feb 28, 2012)

No. Is not mounted

```
sudo mount -t nfs 192.168.1.4:/mnt/inbox-raidz/datavault /mnt/Mirror/
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
[tcp] 192.168.1.4:/mnt/inbox-raidz/datavault: RPCPROG_MNT: RPC: Timed out
```


----------



## sk8harddiefast (Feb 28, 2012)

> Check that reverse DNS lookups work.


How to do that? What I should do?


----------



## cuq (Mar 2, 2012)

Hi, I had this symptoms once and it was the /etc/hosts.allow in the server.

cheers
cuq


----------



## sk8harddiefast (Mar 2, 2012)

My */etc/hosts.allow* on server

```
# hosts.allow access control file for "tcp wrapped" applications.
# $FreeBSD: src/etc/hosts.allow,v 1.23.10.1.6.1 2010/12/21 17:09:25 kensmith Exp $
#
# NOTE: The hosts.deny file is deprecated.
#       Place both 'allow' and 'deny' rules in the hosts.allow file.
#       See hosts_options(5) for the format of this file.
#       hosts_access(5) no longer fully applies.

#        _____                                      _          _
#       | ____| __  __   __ _   _ __ ___    _ __   | |   ___  | |
#       |  _|   \ \/ /  / _` | | '_ ` _ \  | '_ \  | |  / _ \ | |
#       | |___   >  <  | (_| | | | | | | | | |_) | | | |  __/ |_|
#       |_____| /_/\_\  \__,_| |_| |_| |_| | .__/  |_|  \___| (_)
#                                          |_|
# !!! This is an example! You will need to modify it for your specific
# !!! requirements!


# Start by allowing everything (this prevents the rest of the file
# from working, so remove it when you need protection).
# The rules here work on a "First match wins" basis.
ALL : ALL : allow

# Wrapping sshd(8) is not normally a good idea, but if you
# need to do it, here's how
#sshd : .evil.cracker.example.com : deny

# Protect against simple DNS spoofing attacks by checking that the
# forward and reverse records for the remote host match. If a mismatch
# occurs, access is denied, and any positive ident response within
# 20 seconds is logged. No protection is afforded against DNS poisoning,
# IP spoofing or more complicated attacks. Hosts with no reverse DNS
# pass this rule.
ALL : PARANOID : RFC931 20 : deny

# Allow anything from localhost.  Note that an IP address (not a host
# name) *MUST* be specified for rpcbind(8).
ALL : localhost 127.0.0.1 : allow
# Comment out next line if you build libwrap without IPv6 support.
ALL : [::1] : allow
#ALL : my.machine.example.com 192.0.2.35 : allow

# To use IPv6 addresses you must enclose them in []'s
#ALL : [fe80::%fxp0]/10 : allow
#ALL : [fe80::]/10 : deny
#ALL : [2001:db8:2:1:2:3:4:3fe1] : deny
#ALL : [2001:db8:2:1::]/64 : allow

# Sendmail can help protect you against spammers and relay-rapers
sendmail : localhost : allow
#sendmail : .nice.guy.example.com : allow
#sendmail : .evil.cracker.example.com : deny
sendmail : ALL : allow

# Exim is an alternative to sendmail, available in the ports tree
exim : localhost : allow
#exim : .nice.guy.example.com : allow
#exim : .evil.cracker.example.com : deny
exim : ALL : allow

# Rpcbind is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
#rpcbind : 192.0.2.32/255.255.255.224 : allow
#rpcbind : 192.0.2.96/255.255.255.224 : allow
rpcbind : ALL : deny

# NIS master server. Only local nets should have access
# (Since this is an RPC service, rpcbind needs to be considered)
ypserv : localhost : allow
#ypserv : .unsafe.my.net.example.com : deny
#ypserv : .my.net.example.com : allow
ypserv : ALL : deny

# Provide a small amount of protection for ftpd
ftpd : localhost : allow
#ftpd : .nice.guy.example.com : allow
#ftpd : .evil.cracker.example.com : deny
ftpd : ALL : allow

# You need to be clever with finger; do _not_ backfinger!! You can easily
# start a "finger war".
fingerd : ALL \
        : spawn (echo Finger. | \
         /usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \
        : deny

# The rest of the daemons are protected.
ALL : ALL \
        : severity auth.info \
        : twist /bin/echo "You are not welcome to use %d from %h."
```
What I should change?
I tried 
	
	



```
rpcbind : ALL : allow
```
 and rebooted but things didn't change. In fact allow value not taken. I am going to try again


----------



## DutchDaemon (Mar 2, 2012)

```
ALL : ALL : allow
```
 at the top covers everything already. It's "first match wins".


----------



## sk8harddiefast (Mar 2, 2012)

So whereis is the problem and refuses to work? :/ I have tried everything. Recompile my Kernel, rebuild world, rebuild all packages, checked again and again all config files for mistakes. Nothing that can help me to understand what's going on


----------



## sk8harddiefast (Mar 10, 2012)

Any other ideas? I am still trying to fix it but I can't :/


----------



## joel@ (Mar 10, 2012)

As I said, have you checked DNS?

I had a similar problem just a few weeks ago, and it started working again as soon as I added PTR records for my machines.


----------



## sk8harddiefast (Mar 10, 2012)

You mean *resolv.conf*?
I have in both

```
nameserver 192.168.1.1
```
If you don't mean this what you mean saying to check DNS? How to check that? Probably asking this question means that I didn't check that because I don't know how :/


----------



## joel@ (Mar 10, 2012)

Well, make sure your DNS server (192.168.1.1) has both A and PTR for your internal IP adresses. Another option is to edit your /etc/hosts file.


----------



## sk8harddiefast (Mar 10, 2012)

What I should add on */etc/hosts*?


----------



## sk8harddiefast (Mar 11, 2012)

After a clean freebsd FreeBSD install still I get the same error!


----------



## JimW (Mar 11, 2012)

sk8harddiefast said:
			
		

> What I should add on */etc/hosts*?



On your NFS client machine add the NFS server and name to the hosts file.

E.g.


```
192.168.1.4     [i]server-hostname[/i]
```

Another thing you can try:

In your exports file on the NFS server, add the following to your export lines:


```
/mnt/inbox-500 -alldirs -maproot=root:wheel [b]-network 192.168.1.0 -mask 255.255.255.0[/b]
/mnt/raidon-stripe/dataspeed -alldirs -maproot=root:wheel [b]-network 192.168.1.0 -mask 255.255.255.0[/b]
/mnt/inbox-raidz/datavault -alldirs -maproot=root:wheel [b]-network 192.168.1.0 -mask 255.255.255.0[/b]
```

Then restart mountd on the server.

See if that works. It's worth a try.


----------



## JimW (Mar 12, 2012)

I think I missed this post above where you said ....



			
				sk8harddiefast said:
			
		

> You mean *resolv.conf*?
> I have in both
> 
> ```
> ...




Why does your resolv.conf file on both your server and client machines consist of only this line?

What type of network are you running? E.g. .... Is this a home network with an ISP modem and off the shelf router? Are you running a separate box that acts as a Gateway, Router, DNS Server... etc?

Your resolv.conf files look wrong.


----------



## sk8harddiefast (Mar 12, 2012)

I am on my local network (home). None seperate box. I have FreeNAS and freebsd FreeBSD, both of them with link aggregation. Both of them are connected to a 16 port switch. On the same switch is ISP's router. Always was working. The problem started when I changed ISP and router.

I search on my FreeNAS settings, freebsd FreeBSD settings, router settings, I reinstall freebsd FreeBSD, I update my FreeNAS but still get the same error.

Something is wrong but I can't understand where and why. I dont think that's freebsd FreeBSD's fault because it's still not working after a clean install.

But where to search? About what problem? Freebsd FreeBSD pings FreeNAS, FreeNAS pings freebsd FreeBSD. FreeNAS' HDD's mounted and work. Network config on both of them work. Where is the problem and refuse to mount my HDD's on boot?

Ps: Sorry Dutchdaemon. You have right. Just I am posting from a tablet.


----------



## joel@ (Mar 12, 2012)

sk8harddiefast said:
			
		

> What I should add on */etc/hosts*?


As a test: on the NFS server, add the correct hostname/ip's for both your NFS server and NFS client to /etc/hosts and see if it works.


----------



## JimW (Mar 12, 2012)

sk8harddiefast said:
			
		

> Something is wrong but I can't understand where and why. I dont think that's freebsd FreeBSD's fault because it's still not working after a clean install.
> 
> But where to search? About what problem? Freebsd FreeBSD pings FreeNAS, FreeNAS pings freebsd FreeBSD. FreeNAS' HDD's mounted and work. Network config on both of them work. Where is the problem and refuse to mount my HDD's on boot?



You can succesfully ping the other box by using the IP address. You can probably also successfully ping 127.0.0.1 .... but all that means is that the IP protocol is working. It doesn't mean your network configuration is setup properly.

Try Joel's suggestion regarding your hosts file on the server.

Otherwise, I would suggest binding the server's IP address to *mountd* in the server *mountd_flags* statement in the rc.conf file.


----------



## sk8harddiefast (Mar 13, 2012)

Ok. Adding my FreeBSD's IP and hostname on my FreeNAS, made the job. Now are mounted on boot and everything is as before. Thanks a lot @joel and @jimw 
Solved


----------

