Discussion:
[PATCH] Removing RA handling from the kernel and ndp(8)
(too old to reply)
Roy Marples
2020-04-22 01:06:30 UTC
Permalink
The kernel handling of Router Advertisements is sorely lacking:
1) No support for extended options - RDNSS and DNSSL are common-place now.
2) No immediate failover when a router becomes unreachable.
3) No interface preference support (important for multihomed systems).
4) No support for SLAAC stable private addresses.
5) Reliant on an external entity to solicit an advertisement to get running
(could be upto 10 minutes to receive one without it)

Because of this reliance on an external entity, and dhcpcd has been doing the
job of RA handling by default since NetBSD-7 I propose that the in-kernel RA
handling is removed.

I have yet to be given a valid technical reason why the current implementation
should be kept. The closest is Martins request to NetBoot over IPv6, but as we
currently cannot do this, the recommendation is to add new code to facilite this
next to the netboot code for DHCP.
If you don't like dhcpcd for whatever reason, then feel free to import something
else.

The patch to remove this is 174k, so it's at this URL:
http://www.netbsd.org/~roy/netbsd-remove-kernel-ra.patch

Notes:
* rtadvd(8) needed some work to remove disabled code so it still compiled
with some definitions removed from kernel headers.
This has already been comitted and is only noted here to ensure your source
is up to date.
No functionality has been lost.
* ndp(8) has had functionality stripped - there is no compat.
The only interface "broken" is ndp -i $int which just toggles or reports
bits of functionality set in the kernel.
* dhcpcd(8) may warn when applying RA preferences.
Only for dhcpcd binaries in NetBSD-9, but this is only cosmetic.
* If you use IPv6 temporary addresses (sysctl net.inet6.ip6.use_tempaddr),
you need to enable this now in dhcpcd.conf as the sysctl has been removed
because it was only triggered by Router Advertisements.
* rc.d/network has had some work to accomodate
May give some warnings, but it tells you what to change.

Roy

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Andy Ruhl
2020-04-22 22:12:03 UTC
Permalink
Post by Roy Marples
1) No support for extended options - RDNSS and DNSSL are common-place now.
2) No immediate failover when a router becomes unreachable.
3) No interface preference support (important for multihomed systems).
4) No support for SLAAC stable private addresses.
5) Reliant on an external entity to solicit an advertisement to get running
(could be upto 10 minutes to receive one without it)
Because of this reliance on an external entity, and dhcpcd has been doing the
job of RA handling by default since NetBSD-7 I propose that the in-kernel RA
handling is removed.
I have yet to be given a valid technical reason why the current implementation
should be kept. The closest is Martins request to NetBoot over IPv6, but as we
currently cannot do this, the recommendation is to add new code to facilite this
next to the netboot code for DHCP.
If you don't like dhcpcd for whatever reason, then feel free to import something
else.
http://www.netbsd.org/~roy/netbsd-remove-kernel-ra.patch
* rtadvd(8) needed some work to remove disabled code so it still compiled
with some definitions removed from kernel headers.
This has already been comitted and is only noted here to ensure your source
is up to date.
No functionality has been lost.
* ndp(8) has had functionality stripped - there is no compat.
The only interface "broken" is ndp -i $int which just toggles or reports
bits of functionality set in the kernel.
* dhcpcd(8) may warn when applying RA preferences.
Only for dhcpcd binaries in NetBSD-9, but this is only cosmetic.
* If you use IPv6 temporary addresses (sysctl net.inet6.ip6.use_tempaddr),
you need to enable this now in dhcpcd.conf as the sysctl has been removed
because it was only triggered by Router Advertisements.
* rc.d/network has had some work to accomodate
May give some warnings, but it tells you what to change.
Didn't think I would be the first one to respond.

I didn't read your whole patch.

I would prefer both kernel and userland code to autoconfigure IPv6 but
I'm in no place to try to fix the code in the kernel. Netbooting is
useful and it would be nice if the kernel could do it with IPv6 as it
does with IPv4. I'm not aware of anyone doing diskless stuff with IPv6
yet though, I will research this.

Thanks for your work.

Andy

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...