Persisting IPv6 DNS resolver addresses
Here’s a conundrum aimed at those dabbling in the internals of Microsoft Windows 7.
The scenario goes like this:
- A computer is running Microsoft Windows 7 using the default settings.
- Microsoft Windows 7 on said computer is configured to run dual stack, i.e. both the IPv4 and the IPv6 protocols are enabled, this is the default setting.
- The computer connects to a wireless network.
- The wireless network offers IPv4 (Internet) access.
- IPv4 related network parameters, such as the computer’s IPv4 address, the subnet mask, the gateway’s IPv4 address, the local DNS domain name, and the IPv4 addresses for the local DNS resolvers, are all served by the resident DHCP(v4) service.
- The wireless network also offers IPv6 native (Internet) access.
- The computer’s IPv6 address is obtained either by autoconfiguration or by way of the resident DHCPv6 service.
- DHCPv6 is used for delivering other useful information such as the local DNS domain name, and the IPv6 addresses for the local DNS resolvers.
- So far, so good.
- The computer then disconnects from the wireless network.
- The computer may enter hibernation or even be turned off, this is not really relevant, but if it does, let’s assume the computer resumes from its hibernation or is being turned on again.
- The computer then connects to a wireless network different from the one used in step 3.
- This other wireless network offers only IPv4 access, and the resident DHCP(v4) service provides the computer with all the necessary IPv4 related network parameters.
- No native IPv6 access whatsoever is offered by this other wireless network, and certainly no DHCPv6 service is available.
- Tunneled IPv6 access is usually available, be it Teredo, or 6to4, or something else, unless blocked by the network’s firewall.
- Yet, the computer’s wireless network interface is still configured with the IPv6 addresses of the DNS resolvers obtained in step 8, despite now being serviced by a different SSID.
- So it would seem, IPv6 related network information is not wiped clean from the network interface when accessing a different SSID.
- I guess the same would apply to wired network interfaces.
- The end result is Microsoft Windows 7 trying to resolve DNS domain names using the previously obtained DNS resolver’s IPv6 addresses, which may or may not be willing to perform the requested queries. And while Microsoft Windows 7 continues the DNS resolving using the IPv4 addresses of the local DNS resolvers, the operating system is causing delays at the expense of the poor, and often unknowing, (l)user.
- Please prove me wrong, but if the above case is indeed correct, please inform Microsoft of their mistake. I’m not sure they would listen to a simple system administrator from Norway. And sadly, I don’t know anyone inside Microsoft’s great walls.