By additional IPv6 infrastructure we mainly mean tunnelling techniques that one can use on top of the present IPv4 infrastructure without having to make any changes to the IPv4 routing or the routers. This method is often used where the complete infrastructure, or parts of it, is not yet capable of offering native IPv6 functionality. Therefore IPv6 traffic has to cross the existing IPv4 network, which is possible with several different tunnelling techniques described in the following sections. These techniques are often chosen as a first step to test the new protocol and to start integration of IPv6.
Tunnelling is also called encapsulation. It is a process by which information from one protocol is encapsulated inside the packet of another protocol, thus enabling the original data to be carried over the second protocol. This mechanism can be used when two nodes or networks that use the same protocol want to communicate over a network that uses another network protocol. The tunnelling process involves three steps: encapsulation, decapsulation, and tunnel management. It requires two tunnel endpoints, which in the general case are dual-stack IPv4/IPv6 nodes (usually routers), to handle the encapsulation and decapsulation. There will be performance issues associated with tunnelling, both for the latency in (en/de)capsulation and the additional bandwidth used, though the latter is usually marginal.
A tunnel can be configured in four different ways:
1. Router to router, which spans one segment of the end-to-end path between two hosts. This is probably the most common method
2. Host to router, which spans the first segment of the end-to-end path between two hosts, as may be found in the tunnel broker model (described later).
3. Host to host, which spans the entire end-to-end path between two hosts.
4. Router to host, which spans the last segment of the end-to-end path between two hosts. Depending on what kind of setup is used, a tunnel might be “configured” (both sides need to be configured accordingly), “semi-configured” (only one side has to be configured, the other side acts as a gateway) or “automatic”, where nearly nothing needs to be done for the two hosts to communicate via a tunnel.
