Section III: DR & BDR
<RouterB>display ospf peer
OSPF Process 1 with Router ID 2.2.2.2
Neighbors
Area 0.0.0.0 interface 10.1.1.2(GigabitEthernet0/0/0)'s neighbors
Router ID: 1.1.1.1 Address: 10.1.1.1
State: Full Mode:Nbr is Slave Priority: 1
DR: 10.1.1.2 BDR: 10.1.1.1 MTU: 0
Dead timer due in 35 sec
Retrans timer interval: 5
Neighbor is up for 00:07:05
Authentication Sequence: [ 0 ]
This one is easy, if the priority is the same, the one with bigger IP address will be selected as DR. What’s the use of DR? It’s just like a class head in an area to handle routes in an area. We can see in area 1 RouterB’s BDR.
[RouterB]display ospf interface
OSPF Process 1 with Router ID 2.2.2.2
Interfaces
Area: 0.0.0.0 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
10.1.1.2 Broadcast DR 1 1 10.1.1.2 10.1.1.1
2.2.2.2 P2P P-2-P 0 1 0.0.0.0 0.0.0.0
Area: 0.0.0.1 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
10.2.1.1 Broadcast BDR 1 2 10.2.1.2 10.2.1.1
Area: 0.0.0.2 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
10.3.1.1 Broadcast BDR 1 1 10.3.1.2 10.3.1.1
If we want RouterB to be DR in area 1, we can use [RouterB-GigabitEthernet0/0/1]ospf dr-priority 2, but we need to use reset ospf 1 process to make it effective. Now the DR is 10.2.1.1 instead.
Area: 0.0.0.1 (MPLS TE not enabled)
IP Address Type State Cost Pri DR BDR
10.2.1.1 Broadcast DR 1 2 10.2.1.1 10.2.1.2
Section IV Stub
If we have a check of routing table of RouterE, we can see it’s complicated as below:
<RouterE>display ospf routing
OSPF Process 1 with Router ID 5.5.5.5
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
5.5.5.5/32 0 Stub 5.5.5.5 5.5.5.5 0.0.0.3
10.4.1.0/24 1 Transit 10.4.1.2 5.5.5.5 0.0.0.3
1.1.1.1/32 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
2.2.2.2/32 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
4.4.4.4/32 1 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.1.1.0/24 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.2.1.0/24 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.3.1.0/24 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
Total Nets: 8
Intra Area: 2 Inter Area: 6 ASE: 0 NSSA: 0 Is it possible to reduce it? Yeah, of course, everything is invented with purpose. Stub area is invented and we can configure area 3 as stub area.
[RouterE]display ospf routing
OSPF Process 1 with Router ID 5.5.5.5
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
5.5.5.5/32 0 Stub 5.5.5.5 5.5.5.5 0.0.0.3
10.4.1.0/24 1 Transit 10.4.1.2 5.5.5.5 0.0.0.3
0.0.0.0/0 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
1.1.1.1/32 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
2.2.2.2/32 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
4.4.4.4/32 1 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.1.1.0/24 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.2.1.0/24 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
10.3.1.0/24 3 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
Total Nets: 9
Intra Area: 2 Inter Area: 7 ASE: 0 NSSA: 0
What’s the difference? We can see now that there is a default route instead. All routes outside of AS will be vanished, only we don’t have another AS in this OSPF example. If we configure the stub area as totally stub area, we can reduce inter-area route instead.
[RouterE-ospf-1-area-0.0.0.3]stub no-summary
[RouterE]display ospf routing
OSPF Process 1 with Router ID 5.5.5.5
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
5.5.5.5/32 0 Stub 5.5.5.5 5.5.5.5 0.0.0.3
10.4.1.0/24 1 Transit 10.4.1.2 5.5.5.5 0.0.0.3
0.0.0.0/0 2 Inter-area 10.4.1.1 4.4.4.4 0.0.0.3
Total Nets: 3
Intra Area: 2 Inter Area: 1 ASE: 0 NSSA: 0
We can see that inter area routes are all vanished to make a cleaner routing table for RouterE. The area 3 is now a totally stub area.
[RouterE-ospf-1] import-route static type 1
Section V NSSA
Sometimes, we’d like to import AS external routes, so we need NSSA instead. Let’s configure area 2 as NSSA. We can see RouterB’s routing table as below:
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
200.0.0.0/8 2 Type1 1 10.3.1.2 3.3.3.3
After configuration, it becomes:
Routing for NSSAs
Destination Cost Type Tag NextHop AdvRouter
200.0.0.0/8 2 Type1 1 10.3.1.2 3.3.3.3
With no-summary, the routing table of RouterC is clean:
[RouterC]display ospf routing
OSPF Process 1 with Router ID 3.3.3.3
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.3.1.0/24 1 Transit 10.3.1.2 3.3.3.3 0.0.0.2
0.0.0.0/0 2 Inter-area 10.3.1.1 2.2.2.2 0.0.0.2
Total Nets: 2
Intra Area: 1 Inter Area: 1 ASE: 0 NSSA: 0
Section VI FRR
If we want to test FRR, we need to add an extra link as below:
From routing table of RouterA, we can see there are two ways to 10.3.1.0.
10.3.1.0/24 OSPF 10 2 D 10.1.1.2 GigabitEthernet0/0/0
OSPF 10 2 D 10.5.1.2 GigabitEthernet0/0/1
We can configure GE0/0/1 OSPF cost as 10 [RouterA-GigabitEthernet0/0/1]ospf cost 10. Then the remaining route is
10.3.1.0/24 2 Inter-area 10.1.1.2 2.2.2.2 0.0.0.0
So we already make GE0/0/0 primary link while GE0/0/1 backup link. If we disable GE0/0/0, the routing table of RouterA is as below:
Routing for Network
Destination Cost Type NextHop AdvRouter Area
1.1.1.1/32 0 Stub 1.1.1.1 1.1.1.1 0.0.0.0
10.1.1.0/24 1 Stub 10.1.1.1 1.1.1.1 0.0.0.0
10.5.1.0/24 10 Transit 10.5.1.1 1.1.1.1 0.0.0.0
10.3.1.0/24 11 Inter-area 10.5.1.2 3.3.3.3 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
200.0.0.0/8 11 Type1 1 10.5.1.2 3.3.3.3
You can see the Nexthop is 10.5.1.2, but it takes time to reroute, which will have network interruption, so we invent FRR to resolve this. [RouterA-ospf-1]frr
Now we disable GE0/0/0,the nexthop will become 10.5.1.2 immediately, nice!!