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.

Do not forget to check if your Microsoft product supports IPv6. Go here to read Microsoft’s official list.

Auto-configuration in Windows

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:

  1. Log on to the server with administrator rights.
  2. Go to Start > Network > Network and Sharing Center > Change Adapter Setting.
  3. Right-click on the Local Area Connection of the network adapter and choose “I want to set IPv6.” Click on Properties.
  4. Pick TCP/IPv6 and click on Properties.
  5. Click “Use the following IPv6 address” and in the IPv6 address field, type the IP address you want to use.
    Example
    fda8:06c3:ce53:a890:0000:0000:0000:0001
  1. Press the Tab key and the subnet prefix length will automatically populate with 64.
  2. Press the Tab key again and in the Default Gateway field, type the IP address you want to use for your gateway.
    Example
    fda8:06c3:ce53:a890:0000:0000:0000:0005
  1. In the Preferred DNS Server field, type the IP address of your DNS server
    Example
    if your IP address sits on your DNS server: fda8:06c3:ce53:a890:0000:0000:0000:0001
  1. Click OK. Close to save and exit.
  • Windows PowerShell

In Windows Server 2012 and Windows 8, you can configure IPv6 addresses, default gateways, and DNS servers at the Windows PowerShell command prompt. You can use the following PowerShell cmdlets:

o   Set-NetIPAddress
o   Set-NetIPInterface
o   Set-NetIPv6Protocol
o   Set-NetNeighbor
o   Set-NetRouteWindows

Configuring Addresses

To configure IPv6 addresses, you can use the New-NetIPAddress cmdlet.

Example
To configure the IPv6 Unicast address 2001:db8:290c:1291::1 on the interface named “Wired Ethernet Connection,” use the following command:

New-NetIPAddress –InterfaceAlias “Wired Ethernet Connection” –IPAddress 2001:db8:290c:1291::1

Adding Default Gateways

To configure a default gateway, you can use the New-NetRoute Windows PowerShell cmdlet.

Example
To add a default route that uses the interface named “Wired Ethernet Connection” with a next-hop address of fe80::2aa:ff:fe9a:21b8, use the following command:

New-NetRoute –DestinationPrefix ::/0 –InterfaceAlias “Wired Ethernet Connection” –NextHop fe80::2aa:ff:fe9a:21b8

Adding DNS Servers

To configure the IPv6 addresses of DNS servers, you can use the Set-DnsClientServerAddress Windows PowerShell cmdlet.

Example
To add a DNS server with the IPv6 address 2001:db8:99:4acd::8 that uses the interface named “Wired Ethernet Connection,” use the following command:

Set-DnsClientServerAddress -InterfaceAlias “Wired Ethernet Connection” -ServerAddresses 2001:db8:99:4acd::8

Use these Windows PowerShell commands to display information about the IPv6 configuration of a computer:

o   Get-NetIPInterface -AddressFamily IPv6
o   Get-NetIPAddress -AddressFamily IPv6
o   Get-NetRoute -AddressFamily IPv6
o   Get-NetNeighbor -AddressFamily IPv6

  • Netsh.exe tool

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:

netsh interface ipv6 add address [interface=]InterfaceNameorIndex[address=]IPv6Address[/PrefixLength] [[type=]unicast|anycast] [[validlifetime=]Time|infinite] [[preferredlifetime=]Time|infinite] [[store=]active|persistent]

Example
To 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:

netsh interface ipv6 add address “Local Area Connection” 2001:db8:290c:1291::1

Adding Default Gateways

Use the “netsh interface ipv6 add route” command and add a default route (::/0) with the following syntax:

netsh interface ipv6 add route [prefix=]::/0 [interface=]InterfaceNameorIndex [[nexthop=]IPv6Address] [[siteprefixlength=]Length] [[metric=]MetricValue] [[publish=]no|yes|immortal] [[validlifetime=]Time|infinite] [[preferredlifetime=]Time|infinite] [[store=]active|persistent]

Example
To add a default route that uses the interface named “Local Area Connection” with a next-hop address of fe80::2aa:ff:fe9a:21b8, use the following command:

netsh interface ipv6 add route ::/0 “Local Area Connection” fe80::2aa:ff:fe9a:21b8

Adding DNS Servers

To configure the IPv6 addresses of DNS servers, use the “netsh interface ipv6 add dnsserver” command with the following syntax:

netsh interface ipv6 add dnsserver [name=]InterfaceName[[address=]IPv6Address] [[index=]PreferenceValue]

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.

Example
To 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:

o   netsh interface ipv6 show address
o   netsh interface ipv6 show interface
o   netsh interface ipv6 show route
o   netsh interface ipv6 show neighbors

Note that you can also view IPv6 addresses and routes using the Ipconfig.exe and Route.exe tools (i.e. ipconfig and route print -6 commands).

Disabling IPv6

Though you cannot remove IPv6 support from Windows Vista to Server 2012 R2, you can disable it.

You can also just unbind IPv6 from the physical adapters. This will mean however, that IPv6 will still be running and can still be used to connect to IPv6 sites over IPv4. Read the Microsoft Support article “How to disable IP version 6 or its specific components in Windows” for more details.

Connectivity Testing and Troubleshooting

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.

Example
A DNS lookup for the host ipv6.google.com

> ipv6.google.com
Server:  [YOUR-DNS_SERVER-IP]
Address:  <YOUR-DNS_SERVER-IP>

Non-authoritative answer:
Name:    ipv6.l.google.com
Address:  2607:f8b0:4002:c06::71
Aliases:  ipv6.google.com

 See our Knowledgebase for more How-To articles.

Comments are closed.