Section 8 – Integrating IPv4 and IPv6 Network Environments

Section 8 Tasks

• Read the theory lesson below
• Read the ICND1 cram guide

As you have learned in the previous module, numerous advantages can be gained by migrating
from IPv4 to IPv6. To recap, these advantages include the following:

• The simplified IPv6 packet header
• Larger address space
• IPv6 addressing hierarchy
• IPv6 extensibility
• IPv6 Broadcast elimination
• Stateless autoconfiguration
• Integrated mobility
• Integrated enhanced security

This module maps to the following CCNA syllabus requirement:

• Describe the technological requirements for running IPv6 in conjunction with IPv4, such
as dual-stack implementation

NOTE: Because the above advantages were described in detail in the previous module, they will not be described again here.

In Section 7’s lesson on IPv6, we focused exclusively on a pure IPv6 environment and learned about how IPv6 operates, as well as how the different routing protocols that support IPv6 routing are configured and validated in Cisco IOS software. While it is important to have a solid understanding of IPv6 on its own, the reality of the situation is that IPv4 is still the most predominately used version of the Internet Protocol. For this reason, it is important to understand how to integrate the two different protocol stacks when considering migrating to a pure IPv6 environment.

While migrating to an IPv6 environment would offer the previously mentioned advantages, the reality of the present situation is that not all addressable devices support IPv6, and therefore IPv4 and IPv6 must coexist within the same network for devices running different protocol stacks in order to use the same network infrastructure. IPv4 and IPv6 integration and coexistence strategies are divided into three broad classes, as follows:

• Dual-stack implementation
• Tunnelling
• Protocol translation

Dual-stack implementation is required when internetwork devices and hosts use both protocol stacks (i.e., IPv4 and IPv6) at the same time. Dual-stack implementation allows the hosts to use either IPv4 or IPv6 to establish end-to-end IP sessions with other hosts.

NOTE: Dual-stack implementation does not mean that the IPv4-only and IPv6-only hosts have the ability to communicate with each other. To do so, additional protocols and mechanisms are needed. Dual-stack simply means that the hosts (and infrastructure) are able to support both the IPv4 protocol stack and the IPv6 protocol stack.

In situations where dual-stack implementation cannot be used, it is possible to tunnel the IPv6 packets over IPv4 networks. In these implementations, tunnels are used to encapsulate IPv6 packets in IPv4 packets, allowing them to be sent across portions of the network that don’t have or do not yet natively support IPv6. This allows the IPv6 “islands” to communicate over the underlying IPv4 infrastructure.

NOTE: With tunnelling, nodes or internetwork devices must support dual-stack in order to tunnel the IPv6 packets over the IPv4 infrastructure.

Finally, in some cases, it is possible that IPv4-only environments will need to communicate with IPv6-only environments, and vice versa. In these situations, neither dual-stack nor tunnelling implementations can be used so protocol translation between IPv4 and IPv6 must be enabled. While supported, this is the least desirable method of integrating IPv4 and IPv6 networks. However, because it is supported, it is important to understand how to do this.

The remainder of this module will describe, in detail, the dual-stack implementation and tunnelling methods of integrating IPv4 and IPv6 networks. Included are configuration examples specific to Cisco IOS software.

IPv4 and IPv6 Dual-Stack Implementations

With dual-stack implementations, while some hosts have the capability to use both the IPv4 and the IPv6 protocol stacks, they still require some help in deciding when to use the IPv6 protocol stack instead of the IPv4 protocol stack. Fortunately, this is possible using one of two methods, which are described as follows:

• The first method requires manual configuration by the user. If users know the IPv6 address
of the destination IPv6 host, they can use that to establish an IPv6 session manually to that host from their dual-stack host. Although this method works well, it can become quite cumbersome to remember IPv4 and IPv6 addresses for multiple hosts.

• The second method entails using a naming service, such as DNS. With this method, the Fully Qualified Domain Names (FQDNs), such as www.howtonetwork.com, are configured using both IPv4 and IPv6 addresses. The FQDN is represented by an A record for the IPv4 protocol stack and an AAAA record for the IPv6 protocol stack, which allows the DNS server to be queried using either IPv4 or IPv6.

Implementing Dual-Stack Support in Cisco IOS Software

While delving into the different ways in which different types of hosts by different vendors can support dual-stack implementations is beyond the scope of the CCNA exam requirements, as a future network engineer, it is imperative to understand how to implement dual-stack solutions in Cisco IOS software. In Cisco IOS routers, dual-stack operation is enabled by simply configuring both an IPv4 address and an IPv6 address on the router interface.

Multiple IPv4 addresses can be specified by appending the [secondary] keyword to the end of the ip address [address] [mask] interface configuration command. For IPv6, however, the [secondary] keyword is not required, as multiple prefixes can be configured per interface using the ipv6 address interface configuration command, which was described in detail in Section 7’s lesson. The following configuration example illustrates how to configure multiple IPv4 and IPv6 addresses and prefixes on a single router interface:

