tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[PATCH] Removing RA handling from the kernel and ndp(8)



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


Home | Main Index | Thread Index | Old Index