Monday, March 30, 2009

IPv6 Tunneling


I was practicing IPv6 in home by using Cisco 7200 series router so I think of a lab that if we have IPv6 enabled router on both side and I want to communicate them by using IPv4 cloud so what will be the procedure for it, so after studying books (Data Communication by Behrouz A. Forouzan and TCP/IP Routing by Jeff Doyle), I found that one of the method used for it is tunneling. The tunnel can be of four type’s i.e.
 Router to Router
 Host to Router
 Host to Host
 Router to Host
My Lab is between Router to Router. A tunnel is configured between Cisco routers by creating tunnel interface in the routers that border the IPv6 and IPv4 networks. IPv6 subnets are defined on both side and IPv6 dynamic protocol is in used RIPng, BGP or OSPFv3, in our lab we used RIPng. A tunnel is configured between these two IPv6 enable routers to communicate through IPv4 cloud.
I took just two 7200 series router and performed this lab. So here are the steps and configuration of the Lab.

Router_A (config) # ipv6 unicast-routing

Router_A (config) # interface serial 1/0
Router_A (config) # ip address 1.1.1.1
Router_A (config) # no shutdown
Router_A (config) # keepalive
Router_A (config) # clock rate 64000

Router_A (config) # interface FastEthernet 0/0
Router_A (config) # ipv6 enable
Router_A (config) # ipv6 address 2001:0:0:1:: 1/64
Router_A (config) # ipv6 rip 1 enable


Now to define Tunnel Interface on Router_A

Router_A (config) # interface Tunnel 0
Router_A (config) # ipv6 address 2001:0:0:5:: 1/64
Router_A (config) # tunnel source serial 1/0
Router_A (config) # tunnel destination 1.1.1.2
Router_A (config) # tunnel mode ipv6ip
Router_A (config) # ipv6 rip 1 enable


Now the configurations on the other side are as under

Router_B (config) # ipv6 unicast-routing

Router_B (config) # interface serial 1/0
Router_B (config) # ip address 1.1.1.2
Router_B (config) # no shutdown
Router_B (config) # keepalive

Router_B (config) # interface FastEthernet 0/0
Router_B (config) # ipv6 enable
Router_B (config) # ipv6 address 2001:0:0:3:: 1/64
Router_B (config) # ipv6 rip 1 enable


Now to define Tunnel Interface on Router_B

Router_B (config) # interface Tunnel 0
Router_B (config) # ipv6 address 2001:0:0:5:: 2/64
Router_B (config) # tunnel source serial 1/0
Router_B (config) # tunnel destination 1.1.1.1
Router_B (config) # tunnel mode ipv6ip
Router_B (config) # ipv6 rip 1 enable


Now to check the communication that whether the two router are communicating with each other using IPv4 cloud or not, we can check this by Ping or Traceroute


Router_A# Ping ipv6 2001:0:0:3:: 1
OUTPUT:

Types escape sequence to abort.
Sending 5, 100-byte ICMP echos to 2001:0:0:3:: 1, timeout in 2 seconds:
!!!!!
Success rate is 100 percent <5/5>, round-trip min/avg/max = 12/58/188 ms


Router_A# Traceroute
OUTPUT:

Types escape sequence to abort.

Tracing the route to 2001:0:0:3:: 1

1 2001:0:0:3:: 1 56 msec 48 msec 72 msec


The detail output can also be seen from the figure attached.

Hope it will be informative for you.