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)