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>
