NFS troubles when mounting multihomed server

Ion Badulescu (ionut@moisil.cs.columbia.edu)
Wed, 23 Jul 1997 04:48:18 -0400 (EDT)


Hi,

I'm having some problems mounting an NFS share from a multihomed server:
if the hostname resolves to a different interface than the one on the
route to the server (due to DNS RR for example), the mount call just
hangs. Tcpdump shows that linux is sending requests to the resolved
address, receives replies from the other address, doesn't grok them and
sends back ICMP port unreachable.. This goes on for ever, until the client
is rebooted.

I know this is an old problem with "connected" UDP sockets, when the
sender receives packets from a different address it sent requests to. Now,
from looking through various nfs and net stuff, it looks like udp_connect
is trying to guess the right address by using ip_rt_route (this is just a
guess, btw). However, the only code in nfs that hints at calling
udp_connect is in nfsroot.c - certainly not what I'm looking for.

Is there any fix for this, short of playing dirty tricks with /etc/hosts?
Solaris doesn't appear to have this problem (it's a Solaris server I'm
trying to mount btw), NetBSD allegedly has a NFSMNT_NOCONN flag that
solves it...

[part of the problem might be that the all the routes to the server's
interface have the same metric, but personally I doubt it]

Thanks,
Ionut

-- 
  It is better to keep your mouth shut and be thought a fool,
            than to open it and remove all doubt.