In this section, we'll see how to make IPv6-only hosts communicate with other IPv6-only hosts through IPv4-only devices. There are several methods for doing this; we'll discuss IPV6 over IPv4 tunneling using Generic Routing Encapsulation (GRE).
The GRE method encapsulates IPv6 packets within IPv4 packets and transports them over the IPv4 network. The receiving device decapsulates the packet and sends only the IPv6 information to the host. For this exercise, we'll use the following topology:

For routing, we will configure EIGRP on IPv4 interfaces for the three routers and static routing on R2 and R3. We will begin by configuring R1, which is the IPv4-only router.
R1(config)#int fa0/0 R1(config-if)#no shutdown R1(config-if)#ip add 10.0.0.1 255.255.255.0 R1(config)#int fa0/1 R1(config-if)#no shutdown R1(config-if)#ip add 10.2.0.1 255.255.255.0 R1(config-)#router eigrp 1 R1(config-router)#network 10.0.0.0
Now on the router R2, we will configure IPv4 and IPv6 addresses and routing, respectively.
R2(config)#ipv6 unicast-routing R2(config)#int fa0/1 R2(config-if)#no shutdown R2(config-if)#ipv6 add 2000:1::1/64 R2(config)#router eigrp 1 R2(config-router)#network 10.0.0.0 0.0.0.255
Do the same for router R3.
R3(config)#ipv6 unicast-routing R3(config)#int fa0/1 R3(config-if)#no shutdown R3(config-if)#ipv6 add 2000:2::1/64 R3(config)#int fa0/0 R3(config-if)#no shutdown R3(config-if)#ip add 10.2.0.2 255.255.255.0
The only configuration left is the tunnel creation. For router R2, carry out the following list of commands:
R2(config)#int tunnel 0 R2(config-if)#tunnel source f0/0R2(config-if)#tunnel destination 10.2.0.2 R2(config-if)#tunnel mode ipv6ip R2(config-if)#ipv6 address 2010::1/64
Note that the destination IP is the IPv4 address of interface f0/0 of R3. Configure the other end of the tunnel on router R3
R3(config)#int tunnel 0 R3(config-if)#tunnel source f0/0 R3(config-if)#tunnel destination 10.0.0.2 R3(config-if)#tunnel mode ipv6ip R3(config-if)#ipv6 address 2010::2/64
The only thing left now is to configure static-IPv6 routes for the prefixes 2000:1::/64 and 2000:2::/64.
R2(config)#ipv6 route 2000:2::/64 2010::2 R3(config)#ipv6 route 2000:1::/64 2010::1
Use the simple PDU tool to check connectivity between PC0 and PC1. Use the tracert command to find the path that the ICMPv6 protocol takes.
PC>tracert 2000:2::2
Tracing route to 2000:2::2 over a maximum of 30 hops: 1 0 ms 0 ms 0 ms 2000:1::1 2 0 ms 0 ms 0 ms 2010::2 3 0 ms 0 ms 0 ms 2000:2::2 Trace complete.
This shows IPv6 packets going through the tunnel.