RFC 919 compliance (broadcasts to 255.255.255.255)
Benjamin Lutz
benlutz at datacomm.ch
Fri Aug 4 15:12:21 UTC 2006
Hello,
I've noticed that FreeBSD does not by default comply to RFC 919, Chapter 7
(http://tools.ietf.org/html/rfc919). Specifically, it does not handle IP
packets with a destination address of 255.255.255.255 properly.
255.255.255.255 is a "limited broadcast address" (the term is not mentioned in
the RFC, but seems to be in use everywhere else). An IP packet send to that
address should be broadcast to the whole IP subnet of the broadcasting
device. However, in FreeBSD (4.11, 5.5, 6.1) this does not work, as is
evident by this tcpdump output:
17:00:59.125132 00:12:17:5a:b3:b6 > 00:40:63:d9:a9:28, ethertype IPv4
(0x0800), length 98: 10.0.0.1 > 255.255.255.255: ICMP echo request, id 33319,
seq 0, length 64
The destination MAC address is that of my gateway, but it should be
ff:ff:ff:ff:ff:ff. You can reproduce this by running "tcpdump -en ip proto 1"
and "ping 255.255.255.255".
I found a discussion from 2003 about this, but it seems to have trailed off
without coming to a conclusion:
http://lists.freebsd.org/pipermail/freebsd-net/2003-July/000921.html
I've noticed that the ip(7) manpage lists a SO_ONESBCAST option. The intention
seems to be to enable packets to 255.255.255.255. However a test with a small
program showed that this option seems to have no effect, outgoing packets
still carried the gateway's MAC address as destination.
Btw, Linux and NetBSD both handle packets to 255.255.255.255 as broadcasts.
Now, is this behaviour intentional? Is there a way to turn on RFC 919
compliance? If not, would someone be willing to add this to the kernel? Should
I submit a PR?
Cheers
Benjamin
More information about the freebsd-hackers
mailing list