Subject: Re: (solution and question) Re: strange inability to boot diskless
To: None <set@pobox.com>
From: None <Havard.Eidnes@runit.sintef.no>
List: port-hp300
Date: 09/06/1999 10:45:13
> (from tcpdump--- the server is not responding to the portmap request)
> @>21:28:42.042320 squidclock.home.org.1023 > 192.168.2.255.sunrpc: udp 96
> @>21:28:43.035204 squidclock.home.org.1023 > 192.168.2.255.sunrpc: udp 96
> @>21:28:45.035160 squidclock.home.org.1023 > 192.168.2.255.sunrpc: udp 96
> @>
>
> (This is different from when the boot program successfully was able to
> connect to my servers bootparamd, by broadcasting to everything, not just
> the subnet its on. eg squidclock.home.org.1023 > 255.255.255.255.sunrpc)
>
> [ ifconfig output with different netmask & broadcast settings
>   elided ]

Looking at /sys/netinet/ip_input.c it would appear that ipintr()
is checking whether the destination IP address in the incoming
packet is "for this system", by going through the interface list
and checking for unicast addresses, broadcast addresses and "old"
broadcast addresses (all-0 or subnet/net with 0 host portion).

Thus, with a broadcast address setting which doesn't agree on two
hosts, packets broadcasted from one would be rejected by the kernel
on the other.

- H=E5vard