R3(config)#ipv6 unicast-routing
R3(config)#interface FastEthernet0/0
R3(config-if)#ip address 10.0.0.3 255.255.255.0
R3(config-if)#ip address 10.0.1.3 255.255.255.0 secondary
R3(config-if)#ip address 10.0.2.3 255.255.255.0 secondary
R3(config-if)#ipv6 address 3fff:1234:abcd:1::3/64
R3(config-if)#ipv6 address 3fff:1234:abcd:2::3/64
R3(config-if)#ipv6 address 3fff:1234:abcd:3::3/64
R3(config-if)#ipv6 enable
R3(config-if)#exit

NOTE: While IPv4 routing is enabled by default in Cisco IOS software, IPv6 routing is disabled by default and must be explicitly enabled.

Following the configuration of the IPv4 and IPv6 addresses, you can simply view the router configuration to validate your configuration, as illustrated in the following output:

R3#show running-config interface FastEthernet0/0
Building configuration...
Current configuration : 395 bytes
!
interface FastEthernet0/0
ip address 10.0.1.3 255.255.255.0 secondary
ip address 10.0.2.3 255.255.255.0 secondary
ip address 10.0.0.3 255.255.255.0
ipv6 address 3FFF:1234:ABCD:1::3/64
ipv6 address 3FFF:1234:ABCD:2::3/64
ipv6 address 3FFF:1234:ABCD:3::3/64
ipv6 enable
end

To view specific IPv4 and IPv6 interface parameters, simply use the Cisco IOS software show ip interface [name] or the show ipv6 interface [name] commands. Following is the output of the show ip interface command for the FastEthernet0/0 interface:

R3#show ip interface FastEthernet0/0 | section address
 Internet address is 10.0.0.3/24
 Broadcast address is 255.255.255.255
 Helper address is not set
 Secondary address 10.0.1.3/24
 Secondary address 10.0.2.3/24
 Network address translation is disabled

The following output illustrates the information printed by the show ipv6 interface command for the same FastEthernet0/0 interface used in the previous example:

R3#show ipv6 interface FastEthernet0/0 | section address
  IPv6 is enabled, link-local address is FE80::213:19FF:FE86:A20
  Global unicast address(es):
    3FFF:1234:ABCD:1::3, subnet is 3FFF:1234:ABCD:1::/64
    3FFF:1234:ABCD:2::3, subnet is 3FFF:1234:ABCD:2::/64
    3FFF:1234:ABCD:3::3, subnet is 3FFF:1234:ABCD:3::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::5
    FF02::6
    FF02::9
    FF02::1:FF00:3
  Hosts use stateless autoconfig for addresses.

Configuring Static IPv4 and IPv6 Host Addresses in Cisco IOS Software

Cisco IOS software supports the configuration of both static IPv4 and IPv6 host addresses using the ip host [name] [v4-address] and ipv6 host [name] [v6-address] global configuration commands, respectively. The following example illustrates how to configure static IPv4 and IPv6 host names and addresses in Cisco IOS software:

R1(config)#ip host TEST-HOST 10.0.0.3
R1(config)#ipv6 host TEST-HOST 3FFF:1234:ABCD:1::3

The static IPv4 and IPv6 host configuration can be validated using the show hosts command, the output of which is printed below:

R1#show hosts
...
[Truncated Output]
...
Host        Port  Flags      Age Type   Address(es)
TEST-HOST   None  (perm, OK)  0   IP    10.0.0.3
TEST-HOST   None  (perm, OK)  0  IPv6   3FFF:1234:ABCD:1::3

When the same host is configured with both a static IPv4 and IPv6 address, Cisco IOS software will use the IPv6 address. If DNS is used, the dual-stack host will first search AAAA (IPv6) records and then fall back to the A records (IPv4) when configured with both IPv6 and IPv4 DNS servers. This default behaviour can be validated by performing a simple ping to the previously configured static host “TEST-HOST” as follows:

R1#ping test-host repeat 10
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 3FFF:1234:ABCD:1::3, timeout is 2 seconds:
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 0/1/4 ms

Configuring IPv4 and IPv6 DNS Servers in Cisco IOS Software

The configuration of both IPv4 and IPv6 DNS servers in Cisco IOS software still uses the ip nameserver [address] global configuration command. This same command has now been modified to allow the DNS server IP address to be specified as either an IPv4 or an IPv6 address. The following example illustrates how to configure a router to use both an IPv4 and an IPv6 DNS server:

R1(config)#ip name-server ?
A.B.C.D     Domain server IP address (maximum of 6)
X:X:X:X::X  Domain server IP address (maximum of 6)
R1(config)#ip name-server 3FFF:1234:ABCD:1::2
R1(config)#ip name-server 192.168.1.2

