IPv6 / OSPFv3 configuration and explanation along the way!

ospfv3_topology

As illustrated above, OSPFv3 (OSPF for IPv6) and OSPFv2 (OSPF for IPv4) can co-exist in harmony on one router, as two completely separate processes, without interfering with each others operation (just like our recent VRF discussion).

Being that OSPFv3 is configured on an interface by interface basis, it does not use network statements in router-config mode like OSPFv2, as you enter them right on the interface you are putting into the OSPFv3 domain (however there is a router-config mode coming up).

One important thing to note as well, v3 uses the same RID rules as v2, so if you don’t have an IPv4 on the router you need to add one or use the “router-id …” command – IT WILL NOT USE AN IPV6 ADDRESS, IT MUST BE IN IPV4 FORMAT!

All the basic theories still apply like Hello timers, neighbor formation adjacencies, NBMA’s still require neighbor statements for the neighors, Area 0 is still the Backbone Area, Stubs and LSA’s are the same.

Neither v2 or v3 will elect a DR/BDR on a point-to-point or point-to-multipoint link.

Multicasts are comparative as mentioned in the previous post:

v2 224.0.0.5 = v3 FF02::5 (All OSPF Routers)
v2 224.0.0.6 = v3 FF02::6 (All OSPF DR Routers)

So here is a bit of output, of me configuring R3 to enable IPv6 as well as OSPFv3:

R3(config)#ipv6 unicast-routing
R3(config)#int fa0/0

R3(config-if)#ipv6 enable
R3(config-if)#ipv6 ospf ?
  <1-65535>            Process ID
  authentication       Enable authentication
  cost                 Interface cost
  database-filter      Filter OSPF LSA during synchronization and flooding
  dead-interval        Interval after which a neighbor is declared dead
  demand-circuit       OSPF demand circuit
  encryption           Enable encryption
  flood-reduction      OSPF Flood Reduction
  hello-interval       Time between HELLO packets
  mtu-ignore           Ignores the MTU in DBD packets
  neighbor             OSPF neighbor
  network              Network type
  priority             Router priority
  retransmit-interval  Time between retransmitting lost link state
                       advertisements
  transmit-delay       Link state transmit delay

R3(config-if)#ipv6 ospf 1 ?
  area  Set the OSPF area ID

R3(config-if)#ipv6 ospf 1 area ?
  <0-4294967295>  OSPF area ID as a decimal value
  A.B.C.D         OSPF area ID in IP address format

R3(config-if)#ipv6 ospf 1 area 0 ?
  instance  Set the OSPF instance
  <cr>

R3(config-if)#ipv6 ospf 1 area 0
R3(config-if)#
*Mar  2 05:32:31.594: %OSPFv3-4-NORTRID: OSPFv3 process 1 could not pick a router-id,
please configure manually
R3(config-if)#

I’ve highlighted all my configuration messages in read so they can be differentiated from the output, but we also have this error message in blue to discuss, that I actually had to go around 5 interfaces removing IPv4 addresses to produce.

In blue, you will get this message if there are no IPv4 addresses on any interface on the router, because it WILL NOT use an IPv6 address as its RID. To put the RID in, this is where we get into OSPFv3 router configuration mode from global configuration mode:

R3(config-if)#exit
R3(config)#ipv6 router ospf 1 ?
  <cr>

R3(config)#ipv6 router ospf 1
R3(config-rtr)#router-id 3.3.3.3
R3(config-rtr)#
*Mar  2 04:45:17.616: %OSPFv3-5-ADJCHG: Process 1, Nbr 4.4.4.4 on FastEthernet0/1 from LOADING to FULL, Loading Done
R3(config-rtr)#exit
R3#sh ipv6 ospf nei

Neighbor ID     Pri   State           Dead Time   Interface ID    Interface
4.4.4.4           1   FULL/DR         00:00:33    4               FastEthernet0/1
R3#sh ipv6 ospf

 

So you can see, the adjacency between the two comes up right away, having already configured R4 with the exact same configurations, letting the Fa0/1 interfaces assign themselves a Link-local address for their IPv6 address.

