Example for Configuring Dynamic IPv6 BFD for IS-IS
Networking Requirements
As shown in Figure 8-2, IS-IS is run among SwitchS, SwitchD, and SwitchN. Service traffic is forwarded along the primary link SwitchS→SwitchD. The link SwitchS→SwitchN→SwitchD 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 IPv6 IS-IS functions on each switch to ensure IPv6 connectivity.
Set link cost values for IS-IS interfaces on each switch to make the path SwitchS→SwitchD become the primary and the path SwitchS→SwitchN→SwitchD become the backup.
Enable BFD globally on each switch to detect faults on the primary link in milliseconds.
Enable IPv6 BFD for IS-IS in the IS-IS view on each switch so that service traffic can be fast switched to the backup link when the primary link fails.
Procedure
- Enable the IPv6 forwarding capability and configure IPv6 addresses for interfaces.
# Take configurations on SwitchS as an example. The configurations on other switches are similar to these on SwitchS and are not provided here.
<HUAWEI> system-view [~HUAWEI] sysname SwitchS [*HUAWEI] commit [~SwitchS] interface 10ge 1/0/1 [*SwitchS-10GE1/0/1] undo portswitch [*SwitchS-10GE1/0/1] ipv6 enable [*SwitchS-10GE1/0/1] ipv6 address fc00:0:0:1::1 64 [*SwitchS-10GE1/0/1] quit [*SwitchS] interface 10ge 1/0/2 [*SwitchS-10GE1/0/2] undo portswitch [*SwitchS-10GE1/0/2] ipv6 enable [*SwitchS-10GE1/0/2] ipv6 address fc00:0:0:2::1 64 [*SwitchS-10GE1/0/2] commit [~SwitchS-10GE1/0/2] quit
- Configure basic IPv6 IS-IS functions.
# Configure SwitchS.
[~SwitchS] isis 10 [*SwitchS-isis-10] is-level level-2 [*SwitchS-isis-10] network-entity 10.0000.0000.0001.00 [*SwitchS-isis-10] ipv6 enable [*SwitchS-isis-10] quit [*SwitchS] interface 10ge 1/0/1 [*SwitchS-10GE1/0/1] isis ipv6 enable 10 [*SwitchS-10GE1/0/1] quit [*SwitchS] interface 10ge 1/0/2 [*SwitchS-10GE1/0/2] isis ipv6 enable 10 [*SwitchS-10GE1/0/2] commit [~SwitchS-10GE1/0/2] quit
# Configure SwitchN.
[~SwitchN] isis 10 [*SwitchN-isis-10] is-level level-2 [*SwitchN-isis-10] network-entity 10.0000.0000.0002.00 [*SwitchN-isis-10] ipv6 enable [*SwitchN-isis-10] quit [*SwitchN] interface 10ge 1/0/1 [*SwitchN-10GE1/0/1] isis ipv6 enable 10 [*SwitchN-10GE1/0/1] quit [*SwitchN] interface 10ge 1/0/2 [*SwitchN-10GE1/0/2] isis ipv6 enable 10 [*SwitchN-10GE1/0/2] commit [~SwitchN-10GE1/0/2] quit
# Configure SwitchD.
[~SwitchD] isis 10 [*SwitchD-isis-10] is-level level-2 [*SwitchD-isis-10] network-entity 10.0000.0000.0003.00 [*SwitchD-isis-10] ipv6 enable [*SwitchD-isis-10] quit [*SwitchD] interface 10ge 1/0/1 [*SwitchD-10GE1/0/1] isis ipv6 enable 10 [*SwitchD-10GE1/0/1] quit [*SwitchD] interface 10ge 1/0/2 [*SwitchD-10GE1/0/2] isis ipv6 enable 10 [*SwitchD-10GE1/0/2] quit [*SwitchD] interface 10ge 1/0/3 [*SwitchD-10GE1/0/3] isis ipv6 enable 10 [*SwitchD-10GE1/0/3] commit [~SwitchD-10GE1/0/3] quit
# After the configurations are complete, run the display ipv6 routing-table command. You can view that the switches have learnt IPv6 routes from each other.
- Set link cost values for IS-IS interfaces.
# Configure SwitchS.
[~SwitchS] interface 10ge 1/0/1 [~SwitchS-10GE1/0/1] isis cost 1 level-2 [*SwitchS-10GE1/0/1] quit [*SwitchS] interface 10ge 1/0/2 [*SwitchS-10GE1/0/2] isis cost 10 level-2 [*SwitchS-10GE1/0/2] commit [~SwitchS-10GE1/0/2] quit
# Configure SwitchN.
[~SwitchN] interface 10ge 1/0/1 [~SwitchN-10GE1/0/1] isis cost 10 level-2 [*SwitchN-10GE1/0/1] quit [*SwitchN] interface 10ge 1/0/2 [*SwitchN-10GE1/0/2] isis cost 10 level-2 [*SwitchN-10GE1/0/2] commit [~SwitchN-10GE1/0/2] quit
# Configure SwitchD.
[~SwitchD] interface 10ge 1/0/1 [~SwitchD-10GE1/0/1] isis cost 1 level-2 [*SwitchD-10GE1/0/1] quit [*SwitchD] interface 10ge 1/0/2 [*SwitchD-10GE1/0/2] isis cost 10 level-2 [*SwitchD-10GE1/0/2] commit [~SwitchD-10GE1/0/2] quit
- Configure IPv6 BFD for IS-IS.
# Enable IPv6 BFD for IS-IS globally on SwitchS, SwitchN, and SwitchD, and set the minimum intervals for sending and receiving BFD packets to 300 milliseconds and the local detection multiplier to 5.
# Configure SwitchS.
[~SwitchS] bfd [*SwitchS-bfd] quit [*SwitchS] isis 10 [*SwitchS-isis-10] ipv6 enable topology standard [*SwitchS-isis-10] ipv6 bfd all-interfaces enable [*SwitchS-isis-10] ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detect-multiplier 5 [*SwitchS-isis-10] commit [~SwitchS-isis-10] quit
# Configure SwitchN.
[~SwitchN] bfd [*SwitchN-bfd] quit [*SwitchN] isis 10 [*SwitchN-isis-10] ipv6 enable topology standard [*SwitchN-isis-10] ipv6 bfd all-interfaces enable [*SwitchN-isis-10] ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detect-multiplier5 [*SwitchN-isis-10] commit [~SwitchN-isis-10] quit
# Configure SwitchD.
[~SwitchD] bfd [*SwitchD-bfd] quit [*SwitchD] isis 10 [*SwitchD-isis-10] ipv6 enable topology standard [*SwitchD-isis-10] ipv6 bfd all-interfaces enable [*SwitchD-isis-10] ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detecn-rx-interval 150 [*SwitchD-isis-10] commit [~SwitchD-isis-10] quit
# After the configurations are complete, run the display isis ipv6 bfd session all command on SwitchS or SwitchD. You can view that IPv6 BFD parameters already take effect. Take the display on SwitchS as an example:
[~SwitchS] display isis ipv6 bfd 10 session all IPv6 BFD session information for ISIS(10) ------------------------------------------------------------------------------ Peer System ID : 0000.0000.0003 Type : L2 Interface : 10GE1/0/1 IPv6 BFD State : up TX : 300 RX : 300 Multiplier : 5 LocDis : 16386 Local IPv6 Address: FE80::E0:2F47:B103:1 RemDis : 16386 Peer IPv6 Address : FE80::E0:2F47:B107:1 Diag : No diagnostic information Peer System ID : 0000.0000.0002 Type : L2 Interface : 10GE1/0/2 IPv6 BFD State : up TX : 300 RX : 300 Multiplier : 5 LocDis : 16386 Local IPv6 Address: FE80::C964:0:B203:1 RemDis : 16386 Peer IPv6 Address : FE80::C964:0:B8B6:1 Diag : No diagnostic information Total BFD session(s): 2
- Verify the configuration.
# On SwitchS, run the display ipv6 routing-table fc00:0:0:4::1 64 command to view the IPv6 routing table. You can view that the next hop address of the route to FC00:0:0:4::/64 is FE80::E0:2F47:B107:1 and the outbound interface is 10GE1/0/1.
[~SwitchS] display ipv6 routing-table fc00:0:0:4::1 64 Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route --------------------------------------------------------------------------------- Routing Table : _public_ Summary Count : 1 Destination : FC00:0:0:4:: PrefixLength : 64 NextHop : FE80::E0:2F47:B107:1 Preference : 15 Cost : 11 Protocol : ISIS-L2 RelayNextHop : :: TunnelID : 0x0 Interface : 10GE1/0/1 Flags : D
# Run the shutdown command on 10GE1/0/1 of SwitchD to simulate a primary link fault.
[~SwitchD] interface 10ge 1/0/1 [~SwitchD-10GE1/0/1] shutdown [*SwitchD-10GE1/0/1] commit
# On SwitchS, run the display ipv6 routing-table fc00:0:0:4::1 64 command to view the IPv6 routing table.
[~SwitchS] display ipv6 routing-table fc00:0:0:4::1 64 Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route --------------------------------------------------------------------------------- Routing Table : _public_ Summary Count : 1 Destination : FC00:0:0:4:: PrefixLength : 64 NextHop : FE80::C964:0:B8B6:1 Preference : 15 Cost : 30 Protocol : ISIS-L2 RelayNextHop : :: TunnelID : 0x0 Interface : 10GE1/0/2 Flags : D
In the IPv6 routing table, you can view that the backup link transmits traffic after the primary link fails, the next hop address of the route to FC00:0:0:4::/64 becomes FE80::C964:0:B8B6:1, and the outbound interface becomes 10GE1/0/2.
# Run the display isis ipv6 bfd session all command on SwitchS, and you can view that only one BFD session is established between SwitchS and SwitchN and its status is Up.
[~SwitchS] display isis ipv6 bfd 10 session all IPv6 BFD session information for ISIS(10) ------------------------------------------------------------------------------ Peer System ID : 0000.0000.0002 Type : L2 Interface : 10GE1/0/2 IPv6 BFD State : up TX : 300 RX : 300 Multiplier : 5 LocDis : 16386 Local IPv6 Address: FE80::C964:0:B203:1 RemDis : 16386 Peer IPv6 Address : FE80::C964:0:B8B6:1 Diag : No diagnostic information Total BFD session(s): 1
Configuration Files
Configuration file of the SwitchS
# sysname SwitchS # bfd # isis 10 is-level level-2 network-entity 10.0000.0000.0001.00 # ipv6 enable topology standard ipv6 bfd all-interfaces enable ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detect-multiplier 5 # # interface 10GE1/0/1 undo portswitch ipv6 enable ipv6 address FC00:0:0:1::1/64 isis ipv6 enable 10 isis cost 1 level-2 # interface 10GE1/0/2 undo portswitch ipv6 enable ipv6 address FC00:0:0:2::1/64 isis ipv6 enable 10 isis cost 10 level-2 # return
Configuration file of the SwitchN
# sysname SwitchN # bfd # isis 10 is-level level-2 network-entity 10.0000.0000.0002.00 # ipv6 enable topology standard ipv6 bfd all-interfaces enable ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detect-multiplier 5 # # interface 10GE1/0/1 undo portswitch ipv6 enable ipv6 address FC00:0:0:2::2/64 isis ipv6 enable 10 isis cost 10 level-2 # interface 10GE1/0/2 undo portswitch ipv6 enable ipv6 address FC00:0:0:3::1/64 isis ipv6 enable 10 isis cost 10 level-2 # return
Configuration file of SwitchD
# sysname SwitchD # bfd # isis 10 is-level level-2 network-entity 10.0000.0000.0003.00 # ipv6 enable topology standard ipv6 bfd all-interfaces enable ipv6 bfd all-interfaces min-tx-interval 300 min-rx-interval 300 detect-multiplier 5 # interface 10GE1/0/1 undo portswitch ipv6 enable ipv6 address FC00:0:0:1::2/64 isis ipv6 enable 10 isis cost 1 level-2 # interface 10GE1/0/2 undo portswitch ipv6 enable ipv6 address FC00:0:0:3::2/64 isis ipv6 enable 10 isis cost 10 level-2 # interface 10GE1/0/3 undo portswitch ipv6 enable ipv6 address FC00:0:0:4::1/64 isis ipv6 enable 10 # return