Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jan 2007 20:37:26 -0500
From:      "Hug Me" <hugme@hugme.org>
To:        "Bruce M. Simpson" <bms@freebsd.org>
Cc:        freebsd-net@freebsd.org, Ricardo Nabinger Sanchez <rnsanchez@wait4.org>
Subject:   Re: Problem with port 0
Message-ID:  <f9876c510701121737q1d0b2971wb735ee3ecda78a1d@mail.gmail.com>
In-Reply-To: <45A807F8.7080603@FreeBSD.org>
References:  <f9876c510701120903r65543ef4nafc7eeead2becb42@mail.gmail.com> <20070112163057.2a3ec8f0.rnsanchez@wait4.org> <45A807F8.7080603@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is what I thought at first as well. However as I mentioned I used 2
different tftp servers. I tried the yale version with and without inetd. I
will get a full packet capture and attach it to my next e-mail. it's
possible that it has nothing to do with the traffic being source port 0,
that was only the most obvious difference I could find between the normal
and dropped traffic.




On 1/12/07, Bruce M. Simpson <bms@freebsd.org> wrote:
>
> Ricardo Nabinger Sanchez wrote:
> > On Fri, 12 Jan 2007 12:03:17 -0500
> > "Hug Me" <hugme@hugme.org> wrote:
> >
> >
> >> We believe FreeBSD is not allowing a UDP source port of 0 and the
> kernel is
> >> dropping the packet before it ever reaches the tftp server but are
> unable to
> >> verify this hypothesis. I was hoping someone here could help shed some
> light
> >> on the problem.
> >>
> >
> > But port 0 has special meaning to the kernel (ie, "give me some random
> > port").  Also, it is a reserved one.  Please check IANA:
> >
> >       http://www.iana.org/assignments/port-numbers
> >
> > I'm afraid you'll have to select another port number.
> >
> Nope. A source port of 0 is perfectly legal for UDP.
>
> I did an experiment with rpcbind whereby I performed a UDP based rpcinfo
> query from one FreeBSD machine to another, captured the traffic, and
> used tcpreplay to inject it from source port 0.
>
> At first I thought the INPCB hash lookup was doing the wrong thing, then
> I ktrace'd rpcbind and it was apparent that it was in fact being
> delivered to rpcbind from udp_input().
>
> rpcbind tries to reply to destination port 0. This was verified with
> kdump and rpcbind -d. This quite rightly fails, and, indeed, we reject
> this from the socket code.
>
> So, FreeBSD appears to handle a UDP source port of 0 ok based on these
> tests.
>
> The most likely explanation for the failure in this case, without
> looking further, is that inetd or the tftpd implementations can't handle
> source port 0.
>
> BMS
>
>
>
>
>


-- 
        *******************************************************************
        Don't ever forget to
                -*HUGME*-

        Yield to Temptation ... it may not pass your way again.
                -- Lazarus Long, "Time Enough for Love"



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