[Dnsmasq-discuss] Adding Route Information Option to prefixes in RA
cyrus at openwrt.org
Wed Sep 10 15:41:01 BST 2014
please see the link to the OpenWrt ticket in my last mail which goes
about what happens in detail.
I don't remember if the user actually posted what OS the host ran on but
it seemed to be some kind of server so probably something linux/unix?
To summarize the issue since the ticket thread is a bit lengthy:
The RIO and the PIO were identical let's say 2001:db8::/64 which lead to
two routes being created in the host's routing table.
One route saying 2001:db8::/64 is on-link (PIO) and one route saying
2001:db8::/64 is off-link and should be reached via the router sending
the RA (RIO).
Now the host in question preferred the off-link route over the on-link
route so when it tried to send packages to an other host in
2001:db8::/64 it sent them to the router instead of doing neighbor
discovery and sending it directly on-link. Now the router sending the RA
in-turn disagreed about it being the one who should forward the package
and replied with an ICMPv6-redirect saying: send directly to the other
host, but it seems this redirect was ignored.
Since this should only happen when RIO and PIO are both /64 (and on-link
flag is set for the PIO) my work-around in OpenWrt was to simply not
send the RIO when PIO and RIO would be identical which solved the
problem for the user. Obviously if RIO and PIO have different sizes this
As a side note: since afaik Windows is about the only system to support
and enable RIOs by default and Linux kernel-defaults are to ignore RIOs
with prefix-length != 0 and Apple not implementing RIO support at all we
could get in more trouble once more platforms enable RIO-handling by
default and maybe emitting the same behavior as this host. I didn't
bother to search the RFCs for what is the correct behaviour in case
identical RIOs and PIOs exist.
More information about the Dnsmasq-discuss