Example for Configuring Dynamic BFD for IS-IS
Networking Requirements
As shown in Figure 7-34, three devices are interconnected using IS-IS, and SwitchA and SwitchB communicate with each other through a Layer 2 switch. When the link that passes through the switch between SwitchA and SwitchB fails, the two devices need to rapidly respond to the fault, and traffic can be switched to the link that passes through SwitchC for forwarding.
Configuration Roadmap
The configuration roadmap is as follows:
Configure IP addresses for interfaces and enable IS-IS on each device to ensure reachable routes between the devices.
Set the IS-IS interface cost to control route selection of the devices to make the link that passes through the switch from SwitchA to SwitchB as the primary link and the link that passes through SwitchC as the backup link.
Configure dynamic BFD for IS-IS on SwitchA, SwitchB, and SwitchC so that link faults can be detected rapidly and traffic can be switched to the backup link for forwarding.
Procedure
- Configure VLANs that each interface belongs to.
<HUAWEI> system-view [~HUAWEI] sysname SwitchA [*HUAWEI] commit [~SwitchA] vlan batch 10 20 [*SwitchA] interface 10ge 1/0/1 [*SwitchA-10GE1/0/1] port link-type trunk [*SwitchA-10GE1/0/1] port trunk allow-pass vlan 10 [*SwitchA-10GE1/0/1] quit [*SwitchA] interface 10GE 1/0/2 [*SwitchA-10GE1/0/2] port link-type trunk [*SwitchA-10GE1/0/2] port trunk allow-pass vlan 20 [*SwitchA-10GE1/0/2] commit [~SwitchA-10GE1/0/2] quit
The configurations of SwitchB, SwitchC, and SwitchD are similar to the configuration of SwitchA, and are not provided here.
- Assign IP addresses for VLANIF interfaces.
[~SwitchA] interface vlanif 10 [*SwitchA-Vlanif10] ip address 10.1.1.1 24 [*SwitchA-Vlanif10] quit [*SwitchA] interface vlanif 20 [*SwitchA-Vlanif20] ip address 10.3.3.1 24 [*SwitchA-Vlanif20] quit [*SwitchA-Vlanif20] commit
The configurations of SwitchB, SwitchC, and SwitchD are similar to the configuration of SwitchA, and are not provided here.
- Configure basic IS-IS functions.
# Configure SwitchA.
[~SwitchA] isis
[*SwitchA-isis-1] is-level level-2
[*SwitchA-isis-1] network-entity 10.0000.0000.0001.00
[*SwitchA-isis-1] quit
[*SwitchA] interface vlanif 10
[*SwitchA-Vlanif10] isis enable 1
[*SwitchA-Vlanif10] quit
[*SwitchA] interface vlanif 20
[*SwitchA-Vlanif20] isis enable 1
[*SwitchA-Vlanif20] commit
[~SwitchA-Vlanif20] quit
# Configure SwitchB.
[~SwitchB] isis
[*SwitchB-isis-1] is-level level-2
[*SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[*SwitchB-isis-1] quit
[*SwitchB] interface vlanif 30
[*SwitchB-Vlanif30] isis enable 1
[*SwitchB-Vlanif30] quit
[*SwitchB] interface vlanif 20
[*SwitchB-Vlanif20] isis enable 1
[*SwitchB-Vlanif20] quit
[*SwitchB] interface vlanif 40
[*SwitchB-Vlanif40] isis enable 1
[*SwitchB-Vlanif40] commit
[~SwitchB-Vlanif40] quit
# Configure SwitchC.
[~SwitchC] isis
[*SwitchC-isis-1] is-level level-2
[*SwitchC-isis-1] network-entity 10.0000.0000.0003.00
[*SwitchC-isis-1] quit
[*SwitchC] interface vlanif 10
[*SwitchC-Vlanif10] isis enable 1
[*SwitchC-Vlanif10] quit
[*SwitchC] interface vlanif 30
[*SwitchC-Vlanif30] isis enable 1
[*SwitchC-Vlanif30] commit
[~SwitchC-Vlanif30] quit
# The switches learn routes from each other. The following uses the routing table of SwitchA as an example.
[~SwitchA] display ip routing-table
Proto: Protocol Pre: Preference Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Table: _public_
Destinations : 8 Routes : 9
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.1.1.0/24 Direct 0 0 D 10.1.1.1 Vlanif10
10.1.1.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
10.2.2.0/24 ISIS 15 20 D 10.1.1.2 Vlanif10
10.3.3.0/24 Direct 0 0 D 10.3.3.1 Vlanif10
10.3.3.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
172.16.1.0/24 ISIS 15 20 D 10.3.3.2 Vlanif20
As shown in the routing table, the next-hop address of the route to 172.16.1.0/24 is 10.3.3.2, and traffic is transmitted on the primary link SwitchA→SwitchB.
- Set the interface cost.
# Configure SwitchA.
[~SwitchA] interface vlanif 20
[~SwitchA-Vlanif20] isis cost 5
[*SwitchA-Vlanif20] commit
[~SwitchA-Vlanif20] quit
# Configure SwitchB.
[~SwitchB] interface vlanif 20
[~SwitchB-Vlanif20] isis cost 5
[*SwitchB-Vlanif20] commit
[~SwitchB-Vlanif20] quit
- Configure BFD for IS-IS processes.
# Enable BFD for IS-IS on SwitchA.
[~SwitchA] bfd
[*SwitchA-bfd] quit
[*SwitchA] isis
[*SwitchA-isis-1] bfd all-interfaces enable
[*SwitchA-isis-1] commit
[~SwitchA-isis-1] quit
# Enable BFD for IS-IS on SwitchB.
[~SwitchB] bfd
[*SwitchB-bfd] quit
[*SwitchB] isis
[*SwitchB-isis-1] bfd all-interfaces enable
[*SwitchB-isis-1] commit
[~SwitchB-isis-1] quit
# Enable BFD for IS-IS on SwitchC.
[~SwitchC] bfd
[*SwitchC-bfd] quit
[*SwitchC] isis
[*SwitchC-isis-1] bfd all-interfaces enable
[*SwitchC-isis-1] commit
[~SwitchC-isis-1] quit
# After the preceding configurations, run the display isis bfd session all command on SwitchA, SwitchB, and SwitchC. You can see that the BFD session status is Up.
The following uses the display on SwitchA as an example.
[~SwitchA] display isis bfd session all
BFD session information for ISIS(1)
-----------------------------------
Peer System ID : 0000.0000.0002 Interface : Vlanif20 TX : 1000 BFD State : up Peer IP Address : 10.3.3.2 RX : 1000 LocDis : 16385 Local IP Address: 10.3.3.1 Multiplier : 3 RemDis : 16388 Type : L2 Diag : No diagnostic information Peer System ID : 0000.0000.0003 Interface : Vlanif10 TX : 1000 BFD State : up Peer IP Address : 10.1.1.2 RX : 1000 LocDis : 16386 Local IP Address: 10.1.1.1 Multiplier : 3 RemDis : 16387 Type : L2 Diag : No diagnostic information Total BFD session(s): 2
As shown in the preceding display, the status of the BFD session between SwitchA and SwitchB and that between SwitchA and SwitchC is Up.
- Configure BFD for IS-IS interfaces.
# Configure BFD on VLANIF 20 of SwitchA, set the minimum interval for sending packets to 300 ms, the minimum interval for receiving packets to 300 ms, and the local detection multiplier to 5.
[~SwitchA] interface vlanif 20
[~SwitchA-Vlanif20] isis bfd enable
[*SwitchA-Vlanif20] isis bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
[*SwitchA-Vlanif20] commit
[~SwitchA-Vlanif20] quit
# Configure BFD on VLANIF 20 of SwitchB, set the minimum interval for sending packets to 300 ms, the minimum interval for receiving packets to 300 ms, and the local detection multiplier to 5.
[~SwitchB] interface vlanif 20
[~SwitchB-Vlanif20] isis bfd enable
[*SwitchB-Vlanif20] isis bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
[*SwitchB-Vlanif20] commit
[~SwitchB-Vlanif20] quit
# After the preceding configurations, run the display isis bfd session all command on SwitchA or SwitchB. You can see that the BFD parameters have taken effect. The following uses the display on SwitchB as an example.
[~SwitchB] display isis bfd session all
BFD session information for ISIS(1)
-----------------------------------
Peer System ID : 0000.0000.0001 Interface : Vlanif20 TX : 300 BFD State : up Peer IP Address : 10.3.3.1 RX : 300 LocDis : 16385 Local IP Address: 10.3.3.2 Multiplier : 5 RemDis : 16385 Type : L2 Diag : No diagnostic information Peer System ID : 0000.0000.0003 Interface : Vlanif30 TX : 300 BFD State : up Peer IP Address : 10.2.2.1 RX : 300 LocDis : 16385 Local IP Address: 10.2.2.2 Multiplier : 5 RemDis : 16385 Type : L2 Diag : No diagnostic information Total BFD session(s): 2
- # Run the shutdown command on 10GE1/0/2 of SwitchB to simulate a primary link failure.
[~SwitchB] interface 10ge 1/0/2
[~SwitchB-10GE1/0/2] shutdown
[*SwitchB-10GE1/0/2] commit
- Verify the configuration.
# View the routing table of SwitchA.
[~SwitchA] display ip routing-table
Proto: Protocol Pre: Preference Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : _public_ Destinations : 9 Routes : 9 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.1.1.0/24 Direct 0 0 D 10.1.1.1 Vlanif10 10.1.1.1/32 Direct 0 0 D 127.0.0.1 Vlanif10 10.1.1.255/32 Direct 0 0 D 127.0.0.1 Vlanif10 10.2.2.0/24 ISIS 15 20 D 10.1.1.2 Vlanif10 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 172.16.1.0/24 ISIS 15 30 D 10.1.1.2 Vlanif10 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
As shown in the routing table, the backup link SwitchA→SwitchC→SwitchB takes effect after the primary link fails, and the next-hop address of the route to 172.16.1.0/24 becomes 10.1.1.2.
Configuration Files
Configuration file of SwitchA
#
sysname SwitchA
#
vlan batch 10 20
#
bfd
#
isis 1
is-level level-2
bfd all-interfaces enable
network-entity 10.0000.0000.0001.00
#
interface Vlanif10
ip address 10.1.1.1 255.255.255.0
isis enable 1
#
interface Vlanif20
ip address 10.3.3.1 255.255.255.0
isis enable 1
isis cost 5
isis bfd enable
isis bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 20
#
return
Configuration file of SwitchB
#
sysname SwitchB
#
vlan batch 20 30 40
#
bfd
#
isis 1
is-level level-2
bfd all-interfaces enable
network-entity 10.0000.0000.0002.00
#
interface Vlanif20
ip address 10.3.3.2 255.255.255.0
isis enable 1
isis cost 5
isis bfd enable
isis bfd min-tx-interval 300 min-rx-interval 300 detect-multiplier 5
#
interface Vlanif30
ip address 10.2.2.2 255.255.255.0
isis enable 1
#
interface Vlanif40
ip address 172.16.1.1 255.255.255.0
isis enable 1 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 30 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 20 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 40
#
return
Configuration file of SwitchC
#
sysname SwitchC
#
vlan batch 10 30
#
bfd
#
isis 1
is-level level-2
bfd all-interfaces enable
network-entity 10.0000.0000.0003.00
#
interface Vlanif10
ip address 10.1.1.2 255.255.255.0
isis enable 1
#
interface Vlanif30
ip address 10.2.2.1 255.255.255.0
isis enable 1 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 10 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 30
#
return