6to4 is an address assignment and router-to-router automatic tunneling technology that is used to provide unicast IPv6 connectivity between IPv6 sites and hosts across the IPv4 Internet. 6to4 is described in RFC 3056. 6to4 uses the global address prefix:
in which WWXX:YYZZ is the NLA ID portion of a global address and the colon hexadecimal representation of a public IPv4 address (w.x.y.z) assigned to a site. The full 6to4 address is:
2002:WWXX:YYZZ:[SLA ID]:[Interface ID]
RFC 3056 defines the following terms:
A 6to4 host is any IPv6 host that is configured with at least one 6to4 address (a global address with the 2002::/16 prefix). 6to4 hosts do not require manual configuration and they create 6to4 addresses by using standard address autoconfiguration mechanisms.
A 6to4 router is an IPv6/IPv4 router that supports the use of a 6to4 tunnel interface and is typically used to forward 6to4-addressed traffic between the 6to4 hosts within a site and other 6to4 routers or 6to4 relay routers on an IPv4 network, such as the Internet. 6to4 routers require additional processing logic for proper encapsulation and decapsulation and might require additional manual configuration.
A 6to4 relay router is an IPv6/IPv4 router that forwards 6to4-addressed traffic between 6to4 routers on the Internet and hosts on the IPv6 Internet.
Figure 11-9 shows 6to4 components.
Figure 11-9. 6to4 components
Within a site, local IPv6 routers advertise 2002:WWXX:YYZZ:[SLA ID]::/64 prefixes so that hosts can create an autoconfigured 6to4 address and 64-bit prefix routes are used to deliver traffic between 6to4 hosts within the site. Hosts on individual subnets are configured automatically with a 64-bit subnet route for direct delivery to neighbors and a default route with the next-hop address of the advertising router. All IPv6 traffic that does not match a 64-bit prefix used by one of the subnets within the site is forwarded to a 6to4 router on the site border.
The 6to4 router on the site border has a 2002::/16 route that is used to forward traffic to other 6to4 sites and a default route (::/0) that is used to forward traffic to a 6to4 relay router.
In the example network shown in Figure 11-9, Host A and Host B can communicate with each other because of a default route that uses the next-hop address of the 6to4 router in Site 1. When Host A communicates with Host C in another site, Host A sends the traffic as an IPv6 packet to the 6to4 router in Site 1. The 6to4 router in Site 1, using the 6to4 tunnel interface and the 2002::/16 route in its routing table, encapsulates the packet with an IPv4 header and tunnels it to the 6to4 router in Site 2. When the 6to4 router in Site 2 receives the tunneled packet, it removes the IPv4 header and, using the 64-bit prefix route in its routing table, forwards the IPv6 packet to Host C.
In this example, Host A (with the interface ID ID_A) resides on subnet 1 within Site 1, and uses the public IPv4 address of 126.96.36.199. Host C (with the interface ID ID_C) resides on subnet 2 within Site 2, and uses the public IPv4 address of 188.8.131.52. When the 6to4 router in Site 1 sends the IPv4-encapsulated IPv6 packet to the 6to4 router in Site 2, the addresses in the IPv6 and IPv4 headers are as listed in Table 11-3.
Table 11-3. Example 6to4 Addresses
IPv6 Source Address
IPv6 Destination Address
IPv4 Source Address
IPv4 Destination Address
For a more detailed example of 6to4 traffic using ISATAP-derived interface identifiers, see "ISATAP" in this chapter.
When you use 6to4 hosts, an IPv6 routing infrastructure within a site, a 6to4 router at the site boundary, and a 6to4 relay router, the following types of communication are possible:
This type of communication is available by using the IPv6 routing infrastructure, which provides reachability to all hosts within the site. In Figure 11-9, this is the communication between Host A and Host B.
This type of communication occurs when a 6to4 host forwards IPv6 traffic-that is destined to a 6to4 host in another site-to the local site 6to4 router. The local-site 6to4 router tunnels the IPv6 traffic to the 6to4 router at the destination site on the IPv4 Internet. The 6to4 router at the destination site removes the IPv4 header and forwards the IPv6 packet to the appropriate 6to4 host by using the IPv6 routing infrastructure of the destination site. In Figure 11-9, this is the communication between Host A and Host C.
This type of communication occurs when a 6to4 host forwards IPv6 traffic-that is destined for an IPv6 Internet host-to the local-site 6to4 router. The local-site 6to4 router tunnels the IPv6 traffic to a 6to4 relay router that is connected to both the IPv4 Internet and the IPv6 Internet. The 6to4 relay router removes the IPv4 header and forwards the IPv6 packet to the appropriate IPv6 Internet host by using the IPv6 routing infrastructure of the IPv6 Internet. In Figure 11-9, this is the communication between Host A and Host D.
All of these types of communication use IPv6 traffic without the requirement of obtaining either a direct connection to the IPv6 Internet or an IPv6 global address prefix from an ISP.
Because 6to4 requires only a single IPv4 public address to obtain global IPv6 connectivity, it is likely to be widely used.
Support for 6to4 hosts and 6to4 routers is provided by the IPv6 Helper service (known as the 6to4 service in Windows XP) that is included with the IPv6 protocol for Windows XP and the Windows .NET Server 2003 family. If there is a public IPv4 address assigned to an interface on the host and a global prefix is not received in a router advertisement, the IPv6 Helper service:
The results of the IPv6 Helper service autoconfiguration vary depending on the configuration of the host. Figure 11-10 shows how 6to4 is configured for different types of hosts running Windows XP or the Windows .NET Server 2003 family (except IPv6 Host D).
For a host that is assigned a private IPv4 address and receives a router advertisement for a global prefix, there are no 6to4 addresses assigned to the 6to4 Tunneling Pseudo-Interface. Addresses are autoconfigured based on the global prefix and both a 64-bit global prefix route and a default route being present in the routing table. This configuration corresponds to Host A, Host B, and Host C in Figure 11-10.
For a host that is assigned a public IPv4 address and does not receive a router advertisement for a global prefix, a 6to4 address of the form 2002:WWXX:YYZZ::WWXX:YYZZ is configured automatically on the 6to4 Tunneling Pseudo-Interface. A 2002::/16 route using the 6to4 Tunneling Pseudo-Interface is added and, if the DNS query for the 6to4 relay router is successful, a default route using the 6to4 Tunneling Pseudo-Interface and the next-hop address of the 6to4 address of the 6to4 relay router is added. This configuration corresponds to Host E in Figure 11-10, a host that is connected directly to the IPv4 Internet. In this case, the host is acting as its own site and its own 6to4 router.
The IPv6 Helper service can also enable a computer running Windows XP or the Windows .NET Server 2003 family to act as a 6to4 router by utilizing the configuration of the Internet Connection Sharing (ICS) feature. This configuration corresponds to the 6to4 routers in Site 1 and Site 2 in Figure 11-10.
Figure 11-10. 6to4 for Windows XP or the Windows .NETServer family hosts
If ICS is enabled on an interface that is assigned a public IPv4 address, the IPv6 Helper service:
The public interface is connected to the Internet. The private interface is connected to a single-subnet intranet and uses private IPv4 addresses from the 192.168.0.0/24 prefix.
The router advertisements advertise the ICS computer as a default router and contain a global 6to4 address prefix that is based on the public IPv4 address assigned to the public interface. The SLA ID in the 6to4 address prefix is set to the interface index of the interface on which the advertisements are sent.
For example, for an ICS computer using the public IPv4 address of 184.108.40.206 and interface 5 as the interface index of the private interface, the advertised prefix would be 2002:836B:1759:5::/64. Private hosts receiving this router advertisement would create global addresses through normal address autoconfiguration and add a 2002:836B:1759:5::/64 route for the local subnet and a default route with a next-hop address of the link-local address of the ICS computer's private interface. Private hosts can communicate with each other on the same subnet by using the 2002:836B:1759:5::/64 route. For all other destinations to other 6to4 sites or the IPv6 Internet, the IPv6 packets are forwarded to the ICS computer by using the default route.
For traffic to other 6to4 sites, the ICS computer uses its 2002::/16 route and encapsulates the IPv6 traffic with an IPv4 header and sends it across the IPv4 Internet to another 6to4 router. For all other IPv6 traffic, the ICS computer uses its default route and encapsulates the IPv6 traffic with an IPv4 header and sends it across the IPv4 Internet to a 6to4 relay router.
To configure 6to4 parameters manually, use commands in the netsh interface ipv6 6to4 context.
The IPv6 Helper service is not performing network address translation on the IPv6 packets being forwarded. However, ICS is providing network address translation services on IPv4 packets being forwarded to and from private hosts. The IPv6 Helper service uses the ICS configuration to determine the public IPv4 address and public interface.