IPv6 Tunneling Part 1: Manually Configured Tunnels

Hello,

Today’s topic will be the IPv6 transition technique of using IPv6 tunnels to communicate IPv6 hosts over IPv4 networks.

There are several methods available to make this happen and we will cover each of them to the point we are comfortable with the way they work.

It’s important to say that we will use this mechanism in order to run both IPv6 and IPv4 in our networks and have dual-stack support in our network equipment it’s a MUST.

The way it works consists on encapsulating the IPv6 data traffic in an IPv4 data packet.

Here is the Lab we will be using for today’s scenarios

 

Screen Shot 2015-07-29 at 4.32.24 PM

As we see in the diagram we have 3 Routers (R1,R2 and R3)

  • R1 runs IPv6 in it’s Loopback 1 interface and IPv4 in it’s connection to R2
  • R2 only runs IPv4
  • R3 runs IPv6 in it’s Loopback 1 interface and IPv4 in it’s connection to R2
  • The idea of the Lab is to make sure the Loopback of R1 can communicate with the Loopback of R3

 

1) Manually Configured IPv6 Tunnel 

This tunneling technique is point to point in nature and it’s gonna require to statically configure the tunnel destination IP address in the Tunnel interface.

In fact if you know how to configure a regular GRE tunnel interface then you will know how to do this pretty fast as it requires the same steps. The only difference being that the IP address of the tunnel interface will be an IPv6 address and of course the tunnel mode.

For our scenario the tunnel IPv6 address will be 2001:AAAA:AAAA:AAAA::/64

Configuration 

Note: Basic Routing and IP address information has been already configured on each router (Only the relevant information will be shown in the next examples).

R1 

interface Tunnel1

no ip address

ipv6 address 2001:AAAA:AAAA:AAAA::1/64

tunnel source FastEthernet0/0

tunnel destination 13.0.0.1

tunnel mode ipv6ip

 

R3

interface Tunnel1

no ip address

ipv6 address 2001:AAAA:AAAA:AAAA::3/64

tunnel source FastEthernet0/0

tunnel destination 12.0.0.1

tunnel mode ipv6ip

That’s all the configuration we need in order for the IPv6 tunnel to come up.

If you try to ping from R3 tunnel interface to the R1 tunnel interface you will have a success result. We can see it here:

R3#ping 2001:AAAA:AAAA:AAAA::1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2001:AAAA:AAAA:AAAA::1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 32/41/52 ms

To finish this lab we need to configure a static route towards the other side IPv6 subnet pointing the tunnel interface or configuring a Dynamic Routing Protocol.

We will use OSPFv3  for this

R1

interface loopback 1

ipv6 ospf 100 area 0

  int tunne 1

  ipv6 ospf 100 area 0

R3

interface loopback 1

ipv6 ospf 100 area 0

  int tunne 1

  ipv6 ospf 100 area 0

Note: ipv6 unicast-routing is already running on R1 and R3.

Afterwards OSPF will come up and will build a neighbor relationship where the IPv6 subnets will be exchanged via the respective LSAs and the routing tables will be populated for the IPv6 protocol

Verification Stage

R1#sh ipv6  ospf  neighbor

Neighbor ID     Pri   State           Dead Time   Interface ID    Interface

13.0.0.1          1   FULL/  -        00:00:35    11              Tunnel1

R3#sh ipv6  ospf  neighbor

Neighbor ID     Pri   State           Dead Time   Interface ID    Interface

12.0.0.1          1   FULL/  -        00:00:38    11              Tunnel1

Finally it’s time to ping from the Loopback interface on R1 to the Loopback interface on R3.

R1#ping 2001:BBBB:CCCC:DDDD::1 source loopback 1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 2001:BBBB:CCCC:DDDD::1, timeout is 2 seconds:

Packet sent with a source address of 2001:AAAA:BBBB:CCCC::1

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 24/29/36 ms

That’s it! The first tunneling technique (and the easiest one) is covered and working.

In our IPv6 Tunneling Part 2 we will cover the IPv6 over IPv4 GRE tunnel method.

Regards,

Julio Carvajal