Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 May 1996 12:30:18 -0400
From:      Robert Withrow <bwithrow@BayNetworks.com>
To:        freebsd-hackers@freebsd.org
Subject:   NFS interop problems...
Message-ID:  <199605231630.MAA16425@tuva.engeast.baynetworks.com>

next in thread | raw e-mail | index | archive | help
I'm suffering from the (I think) well known interop
problem with sun nfs servers, where you send a request
to one port on the server and you get the reply from
another port on the server, which FreeBSD (rightfully,
I guess) tosses.  [BTW, is there any easy workaround
for this?  Putting a static route for the client on the 
erver seems to work...]

Something I don't understand is this:  When I first
try to mount the problem filesystem, the first
datagram that get sent is this (cozumel-le0 is the
server and tuva is the client):

Ethernet Header                                       byte      0
  Destination                00:00:a2:c3:65:da            48 bits
                             Wellfleet                           
  Source                     00:c0:a8:35:cd:85            48 bits
                             GVC Corporation                     
  Ethertype                  0x800                        16 bits
IP Header (Internet Protocol)                         byte     14
  Version                    IP                            4 bits
  Header Length              5 32-bit words                4 bits
  Precedence                 ROUTINE                       3 bits
  Type of Service            NORMAL_SERVICE                4 bits
  Unused                     0                             1 bits
  Total Length               120 bytes                    16 bits
  Identification             2582                         16 bits
  Flags, Unused              0                             1 bits
  Flags, DF bit              MAY_FRAGMENT                  1 bits
  Flags, MF bit              LAST_FRAGMENT                 1 bits
  Fragment Offset            0 * 8 octets                 13 bits
  Time To Live               64 seconds/hops               8 bits
  Protocol                   UDP                           8 bits
  Checksum                   0x851d                       16 bits
  Source Address             tuva                         32 bits
  Destination Address        cozumel-le0                  32 bits
UDP Header                                            byte     34
  Source Port                0x40b                        16 bits
  Destination Port           0x801                        16 bits
  Length                     100 bytes                    16 bits
  Checksum                   0x14f9                       16 bits
DATA                                                  byte     42

    0:  00000001  00000000  00000002  000186a3    ................
   10:  00000002  00000001  00000001  00000014    ................
   20:  00000000  00000000  00000000  00000000    ................
   30:  00000000  00000000  00000000  00000707    ................
   40:  00000001  000a0000  00006f40  16df2c62    ..........o@..,b
   50:  000a0000  00006f40  16df2c62              ......o@..,b

And the reply I get (from cozumel, not cozumel-le0, sign), is this:

Ethernet Header                                       byte      0
  Destination                00:00:a2:c3:65:da            48 bits
                             Wellfleet                           
  Source                     00:c0:a8:35:cd:85            48 bits
                             GVC Corporation                     
  Ethertype                  0x800                        16 bits
IP Header (Internet Protocol)                         byte     14
  Version                    IP                            4 bits
  Header Length              5 32-bit words                4 bits
  Precedence                 ROUTINE                       3 bits
  Type of Service            NORMAL_SERVICE                4 bits
  Unused                     0                             1 bits
  Total Length               56 bytes                     16 bits
  Identification             2583                         16 bits
  Flags, Unused              0                             1 bits
  Flags, DF bit              MAY_FRAGMENT                  1 bits
  Flags, MF bit              LAST_FRAGMENT                 1 bits
  Fragment Offset            0 * 8 octets                 13 bits
  Time To Live               255 seconds/hops              8 bits
  Protocol                   ICMP                          8 bits
  Checksum                   0x2dec                       16 bits
  Source Address             tuva                         32 bits
  Destination Address        cozumel                      32 bits
ICMP Header                                           byte     34
  Type                       Dest_Unreach                  8 bits
ICMP Destination Unreachable                          byte     35
  Code                       PORT_UNREACHABLE              8 bits
  Checksum                   0x2968                       16 bits
  Unused                     0                            32 bits
IP Header (Internet Protocol)                         byte     42
  Version                    IP                            4 bits
  Header Length              5 32-bit words                4 bits
  Precedence                 ROUTINE                       3 bits
  Type of Service            NORMAL_SERVICE                4 bits
  Unused                     0                             1 bits
  Total Length               124 bytes                    16 bits
  Identification             208                          16 bits
  Flags, Unused              0                             1 bits
  Flags, DF bit              MAY_FRAGMENT                  1 bits
  Flags, MF bit              LAST_FRAGMENT                 1 bits
  Fragment Offset            0 * 8 octets                 13 bits
  Time To Live               253 seconds/hops              8 bits
  Protocol                   UDP                           8 bits
  Checksum                   0                            16 bits
  Source Address             cozumel                      32 bits
  Destination Address        tuva                         32 bits
UDP Header                                            byte     62
  Source Port                0x801                        16 bits
  Destination Port           0x40b                        16 bits
  Length                     104 bytes                    16 bits
  Checksum                   NONE                         16 bits

So, The FreeBSD machine sends something to port 2049 (0x801) and
I get a ``port unreachable'' from the server...  The question is:
What is port 2049?  In /etc/services I see:

nfsd            2049/udp        nfs             # NFS server daemon
#PROBLEMS!=============================================================
shilp           2049/tcp
shilp           2049/udp
#PROBLEMS!=============================================================

What is this all about?

-- 
Robert Withrow -- (+1 508 436 8256)
BWithrow@BayNetworks.com





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