Hello all,
It appears that if you're acting as a router (forwarding on), all router
advertisents are discarded (on forwarding interfaces at least), e.g. in
net/ipv6/ndisc.c:
---
static void ndisc_router_discovery(struct sk_buff *skb)
[...]
if (in6_dev->cnf.forwarding || !in6_dev->cnf.accept_ra) {
in6_dev_put(in6_dev);
return;
}
[...]
---
(this can also be verified by enabling forwarding via
/proc/sys/net/ipv6/conf/*/forwarding, deleting the autoconfigured address
and waiting for the next router advertisement)
If IP forwarding is enabled (e.g. router), _default route_ definitely
should not be autoconfigured, but I see no reason why the announced prefix
+ link-local suffix couldn't be combined to form one of the interface
addresses (on routers, all interfaces additionally probably have manually
assigned addresses too).
In FreeBSD Kame stack, sys/netinet6/nd6_rtr.c forwarding is only (apart
from router solicitation considerations) considered in defrouter_select
and defrtrlist_del functions.
Any thoughts?
--
Pekka Savola "Tell me of difficulties surmounted,
Netcore Oy not those you stumble over and fall"
Systems. Networks. Security. -- Robert Jordan: A Crown of Swords
|