We know that OSPFv2 is Link state routing protocol developed by IETF as a robust IP routing protocol suitable for large networks and to carry Ipv4 addresses. OSPF was first documented as a standard by John Moy in RFC 1131 and further Improvements were made in OSPF version 2. OSPF was then extensively modified by IETF to support IPv6 and called OSPFv3. But do you know OSPFv3 can be used to carry IPv4 addresses as well?
Before going into it, let’s review some differences between OSPFv2 and OSPFv3
- OSPFv3 introduces new LSA types
- OSPFv3 has different packet format
- OSPFv3 adjacencies are formed over link-local IPv6 communications
- OSPFv3 runs per-link rather than per-subnet
- OSPFv3 supports multiple instances on a single link, Interfaces can have multiple IPv6 addresses
- OSPFv3 uses multicast addresses FF02::5 (all OSPF routers), FF02::6 (all OSPF DRs)
- OSPFv3 Neighbor Authentication done with IPsec (AH)
- OSPFv2 Router ID (RID) must be manually configured, still a 32-bit number
Ok, now coming back to original question. If an organization wanted to use OSPF for both their IPv4 and IPv6 routing protocol, then they would likely use OSPFv2 for their IPv4 routing and OSPFv3 for their IPv6 routing. This would give the organization dual control planes for dual forwarding protocols. In this configuration, if there was a problem with either routing domain then it would not affect the other IP version. The same separation could also be achieved by running two completely different routing protocols. For instance, an organization could use OSPFv2 for IPv4 and IS-IS in single-protocol single-topology mode for IPv6. The IETF has continued to develop OSPFv3 so that it is now capable of working with multiple address families. In much the same way as Multi Protocol Border Gateway Protocol (MP-BGP) can function as an IPv4 and IPv6 routing protocol.
Once again, Cisco changed the IOS configuration commands required for OSPFv3 configuration. The new OSPFv3 configuration uses the “ospfv3” keyword instead of the earlier “ipv6 router ospf” routing process command and “ipv6 ospf” interface commands. OSPFv3 is still configured on the interfaces similarly to how the previous OSPFv3 commands were used. However, the biggest change is in the configuration of the routing process. This new syntax is more like multi-Address Family configuration of BGP and you have both an IPv4 and an IPv6 address family configuration section under “router ospfv3 “. New OSPFv3 syntax is used to configure a dual-protocol interface and for multi-address-family configuration under the OSPFv3 routing process is:
router ospfv3 <process-id>
auto-cost reference-bandwidth 1000
address-family ipv6 unicast
area 0 range <range>
area 1 range <range>
address-family ipv4 unicast
area 0 range <Ipv4 range>
area 1 range <Ipv4 range>
So, OSPF is now evolved into a fully dual-protocol multi-AF routing protocol. Organizations now have multiple options for deploying OSPF. Organizations can stick with OSPFv2 for IPv4, and then use OSPFv3 for IPv6-only for a configuration that separates the control planes and the forwarding planes. Organizations can now combine the configuration of IPv4 and IPv6 into a single OSPFv3 process that can work equally well for both IP protocols.