Processing IPv6 Router Advertisements

Fernando Gont fernando at
Tue Jan 19 15:02:08 UTC 2010

Hello, David,

Thanks so much for your response. Comments in-line....

>> I'm running FreeBSD 6.2-Release in one of my boxes, and there seems to
>> be a bug in the processing of Router Advertisement messages.
>> RA messages seem to be required to have a Source Address in the
>> fe80::/32 prefix, rather than in the fe80::/10 prefix. That is, the
>> first 32 bits of the IPv6 Source address must be fe80:0000, or else the
>> message is dropped (at least, no changes are made to the destination
>> cache or the neighbor cache).
>> Can anybody confirm this one, or correct me if I am wrong?
> A cursory look at the netinet6/nd6_rtr.c code looks like it is using
> IN6_IS_ADDR_LINKLOCAL from netinet6/in6.h which should be smart enough
> to just look at fe80::/10.


> Try setting net.inet6.icmp6.nd6_debug=1 in /etc/sysctl.conf and reboot
> to see if there is anything interesting coming out of debug logging.
> (will show in dmesg and /var/log/messages)

Nothing interesting. :-( But still the same problem...

> Out of curiousity, what device is using a non EUI-64 for link-local,
> or is this a manually configured link-local situation ?

I'm just playing with a RouterAdvertisement forging tool I just built.
I've checked the on-the-wire packets, and they seem to be correct. :-(

Fernando Gont
e-mail: fernando at || fgont at
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1

More information about the freebsd-net mailing list