IPv6 on Windows | The Definitive Guide

Updated:

Volker D. Pallas

IPv6

IPv6 on Windows The Definitive Guide
IPv6 Act Now
Course Index
Part 1 – Introduction: What is IPv6
Part 2 – IPv6 Addressing & Subnetting
Part 3 – IPv6 Headers & Header Extensions
Part 4 – ICMPv6 & IPv6 Neighborships
Part 5 – IPv6 Configuration, EUI-64, SLAAC & Dual Stack
Part 6 – IPv6 DHCP (DHCPv6)
Part 7 – IPv6 on Windows
Part 8 – IPv6 on Linux
Part 9 – IPv6 on Mac
Part 10 – IPv6 DNS, Monitoring & Address Management
Part 11 – IPv6 Routing
Part 12 – IPv6 Security & Tunneling
Part 13 – IPv6 Internet Connection & Address Planning

IPv6 on Windows

In this part we will have a look at the different client operating system’s IPv6 support and how to manage an IPv6 network full-stack, including monitoring and IP address planning and management.

IPv6 Operating System Support State

Let’s have a look at IPv6 support and some history for Microsoft Windows, Apple MacOS and Linux implementations of our new Internet Protocol.

Please watch my following video with an introduction to IPv6 for the different operating systems, including Windows:

IPv6 on Windows

Microsoft was surprisingly quick after the first IPv6 draft RFC1883 was published in December 1995 by offering the first IPv6 stack in trial version for Windows 95 and Windows 98 by 1998.

In 2001 with Windows XP broad support for IPv6 was integrated.

Since 2006 with Windows Vista, IPv6 is enabled by default. Yes, on Windows Server, too!

So to you all, running IPv6 on Windows 10 this is great news!

Microsoft Windows uses IPv6 Privacy Extensions (randomized Interface Identifiers) by default with Stateless Address Autoconfiguration (SLAAC) since Vista.

The lifetime of a public address is reset (renewed) on each Router Advertisement, which makes the address theoretically static!

An additional temporary address is generated for outbound connections which changes.

So in summary Microsoft’s approach enables more or less anonymous outbound connections, while keeping a semi-static address for inbound management of the client.

Microsoft Windows uses IPv6 Privacy Extensions (randomized Interface Identifiers) by default with SLAAC since Vista.

How to show Interfaces with IPv6 on Windows

netsh interface ipv6 show interface

The output will provide all interfaces including tunnel interfaces for Teredo or 6to4 and loopback interfaces, each with the appropriate Interface Index (IDX), Metric (MET) and MTU size along with the current status.

How to configure a static address for IPv6 on Windows

netsh interface ipv6 add address <interface-id> <IPv6 address>

This command can be used to add an IPv6 address to an existing interface.

How to show all interface IPv6 addresses on Windows

netsh interface ipv6 show address

This command shows all active IPv6 addresses on the system, including loopback, Link-Local, global and tunnel interfaces.

How to set a static route for IPv6 on Windows

netsh interface ipv6 add route <IPv6 address>/<prefix-length> <interface-id> [<nexthop-ipv6-address>]

With this command you can add a static IPv6 route towards the specified address with prefix length into your IPv6 routing table, that uses the specified next hop as a gateway.

How to show the routing table for IPv6 on Windows

netsh interface ipv6 show routes [level=verbose]

Display the Windows IPv6 routing table with this simple command. The Verbosity level is optional and you do not usually need it. Check out the difference in output if you like.

How to show the neighbor cache for IPv6 on Windows

netsh interface ipv6 show neighbors

You have learned before in this tutorial, what purpose the IPv6 neighbor cache has. Now you can have a look at your Microsoft Windows IPv6 neighbors yourself. Try it!

How to disable or enable the firewall for IPv6 on Windows

netsh interface ipv6 set interface <interface-id> firewall={enabled|disabled}

I would never recommend disabling a firewall over configuring it correctly, so use this command to disable the firewall maybe in a lab but not in production environments.

How to disable the randomized interface identifiers for IPv6 on Windows

netsh interface ipv6 set global randomizeidentifiers=disabled

Randomized interface identifiers are part of the IPv6 Privacy Extensions but can be disabled or enabled individually. Enabling this randomization can increase security and privacy. Play with the setting in your lab und check out the difference between random numbers and your own burned-in MAC address used with the EUI-64 address generation process.

How to disable the Privacy Extensions for IPv6 on Windows

netsh interface ipv6 set privacy state=disabled

You can disable the IPv6 Privacy Extensions completely with this one command.

How to do a Ping to verify connectivity for IPv6 on Windows

ping6 <ipv6-address> [<interface-id>]

Ping6 is the IPv6 alternative to the old Ping command, which is used to check if there is end-to-end reachability between your host and a destination. You can either use an IPv6 address for the destination, or use a DNS name (it works!) but be aware – when using a DNS name you cannot be 100% sure that IPv6 is used as transport instead of IPv4.

Check out the parts about Source Protocol Selection and Source Address Selection to understand which Protocol and which address is used when initiating a connection.

How to do a Traceroute to verify Routing and Path of IPv6 on Windows

tracert6 <ipv6-address>

For Traceroute, tracert6 is the IPv6 alternative to the IPv4 tracert command, which is used to check the different hops and the routing path between your host and a destination. You can either use an IPv6 address for the destination, or use a DNS name (it works!) but be aware – when using a DNS name you cannot be 100% sure that IPv6 is used as transport instead of IPv4.

Same as with Ping, check out the parts about Source Protocol Selection and Source Address Selection again to understand which Protocol and which address is used when initiating a connection.

Caution: why you should never disable IPv6 on Windows!

May I quote Microsoft:

Do not deactivate IPv6 on Windows!

IPv6 is in integral part of Windows. If you disable IPv6 on Windows 10 or any earlier Version until Windows Vista, Windows 2008 or Windows 8, some components will not work anymore.

Components that are based on IPv6 include, but are not limited to:
HomeGroup, Remote Assistance, DirectAccess, Windows Mail.

Microsoft recommends to leave IPv6 enabled, even if there is no IPv6 connectivity to the outside (e.g. the Internet)

I do appreciate that. Now that you are learning everything about IPv6, there is no need to disable it. It’s way better to configure it correctly and enable it, right!

Microsoft recommends to leave IPv6 enabled, even if there is no IPv6 connectivity to the outside (e.g. the Internet)

How to disable IPv6 on Windows

You should not disable IPv6 on Windows, but if you still want to or even need to, follow these simple steps for disabling IPv6 on Windows 10:

  1. Right-click the Network icon on your Desktop and open Network and Sharing Center
  2.  Click the side option Change Adapter Settings
  3. Right-click on the network adapter you want to disable IPv6 on and click Properties
  4. Uncheck the Internet Protocol Version 6 (TCP/IPv6) box
  5. Confirm with OK button

As soon as you want to re-enablle IPv6 on your Windows machine, the following will guide you:

How to enable IPv6 on Windows

I’m happy you want to enable IPv6 on Windows. This will be quick and easy!

Just follow these steps:

  1. Right-click the Network icon on your Desktop and open Network and Sharing Center
  2.  Click the side option Change Adapter Settings
  3. Right-click on the network adapter you want to enable IPv6 on and click Properties
  4. Check the Internet Protocol Version 6 (TCP/IPv6) box
  5. Confirm with OK button

 Now IPv6 is enabled for this interface. In case you first activated it just now, you might want to do other configuration like setting an IPv6 address or set a (default) route on your system. Just follow the different steps in this article to get your Windows machine fully IPv6 capable!

Troubleshooting IPv6 on Windows

Watch my video on troubleshooting IPv6 on Windows:

Apart from the links throughout this course I recommend the following resources for additional information:

  1. The Internet Society (ISOC) IPv6 Portal
  2. Test your IPv6 connectivity on test-ipv6.com
  3. The official IANA list of assigned IPv6 address space is very interesting
  4. The Google IPv6 deployment statistics
  5. The RIPE NCC IPv6 working group and mailing list

Book recommendations on IPv6

I can recommend the following 3 books which I enjoyed reading:

IPv6 Address Planning
IPv6 Fundamentals
DNS & Bind on IPv6

This concludes IPv6 Foundation Part 7: IPv6 on Windows of the original IPv6 Foundation Master Class.

Previous Part: IPv6 Foundation Part 6: IPv6 DHCP (DHCPv6)

Next Part: IPv6 Foundation Part 8: IPv6 on Linux