Today we’ll configure a basic IPv6 network. I’m not a big fan of IPv6. I’ve never used it in the real world, so it’s hard for me to keep it in my head, but I’ve been studying the hell out of it for the Written, so here goes.

We have a simple topology, only three routers. We will be running OSFPv3 on our serial links and loopbacks. Here’s our topology:


(Click image for fullsize)

First we’ll configure our IPv6 addresses:

R1:
R1(config)#ipv6 unicast-routing
R1(config)#int s0/0
R1(config-if)#ip add 10.1.12.1 255.255.255.0
R1(config-if)#ipv6 add 10:1:1:12::1/64
R1(config-if)#no shut
 
R2:
R2(config)#ipv6 unicast-routing
R2(config)# int s0/0
R2(config-if)#ip add 10.1.12.2 255.255.255.0
R2(config-if)#ipv6 add 10:1:1:12::2/64
R2(config-if)#no shut
R2(config-if)#exit
R2(config)#int s0/1
R2(config-if)#ip add 10.1.23.2 255.255.255.0
R2(config-if)#ipv6 add 10:1:1:23::2/64
R2(config-if)#no shut
 
R3:
R3(config)#ipv6 unicast-routing
R3(config-if)#int s0/1
R3(config-if)#ip add 10.1.23.3 255.255.255.0
R3(config-if)#ipv6 add 10:1:1:23::3/64

The first thing we do on each router is enable IPv6 routing. Then we give the interface an IPv4 address and finally an IPv6 address.

Let’s verify connectivity from R2:

Serial0/0 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::C001:71FF:FE12:0
  Global unicast address(es):
    10:1:1:12::2, subnet is 10:1:1:12::/64
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF00:2
    FF02::1:FF12:0
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  Hosts use stateless autoconfig for addresses.
Serial0/1 is administratively down, line protocol is down
  IPv6 is enabled, link-local address is FE80::C001:71FF:FE12:0 [TEN]
  Global unicast address(es):
    10:1:1:23::2, subnet is 10:1:1:23::/64 [TEN]
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::1:FF00:2
    FF02::1:FF12:0
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  Hosts use stateless autoconfig for addresses.
 
R2#sh ipv int b
Serial0/0                  [up/up]
    FE80::C001:71FF:FE12:0
    10:1:1:12::2
Serial0/1                  [up/up]
    FE80::C001:71FF:FE12:0
    10:1:1:23::2
 
R2#ping  10:1:1:12::1
Sending 5, 100-byte ICMP Echos to 10:1:1:12::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/2/4 ms
 
R2#ping  10:1:1:23::3
Sending 5, 100-byte ICMP Echos to 10:1:1:23::3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/3/12 ms

We have connectivity between interfaces on the same subnet.

Now we’ll configure our loopbacks and OSPFv3:

R1:
R1(config-if)#int lo0
R1(config-if)#ipv6 add 1:1:1::1/64
R1(config-if)#ipv6 ospf 20 area 0
R1(config-if)#int s0/0
R1(config-if)#ipv6 ospf 20 area 0
 
R2:
R2(config)#int lo0
R2(config-if)#ipv6 add 2:2:2::2/64
R2(config-if)#ipv6 ospf 20 area 0
R2(config-if)#int s0/0
R2(config-if)#ipv6 ospf 20 area 0
R2(config-if)#int s0/1
R2(config-if)#ipv6 ospf 20 area 0
 
R3:
R3(config)#int lo0
R3(config-if)#ipv6 add 3:3:3::3/64
R3(config-if)#ipv6 ospf 20 area 0
R3(config-if)#int s0/1
R3(config-if)#ipv6 ospf 20 area 0

With v6 we enable OSPF directly under the interface on which it runs.

Now let’s verify that everything is working:

R1#sh ipv6 route ospf
...
O   2:2:2::2/128 [110/64]
     via FE80::C001:71FF:FE12:0, Serial0/0
O   3:3:3::3/128 [110/128]
     via FE80::C001:71FF:FE12:0, Serial0/0
O   10:1:1:23::/64 [110/128]
     via FE80::C001:71FF:FE12:0, Serial0/0
 
R2#sh ipv6 route ospf
...
O   1:1:1::1/128 [110/64]
     via FE80::C000:71FF:FE12:0, Serial0/0
O   3:3:3::3/128 [110/64]
     via FE80::C002:71FF:FE12:0, Serial0/1
 
R3#sh ipv6 route ospf
...
O   1:1:1::1/128 [110/128]
     via FE80::C001:71FF:FE12:0, Serial0/1
O   2:2:2::2/128 [110/64]
     via FE80::C001:71FF:FE12:0, Serial0/1
O   10:1:1:12::/64 [110/128]
     via FE80::C001:71FF:FE12:0, Serial0/1

We see that our IPv6 routing tables are populated as expected.

Now we will try pinging R3′s loopback from R1:

R1#ping 3:3:3::3
Sending 5, 100-byte ICMP Echos to 3:3:3::3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/2/4 ms

It works!

So that’s IPv6 and OSPFv3. Simple stuff.

The Dynagen/GNS3 .net file
(you will need to change the paths to make it work)
Note: I’m using 3725s here because 3640s were giving me all kinds of issues. I don’t know if it was my IOS or what.

Colby

Colby Glass has been in IT since 2002. He is currently a Systems Engineer (presales) with a Cisco Gold partner and holds the CCNP R/S, CCNP DC, CCDP, CCIP, JNCIA-ER.

More Posts