Like it or lump it, we're moving to IPv6 for our Internet connections. For now, less than 2% of the world's Internet population is using IPv6, but as the last IPv4 addresses grains of sands run out (https://www.zdnet.com/ipv6-when-do-you-really-need-to-switch-3040155336/), Microsoft knows that its Windows users need to start switching over. That's why, starting in Windows 8, “Windows prefers native IPv6 connectivity over IPv4 connectivity, if both connection modes are available.”



In a blog posting, Steve Sinofsky, Microsoft's president of Windows, explained the basics of why we have no choice but to move from IPv4 to IPv6: IPv4 only provided around 4 billion IP addresses. That seemed like a lot in the 1970s. But by 2015, an estimated 15 billion devices will be connected (PCs, phones, household appliances, cars, even furniture!). IPv4 simply does not have the addresses necessary to connect this many devices to the Internet.”



He's right of course. This was always going to happen, but network administrators have been able delay the day of Internet reckoning with technologies such as network address translation (NAT). But, these patch-work approaches aren't sufficient for a world where a single person may carry three or four IP-equipped devices such as a tablet, phone, and laptop.



Sinofsky expects most of the world to stay on IPv4 for the short term. “This model continues to work in Windows 8 as it has in the past.” But, he also expects more and more PCs will be on dual-stacked networks. These are networks that support both IPv4 and IPv6. On these, devices are configured with both IPv4 and IPv6 addresses.



“Our primary focus during this transition has always been to minimize the impact of the transition for everyday users,” Sinofsky continued, “It shouldn’t matter whether your connection is over IPv4 or IPv6. You should have an Internet experience that is fast and reliable, with little evidence of the IPv6 transition, so you can just enjoy the content.”



Still, “At the same time, it’s also a priority for us to help the IPv6 transition move ahead. To this end, Windows prefers native IPv6 connectivity over IPv4 connectivity, if both connection modes are available.”



Windows 8 will do this by using RFC 3484 IPv6 address selection. This isn't easy as Sinofsky explained, “In order for a device to truly support dual-stack networks, apps must not only be able to send traffic with IPv4 and IPv6, but the OS must be smart enough to know which protocol is appropriate for the task at hand. Even more specifically, because your device might have multiple IPv4 and IPv6 addresses, and because the destination you’re trying to reach might also have multiple IPv4 and IPv6 addresses, the stack must be smart enough to know which specific source and destination addresses should be used for connectivity. This functionality is called address sorting, and is an area that we have enhanced in Windows 8. The idea behind address sorting is to determine which address pair is likely to produce the best connection, so the application does not need to wait.”



Network engineers at this point may be going, “Wait, isn't working out which route is best the job of the router?” Well, yes, it is. For the most part, a dual-stacked Windows 8 machine will go with the router's recommendation,

Microsoft has found though that “Some clients were configured with IPv6 routing information, but they did not actually have IPv6 connectivity to the Internet. This appears to be the result of a misconfiguration by some Internet Service Providers or buggy home routers. Windows attempts to connect to websites using IPv6, expecting it to work, but it won’t! Eventually, Windows detects that the connection attempt failed and falls back to IPv4 connectivity. However, for users, connectivity to dual-stack websites can be delayed by 10-15 seconds. This obviously causes a problem for web browsers, but any network-connected app faces this issue.”



That's not good. That's the kind of delay that has users screaming on the phone that the Internet is broken.



So in “Windows 8 tests IPv6 connectivity when you connect to a new network that advertises IPv6 routabilty, and it will only use IPv6 if IPv6 connectivity is actually functioning. This approach is a modification of our implementation of RFC 3484. Instead of sorting addresses as a result of policy, we use the actual state of the network as input to our algorithm. On a mis-configured network, this approach improves the experience not only for browsers but also for apps that connect to dual-stack destinations using standard Windows [application programing interfaces] APIs.”



Windows 8 doesn't run this test constantly. “Windows 8 performs the network connectivity test when you first connect to a new network; it caches this information and repeats the test every 30 days. The actual test for connectivity is a simple HTTP GET to an IPv6-only server that is hosted by Microsoft. (For standards buffs, this is implemented between rules 5 and 6 of destination address sorting in our implementation of RFC 3484.) Windows performs a similar network connectivity test for IPv4 connectivity. If both IPv4 and IPv6 are functioning, IPv6 will be preferred.”



Microsoft hasn't made it's RFC 3484 take a hard and fast rule. They realize that on an enterprise networks the business may have provided specific routing information to a particular destination for a reason. In that case, “Windows 8 will honor that preference, regardless of the connectivity determined by Windows. In enterprise environments, Windows assumes that network administrators who configure such routes specifically thought it was a good idea to use those routes.”



In addition, “This change isn’t implemented on networks with Web proxies. In these networks, the proxy provides connectivity to the Internet; so end-to-end testing of IPv6 connectivity is not useful. Instead, Windows 8 simply opens connections to the proxy in the most efficient manner possible.”



Microsoft is also moving its servers and services to the IPv6 Internet. Bing and Skype both support IPv6 today. With the release of “Windows 8 will use IPv6, if available, to download Windows Updates” via IPv6 compatible Content Delivery Networks (CDN)s. Sinofsky also wrote, We are working with CDNs to extend IPv6 support beyond Windows 8. Once that work is complete, even Windows 7 and Windows Vista will automatically use IPv6, where it is available, for connecting to Windows Update.”



Will it work? On simple networks, and with proper support from your ISP and network router vendor it should spin like a top. Network administrators on dual-stacked enterprise networks should keep in mind that Windows 8's is bringing its own approach to routing to the network and keep a close eye on these systems to make sure that Microsoft's take on RFC 3484 works well with your network.



Related Stories:



World IPv6 Day is here



IPv6: When do you really need to switch?



IPv6: It's the end of the Internet as you know it, and I feel fine



First IPv6 Distributed Denial of Service Internet attacks seen



