Configure, Verify, and Troubleshoot Single Area OSPFv2 for IPv4
Open Shortest Path First (OSPF) is a beloved link-state routing protocol that is extremely configurable and scalable. It uses areas to reduce the size of convergence domains in the topology and ensure that scalability can be maintained. Remember that a convergence domain describes the set of routers that need to update their routing information whenever there is a change within that set.
OSPF version 2 is the current IPv4-only version of OSPF. OSPF version 3 is a standard for routing either IPv4 or IPv6 or both IPv4 and IPv6 simultaneously.
Figure 16.1 shows a sample topology, and Example 16.1 shows the configuration of OSPF in a single area of this topology, using the network command.
Figure 16.1 Sample OSPF Topology
Example 16.1 Configuring Single Area OSPFv2 Using the network Command
R1# R1# configure terminal R1(config)# router ospf 1 R1(config-router)# network 10.10.10.1 0.0.0.0 area 0 R1(config-router)# network 1.1.1.1 0.0.0.0 area 0 R1(config-router)# end R1# R2# R2# configure terminal R2(config)# router ospf 1 R2(config-router)# network 10.0.0.0 0.255.255.255 area 0 R2(config-router)# network 2.2.2.2 0.0.0.0 area 0 R2(config-router)# end R2# R3# R3# configure terminal R3(config)# router ospf 1 R3(config-router)# network 10.20.20.3 0.0.0.0 area 0 R3(config-router)# network 3.3.3.3 0.0.0.0 area 0 R3(config-router)# end R3#
Notice the following details in the configuration in Example 16.1:
router ospf 1: This command enters router configuration mode for OSPFv2 and sets a process ID of 1; this number is locally significant and does not need to match on the neighboring router.
network 10.10.10.1 0.0.0.0 area 0: The network command sets the interface(s) that will run OSPF for this process; note that the wildcard mask 0.0.0.0 indicates that OSPF will run on the specific interface that has the IP address 10.10.10.1 (fa0/0); notice also that this interface participates in area 0, which is the backbone or core area for OSPF; all other areas must have contact with this backbone.
Example 16.2 shows how to easily verify OSPF.
Example 16.2 Verifying Single Area OSPF
R1# R1# show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 2.2.2.2 1 FULL/BDR 00:00:37 10.10.10.2 FastEthernet0/0 R1# show ip route Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, + - replicated route Gateway of last resort is not set 1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 1.1.1.0/24 is directly connected, Loopback0 L 1.1.1.1/32 is directly connected, Loopback0 2.0.0.0/32 is subnetted, 1 subnets O 2.2.2.2 [110/2] via 10.10.10.2, 00:32:13, FastEthernet0/0 3.0.0.0/32 is subnetted, 1 subnets O 3.3.3.3 [110/3] via 10.10.10.2, 00:19:12, FastEthernet0/0 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks C 10.10.10.0/24 is directly connected, FastEthernet0/0 L 10.10.10.1/32 is directly connected, FastEthernet0/0 O 10.20.20.0/24 [110/2] via 10.10.10.2, 00:32:33, FastEthernet0/0 R1# ping 3.3.3.3 Type escape sequence to abort. 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 = 20/52/64 ms R1#
Example 16.2 includes the following commands:
show ip ospf neighbor: This command permits you to verify that you have an OSPF adjacency with your neighbor(s).
show ip route: This command permits you to see the OSPF learned route information.
ping 3.3.3.3: This command tests for full reachability; notice in Example 16.2, the R1 device is pinging an OSPF learned route from R3.
Example 16.3 demonstrates single area OSPF configuration without the use of the network command.
Example 16.3 Configuring Single Area OSPF Without the Use of the network Command
R1# R1# configure terminal R1(config)# interface fa0/0 R1(config-if)# ip ospf 1 area 0 R1(config-if)# interface lo0 R1(config-if)# ip ospf 1 area 0 R1(config-if)# end R1# R2# R2# configure terminal R2(config)# interface fa0/0 R2(config-if)# ip ospf 1 area 0 R2(config-if)# interface fa1/0 R2(config-if)# ip ospf 1 area 0 R2(config-if)# interface loopback 0 R2(config-if)# ip ospf 1 area 0 R2(config-if)# end R2# R3# R3# configure terminal R3(config)# interface fa0/0 R3(config-if)# ip ospf 1 area 0 R3(config-if)# interface loopback 0 R3(config-if)# ip ospf 1 area 0 R3(config-if)# end R3#
Notice how simple it is to configure OSPF under the appropriate interfaces. As you can see, you do not have to enter OSPF router configuration mode at all for a basic configuration.
If you examine the show ip ospf neighbor command closely, you will notice some very interesting details in the output. First, note that the neighbor ID is listed. In Example 16.2, the neighbor ID value is 2.2.2.2. This is actually the router ID value for the OSPF speaker. This value is very important for various functions in OSPF. In fact, the router ID can be used in the election process of the DR and BDR devices in certain types of OSPF network configurations. This concept is discussed later in this chapter.
You can manually set a router ID for an OSPF router by using the router-id command, or you can allow the router to self-assign this value. How does the router choose its own router ID? It follows this order:
Use the manually configured router ID (if you configured it).
Use the numerically highest IP address on a loopback interface.
Use the numerically highest IP address on a non-loopback interface.
The show ip ospf neighbor command also indicates the current state of the neighbor. If you examine the output shown in Example 16.2, you will notice the state listed as FULL/BDR.
OSPF uses the following states in its operation in order to build and maintain neighbor relationships:
Down
Attempt
Init
2-Way
Exstart
Exchange
Loading
Full
If there is a problem with a configuration or the underlying network, you might run your neighbor verification command and learn that your OSPF routers are stuck in one of the states that was supposed to be a transition state from Down to Full. Obviously, such information can help you dramatically in your troubleshooting.
What about the BDR indication in the output in Example 16.2? This indicates that the peer router is fulfilling the role of the backup designated router (BDR). The designated router (DR) and the BDR are used in certain types of network configurations for OSPF. They try to make the operation of OSPF more efficient by reducing the number of advertisements that must be made when sharing network information. Here is a list of the network types that are possible in OSPF and whether each one uses a DR and BDR in the operations of the protocol:
Broadcast: DR/BDR used
Non-broadcast: DR/BDR used
Point-to-point: No DR/BDR
Point-to-multipoint: No DR/BDR
Point-to-multipoint non-broadcast: No DR/BDR