A couple of important points after configuration to note, is first “show int X” will not give you any IPv6 information (or tell you if it is even enabled:

R3#show int fa0/1
FastEthernet0/1 is up, line protocol is up
  Hardware is AmdFE, address is 000f.2309.b181 (bia 000f.2309.b181)
  MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 100Mb/s, 100BaseTX/FX
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:06, output 00:00:05, output hang never
  Last clearing of “show interface” counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     46 packets input, 7004 bytes
     Received 40 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog
     0 input packets with dribble condition detected
     103 packets output, 10731 bytes, 0 underruns
     0 output errors, 0 collisions, 1 interface resets
     0 babbles, 0 late collision, 1 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

You can look through that until your eyes go crooked, you won’t find a hint of IPv6, and speaking of IPv6 show commands I wanted to post the output for it here:

R3#sh ipv6 ?
  access-list         Summary of access lists
  cef                 Cisco Express Forwarding for IPv6
  dhcp                IPv6 DHCP
  eigrp               EIGRP show commands
  flow                flow cache entries
  general-prefix      IPv6 general prefixes
  inspect             CBAC (Context Based Access Control) information
  interface           IPv6 interface status and configuration
  local               IPv6 local options
  mfib                IP multicast forwarding information base
  mld                 Multicast group membership information
  mobile              Mobile IPv6
  mrib                Multicast Routing Information Base
  mroute              IPv6 multicast routing table
  mtu                 MTU per destination cache
  nat                 IPv6 NAT-PT information
  neighbors           Show IPv6 neighbor cache entries
  ospf                OSPF information
  pim                 PIM information
  policy              Policy routing
  port-map            Port to Application Mapping (PAM) information
  prefix-list         List IPv6 prefix lists
  protocols           IPv6 Routing Protocols
  rip                 RIP routing protocol status
  route               Show IPv6 route table entries
  routers             Show local IPv6 routers
  rpf                 Multicast RPF information
  static              IPv6 static routes
  traffic             IPv6 traffic statistics
  tunnel              Summary of IPv6 tunnels
  virtual-reassembly  IPV6 Virtual Fragment Reassembly (VFR) information

SO IF YOU WANT INFORMATION ON ANYTHING IPV6, OR WANT TO CONFIGURE IPV6, IT’S A GOOD BET THE COMMAND WILL BEGIN WITH IPV6, like the interface information below:

R3#sh ipv6 int fa0/1
FastEthernet0/1 is up, line protocol is up
  IPv6 is enabled, link-local address is FE80::20F:23FF:FE09:B181
  No Virtual link-local address(es):
  No global unicast address is configured
  Joined group address(es):
    FF02::1
    FF02::2
    FF02::5
    FF02::6
    FF02::1:FF09:B181
  MTU is 1500 bytes
  ICMP error messages limited to one every 100 milliseconds
  ICMP redirects are enabled
  ICMP unreachables are sent
  ND DAD is enabled, number of DAD attempts: 1
  ND reachable time is 30000 milliseconds
  ND advertised reachable time is 0 milliseconds
  ND advertised retransmit interval is 0 milliseconds
  ND router advertisements are sent every 200 seconds
  ND router advertisements live for 1800 seconds
  ND advertised default router preference is Medium
  Hosts use stateless autoconfig for addresses.
R3#

I can see this interface is part of the following groups right off the bat:

  • All Nodes
  • All Routers
  • All OSPF Routers
  • All OSPF DRs
  • Its own Link-local IPv6 EUI64 address

I’m not really sure about that last one, or how it works out condensing that, but the two groups above that are what I really wanted to point out. It shows by the FF02::5 that it is not only running OSPFv3, but I can also see it is either the DR or BDR via FF02::6 group.

Also, for OSPF neighbors, this is a good command to get neighbor details (obviously by command name):

R3#sh ipv6 ospf nei det
 Neighbor 4.4.4.4
    In the area 0 via interface FastEthernet0/1
    Neighbor: interface-id 4, link-local address FE80::21B:53FF:FE36:F2CD
    Neighbor priority is 1, State is FULL, 6 state changes
    DR is 4.4.4.4 BDR is 3.3.3.3
    Options is 0x85B86AC5
    Dead timer due in 00:00:32
    Neighbor is up for 00:22:20
    Index 1/1/1, retransmission queue length 0, number of retransmission 0
    First 0x0(0)/0x0(0)/0x0(0) Next 0x0(0)/0x0(0)/0x0(0)
    Last retransmission scan length is 0, maximum is 0
    Last retransmission scan time is 0 msec, maximum is 0 msec
R3#

This output shows R4 is the DR, shows it’s link-local address and its RID, neighbors uptime and Dead timer.

And ONE LAST COMMAND THAT IS VERY IMPORTANT FOR OSPFv3 AND IT’S OUTPUT:

R3#sh ipv6 ospf int
FastEthernet0/1 is up, line protocol is up
  Link Local Address FE80::20F:23FF:FE09:B181, Interface ID 5
  Area 0, Process ID 1, Instance ID 0, Router ID 3.3.3.3
  Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State BDR, Priority 1
  Designated Router (ID) 4.4.4.4, local address FE80::21B:53FF:FE36:F2CD
  Backup Designated router (ID) 3.3.3.3, local address FE80::20F:23FF:FE09:B181
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:04
  Index 1/1/1, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 2
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 1, Adjacent neighbor count is 1
    Adjacent with neighbor 4.4.4.4  (Designated Router)
  Suppress hello for 0 neighbor(s)
R3#

Kind of the same as neighbor details, it gives all interface Hello / Dead timers, RIDs, Link-Local addresses, and all the information you could possibly want. I am going to “wr mem” and I think the next post I am going to dedicate to Hex conversion. One more IPv6 lesson down! (sort of)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s