6in4
IPv6 transition mechanisms |
---|
Standards Track |
Experimental |
Informational |
|
Drafts |
Deprecated |
|
6in4 is an Internet transition mechanism for migrating from Internet Protocol version 4 (IPv4) to IPv6. 6in4 uses tunneling to encapsulate IPv6 traffic over explicitly-configured IPv4 links as defined in RFC 4213 (obsoletes RFC 2893 and RFC 1933). The 6in4 traffic is sent over the IPv4 Internet inside IPv4 packets whose IP headers have the IP protocol number set to 41. This protocol number is specifically designated for IPv6 encapsulation.[1] In 6in4, the IPv4 packet header is immediately followed by the IPv6 packet being carried. This means that the encapsulation overhead is simply the size of the IPv4 header of 20 bytes. With an Ethernet Maximum Transmission Unit (MTU) of 1500 bytes, one can thus send IPv6 packets of 1480 bytes without fragmentation. 6in4 tunneling is also referred to as proto-41 static because the endpoints are configured statically. Although 6in4 tunnels are generally manually configured, for example the utility AICCU can configure tunnel parameters automatically after retrieving information from a Tunnel Information and Control Protocol (TIC) server.
There are similarly named methods, namely 6to4 or 6over4, which describe a different mechanism. The method 6to4 makes use of proto-41 too, but instead of static configuration of the endpoints, the endpoint IPv4 address information is derived from the IPv6 addresses within the IPv6 packet header.
Network address translators (NAT)
When an endpoint of a 6in4 tunnel is behind a NAT, one can in some cases still make use of the DMZ feature of a NAT router. The NAT router will then forward all incoming proto-41 packets to the configured host, thus making the tunnel work. Some NAT devices even allow transparent operation of 6in4.
Dynamic 6in4 tunnels and heartbeat
Even though 6in4 tunnels are static in nature, with the help of for example the heartbeat protocol[2] one can still have dynamic tunnel endpoints. The heartbeat protocol signals the other side of the tunnel with its current endpoint location. A tool such as AICCU can then update the endpoints, in effect making the endpoint dynamic while still using the 6in4 protocol. These kind of tunnels are generally called 'proto-41 heartbeat' tunnels.
Security issues
The 6in4 protocol has no security features, thus one can easily inject IPv6 packets by spoofing the source IPv4 address of a tunnel endpoint and sending it to the other endpoint. This problem can partially be solved by implementing network ingress filtering or with IPsec. Another solution is to use a secure protocol such as AYIYA or other tunneling methods that compute digital signatures for each packet thus facilitating verification of packet authenticity.
The mentioned packet injection loophole of 6in4 was exploited for a research benefit in a method called IPv6 Tunnel Discovery [3] which allowed the researchers to discover operating IPv6 tunnels around the world.
Specifications
- RFC 1933, Transition Mechanisms for IPv6 Hosts and Routers, R. Gilligan and E. Nordmark, 1996
- RFC 2893, Transition Mechanisms for IPv6 Hosts and Routers, R. Gilligan and E. Nordmark, 2000
- RFC 4213, Basic Transition Mechanisms for IPv6 Hosts and Routers, R. Gilligan and E. Nordmark, 2005
See also
References
- ↑ "Protocol Numbers".
- ↑ Heartbeat Protocol, J. Massar and P. van Pelt
- ↑ IPv6 Tunnel Discovery, L. Colitti, G. Di Battista, and M. Patrignani
External links
- How do I configure my machine to set up an IPv6 in IPv4 tunnel
- 6in4 and other tunnel setups on Debian
- 6in4 setup on Plan9 OS