[Dnsmasq-discuss] Adding Route Information Option to prefixes in RA

Steven Barth cyrus at openwrt.org
Wed Sep 10 15:41:01 BST 2014


Hi Ilya,

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 
shouldn't matter.


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.


Cheers,

Steven



More information about the Dnsmasq-discuss mailing list