Practical Technology

for practical people.

Troubleshooting IPv6 on Windows 7 (and Why It’s Worth the Bother)


You may not need IPv6 right now, but you will soon. Fortunately, Windows 7 supports the advanced networking protocol better than any other Windows version. But that doesn’t mean you should rely on the default IPv6 configuration.

If you’re an old tech coot like me, you know that the “Imminent Death of the Internet” has been predicted for decades now. While the Internet is in no danger of dying anytime soon, the days of relying on the old core TCP/IP protocol IPv4 do appear to be coming to an end.

After years of delaying it with techniques like Network Address Translation (NAT), we’re finally really running out of IPv4 addresses. Major ISPs like Comcast, and Web sites such as YouTube now support IPv6. This time around, IPv6 really is getting attention in corporate networks and the Internet. Fortunately for the enterprise desktop, Windows 7 is also ready.

Early Windows versions of IPv6 were, ah, crude. Though that’s not to say that Windows 7 does a perfect job with IPv6 even now. Certainly, the people who appear to have IPv6 connectivity but no network access have learned this the hard way.

As Scott Hogg, the director of advanced technology services for Global Technology Resources, pointed out in a NetworkWorld article, Windows Server 2008 and Windows 7 both still use “random interface identifiers when creating its IPv6 addresses.”

That’s not how IPv6 addressing should work. Instead, an IPv6 device should autoconfigure its address with the Neighbor Discovery Protocol (NDP) to determine their network and interface identifier and to form the computer’s 128-bit IPv6 address. The details of how addresses should be assigned are in these documents:

For some reason, Microsoft mixed up how the interface identifier should be created even though Microsoft engineers helped write RFC 4941. Be that as it may, you can force Windows 7 to use the correct method by issuing the following command from a DOS prompt:

netsh interface ipv6 set global randomizeidentifiers=disabled

I recommend that you run this as an automated command on all your new Windows 7 installations. Doing so avoids any possible IPv6 network problems with other Windows 7 systems and with IPv6 address-compliant networking equipment such as Cisco Catalyst Switches.

That out of the way, Windows 7 does quite well with IPv6. For starters, Windows 7 comes with two networking programs that rely on IPv6. These are DirectAccess, Microsoft’s IPv6 enabled Virtual Private Networking (VPN) program, and the small group friendly HomeGroup.

If your networking equipment is IPv6 ready, then Windows 7 is ready as well. However, you may find that your gateway, routers, and switches aren’t IPv6 ready. The only long-term solution to this problem is to get network hardware that works with IPv6.

I know, I know, just what you need: another mandatory hardware update. Many businesses haven’t seen a compelling reason to upgrade to IPv6. With the upcoming shortage of IPv4 addresses on the Internet, that’s about to change. While your core business can continue to use its existing addresses, by the fall of 2012, according to the most optimistic estimates, we’ll be out of IPv4 addresses.

While this shortage doubtlessly will be mitigated by the creation of a market for TCP/IP addresses similar to the ones that currently exist for domain names, the bottom line is that you’re going to find it increasingly difficult and more expensive to get additional blocks of IPv4 addresses for new offices and branches. In short, you’ll have no choice but to upgrade to IPv6.

In the meantime, though, you’re much more likely to run into problems with non-IPv6 compliant network equipment. To get around this, you have several choices (besides begging for more budget from the CFO).

First, you can use Teredo. This is an IPv6 transition technology that provides address assignment and tunneling for IPv6 traffic. Teredo does this by hiding IPv6 packets within IPv4 User Datagram Protocol (UDP) messages.

In practice, on Windows 7 systems you do this by enabling the Microsoft Teredo Tunneling Adapter device from the Device Manager (or installing it, if for some reason it isn’t there). After opening Device Manager, click on the “View” menu and select “Show Hidden Devices.” Next, scroll down to locate “Network Adapters.” There, you’ll find the Teredo Network Adapter. Right click on it and select “Update Driver” to make sure you have the most current version. After a reboot, Teredo should be working.

If that doesn’t get Teredo underway, you may also need to enable the Teredo Adapter. To do that, open an elevated command prompt and run :

netsh interface ipv6 set teredo client

That should get your Windows 7 system working with Teredo.

Of course, if you have a cranky IPv4-specific gateway, you may still need to set up a Teredo server or relay to make it out of your IPv6 intranet to the Internet. Fortunately, Windows Server 2008 R2 with DirectAccess up and running provides a Teredo server by default. For more on that, and how to work with Teredo, I highly recommend the Technet Magazine article, Support for IPv6 in Windows Server 2008 R2 and Windows 7.

Of course, if worst comes to worst you can always disable IPv6. While you can do this with regedit, it’s easier to just turn it off by just going to the Network and Sharing Center and from there selecting “Change adapter settings.” Once at the Network Connections window, pick the “Local Area Connection” for the network card, then “Change settings of this connection,” un-check the box for “Internet Protocol Version 6 (TCP/IPv6).” Close all the windows and reboot.

Just be sure to remember one thing: Before you replace that Windows 7 PC with a new computer, you are likely to need to reactivate IPv6. Whether or not you’re ready, IPv6 is coming to the Internet. Fortunately, for you, Windows 7 is already set up for IPv6. Alas, now if we could only say that about the rest of our networking equipment!

A version of this story first appeared in IT Expert Voice.

Leave a Reply