Example for Configuring BFD for OSPFv3
Networking Requirements
As shown in Figure 6-16, OSPFv3 is run among SwitchA, SwitchB, and SwitchC. Service traffic is forwarded along the primary link SwitchA→SwitchB. The link SwitchA→SwitchC→SwitchB is used as a backup. Customers require that a fault on the primary link be detected in milliseconds so that service traffic can be fast switched to the backup link when the primary link fails.
Configuration Roadmap
The configuration roadmap is as follows:
Configure basic OSPFv3 functions on each switch to make the primary link transmit service traffic properly.
Configure OSPFv3 BFD so that traffic can be fast switched to the backup link when the primary link fails.
Procedure
- Configure IPv6 addresses for interfaces of all switches.
# Configure SwitchA. The configurations of SwitchB, and SwitchC are similar to the configuration of SwitchA. The detailed configurations are not provided here.
<HUAWEI> system-view
[~HUAWEI] sysname switchA
[*HUAWEI] commit
[~SwitchA] interface 10ge 1/0/1
[~switchA-10GE1/0/1] undo portswitch
[*SwitchA-10GE1/0/1] ipv6 enable
[*SwitchA-10GE1/0/1] ipv6 address fc00:0:0:2003::1 64
[*SwitchA-10GE1/0/1] quit
[*SwitchA] interface 10ge 1/0/3
[*switchA-10GE1/0/3] undo portswitch
[*SwitchA-10GE1/0/3] ipv6 enable
[*SwitchA-10GE1/0/3] ipv6 address fc00:0:0:2001::3 64
[*SwitchA-10GE1/0/3] quit
[*SwitchA] commit
- Configure basic OSPFv3 functions.
# Configure SwitchA.
[~SwitchA] ospfv3
[*SwitchA-ospfv3-1] router-id 10.10.10.1
[*SwitchA-ospfv3-1] quit
[*SwitchA] interface 10ge 1/0/1
[*SwitchA-10GE1/0/1] ospfv3 1 area 0.0.0.0
[*SwitchA-10GE1/0/1] quit
[*SwitchA] interface 10ge 1/0/3
[*SwitchA-10GE1/0/3] ospfv3 1 area 0.0.0.0
[*SwitchA-10GE1/0/3] quit
[*SwitchA] commit
# Configure SwitchB.
[~SwitchB] ospfv3 1
[*SwitchB-ospfv3-1] router-id 10.10.10.2
[*SwitchB-ospfv3-1] quit
[*SwitchB] interface 10ge 1/0/1
[*SwitchB-10GE1/0/1] ospfv3 1 area 0.0.0.0
[*SwitchB-10GE1/0/1] quit
[*SwitchB] interface 10ge 1/0/2
[*SwitchB-10GE1/0/2] ospfv3 1 area 0.0.0.0
[*SwitchB-10GE1/0/2] quit
[*SwitchB] interface 10ge 1/0/3
[*SwitchB-10GE1/0/3] ospfv3 1 area 0.0.0.0
[*SwitchB-10GE1/0/3] quit
[*SwitchB] commit
# Configure SwitchC.
[~SwitchC] ospfv3 1
[*SwitchC-ospfv3-1] router-id 10.10.10.3
[*SwitchC-ospfv3-1] quit
[*SwitchC] interface 10ge 1/0/1
[*SwitchC-10GE1/0/1] ospfv3 1 area 0.0.0.0
[*SwitchC-10GE1/0/1] quit
[*SwitchC] interface 10ge 1/0/3
[*SwitchC-10GE1/0/3] ospfv3 1 area 0.0.0.0
[*SwitchC-10GE1/0/3] quit
[*SwitchC] commit
# After the preceding configurations are complete, run the display ospfv3 peer verbose command, and you can view that neighbor relationships are established between SwitchA and SwitchB, and between SwitchB and SwitchC. Take the display on SwitchA as an example:
[SwitchA] display ospfv3 peer verbose
OSPFv3 Process (1) Neighbor 10.10.10.3 is Full, interface address FE80::252:7500:1B12:2401 In the area 0.0.0.0 via interface 10GE1/0/1 DR Priority is 1 DR is 10.10.10.3 BDR is 10.10.10.1 Options is 0x000013 (-|-|-|-|-|-|R|-|-|E|V6) Dead timer due in 00:00:39 Neighbour is up for 00h28m50s Link State Request List 0 Link State Retransmission List 0 Neighbour Event: 6 Neighbour If Id : 0x49 Neighbor 10.10.10.2 is Full, interface address FE80::769D:8F00:1C4C:DAD2 In the area 0.0.0.0 via interface 10GE1/0/3 DR Priority is 1 DR is 10.10.10.2 BDR is 10.10.10.1 Options is 0x000013 (-|-|-|-|-|-|R|-|-|E|V6) Dead timer due in 00:00:29 Neighbour is up for 16h41m02s Link State Request List 0 Link State Retransmission List 0 Neighbour Event: 7 Neighbour If Id : 0x04
# Check information about the OSPFv3 routing table on SwitchA, and you can view the routing entries to SwitchB and SwitchC.
[SwitchA] display ospfv3 routing
Codes : E2 - Type 2 External, E1 - Type 1 External, IA - Inter-Area, N - NSSA Flags : A - Added to URT6 OSPFv3 Process (1) Destination Metric Next-hop FC00:0:0:2001::/64 1 directly connected, 10GE1/0/3, Flags : A FC00:0:0:2002::/64 2 via FE80::252:7500:1B12:2401, 10GE1/0/1, Flags : A FC00:0:0:2003::/64 1 directly connected, 10GE1/0/1, Flags : A FC00:0:0:2004::/64 2 via FE80::769D:8F00:1C4C:DAD2, 10GE1/0/3, Flags : A
In the OSPFv3 routing table, you can view that the next hop of the route to FC00:0:0:2004::1/64 is 10GE1/0/3, and traffic is transmitted on the primary link SwitchA→SwitchB.
- Configure OSPFv3 BFD.
# Enable BFD globally on SwitchA.
[~SwitchA] bfd
[*SwitchA-bfd] quit
[*SwitchA] ospfv3
[*SwitchA-ospfv3-1] bfd all-interfaces enable
[*SwitchA-ospfv3-1] bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
[*SwitchA-ospfv3-1] quit
[*SwitchA] commit
# Enable BFD globally on SwitchB.
[~SwitchB] bfd
[*SwitchB-bfd] quit
[*SwitchB] ospfv3
[*SwitchB-ospfv3-1] bfd all-interfaces enable
[*SwitchB-ospfv3-1] bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
[*SwitchB-ospfv3-1] quit
[*SwitchB] commit
# Enable BFD globally on SwitchC.
[~SwitchC] bfd
[*SwitchC-bfd] quit
[*SwitchC] ospfv3
[*SwitchC-ospfv3-1] bfd all-interfaces enable
[*SwitchC-ospfv3-1] bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
[*SwitchC-ospfv3-1] quit
[*SwitchC] commit
After the preceding configurations are complete, run the display ospfv3 bfd session command on SwitchA or SwitchB, and you can view that the status of the BFD session is Up.
Take the display on SwitchB as an example:
[SwitchB] display ospfv3 bfd session verbose
* - STALE OSPFv3 Process 1 with Router ID 10.10.10.2 Neighbor-Id: 10.10.10.3 BFD Status: Up Interface: 10GE1/0/1 Instance : 0 IPv6-Local-Address: FE80::769D:8F00:84C:DAD2 IPv6-Remote-Address: FE80::252:7500:812:2401 Neighbor-Id: 10.10.10.1 BFD Status: Up Interface: 10GE1/0/3 Instance : 0 IPv6-Local-Address: FE80::769D:8F00:1C4C:DAD2 IPv6-Remote-Address: FE80::220B:C700:3739:1302 Total UP/DOWN/UNKNOWN BFD Session Number : 2 / 0 / 0
- Verify the configuration.
# Run the shutdown command on 10GE1/0/3 of SwitchB to simulate a primary link fault.
[~SwitchB] interface 10ge 1/0/3
[~SwitchB-10GE1/0/3] shutdown
[*SwitchB-10GE1/0/3] commit
# Check the routing table on SwitchA. In the routing table, you can view that the backup link SwitchA-SwitchC-SwitchB transmits traffic after the primary link fails, and the next hop of the route to FC00:0:0:2004::1/64 becomes 10GE1/0/1.
[SwitchA] display ospfv3 routing
Codes : E2 - Type 2 External, E1 - Type 1 External, IA - Inter-Area, N - NSSA Flags : A - Added to URT6 OSPFv3 Process (1) Destination Metric Next-hop FC00:0:0:2002::/64 2 via FE80::252:7500:1B12:2401, 10GE1/0/1, Flags : A FC00:0:0:2003::/64 1 directly connected, 10GE1/0/1, Flags : A FC00:0:0:2004::/64 3 via FE80::252:7500:1B12:2401, 10GE1/0/1, Flags : A
Configuration Files
Configuration file of SwitchA
#
sysname SwitchA
#
bfd
#
ospfv3 1
router-id 10.10.10.1
bfd all-interfaces enable
bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
area 0.0.0.0
#
interface 10GE1/0/1
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2003::1/64
ospfv3 1 area 0.0.0.0
#
interface 10GE1/0/3
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2001::3/64
ospfv3 1 area 0.0.0.0
#
return
Configuration file of SwitchB
#
sysname SwitchB
#
bfd
#
ospfv3 1
router-id 10.10.10.2
bfd all-interfaces enable
bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
area 0.0.0.0
#
interface 10GE1/0/1
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2002::1/64
ospfv3 1 area 0.0.0.0
#
interface 10GE1/0/2
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2004::1/64
ospfv3 1 area 0.0.0.0
#
interface 10GE1/0/3
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2001::2/64
ospfv3 1 area 0.0.0.0
#
return
Configuration file of SwitchC
#
sysname SwitchC
#
bfd
#
ospfv3 1
router-id 10.10.10.3
bfd all-interfaces enable
bfd all-interfaces min-transmit-interval 500 min-receive-interval 500 detect-multiplier 4
area 0.0.0.0
#
interface 10GE1/0/1
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2003::3/64
ospfv3 1 area 0.0.0.0
#
interface 10GE1/0/3
undo portswitch
ipv6 enable
ipv6 address FC00:0:0:2002::2/64
ospfv3 1 area 0.0.0.0
#
return