Example for Configuring IS-IS Auto FRR
Networking Requirements
As shown in Figure 7-32, four devices (Switch A, Switch B, Switch C, and Switch D) communicate using IS-IS. The reliability of data forwarding from Switch A to Switch D needs to be improved. When the primary link fails, traffic is transmitted to the backup link in milliseconds.
Configuration Roadmap
The configuration roadmap is as follows:
Set a larger link cost on VLANIF 20 of Switch A, and ensure that Link T is preferentially selected for data forwarding from Switch A to Switch D.
Configure IS-IS Auto FRR on Switch A to allow traffic to be fast switched to the backup link without waiting for route convergence when a fault occurs on Link T. This improves the reliability of data 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] quit [*SwitchA] commit
The configurations of SwitchB, SwitchC, and SwitchD are similar to the configuration of SwitchA, and are not provided here.
- Configure the IP addresses of each VLANIF interface.
[~SwitchA] interface vlanif 10 [*SwitchA-Vlanif10] ip address 10.1.0.1 24 [*SwitchA-Vlanif10] quit [*SwitchA] interface vlanif 20 [*SwitchA-Vlanif20] ip address 10.2.0.1 24 [*SwitchA-Vlanif20] quit [*SwitchA] 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 1
[*SwitchA-isis-1] is-level level-1-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] quit
[*SwitchA] commit
# Configure SwitchB.
[~SwitchB] isis 1
[*SwitchB-isis-1] is-level level-1-2
[*SwitchB-isis-1] network-entity 10.0000.0000.0002.00
[*SwitchB-isis-1] quit
[*SwitchB] interface vlanif 20
[*SwitchB-Vlanif20] isis enable 1
[*SwitchB-Vlanif20] quit
[*SwitchB] interface vlanif 30
[*SwitchB-Vlanif30] isis enable 1
[*SwitchB-Vlanif30] quit
[*SwitchB] commit
# Configure SwitchC.
[~SwitchC] isis 1
[*SwitchC-isis-1] is-level level-1-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 50
[*SwitchC-Vlanif50] isis enable 1
[*SwitchC-Vlanif50] quit
[*SwitchC] commit
# Configure SwitchD.
[~SwitchD] isis 1
[*SwitchD-isis-1] is-level level-1-2
[*SwitchD-isis-1] network-entity 10.0000.0000.0004.00
[*SwitchD-isis-1] quit
[*SwitchD] interface vlanif 50
[*SwitchD-Vlanif50] isis enable 1
[*SwitchD-Vlanif50] quit
[*SwitchD] interface vlanif 30
[*SwitchD-Vlanif30] isis enable 1
[*SwitchD-Vlanif30] quit
[*SwitchD] interface vlanif 40
[*SwitchD-Vlanif40] isis enable 1
[*SwitchD-Vlanif40] quit
[*SwitchD] commit
- Set the interface cost of VLANIF 20 on SwitchA to 30, and then check the routing information.
# Set the interface cost of VLANIF 20 on SwitchA to 30.
[~SwitchA] interface vlanif 20
[~SwitchA-Vlanif20] isis cost 30
[*SwitchA-Vlanif20] quit
[*SwitchA] return
# Check information about the link from SwitchA to SwitchD. Link T has a lower cost, and so IS-IS optimally selects Link T to send traffic that is forwarded by SwitchA.
<SwitchA> display isis route 172.16.1.1 verbose Route Information for ISIS(1) -------------------------------------------------------------------------------- Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut, U-Up/Down Bit Set ISIS(1) Level-1 Forwarding Table -------------------------------------------------------------------------------- IPV4 Dest : 172.16.1.0/24 Int. Cost : 30 Ext. Cost : NULL Admin Tag : - Src Count : 1 Flags : A/-/L/- Priority : Low NextHop : Interface : ExitIndex : 10.1.0.2 Vlanif10 0x00000003 ISIS(1) Level-2 Forwarding Table -------------------------------------------------------------------------------- -------------------------------- IPV4 Dest : 172.16.1.0/24 Int. Cost : 30 Ext. Cost : NULL Admin Tag : - Src Count : 3 Flags : -/-/-/- Priority : Low
As shown in the command output, traffic from SwitchA to SwitchD is only forwarded through Link T.
- Enable IS-IS Auto FRR on SwitchA, and then check the routing information.
# Enable IS-IS Auto FRR on SwitchA.
<SwitchA> system-view [~SwitchA] isis 1 [~SwitchA-isis-1] frr [*SwitchA-isis-1-frr] loop-free-alternate [*SwitchA-isis-1-frr] commit
# Check the routing information from SwitchA to SwitchD. You can find that IS-IS creates a backup link because IS-IS Auto FRR is enabled.
<SwitchA> display isis route 172.16.1.1 verbose Route Information for ISIS(1) -------------------------------------------------------------------------------- Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut, U-Up/Down Bit Set ISIS(1) Level-1 Forwarding Table -------------------------------------------------------------------------------- IPV4 Dest : 172.16.1.0/24 Int. Cost : 30 Ext. Cost : NULL Admin Tag : - Src Count : 1 Flags : A/-/L/- Priority : Low NextHop : Interface : ExitIndex : 10.1.0.2 Vlanif10 0x00000003 (B)10.2.0.2 Vlanif20 0x00000004 ISIS(1) Level-2 Forwarding Table -------------------------------- IPV4 Dest : 172.16.1.0/24 Int. Cost : 30 Ext. Cost : NULL Admin Tag : - Src Count : 3 Flags : -/-/-/- Priority : Low
# Check the protection type for the traffic from SwitchA to SwitchD.
<SwitchA> display isis spf-tree systemid 0000.0000.0004 verbose Shortest Path Tree for ISIS(1) ------------------------------------------------------------------------------ ISIS(1) Level-1 Shortest Path Tree ------------------------------------------------------------------------------ 0000.0000.0004.00 Distance : 20 Distance-URT : 20 Flags : SPT/V4_Islt/V6_Islt IPv4 Nexthops-URT : 1 (1) 10.1.0.2 IF:Vlanif10 NBR:0000.0000.0003.00 (B) 10.2.0.2 IF:Vlanif20 NBR:0000.0000.0002.00 TYPE:LOOP-FREE PROTECT:LINK-NODE IPv4 Nexthops-MIGP : 0 IPv6 Nexthops : 0 Neighbors: 2 (Children:1 Parents:1 Others:0) (1) 0000.0000.0003.02 Cost : 10 Flags : Parent (2) 0000.0000.0004.03 Cost : 10 Flags : Child ISIS(1) Level-2 Shortest Path Tree ------------------------------------------------------------------------------ 0000.0000.0004.00 Distance : 20 Distance-URT : 20 Flags : SPT/V4_Islt/V6_Islt IPv4 Nexthops-URT : 1 (1) 10.1.0.2 IF:Vlanif10 NBR:0000.0000.0003.00 (B) 10.2.0.2 IF:Vlanif20 NBR:0000.0000.0002.00 TYPE:LOOP-FREE PROTECT:LINK-NODE IPv4 Nexthops-MIGP : 0 IPv6 Nexthops : 0 Neighbors: 2 (Children:1 Parents:1 Others:0) (1) 0000.0000.0003.02 Cost : 10 Flags : Parent (2) 0000.0000.0004.03 Cost : 10 Flags : Child
As shown in the preceding command output, link-node dual protection is performed on the traffic from SwitchA to SwitchD.
- Verify the configuration.
# Run the shutdown command on Vlanif50 of SwitchC to shut down the link.
[~SwitchC] interface vlanif 50
[~SwitchC-Vlanif50] shutdown
[*SwitchC-Vlanif50] commit
# Run the display fib 172.16.1.1 verbose command on SwitchA to check information about the route from SwitchA to SwitchD.
<SwitchA> display ip fib slot 1 172.16.1.1 verbose FIB Table : _public_ Total number of Routes : 1 Destination: 172.16.1.0 Mask : 255.255.255.0 Nexthop : 10.2.0.2 OutIf : Vlanif20 LocalAddr : 0.0.0.0 LocalMask: 0.0.0.0 Flags : DGU Age : 124sec ATIndex : 0 Slot : 1 LspFwdFlag : 0 LspToken : 0x0 InLabel : 0x0 OriginAs : 0 BGPNextHop : 0 PeerAs : 0 QosInfo : 0 OriginQos: 0 VlanId : 0 BgpKey : 0 BgpKeyBak : 0 NexthopBak : 0.0.0.0 OutIfBak : [No Intf] LspTokenBak: 0x0 InLabelBak : 0x0 LspToken_ForInLabelBak : 0x0 Nexthop_ForLspTokenBak : 0.0.0.0 OutIf_ForLspTokenBak : [No Intf] Nexthop_ForLspToken_ForInLabelBak : 0.0.0.0 OutIf_ForLspToken_ForInLabelBak : [No Intf] LspType : 0 Label_ForLspTokenBak : 0x0 MplsMtu : 0 Gateway_ForLspTokenBak : 0.0.0.0 NextToken : 0 IfIndex_ForLspTokenBak : 0 Label_NextToken : 0 Label : 0 LspBfdState : 0
As shown in the command output, the traffic forwarded by the SwitchA is switched to the backup link with outbound interface Vlanif20 and next hop 10.2.0.2.
Configuration Files
Configuration file of SwitchA
#
sysname SwitchA # vlan batch 10 20
#
isis 1
network-entity 10.0000.0000.0001.00
frr
loop-free-alternate level-1
loop-free-alternate level-2
#
interface Vlanif10
ip address 10.1.0.1 255.255.255.0
isis enable 1
#
interface Vlanif20
ip address 10.2.0.1 255.255.255.0
isis enable 1
isis cost 30 # 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
#
isis 1
network-entity 10.0000.0000.0002.00
#
interface Vlanif20
ip address 10.2.0.2 255.255.255.0
isis enable 1
#
interface Vlanif30
ip address 10.3.0.1 255.255.255.0
isis enable 1 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 20 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 30
#
return
Configuration file of SwitchC
#
sysname SwitchC # vlan batch 10 50
#
isis 1
network-entity 10.0000.0000.0003.00
#
interface Vlanif10
ip address 10.1.0.2 255.255.255.0
isis enable 1
#
interface Vlanif50
shutdown
ip address 10.4.0.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 50
#
return
Configuration file of SwitchD
#
sysname SwitchD # vlan batch 30 40 50
#
isis 1
network-entity 10.0000.0000.0004.00
#
interface Vlanif50
ip address 10.4.0.2 255.255.255.0
isis enable 1
#
interface Vlanif30
ip address 10.3.0.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 50 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 30 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 40
#
return