OSPFv3 Router ID: the Long Shadow of IPv4
One of the obscure facts about IPv6 OSPF (OSPFv3) is that it uses a 32-bit router ID like OSPFv2. It’s a reasonable choice; I have yet to see an OSPF network with over a billion routers. However, could you guess how this requirement is implemented in Cisco IOS? OSPFv3 searches for an IPv4 address (effectively the same algorithm used by OSPFv2) to get the router ID for the IPv6 routing process. Neat, isn’t it?
You might wonder what happens if you want to configure an IPv6-only router. OSPF won’t start unless you configure the router ID manually. And, no, you cannot enter a number (which would be the expected format, as the router ID is just a number in the IPv6 world); you have to enter an IPv4 address. Long live IPv4 :))
Here is a sample printout from a router. First, let’s check the interface status:
Site-D(config)#do show ip interface brief
Interface IP-Address OK? Method Status Protocol
FastEthernet0/0 unassigned YES manual up up
FastEthernet0/1 unassigned YES manual up up
Loopback0 unassigned YES manual up up
No IPv4 running anywhere. Good. Let's continue and configure IPv6:
Site-D(config)#ipv6 unicast
Site-D(config)#ipv6 router ospf 1
Site-D(config-rtr)#
*Mar 1 01:18:46.423: %OSPFv3-4-NORTRID: OSPFv3 process 1 could not pick a router-id,
please configure manually
Oops. IPv6 OSPF won’t start if the router doesn’t have an IPv4 address. Let’s configure the router ID:
Site-D(config-rtr)#router-id ?
A.B.C.D OSPF router-id in IP address format
Site-D(config-rtr)#router-id 10.0.1.8
Site-D(config-rtr)#
I told you – you have to configure OSPFv3 router ID as an IPv4 address.
Jenny
Cisco can probably generate a random IPv4 router id like the way it generated a random MAC address in the router as long as the software can guarantee the id's uniqueness within the network.
Generating random 32-bit router IDs is not an option; eventually you'd get a duplicate router ID (and it would not be so uncommon due to birthday paradox) ... and managing random 32-bit numbers is even worse than managing IPv4 addresses.
The MAC addresses in the routers are not random either. The last time I've checked (but it was a long ago), each box had a burnt-in (probably EEPROM in those days) MAC prefix that it used to allocate MAC addresses on various interfaces.
It's like saying everytime I write "50" I'm talking about 50 dollars. It could be 50kms or 50dB or whatever. It's just a number!
127.0.0.1 in IPv4 is a loopback address. 127.0.0.1 is just dotquad decimal for HEX 7F000001.
Instead of getting people to write 32-bit numbers in (God forbid) binary or even Hex, Cisco standardise on dot-quad decimal, as it's concise and easy to read. For those migrating from IPv4 it can also serve as a nice transition mechanism. It *does not* mean you are keeping vestages of IPv4 around. I repeat - dot quad decimal does not imply IPv4!!!
Similarly, OSPF areas numbers are 32-bit quantities. IOS allows you to write them as a decimal number or as dotted decimal. Most people (apart from creators of certification material)prefer decimal numbers.
What's worst is that IOS is still trying to use an IPv4 address to get an IPv6 router ID. This has nothing to do with dotted decimal notation but with focus on IPv4.