6over4

6over4 is an IPv6 transition mechanism meant to transmit IPv6 packets between dual-stack nodes on top of a multicast-enabled IPv4 network. IPv4 is used as a virtual data link layer (virtual Ethernet) on which IPv6 can be run.

How 6over4 works

6over4 defines a trivial method for generating a link-local IPv6 address from an IPv4 address, and a mechanism to perform Neighbor Discovery on top of IPv4.

Link-local address generation

Any host wishing to participate in 6over4 over a given IPv4 network can set up a virtual IPv6 network interface. The link-local address is determined as follows :

For example, host 192.0.2.142 would use fe80:0000:0000:0000:0000:0000:c000:028e as its link-local IPv6 address (192.0.2.142 is c000028e in hexadecimal notation). A shortened notation would be fe80::c000:28e.

Multicast Address Mapping

To perform ICMPv6 Neighbor Discovery, multicast must be used. Any IPv6 multicast packet gets encapsulated in an IPv4 multicast packet with destination 239.192.x.y, where x and y are the penultimate and last bytes of the IPv6 multicast address respectively.

Examples


All-Nodes Multicast (ff02::1) - 239.192.0.1

All-Routers Multicast (ff02::2) - 239.192.0.2

Solicited Node Multicast for fe80::c000:28e (the link-local address of 192.0.2.142) - 239.192.2.142

Neighbor Discovery

Given a link-local address and a multicast addresses mapping, a host can use ICMPv6 to discover its on-link neighbors and routers, and usually perform stateless autoconfiguration, as it would do on top of, e.g. Ethernet.

Limit of 6over4

6over4 relies on IPv4 multicast availability which is not very widely supported by IPv4 networking infrastructure. 6over4 is of limited practical use, and is not supported by the most common operating systems. To connect IPv6 hosts on different physical links, IPv4 multicast routing must be enabled on the routers connecting the links.

ISATAP is a more complex alternative to 6over4 which does not rely on IPv4 multicast.

References