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>