Re: IPv6 default routes / NM vs. kernel autoconfig

* Stuart Gathman

> The problem is, I don't want the auto IP, *or* the private IPs.  I 
> just want the DHCP6 IP.  But when I select "DHCP only" in NM, it
> then assigns only the DHCP IP, but no route!   The behaviour I expect
> with DHCP only is to still assign the route from RA.

The «DHCP Only» IPv6 method is unfortunately fundamentally broken, as
you've experienced. I believe that when it was implemented, it was
the assumption that DHCPv6 would (like DHCPv4) be able to completely
configure the network, including setting up routes. That is not the
case, however. I wouldn't be surprised if the "DHCP Only" method would
be removed or hidden/deprecated in the future. Don't use it.

> But perhaps the routes cannot be separated from the IPs in the 
> kernel?  I don't see why not, since the RA routes are *link* scope 
> IPs, and don't depend on what global scope IPs are assigned.  I.e., 
> shouldn't setting accept_ra = 0 and accept_ra_defrtr =1 work?

Setting accept_ra=0 will discard the entire RA, I believe, which makes
the operational setting of accept_ra_defrt 0 as well. So you don't want
to do that.

I believe you want to leave accept_ra=1, but set autoconf=0. This
cause the kernel to accept the RA itself, including the default route
and the M-flag (which should make NM start DHCPv6), but suppress
auto-configuration of addresses.

(There's also an accept_ra_pinfo sysctl, but if clearing that one makes
the kernel discard the entire Prefix Information Option you will also
loose the on-link route to the prefix, which I guess isn't desirable.)

In addition, you should be aware of the use_tempaddr sysctl, which I
believe controls the creation and use of temporary/privacy addresses. I
would assume that setting autoconf=0 disables temporary/privacy
addresses too, but don't take my word for it.

IMHO, rather than have separate IPv6 methods (such as "DHCP Only") for
overriding network-provided settings (in your case, the L flag in PIO),
these knobs would be better located in an "Advanced..." box within the
Automatic mode.

> Here are my default routes:
> default via fe80::21a:a0ff:fe3a:a6ff dev wlan0  proto static  metric 
> 1 default via fe80::21a:a0ff:fe3a:a6ff dev wlan0  proto kernel metric
> 1024  expires 1781sec
> The static one is created by NM - and seems to be what the OP is 
> complaining about, as it takes priority over the automatic route, 
> which breaks things when the router changes (although nothing a 
> disconnect-connect won't fix).  In either case, they don't depend on 
> any global IP.

Again IMHO, it would be preferable if NM avoided adding such a static
default route if it isn't necessary (for example if there's an
of which interface should be used or if a VPN plugin wants to redirect
the default route).

Tore Anderson

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]