How to configure IPv6 in Windows?

Internet Protocol version 6 (IPv6) is the latest version of the Internet Protocol (IP) intended to replace IPv4, which still carries more than 96% of the world’s Internet traffic as of May 2014. This article discusses how you can adapt and configure IPv6 in your Windows machines.

The 128 bits of an IPv6 address are represented in 8 groups of 16 bits each. Each group is written as 4 hexadecimal digits and the groups are separated by colons (:).

Example
2001:0db8:0000:0000:0000:ff00:0042:8329

An IPv6 address may be abbreviated to shorter notations by using the following rules where possible:

One or more leading zeroes from any group of hexadecimal digits are removed.

Consecutive sections of zeroes are replaced with a double colon (::), which can only be used once in an address, as multiple uses would render the address indeterminate. RFC 5952 (http://tools.ietf.org/html/rfc5952) recommends that a double colon must not be used to denote an omitted single section of zeroes.

See below for applications of these rules:

Initial address 2001:0db8:0000:0000:0000:ff00:0042:8329
After removing all leading zeroes 2001:db8:0:0:0:ff00:42:8329
After omitting consecutive sections of zeroes 2001:db8::ff00:42:8329

The loopback address “0000:0000:0000:0000:0000:0000:0000:0001” may be abbreviated to “::1” by using both rules.
As an IPv6 address may have more than one representation, the Internet Engineering Task Force (IETF) has issued a proposed standard for representing them as text.

IPv6 Address Scopes

The following points cover the scopes of an IPv6 address.

Global Unicast address. IPv6’s Global Unicast address is equivalent to an IPv4 Public address. Its scope is the entire IPv6 Internet, so it is globally routable and reachable on the IPv6 Internet. To enable greater efficiency in the routing architecture, Unicast addresses are designed to be aggregated.

Global Routing Prefix (part of the Public Routing Topology—along with 001 prefix)

Subnet ID (Site Topology)

Interface ID

Link-local address.An IPv6 Unicast Link-local address is similar to the IPv4 APIPA address used by machines running Microsoft® Windows®. It enables hosts on the same subnet to communicate with each other. It is always automatically configured even without all other unicast addresses.

FE80::/64 prefix

Single subnet, router-less configuration

Used for some Neighbor-discovery process

Compared to routable addresses, link-local addresses are ambiguous so Zone IDs are used to identify specific interfaces

Example
fe80::2b0:d0ff:fee9:4143%3

Windows Vista and above display the IPv6 Zone ID of local addresses in the ipconfig output

Unique Local/Site-local address (ULA). Site-local addresses provide a private addressing alternative to global addresses for intranet traffic. It can be reused to address multiple sites within an organization as a site local address prefix can be duplicated.

RFC 4193 define this unique local address

Equivalent to IPv4 Private address

FD00::/8 prefix

Replacement for site-local addresses

Global scope; no Zone ID required

IMPORTANT: The IPv6 addressing architecture requires all subnets using Globally Unique addresses and ULAs to always have 64-bit prefix lengths. Any subnet prefix length other than 64-bit breaks many features of IPv6.

Prerequisites

Decide whether you will use public IPv6 addresses that are globally aggregatable or if you will use a private address space. In using public IPv6 addresses, you would need to get an IPv6 address prefix from your ISP. If your ISP does not support IPv6 yet, you can get an address prefix from a tunnel broker.

If you want to use private IPv6 addresses, use locally unique addresses. Do note however that most operating systems and applications still support site-local addresses, which are officially deprecated. This means that you need to get a unique prefix. There are already a growing number of sites that generate locally unique address prefixes like SixXS or Unique Local IPv6 Generator. You can use private addresses in the interim to immediately provide IPv6 connectivity in your intranet then move on to public IPv6 addresses later.

IPv6 can configure itself even without the use of DHCP. It is installed and enabled by default in the following Microsoft products:

Windows Server 2012

Windows Server 2008 R2

Windows Server 2008

Windows 8

Windows 7

Windows Vista

IPv6 for Windows is also designed to auto-configure itself. It automatically sets up link-local addresses for communication between nodes on a link. Moreover, if there is an Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) router or an IPv6 router on the host’s subnet, the host uses received router advertisements to automatically configure additional addresses, a default router, and other setup parameters.

Note that IPv6 is not installed in Windows XP and Windows Server 2003 systems.

Configuration in IPv6-ready Network Systems

For Windows 8 and Server 2012, if you already have an unconfigured but IPv6-ready network infrastructure, you can still use IPv6 and configure IPv6 addresses in these situations:

For home users with public IP addresses, Windows will try to establish a connection using the IPv6 transition technology Teredo. Teredo will work only if the Windows machine is not joined to a domain and has UDP access to the Internet, with no firewall-blocking packets.

If Teredo fails for home users with public IP addresses, Windows will use another IPv6 transition technology named 6to4, which requires only a publicly routable IP address.

Windows can resolve the name of your network using ISATAP through DNS or name broadcasts. In this situation, Windows will assume that the host is an ISATAP server capable of accepting IPv6 packets encapsulated in IPv4 packets. It will then deliver these packets to IPv6 hosts, encapsulate the replies, and send those replies back. ISATAP works in domain-joined, non-domain-joined, and non-routable IP address environments.

Manual Configuration

You can manually configure IPv6 addresses and other parameters in Windows by using the following tools:

Properties of TCP/IPv6 component

You can configure basic IPv6 settings through the properties of the TCP/IPv6 component.
The following instructions are to statically address Windows 2008 and Windows 2008 R2 servers:

You can configure IPv6 settings from the interface of IPv6 context of the Netsh.exe tool. You can also configure IPv6 addresses, default gateways, and DNS servers at the command line by using commands in the “netsh interface ipv6” context.

Configuring IPv6 addresses
Use the “netsh interface ipv6 add address” command with the following syntax:

ExampleTo configure with infinite valid and preferred lifetimes the IPv6 unicast address 2001:db8:290c:1291::1 on the interface named “Local Area Connection” and make the address persistent, use the following command:

By default, the DNS server is added to the end of the list of DNS servers. If an index is specified, the DNS server is placed in that position in the list and the other DNS servers are moved down the list.

ExampleTo add a DNS server with the IPv6 address 2001:db8:99:4acd::8 that uses the interface named “Local Area Connection,” use the following command:
netsh interface ipv6 add dnsserver “Local Area Connection” 2001:db8:99:4acd::8

You can obtain IPv6 configuration information with the following commands in the “netsh interface ipv6” context of the Netsh tool:

Windows includes the following IPv6-enabled command-line tools that you can use for network troubleshooting:

o Ipconfig
o Route
o Ping
o Tracert
o Pathping
o Netstat

To ping an IPv6 address, use the syntax: ping IPv6Address [%ZoneID]. Note that the zone ID is not needed when the destination is a global address.

Example
To send ICMPv6 Echo Request messages to the link-local address fe80::260:97ff:fe02:6ea5 using zone ID 4 (the interface index of an installed Ethernet adapter), use the following command:

ping fe80::260:97ff:fe02:6ea5%4

This ping command includes the -6 flag, which forces Ping to use IPv6. If all is well, you should see a reply, which should be quite fast especially if you have a native IPv6 connection to the Internet. If your echo request does not get a reply, there might be a firewall or networking device blocking ICMPv6 between your Windows system and the target.

Once you know you have connectivity to the Internet using IPv6, be sure to test some IPv6-only websites to verify that everything is working properly.