OSPFv3 graceful restart for OSPF6
OSPFv3 graceful restart can be used in OSPF6. In OSPF graceful restart mode, the restart-on-topology-change
option can be used to keep restarting the router in graceful restart mode when a topology change is detected during a restart.
config router ospf6 set restart-mode {none | graceful-restart} set restart-period <integer> set restart-on-topology-change {enable | disable} end
restart-mode {none | graceful-restart} |
Set the OSPFv3 restart mode:
|
restart-period <integer> |
Set the graceful restart period, in seconds (1 - 3600, default = 120). |
restart-on-topology-change {enable | disable} |
Enable/disable continuing graceful restart upon a topology change. |
Example
Graceful restarts allow a router's OSPF6 process to restart without interrupting its neighbors. In this example, a restarting router (one of the FG-300Es in the HA cluster) informs its neighbors using grace LSAs before restarting its OSPF process. When the helper router (the FG-601E) receives the grace LSAs, it enters helper mode to help with the graceful restart until the graceful period expires. It will act as though there are no changes on the restarting router (FG-300E). A generic router simulates a topology change during the restart event.
If restart-on-topology-change
is enabled on the restarting router, it will not exit the graceful restart mode even when a topology change is detected.
If restart-on-topology-change
is disabled on the restarting router, it will exit graceful restart mode when a topology change is detected.
To configure the restarting router:
config router ospf6 set router-id 31.1.1.1 set restart-mode graceful-restart set restart-period 600 set restart-on-topology-change enable config area edit 0.0.0.0 next end config ospf6-interface edit "port1" set interface "port1" next edit "looproot" set interface "looproot" next edit "npu" set interface "npu0_vlink0" next end end
To configure the restarting helper router:
config router ospf6 set auto-cost-ref-bandwidth 100000 set router-id 3.3.3.3 set restart-mode graceful-restart config area edit 0.0.0.0 next end config ospf6-interface edit "port1" set interface "port1" set priority 0 next edit "loopback1" set interface "loopback1" next end config redistribute "static" set status enable end end
Testing the configuration
Graceful restart mode and continuing graceful restart enabled:
When graceful restart is enabled and restart-on-topology-change
enabled, when HA encounters a failover or restarts the primary FortiGate, it will trigger a graceful restart. During this period, there is a topology change.
Before graceful restart:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:34 port1 0
All routes before graceful restart:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:08:01 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:26:03 O 2003:100:21:1::/64 [110/200] via fe80::209:fff:fe09:2, port1, 00:08:01 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:26:03
During graceful restart:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:35* port1 0
All routes during graceful restart:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:09:01 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:27:03 O 2003:100:21:1::/64 [110/200] via fe80::209:fff:fe09:2, port1, 00:09:01 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:27:03
During graceful restart:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:33* port1 0
All routes during graceful restart:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:09:07 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:27:09 O 2003:100:21:1::/64 [110/300] via fe80::209:fff:fe09:2, port1, 00:00:03 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:27:09
After graceful restart:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:39 port1 0
No routes lost after graceful restart:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:09:19 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:27:21 O 2003:100:21:1::/64 [110/300] via fe80::209:fff:fe09:2, port1, 00:00:09 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:27:21
Graceful restart mode enabled and continuing graceful restart disabled:
When graceful restart is enabled and restart-on-topology-change
disabled, when HA encounters a failover or restarts the primary FortiGate, it will trigger a graceful restart. During this period, there is a topology change.
Before HA failover:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:37 port1 0
Before HA failover:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:32 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:01:31 O 2003:100:21:1::/64 [110/300] via fe80::209:fff:fe09:2, port1, 00:00:31 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:01:31
During graceful restart:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:33* port1 0
At first, no routes are lost:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:02:17 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:03:16 O 2003:100:21:1::/64 [110/300] via fe80::209:fff:fe09:2, port1, 00:02:16 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:03:16
When the topology changes, routes are lost:
# get router info6 routing-table ospf No route available
The routes are now recovered:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:02:28 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:00:01 O 2003:100:21:1::/64 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:01 O 2003:172:16:200::/64 [110/110] via fe80::209:fff:fe09:2, port1, 00:00:01
Graceful restart mode disabled:
When graceful restart is not enabled, when HA encounters a failover or restarts the primary FortiGate, it will not trigger a graceful restart. The neighbor needs to re-establish and routes on the neighbor will be lost.
Before HA failover:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:37 port1 0
Before HA failover:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:50 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:01:00 O 2003:100:21:1::/64 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:50 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:00:50
During HA failover:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Init/DROther 00:00:32 port1 0
During HA failover:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 ExStart/DR 00:00:38 port1 0
During HA failover, all are routes lost:
# get router info6 routing-table ospf No route available
After HA failover:
# get router info6 ospf neighbor OSPFv3 Process (root) Neighbor ID Pri State Dead Time Interface Instance ID 31.1.1.1 1 Full/DR 00:00:34 port1 0
After HA failover, it gets a route update from the neighbor:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:00:07 O 2003:172:16:200::/64 [110/110] via ::, port1, 00:00:06
After HA failover, it gets a route update from more neighbors:
# get router info6 routing-table ospf Routing table for VRF=0 O 2003:21:21:21::21/128 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:23 O 2003:31:1:1::1/128 [110/100] via fe80::209:fff:fe09:2, port1, 00:00:33 O 2003:100:21:1::/64 [110/200] via fe80::209:fff:fe09:2, port1, 00:00:23 O 2003:172:16:200::/64 [110/100] via ::, port1, 00:00:23