Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Mar 2010 08:38:39 -0700
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Strange NFS-related messages (related to lockd/statd)
Message-ID:  <20100330153839.GA32700@icarus.home.lan>
In-Reply-To: <Pine.GSO.4.63.1003301041300.22616@muncher.cs.uoguelph.ca>
References:  <20100329165647.GA3796@icarus.home.lan> <Pine.GSO.4.63.1003301041300.22616@muncher.cs.uoguelph.ca>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 30, 2010 at 10:45:09AM -0400, Rick Macklem wrote:
> 
> 
> On Mon, 29 Mar 2010, Jeremy Chadwick wrote:
> 
> >I recently brought up rpc.lockd and rpc.statd on all of our NFS clients
> >(mixed RELENG_6, RELENG_7, and RELENG_8), and our NFS server (RELENG_8).
> >
> >All clients had nfs_client_enable="yes" in rc.conf prior to their last
> >reboot, but lacked rpcbind_enable="yes", rpc_lockd_enable="yes", and
> >rpc_statd_enable="yes" prior to the below.
> >
> >The 8.x clients started rpcbind, rpc.lockd, rpc.statd -- then said:
> >
> >NLM: failed to contact remote rpcbind, stat = 0, port = 0
> >Can't start NLM - unable to contact NSM
> >
> >The 7.x clients started rpcbind, rpc.lockd, rpc.statd -- then said:
> >
> >Can't start NLM - unable to contact NSM
> >
> Oh, I forgot to mention..I can't help much, but these protocols/daemons
> are SunRPC, so they will be using portmapper (now called rpcbind) to get
> port #s assigned dynamically. I also believe (not sure, don't know much
> about it) that the NSM will poll for other machines, so it needs to be
> able to talk to all clients and server(s), including doing IP broadcast
> that gets to them all. (These were designed in the 1980s for a LAN, which
> was just a chunk of coax in those days:-)
> 
> Hope this helps, rick

In fact it did!  Your hint lead me to try my earlier idea: using the -h
flag to rpcbind.

Turns out lockd wasn't running on any of the systems (rpcinfo didn't
show it, and ps didn't show it).  I ended up modifying all of the boxes
to use:

rpcbind_flags="-h <ipaddr of em1>"

(Where em1=LAN, em0=WAN.  em0 contains the default route as well)

Restarted rpcbind + statd + lockd (in that order).  Voila, everything
started up, and no messages.  rpcinfo shows all correct services.  So my
guess is that by binding to INADDR_ANY by default, packets were going
out the primary interface (em0) or going to broadcast on em0 -- which
would return nothing, since pf blocked such packets.  Makes sense to me
anyway.

Thanks!

-- 
| Jeremy Chadwick                                   jdc@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100330153839.GA32700>