Tunneling Configuration Options
The configuration of each of these options ranges from simple to rather complex. Each of the following sections takes a look at the steps required to configure these options in a basic environment.
Manual IPv6 Tunnels
The configuration of manual IPv6 tunnels is one of the simplest to perform because these types of tunnel are limited to a single source and destination. Table 1 shows the steps required to configure a manual IPv6 tunnel.
Table 1- Manual IPv6 Tunnel Configuration
1 |
Enter global configuration mode. |
router#configure terminal |
2 |
Create a tunnel interface and enter interface configuration mode. |
router(config)#interface tunnel tunnel-num |
3 |
Assign an IPv6 address that will be used to communicate between each tunnel endpoint. Note that only two addresses are required. |
router(config-if)#ipv6 address ipv6-prefix / prefix-len [eui-64] |
4 |
Define the source for the tunnel; this can either be an IPv4 address (or a hostname that resolves to one) or an interface that has already been configured with an IPv4 address. |
router(config-if)#tunnel source source-ip|source-interface |
5 |
Define the destination for the tunnel; this can only be an IPv4 address (or a hostname that resolves to one). |
router(config-if)#tunnel destination destination-ip |
6 |
Configure the tunnel mode type. |
router(config-if)#tunnel mode ipv6ip |
GRE IPv6 Tunnels
The configuration of an IPv6 generic routing encapsulation (GRE) tunnel is similar to that of a manual IPv6 tunnel. Table 2 shows the steps required to configure a GRE IPv6 tunnel.
Table 2 - GRE IPv6 Tunnel Configuration
1 |
Enter global configuration mode. |
router#configure terminal |
2 |
Create a tunnel interface and enter interface configuration mode. |
router(config)#interface tunnel tunnel-num |
3 |
Assign an IPv6 address that will be used to communicate between each tunnel endpoint. Note that only two addresses are required. |
router(config-if)#ipv6 address ipv6-prefix / prefix-len [eui-64] |
4 |
Define the source for the tunnel. This can either be an IPv4 address (or a hostname that resolves to one) or an interface that has already been configured with an IPv4 address. |
router(config-if)#tunnel source source-ip|source-interface |
5 |
Define the destination for the tunnel. This can only be an IPv4 address (or a hostname that resolves to one). |
router(config-if)#tunnel destination destination-ip |
6 |
Configure the tunnel mode type. |
router(config-if)#tunnel mode gre ip |
6to4 Tunnels
With 6to4 tunnels, the configuration differs slightly because the tunnel is not point to point but point to multipoint. 6to4 tunnels are also limited in some ways because each of the IPv6 sites must use addresses from the 2002::/16 prefix range. The configuration of 6to4 tunnels also does not require the configuration of a tunnel destination. This is because the destination IPv4 address is included as part of the 6to4 address. Figure 1 shows how the IPv4 address of the 6to4 border router (the device that touches both the IPv4 and IPv6 networks) includes the IPv4 address within the 6to4 IPv6 address.
Figure 1 6to4 Address Format
Table 3 shows the steps required to configure 6to4 IPv6 tunnels.
Table 3 - 6to4 Tunnel Configuration
1 |
Enter global configuration mode. |
router#configure terminal |
2 |
Create a tunnel interface and enter interface configuration mode. |
router(config)#interface tunnel tunnel-num |
3 |
Assign an IPv6 address that will be used to communicate between each tunnel endpoint. |
router(config-if)#ipv6 address ipv6-prefix / prefix-len [eui-64] |
4 |
Define the source for the tunnel. This can either be an IPv4 address (or a hostname that resolves to one) or an interface that has already been configured with an IPv4 address. |
router(config-if)#tunnel source source-ip|source-interface |
5 |
Configure the tunnel mode type. |
router(config-if)#tunnel mode ipv6ip 6to4 |
6 |
Configure a IPv6 route for the 2002::/16 6to4 address range. |
router(config-if)#ipv6 route 2002::/16 tunnel tunnel-num |
ISATAP Tunnels
The configuration of ISATAP tunnels is similar to 6to4 but is intended for a completely different purpose. ISATAP tunnels are intended to be used inside a site, not between them. A good example of this is when only specific machines on an otherwise IPv4 network run IPv6. ISATAP would allow these devices to communicate via IPv6 over the IPv4 network. Each of the routers that connect to segments where these clients exist would need to be configured for ISATAP. They would then advertise the configured ISATAP prefix so that clients could automatically configure themselves.
Like 6to4, ISATAP includes the IPv4 address as part of the IPv6 address. With ISATAP, this is done as part of the interface ID. Figure 2 shows how the IPv4 address of the ISATAP border router includes the iPv4 address within the ISATAP IPv6 address.
Figure 2 ISATAP Address Format
Table 4 shows the steps required to configure ISATAP IPv6 tunnels.
Table 4 - ISATAP Tunnel Configuration
1 |
Enter global configuration mode. |
router#configure terminal |
2 |
Create a tunnel interface and enter interface configuration mode. |
router(config)#interface tunnel tunnel-num |
3 |
Assign an IPv6 address that will be used to communicate between each tunnel endpoint. Configuring using the eui-64 parameter will automatically configure the IPv6 address with the tunnel source IPv4 address. |
router(config-if)#ipv6 address ipv6-prefix / prefix-len [eui-64] |
4 |
Define the source for the tunnel. This can either be an IPv4 address (or a hostname that resolves to one) or an interface that has already been configured with an IPv4 address. |
router(config-if)#tunnel source source-ip|source-interface |
5 |
Configure the tunnel mode type. |
router(config-if)#tunnel mode ipv6ip isatap |
6 |
Enable IPv6 router advertisements. This enables clients to automatically configure an IPv6 address from the prefix configured on the router. |
router(config-if)#no ipv6 nd ra suppress |
Summary
The configuration of IPv6 tunneling technologies can be as easy as a point-to-point link and as hard as configuring networkwide IPV6 addresses linked to IPv4 addresses. This article reviewed the basic steps required to get these technologies up and running. Take the time to test these technologies in a lab environment if possible to truly understand how they work and to ensure that they work the way you want.
This article intentionally left out the configuration for 6rd tunnels. Although these tunnels are certainly going to replace some of the current IPv6 tunneling implementations, it also has just become a supported feature on Cisco devices. A supporting article may be drafted in the future once supported hardware becomes available to the author.