Problem with port 0

Hug Me hugme at hugme.org
Fri Jan 12 17:28:00 UTC 2007


I am attempting to TFTP the boot code from a FreeBSD server to hardware
device butreceiving a timeout. tftp works from from other servers and from
this server if not attempting to upload bootcode (see below for differences)

The FreeBSD version on the system we are currently testing is 5.4 however
other versions have been tested with the same result.
the hardware device is a Juniper ISG-2000

some of the tests we have performed:
default tftp with inetd
yale-tftp as stand alone
yale-tftp with inetd
net.inet.ip.portrange.reservedhigh: 1023 and
net.inet.ip.portrange.reservedlow: 0
net.inet.ip.portrange.reservedhigh: 0 and net.inet.ip.portrange.reservedlow:
0
net.inet.ip.portrange.reservedhigh: 1023 and
net.inet.ip.portrange.reservedlow: 1

these are the messages from /var/log/xferlog

with default tftp - Jan 12 09:37:55 dukeengi01 tftpd[80898]: connect: Can't
assign requested address
with yale tftp - Jan 12 10:26:33 dukeengi01 tftpd[84367]: recvfrom: Socket
operation on non-socket

This is the tcpdump: (the freebsd system is 10.0.0.1 and the juniper system
is 10.0.0.2)

11:08:06.519779 arp reply 10.0.0.1 is-at 00:11:25:a8:0e:e4
11:08:06.528691 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.2.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet
11:08:08.558911 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.2.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet
11:08:11.558959 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.2.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet
11:08:15.559042 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.2.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet
11:08:20.559052 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.2.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet
11:08:26.559116 IP (tos 0x4, ttl 255, id 0, offset 0, flags [DF], length:
51) 10.0.0.20.0 > 10.0.0.1.69: [udp sum ok]  23 RRQ "load2000v115.d" octet

When installing the boot loader on this hardware it is necessary to stop the
boot process and load it before the OS loads. because of this many things
have not loaded yet. for example the routing protocals. therefore the tftp
server has to be in the same L2 segment as the hardware device (which it is)
The hardware device is not able to assign a port number to it's own address
yet (as seen in the tcpdump) Therefore in accordence with RFC's 768 and 1350
it uses the source port of 0.

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.

Thank you for your help.

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

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


More information about the freebsd-net mailing list