OSPF Graceful Shutdown

OSPF Graceful Shutdown

Striving to reach that last 9? Looking for a way to increase your uptime while still being able to do maintenance on your network? Wish you could shutdown your OSPF neighbors like your BGP peers? Ok, enough sales talk. Achieving HA uptimes when you need to do maintenance is far from simple, even if you tweak your hello timers, or use some fast detection protocol like BFD it still takes time for your protocols to converge. A much better solution would be gracefully notifying a router’s neighbors of a dramatic cost increase on all of it’s interfaces which would force an SPF calculation while the router is still online forwarding packets.

Welcome RFC 3137 – OSPF Stub Router Advertisement (aka graceful shutdown) is a feature implemented in Cisco IOS release 12.2(4)T and 12.3. To force our router into stub status we can use the max-metric router-lsa router configuration command which changes the OSPF metric for all non-stub interfaces on the router to 65535.

The new metric in the LSA does not cause the path to be ignored, it just increases the cost. The other routers in the network will select any alternate paths (if available).

Here is an example of this technique being employed in the lab network.

text
R1#sh ip ospf database router 192.168.2.1

            OSPF Router with ID (192.168.1.1) (Process ID 1)

                Router Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 1335
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 192.168.2.1
  Advertising Router: 192.168.2.1
  LS Seq Number: 8000002A
  Checksum: 0x2A65
  Length: 60
  AS Boundary Router
  Number of Links: 3

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.4.2
     (Link Data) Router Interface address: 10.2.4.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.3.2
     (Link Data) Router Interface address: 10.2.3.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.1.2.2
     (Link Data) Router Interface address: 10.1.2.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 10

R1#sh ip route
Codes: 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

Gateway of last resort is not set

O E2 192.168.4.0/24 [110/20] via 10.1.3.3, 00:00:01, Ethernet0/1
                    [110/20] via 10.1.2.2, 00:00:01, Ethernet0/0
     10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C       10.1.3.0/29 is directly connected, Ethernet0/1
C       10.1.2.0/30 is directly connected, Ethernet0/0
O       10.2.3.0/29 [110/20] via 10.1.3.3, 00:00:01, Ethernet0/1
                    [110/20] via 10.1.2.2, 00:00:01, Ethernet0/0
O       10.2.4.0/29 [110/20] via 10.1.2.2, 00:00:01, Ethernet0/0
O       10.3.4.0/29 [110/20] via 10.1.3.3, 00:00:01, Ethernet0/1
C    192.168.1.0/24 is directly connected, Loopback0
O E2 192.168.2.0/24 [110/20] via 10.1.2.2, 00:00:01, Ethernet0/0
O E2 192.168.3.0/24 [110/20] via 10.1.3.3, 00:00:01, Ethernet0/1

As you can see there are currently three routes exiting via Eth0/0 which is a direct connection to R2 in our lab. Next we’re going to implement the OSPF Stub Advertisement on R2.

text
R2#
R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#router ospf 1
R2(config-router)#max-metric router-lsa
R2(config-router)#end
R2#

Ok, now lets see what happened to those routes when we now that we’ve changed our LSAs.

text
R1#sh ip ospf database router adv-router 192.168.2.1

            OSPF Router with ID (192.168.1.1) (Process ID 1)

                Router Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 6
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 192.168.2.1
  Advertising Router: 192.168.2.1
  LS Seq Number: 8000002B
  Checksum: 0xA00C
  Length: 60
  AS Boundary Router
  Number of Links: 3

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.4.2
     (Link Data) Router Interface address: 10.2.4.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 65535

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.2.3.2
     (Link Data) Router Interface address: 10.2.3.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 65535

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 10.1.2.2
     (Link Data) Router Interface address: 10.1.2.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 65535

R1#sh ip route
Codes: 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

Gateway of last resort is not set

O E2 192.168.4.0/24 [110/20] via 10.1.3.3, 00:00:05, Ethernet0/1
     10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C       10.1.3.0/29 is directly connected, Ethernet0/1
C       10.1.2.0/30 is directly connected, Ethernet0/0
O       10.2.3.0/29 [110/20] via 10.1.3.3, 00:00:05, Ethernet0/1
O       10.2.4.0/29 [110/30] via 10.1.3.3, 00:00:05, Ethernet0/1
O       10.3.4.0/29 [110/20] via 10.1.3.3, 00:00:05, Ethernet0/1
C    192.168.1.0/24 is directly connected, Loopback0
O E2 192.168.2.0/24 [110/20] via 10.1.2.2, 00:00:05, Ethernet0/0
O E2 192.168.3.0/24 [110/20] via 10.1.3.3, 00:00:05, Ethernet0/1

As you can see the routes for 10.2.3.0/29 and 10.2.4.0/29 have changed and the only route still directed at R2 is actually R2’s loopback address – 192.168.2.0/24. Since that is a directly connected interface we would expect that behavior.

Conclusion

This is an extremely handy feature for anyone working on a network with decent redundancy and high uptime requirements. Anytime you can bring a router down in the middle of the day to perform maintenance saves you valuable time, and still lets you brag about your network uptime!

comments powered by Disqus

Related Posts

QinQ: IEEE 802.1Q Tunneling

QinQ: IEEE 802.1Q Tunneling

In situations where service providers want to offer transparent LAN services that preserve a customers VLAN tags across your Layer-2 network, this amendment to the IEEE 802.1q …

Mandatory Cisco DNA Licensing – is this the Future??

Mandatory Cisco DNA Licensing – is this the Future??

With the release of the new 9200 series switches many enterprise organizations are starting to look towards the future. Cisco has also been looking towards the future… of their …

Networking Field Day 40 – Back at it again

Networking Field Day 40 – Back at it again

I’m Heading to Networking Field Day 40 I’m excited to announce that I’ve been selected as a delegate for Networking Field Day 40, taking place April 8–10, 2026 in …