In this post I will be going over the various levels of support for IPv6 resolver distribution for popular operating systems. Focus on desktop and mobile versions of OSes as those are the ones where we are usually automatically distributing resolver information. Dual stack is implied but IPv6 only functionality can be gleaned from said information as well.
There are two methods that we need to worry about:
- RDNSS (ICMPv6 option type 25 in Router Advertisement)
- Stateless and Stateful DHCPv6 (O/M flag set in Router Advertisement)
Windows (7/8/10)
- No RDNSS support
- DHCPv6 support, both stateful and stateless
OS X (Yosemite/El Capitan)
- RDNSS support (NB: IPv4 resolver first in list and therefore preferred)
- No DHCPv6 support
Linux (Ubuntu 14.04)
- No RDNSS support
- DHCPv6 support, both stateful and stateless (NB: dnsmasq may put resolvers in some strange order)
iOS (9.2)
- RDNSS support (NB: IPv4 resolver first in list and therefore preferred)
- No DHCPv6 support
Android (Lollipop tested/behaviour unchanged in Marshmallow)
- RDNSS support (NB: IPv6 resolver is preferred and will be used first)
- No DHCPv6 support
Conclusions
I have to run a DHCPv6 server *and* distribute DNS via RDNSS so I can have all (almost all!) the hosts in my LAN using IPv6 resolvers. This is extra management overhead that does not need to be there.
It is a fucking mess. Vendors, support both please.