(QuickPacket supports IPv6! Get a server from us with promo code PACKETS for 15% off your first invoice)
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 (:).
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
- 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.
Â 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.
Â 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:
- Log on to the server with administrator rights.
- Go to Start > Network > Network and Sharing Center > Change Adapter Setting.
- Right-click on the Local Area Connection of the network adapter and choose â€œI want to set IPv6.â€ Click on Properties.
- Pick TCP/IPv6 and click on Properties.
- Click â€œUse the following IPv6 addressâ€ and in the IPv6 address field, type the IP address you want to use.
6. Press the Tab key and the subnet prefix length will automatically populate with 64.
7. Press the Tab key again and in the Default Gateway field, type the IP address you want to use for your gateway.
Â Â Â Â Â Â Â Â Â Â Â Â Â Â Example
8. In the Preferred DNS Server field, type the IP address of your DNS server
if your IP address sits on your DNS server: fda8:06c3:ce53:a890:0000:0000:0000:0001
9. 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:
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.
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.
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:
- Get-NetIPInterface -AddressFamily IPv6
- Get-NetIPAddress -AddressFamily IPv6
- Get-NetRoute -AddressFamily IPv6
- 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]
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]
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.
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:
- netsh interface ipv6 show address
- netsh interface ipv6 show interface
- netsh interface ipv6 show route
- 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).
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:
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.
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:
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.
A DNS lookup for the host ipv6.google.com
Name:Â Â Â ipv6.l.google.com