Misc

One Step Closer – RDNSS (RFC 8106) Support in Windows 10 Creators Update

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

Comments

  1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *