Interoperability between IPv4 and IPv6 addressing is often achieved and configured using transition technologies. The RFC 1752 contains the recommendations for the transition criteria such as new and existing host upgrades and configuration.
The definitions for the transition mechanisms for IPv6 hosts and routers are contained in the RFC 4213 document and the following addresses are defined to ease the transition process from IPv4 to IPv6:
- IPv4-compatible addresses: The IPv4-compatible address is used by nodes communicating with IPv6 over an IPv4-only infrastructure. The IPv6 traffic is encapsulated with an IPv4 header and sent to a destination host. The IPv4-compatible addresses support has been deprecated and it is not supported in Windows operating systems.
- IPv4-mapped addresses: The IPv4-mapped address, 0:0:0:0:0:FFFF:w.x.y.z or ::FFFF:w.x.y.z, is used for the internal representation of an IPv4 node to an IPv6 node. w.x.y.z is the dotted-decimal representation of a public IPv4 address.
- Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) addresses: ISATAP addresses are defined in RFC 5214 and are composed of an ::0:5efe:w.x.y.z interface identifier and a valid 64-bit unicast address prefix. If a node's address is based on a private IPv4 address, then ::0:5EFE:w.x.y.z is used, where w.x.y.z is a private IPv4 address.
Alternatively, if a node's address is a public IPv4 address, then ::200:5EFE:w.x.y.z is used, where w.x.y.z is a public IPv4 address. ISATAP nodes do not require manual configuration to enable the functionality – it can be done automatically through Router Advertisement messages.
Enabling ISATAP is possible by using several methods, as follows:
- The netsh command. For example, use netsh interface ipv6 isatap set router w.x.y.z.
- By using the GPO or Group Policy Objects settings.
- By using PowerShell; you can use the following PowerShell command to configure ISATAP: Set-NetIsatapConfiguration – Router w.x.y.z.
- 6to4 addresses: 6to4 addresses are defined in RFC 3056 and are based on the 002:WWXX:YYZZ::/48 prefix, where WWXX:YYZZ is the colon hexadecimal representation of 2001::/32. 6to4 traffic is encapsulated with an IPv4 header and sent over an IPv4 network. Encapsulation or tunneling is done automatically on the sending and receiving end, or on a forwarding router.
A Windows Server 2016 computer can act as a 6to4 router by completing the following steps (using Netsh or PowerShell):
- You can enable the 6to4 service as follows:
- Netsh: netsh interface 6to4 set state enabled
- PowerShell: Set-Net6to4Coniguration -State Enabled
- You can enable forwarding on the 6to4 tunneling interface as follows:
- Netsh: netsh interface ipv6 set interface InterfaceNameOrIndex forwarding=enabled
- PowerShell: Set-NetIPInterface -InterfaceAlias Name -AddressFamily IPv6 -Forwarding Enabled
- Teredo addresses: Teredo addresses are defined in RFC 4380 and are based on the prefix. They are used to create global IPv6 addresses for the nodes that are connected to the IPv4 network and provide support for NAT nodes. If, for example, your internal network is using private IPv4 addresses and you want to provide IPv6 connectivity though the internet, then Teredo is your choice as it supports NAT.
To configure Teredo, use the PowerShell Set-NetTeredoConfiguration cmdlet.