Good Afternoon,
It is a pleasant surprise for many (us included) that Microsoft implemented support for the RDNSS (RFC 8106) option in Router Advertisements beginning with the Windows 10 Creators Update. Interestingly, I wasn’t able to find any official documents from Microsoft stating this. As we are involved in a lot of IPv6 related projects for our customers, the lack of RDNSS support for Windows and DHCPv6 for Android is a major pain point when implementing IPv6 in mixed client segments, as you need to implement both mechanisms to ensure that all clients do get the relevant network parameters. I won’t beat on the dead horse, but Microsoft’s decision is a huge step in the right direction and one can hope that one day Google finds a “compelling use case” to implement at least stateless DHCPv6 for Android.
But history aside, lets have a closer look how Microsoft implemented RFC 8106 on Windows 10:
We set up a small lab environment with a single router (also acting as a DHCPv6 server) and a Windows 10 client machine that was updated to Build Number 1703 (Creators Update)
The Cisco router had the following configuration:
ipv6 dhcp pool WIN10 dns-server 2001:aaaa:bbbb:cccc::1 Interface GigabitEthernet0/0/0 ipv6 enable ipv6 address 2001:BEEF:0:1::1/64 ipv6 nd prefix 2001:DB8:1111:1111::/64 ipv6 nd other-config-flag ipv6 nd ra dns server 2001:4860:4860::8888 ipv6 dhcp server WIN10
With this configuration, the Windows 10 system has two sources for the DNS server. Now, which of those will the Windows system choose?
As the behavior of the feature isn’t described in official document (from MS), we were eager to find out 😉 When we have look at the ipconfig output after the provisioning of the IPv6 parameters, we can see that the system has installed the DNS supplied by the DHCPv6 server (even though the DNS server is also available over the RA).
So, when does Windows 10 use the DNS provided over RA? It turns out that Windows will use the RDNSS information (only) when it does not receive any DNS Server information over DHCPv6.
In the next figure we can see that the DNS server on the interface has changed after we issued the
ipconfig /release6
command.
Conclusion
RFC 8106 support finally arrived in the Microsoft space 😉 and works as desired. You should just take into account that Windows 10 is currently preferring the DHCPv6 supplied DNS over the RDNSS option (which is also what sect. 5.3.1 from the RFC mandates).
This concludes the short blogpost. Have a great week everybody, and maybe we will see us in Budapest for RIPE74.
Cheers,
Christopher
Hi Christopher,
thanks for the article. I’ve also seen that the command “netsh int ipv6 sh int X” displays two new options (opposing to Windows 10 1607):
RA-basierte DNS-Konfiguration (RFC 6106) : enabled
Koexistenz von DHCP/statischer IP : enabled
Do you have any idea where the “coexistance of DHCP and static IP” behaviour can be controlled? So far I was only aware that this could be controlled on a per-interface basis in Power Shell:
Set-NetIPInterface Ethernet -AddressFamily IPv6 -dhcp enabled
Best Regards,
Michael
I’ve noticed that if you run DHCPv4 you will not receive RDNSS adverts, even if it is configured.