NOTE: As was previously mentioned, when IPv6 and IPv4 DNS servers are configured on the same router, the router will look for the AAAA records first (i.e., IPv6). However, if AAAA records are not found, the host looks for an A record to communicate with the hostname.

Tunnelling IPv6 Datagrams across IPv4 Networks

Tunnelling, the second method of integrating IPv6 and IPv4 networks, entails encapsulating the IPv6 packets or datagrams and sending them over IPv4 networks. In order to support the different tunnelling mechanisms that will be described in this section, Cisco IOS edge routers must have a dual-stack implementation that allows the IPv6 packets to be encapsulated in IPv4 packets, and then de-encapsulated at the terminating router. It should be noted that intermediate routers do not need to run IPv6. In other words, these routers would simply be IPv4-only routers. Figure 8.1 below illustrates a typical tunnelling implementation:

Figure 8.1 – Tunnelling IPv6 Packets over IPv4 Networks

Referencing Figure 8.1, assuming that IPv6 Host 1 is sending datagrams to IPv6 Host 2, the following sequence of events occurs as those packets transit the network:

  1. IPv6 Host 1 sends the IPv6 packets destined to IPv6 Host 2 to its default gateway, which is router R4. These are native IPv6 packets, with IPv6 source and destination addresses included in the header.
  2. Router R4 is a dual-stack router. The LAN interface has been enabled for IPv6, while the WAN interface has been enabled for IPv4. R4 has a tunnel configured between its WAN interface and the WAN interface of R1, which is also a dual-stack router. Upon receiving the IPv6 packets, R4 encapsulates them in IPv4 packets and forwards them to R2. The destination address for these packets is sent to R1 and the router sets the value of the IPv4 header to 41 to indicate encapsulation of IPv6 packets in IPv4 packets.
  3. R2 receives the IPv4 packets and simply routes or forwards those towards their final destination using the destination address specified in the IPv4 header.
  4. R3 receives the IPv4 packets from R2 and simply forwards those towards their final destination using the destination address specified in the IPv4 packet header.
  5. R1, the terminating router and exit point for the tunnel, receives the native IPv4 packets and de-encapsulates them, leaving only the IPv6 datagrams. The router then forwards the IPv6 packets to Host 2.

The encapsulation and de-encapsulation process is transparent to the two hosts, as well as to the intermediate routers between the tunnel endpoints. Several methods can be used to tunnel IPv6 packets in IPv4 packets (see below). We won’t go into any configuration details in this guide because it’s beyond the CCNA exam requirements.

Other tunnelling methods include the below. Cisco may expect you know they exist but you should not be asked any questions about how they operate.

• Static (manually configured) IPv6 tunnelling
• 6to4 tunnelling
• Automatic IPv4-compatible tunnelling
• ISATAP tunnelling
• Generic Routing Encapsulation tunnelling

Section 8 Questions

1. Name three IPv4 to IPv6 transition mechanism classes.
2. _______ implementation is required when internetwork devices and hosts use both
protocol stacks (i.e., IPv4 and IPv6) at the same time.
3. With dual-stack implementation, name two methods that help hosts decide when to use
the IPv6 protocol stack instead of the IPv4 protocol stack.
4. While IPv4 routing is enabled by default in Cisco IOS software, IPv6 routing is disabled by
default and must be explicitly enabled. True or false?
5. Name a command that will provide IPv6 interface parameters.
6. The static IPv4 and IPv6 host configuration can be validated using the _______ command.
7. Which command is used to configure an IPv6 DNS server?
8. _______ entails encapsulating the IPv6 packets or datagrams and sending them over IPv4
networks.

Section 8 Answers

1. Dual-stack implementation, tunnelling, and protocol translation.
2. Dual-stack.
3. Manual configuration and naming service.
4. True.
5. The show ipv6 interface command.
6. show hosts.
7. The ip name-server command.
8. Tunnelling.

Section 8 Labs

IPv4 – IPv6 Basic Integration Lab

Test the IPv6 concepts and commands detailed in this module on a pair of Cisco routers that are directly connected:

• Enable IPv6 Unicast routing on the devices and configure both IPv4 and IPv6 addresses on
directly connected interfaces
• Verify the configuration using the show interface and show ipv6 interface commands
• Configure IPv4 and IPv6 hosts for remote interface addresses
• Verify the hosts configuration (show commands) on the devices
• Ping by using the host names between the devices
• Configure IPv4 and IPv6 DNS servers on both devices

IPv4 – IPv6 Tunnelling Lab

Repeat the scenario from the IPv6 over IPv4 tunnelling section (including all the mechanisms) on a home network environment. Follow the sequence of events presented in that section.


Related Articles

Leave a Reply

avatar