Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 1995 18:00:23 -0500 (CDT)
From:      mikebo@tellabs.com (Mike Borowiec)
To:        questions@freebsd.org
Cc:        mikebo@tellabs.com (Mike Borowiec)
Subject:   FBSD v2.0.5: NFS to multi-homed server broken?
Message-ID:  <m0sXz9I-000jBzC@tellab5.lisle.tellabs.com>

next in thread | raw e-mail | index | archive | help
Greetings -
I have found some anomolous NFS behaviour in FreeBSD 2.0.5R.

Problem 1:
FreeBSD attempts to NFS mount a partition from a multi-homed server not
on the same ethernet, and the return route from the server to the FreeBSD
client is via another interface (with a different hostname and IP address).
If done manually, the mount command can be killed. If the mount is in the
/etc/fstab file, the machine hangs on startup and must be reset.

Problem 2:
Worse yet, the mount succeeds and the route from the server to the FreeBSD
client is subsequently changed when the server receives a RIP update from
its router. In this case, any session accessing the affected partition
hangs and can't be recovered. In some cases, the whole OS runs off into
the bushes and there's no keyboard response at all... big, red switch time!

On comp.os.bsd.freebsd.misc I've had people suggest that I not run routed
on the server. Unfortunately, it will not always be possible for a FreeBSD
user to dictate this to admin staff, especially when local SunOS machines
flawlessly handle both of the situations listed above.

Questions refering to the Sniffer data below:
o  Trace 1 shows everything works fine if you're sure which interface
   the server will use to talk to the client... if not...
o  Trace 2 shows that the SunOS 4.1.3 portmapper returns the proper port
   number for NFS (2049), but FreeBSD complains that Port 797 is
   unreachable. How did it get 797 from 2049?
o  Trace 3 shows that SunOS NFS clients don't bother to portmap the NFS
   port number which is already well known to be 2049. Why does FreeBSD
   bother to do this apparently useless step?
o  Trace 3 shows that SunOS is not bothered by the fact that the responses
   are from another IP address. It seems to know that the two addresses are
   in fact the same machine. How, and why doesn't FreeBSD do the same?
o  Trace 3 shows that SunOS does an apparently useless "Null command"
   which is ackowledged by the server... why?
o  SunOS is apparently unbothered when the route from server to client
   changes, while FreeBSD hangs. How does SunOS handle this and can a
   similar method be enployed in FreeBSD? 

Anyone have any info on these problems and whether they will be resolved
in 2.1R? Thanks...
- Mike

Sniffer Network Analyzer data:
Note that TELLABK and SUNK are different interfaces on the same SunOS
4.1.3 server... both of these networks are connected to a router. Both
TOYBOX and GENESIS are on the same ethernet, which is also connected
to the same router...

	+---------------+
	|TELLABK / SUNK |
	+---+--------+--+
            |        |
	 =======   ====
	    |       |
	+-----------+--+
	|    ROUTER    |
	+-----+--------+
	      |
	================
	   |        |
	+--+----+ +-+----+
	|genesis| |toybox|
	+-------+ +------+

Successful mount by FBSD 2.0.5 client of SunOS 4.1.3 server:
toybox# mount sunk:/export/home/tellabk-4 /home/tellabk-4

Destination Source     Summary
tellabs     toybox     DNS C ID=1 OP=QUERY NAME=sunk
toybox      tellabs    DNS R ID=1 STAT=OK NAME=sunk
sunk        toybox     PMAP C Get port PROG=100003, VERS=2, IP=17
toybox      sunk       PMAP R PORT=2049
sunk        toybox     PMAP C Get port PROG=100005, VERS=1, IP=17
toybox      sunk       PMAP R PORT=733
sunk        toybox     MOUNT C Mount /export/home/tellabk-4
toybox      sunk       MOUNT R Mount OK F=075B


Unsuccessful mount by FBSD 2.0.5 client of SunOS 4.1.3 server:
toybox# mount tellabk:/export/home/tellabk-4 /home/tellabk-4

Destination Source     Summary
tellabs     toybox     DNS C ID=1 OP=QUERY NAME=tellabk
toybox      tellabs    DNS R ID=1 STAT=OK NAME=tellabk
tellabk     toybox     PMAP C Get port PROG=100003, VERS=2, IP=17
toybox      sunk       PMAP R PORT=2049
sunk        toybox     Port 797 unreachable
                       ICMP Destination unreachable (Port unreachable)
tellabk     toybox     PMAP C Get port PROG=100003, VERS=2, IP=17
toybox      sunk       PMAP R PORT=2049
sunk        toybox     Port 797 unreachable
                       ICMP Destination unreachable (Port unreachable)
... ad infinitum ...

Successful mount by SunOS 4.1.4 client of SunOS 4.1.3 server:
genesis# mount tellabk:/export/home/tellabk-4 /home/tellabk-4

Destination Source     Summary
tellabs     genesis    NIS C Lookup key suntell.hosts.byname
genesis     tellabs    NIS R OK
tellabs     genesis    NIS C Lookup key suntell.protocols.byname
genesis     tellabs    NIS R OK
tellabk     genesis    PMAP C Get port PROG=100005, VERS=2, IP=17
genesis     sunk       PMAP R PORT=733
tellabk     genesis    MOUNT C Null Command
genesis     sunk       MOUNT R Null Command OK
tellabk     genesis    MOUNT C Mount /export/home/tellabk-4
genesis     sunk       MOUNT R Mount OK F=0733

--
--------------------------------------------------------------------------
Michael Borowiec        Network Operations      Tellabs Operations, Inc.
mikebo@tellabs.com                              1000 Remington Blvd./MS109
708-378-6007  FAX: 708-378-6714                 Bolingbrook, IL, USA 60440
--------------------------------------------------------------------------



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