Fortinet black logo

New Features

OSPFv3 graceful restart for OSPF6

Copy Link
Copy Doc ID 77966226-6996-11ec-bdf2-fa163e15d75b:721957
Download PDF

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:

  • none: disable hitless restart
  • graceful-restart: enable graceful 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

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:

  • none: disable hitless restart
  • graceful-restart: enable graceful 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