diff options
Diffstat (limited to 'writeups/ipv6/rfc4191/rfc4191.md')
-rw-r--r-- | writeups/ipv6/rfc4191/rfc4191.md | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/writeups/ipv6/rfc4191/rfc4191.md b/writeups/ipv6/rfc4191/rfc4191.md index 415f7b7..1f20722 100644 --- a/writeups/ipv6/rfc4191/rfc4191.md +++ b/writeups/ipv6/rfc4191/rfc4191.md @@ -18,12 +18,29 @@ and add the prefixes in the routing table. | OS | Support | Since | Note | | - | - | - | - | | Windows | YES | ? | First mention in [Windows Server 2012 doc](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj574227(v=ws.11)) | -| Linux | MAYBE | [v2.6.17-rc1](https://github.com/torvalds/linux/blame/4236f913808cebef1b9e078726a4e5d56064f7ad/net/ipv6/ndisc.c#L258) | `CONFIG_IPV6_ROUTE_INFO` disabled by default, but most distros enable it | +| Linux | (SEE BELOW) | | | | Android | YES | [4.2](https://en.wikipedia.org/wiki/Comparison_of_IPv6_support_in_operating_systems) ? | Linux support predates Android, so it could have been supported since 4.2 | | XNU(IOS, macos) | YES | [xnu-7195.50.7.100.1](https://github.com/apple-oss-distributions/xnu/blame/8d741a5de7ff4191bf97d57b9f54c2f6d4a15585/bsd/netinet6/nd6_rtr.c#L490) | https://theapplewiki.com/wiki/Kernel#Versions | | FreeBSD | [NO](https://github.com/freebsd/freebsd-src/blob/47ca5d103f229b090899379ce449af5e89faf627/sys/netinet6/nd6.c#L507) | - | Router discovery implemented in userspace "rtsold" | | OpenBSD | [NO](https://github.com/openbsd/src/blob/36a0e83f909d48cbb69156be916b6356c14b9ae5/sbin/slaacd/engine.c#L1555) | - | Router discovery implemented in userspace "slaacd" | +### Linux +There are 3 RA implementations in Linux: + + 1. The kernel (`CONFIG_IPV6_ROUTE_INFO`) + 2. NetworkManager + 3. Systemd-networkd + +The kernel's RIO support(introduced in +[v2.6.17-rc1](https://github.com/torvalds/linux/blame/4236f913808cebef1b9e078726a4e5d56064f7ad/net/ipv6/ndisc.c#L258)) +is optional and disabled by default, but most distros build the kernels with +`CONFIG_IPV6_ROUTE_INFO`. + +However, since the RDNSS and NTP options need to be dealt with in the userspace, +the kernel implementation is rarely used in most cases, except for embedded +systems. `accept_ra = 0` will be the most common setting on most systems. Both +NetworkManager and Systemd-networkd support RIO. + ## RFC 4191 in Action <img src="../radvd/drawing-a.svg" style="background: grey;"> |