Subject: NFS hangs.

From: Darren Reed <[email-masked]>

Hmm, I'm not sure if this is a bug or not but anyway...

I've just noticed that NetBSD uses connected UDP sockets for NFS ops.,
with a different port for each host that it mounts.  This all works fine
until I mount a partition of a dual-homed host with one interface on the
same subnet as the netbsd host, and another elsewhere.

The problem being, that as it has two IP#'s, it is possible to mount it
from the far ethernet and then have the NFS server (not running NetBSD)
reply using the near IP#.  As NetBSD uses a connected socket, it quite
correctly returns icmp unreachables to the NFS traffic, although it has
a mount point already setup...

The obvious solution is to mount it correctly, but is it a safe bet to
assume that all NFS servers will do the right thing and use the same
IP# in NFS packets to the client consistantly ?  If not, what else can
be done ?

...it goes something like this:

* there is a netbsd machine called "bsd", and a NFS server "fubar"
(interface names "fubar-a" and "fubar-b" for near and far respectively).

In bsd's /etc/fstab:

fubar-b:/usr	/sun/usr	ro,-P	0 0

bsd successfully mounts foo-b:/usr and in netstat -a shows up like:

udp	0	0	bsd.1023	fubar-b.2049

trying to do something like "df" results in:
...
fubar-a > bar: reply ok 48
bar > fubar-a: icmp: bar port 1023 unreachable

darren