Example for Configuring EFM to Detect the ERPS Networking
Applicable Products and Versions
CE12800 series in V100R003C00 or later versions, CE12800E series (installed with FD-X series cards) in V200R005C00 or later versions, and CE8800 series in V100R006C00 or later versions, CE7800/CE6800/CE5800 (except CE5880EI, CE6881, CE5881, CE6881K, CE6820, CE6863, CE6863K, CE6881E, and CE6880EI) series in V100R003C10 or later versions.
Networking Requirements
As shown in Configuring EFM to detect ERPS networking, SwitchA, SwitchB, and SwitchC constitute an aggregation ring that provides Layer 2 aggregation services and accesses a Layer 3 network for service processing. The aggregation ring runs ERPS, providing protection switching for Layer 2 redundant links. ERPS ring 1 and ERPS ring 2 are configured on SwitchA through SwitchC. Eth-Trunk2 on SwitchA is a blocked port in ERPS ring 1, and Eth-Trunk3 on SwitchB is a blocked port in ERPS ring 2, implementing load balancing and link backup. EFM is deployed on SwitchA, SwitchB, and SwitchC for rapid link fault detection.
Configuration Roadmap
Configure an Eth-Trunk to enable two devices to connect to each other and configure the Eth-Trunk interface type.
Create an ERPS ring and configure control VLANs and protection instances.
Add Layer 2 ports to ERPS rings and specify port roles.
Configure the Guard timers and WTR timers in ERPS rings.
Configure Layer 2 forwarding on SwitchA, SwitchB, and SwitchC.
- Enable EFM globally and on an interface.
Procedure
- Configure an Eth-Trunk and set the interface type to Trunk.
#Configure SwitchA.
<HUAWEI> system-view [~HUAWEI] sysname SwitchA [*HUAWEI] commit [~SwitchA] interface eth-trunk 1 [*SwitchA-Eth-Trunk1] trunkport 10ge 1/0/1 [*SwitchA-Eth-Trunk1] trunkport 10ge 1/0/2 [*SwitchA-Eth-Trunk1] port link-type trunk [*SwitchA-Eth-Trunk1] quit [*SwitchA] interface eth-trunk 2 [*SwitchA-Eth-Trunk2] trunkport 10ge 1/0/3 [*SwitchA-Eth-Trunk2] trunkport 10ge 1/0/4 [*SwitchA-Eth-Trunk2] port link-type trunk [*SwitchA-Eth-Trunk2] quit [*SwitchA] commit
# Configure SwitchB.
<HUAWEI> system-view [~HUAWEI] sysname SwitchB [*HUAWEI] commit [~SwitchB] interface eth-trunk 1 [*SwitchB-Eth-Trunk1] trunkport 10ge 1/0/1 [*SwitchB-Eth-Trunk1] trunkport 10ge 1/0/2 [*SwitchB-Eth-Trunk1] port link-type trunk [*SwitchB-Eth-Trunk1] quit [*SwitchB] interface eth-trunk 3 [*SwitchB-Eth-Trunk3] trunkport 10ge 1/0/3 [*SwitchB-Eth-Trunk3] trunkport 10ge 1/0/4 [*SwitchB-Eth-Trunk3] port link-type trunk [*SwitchB-Eth-Trunk3] quit [*SwitchB] commit
# Configure SwitchC.
<HUAWEI> system-view [~HUAWEI] sysname SwitchC [*HUAWEI] commit [~SwitchC] interface eth-trunk 2 [*SwitchC-Eth-Trunk1] trunkport 10ge 1/0/3 [*SwitchC-Eth-Trunk1] trunkport 10ge 1/0/4 [*SwitchC-Eth-Trunk1] port link-type trunk [*SwitchC-Eth-Trunk1] quit [*SwitchC] interface eth-trunk 3 [*SwitchC-Eth-Trunk3] trunkport 10ge 1/0/1 [*SwitchC-Eth-Trunk3] trunkport 10ge 1/0/2 [*SwitchC-Eth-Trunk3] port link-type trunk [*SwitchC-Eth-Trunk3] quit [*SwitchC] commit
- Create ERPS ring 1 and ERPS ring 2 and configure protection instances for both ERPS rings. Set the control VLAN ID of ERPS ring 1 to 10 and the control VLAN ID of ERPS ring 2 to 20. Enable ERPS ring 1 to transmit data packets from VLANs 100 to 200 and enable ERPS ring 2 to transmit data packets from VLANs 300 to 400.
A VLAN cannot be mapped to multiple instances. If you map a VLAN that has already been mapped to an instance to another instance, the original mapping will be deleted.
#Configure SwitchA.
[~SwitchA] erps ring 1 [*SwitchA-erps-ring1] control-vlan 10 [*SwitchA-erps-ring1] protected-instance 1 [*SwitchA-erps-ring1] commit [~SwitchA-erps-ring1] quit [~SwitchA] stp region-configuration [~SwitchA-mst-region] instance 1 vlan 10 100 to 200 [*SwitchA-mst-region] commit [~SwitchA-mst-region] quit [~SwitchA] erps ring 2 [*SwitchA-erps-ring2] control-vlan 20 [*SwitchA-erps-ring2] protected-instance 2 [*SwitchA-erps-ring2] commit [~SwitchA-erps-ring2] quit [~SwitchA] stp region-configuration [~SwitchA-mst-region] instance 2 vlan 20 300 to 400 [*SwitchA-mst-region] commit [~SwitchA-mst-region] quit
# Configure SwitchB.
[~SwitchB] erps ring 1 [*SwitchB-erps-ring1] control-vlan 10 [*SwitchB-erps-ring1] protected-instance 1 [*SwitchB-erps-ring1] commit [~SwitchB-erps-ring1] quit [~SwitchB] stp region-configuration [~SwitchB-mst-region] instance 1 vlan 10 100 to 200 [*SwitchB-mst-region] commit [~SwitchB-mst-region] quit [~SwitchB] erps ring 2 [*SwitchB-erps-ring2] control-vlan 20 [*SwitchB-erps-ring2] protected-instance 2 [*SwitchB-erps-ring2] commit [~SwitchB-erps-ring2] quit [~SwitchB] stp region-configuration [~SwitchB-mst-region] instance 2 vlan 20 300 to 400 [*SwitchB-mst-region] commit [~SwitchB-mst-region] quit
# Configure SwitchC.
[~SwitchC] erps ring 1 [*SwitchC-erps-ring1] control-vlan 10 [*SwitchC-erps-ring1] protected-instance 1 [*SwitchC-erps-ring1] commit [~SwitchC-erps-ring1] quit [~SwitchC] stp region-configuration [~SwitchC-mst-region] instance 1 vlan 10 100 to 200 [*SwitchC-mst-region] commit [~SwitchC-mst-region] quit [~SwitchC] erps ring 2 [*SwitchC-erps-ring2] control-vlan 20 [*SwitchC-erps-ring2] protected-instance 2 [*SwitchC-erps-ring2] commit [~SwitchC-erps-ring2] quit [~SwitchC] stp region-configuration [~SwitchC-mst-region] instance 2 vlan 20 300 to 400 [*SwitchC-mst-region] commit [~SwitchC-mst-region] quit
- Add Layer 2 ports to ERPS rings and specify port roles. Configure Eth-Trunk2 on SwitchA and Eth-Trunk3 on SwitchB as their respective RPL owner ports.
#Configure SwitchA.
[~SwitchA] interface eth-trunk 1 [~SwitchA-Eth-Trunk1] stp disable [*SwitchA-Eth-Trunk1] erps ring 1 [*SwitchA-Eth-Trunk2] erps ring 2 [*SwitchA-Eth-Trunk1] commit [~SwitchA-Eth-Trunk1] quit [~SwitchA] interface eth-trunk 2 [~SwitchA-Eth-Trunk2] stp disable [*SwitchA-Eth-Trunk2] erps ring 1 rpl owner [*SwitchA-Eth-Trunk2] erps ring 2 [*SwitchA-Eth-Trunk2] commit [~SwitchA-Eth-Trunk2] quit
# Configure SwitchB.
[~SwitchB] interface eth-trunk 1 [~SwitchB-Eth-Trunk1] stp disable [*SwitchB-Eth-Trunk1] erps ring 1 [*SwitchB-Eth-Trunk1] erps ring 2 [*SwitchB-Eth-Trunk1] commit [~SwitchB-Eth-Trunk1] quit [~SwitchB] interface eth-trunk 3 [~SwitchB-Eth-Trunk3] stp disable [*SwitchB-Eth-Trunk3] erps ring 1 [*SwitchB-Eth-Trunk3] erps ring 2 rpl owner [*SwitchB-Eth-Trunk3] commit [~SwitchB-Eth-Trunk3] quit
# Configure SwitchC.
[~SwitchC] interface eth-trunk 2 [~SwitchC-Eth-Trunk2] stp disable [*SwitchC-Eth-Trunk2] erps ring 1 [*SwitchC-Eth-Trunk2] erps ring 2 [*SwitchC-Eth-Trunk2] commit [~SwitchC-Eth-Trunk2] quit [~SwitchC] interface eth-trunk 3 [~SwitchC-Eth-Trunk3] stp disable [*SwitchC-Eth-Trunk3] erps ring 1 [*SwitchC-Eth-Trunk3] erps ring 2 [*SwitchC-Eth-Trunk3] commit [~SwitchC-Eth-Trunk3] quit
- Configure the Guard timers and WTR timers in ERPS rings.
#Configure SwitchA.
[~SwitchA] erps ring 1 [~SwitchA-erps-ring1] wtr-timer 6 [*SwitchA-erps-ring1] guard-timer 100 [*SwitchA-erps-ring1] commit [~SwitchA-erps-ring1] quit [~SwitchA] erps ring 2 [~SwitchA-erps-ring2] wtr-timer 6 [*SwitchA-erps-ring2] guard-timer 100 [*SwitchA-erps-ring2] commit [~SwitchA-erps-ring2] quit
# Configure SwitchB.
[~SwitchB] erps ring 1 [~SwitchB-erps-ring1] wtr-timer 6 [*SwitchB-erps-ring1] guard-timer 100 [*SwitchB-erps-ring1] commit [~SwitchB-erps-ring1] quit [~SwitchB] erps ring 2 [~SwitchB-erps-ring2] wtr-timer 6 [*SwitchB-erps-ring2] guard-timer 100 [*SwitchB-erps-ring2] commit [~SwitchB-erps-ring2] quit
# Configure SwitchC.
[~SwitchC] erps ring 1 [~SwitchC-erps-ring1] wtr-timer 6 [*SwitchC-erps-ring1] guard-timer 100 [*SwitchC-erps-ring1] commit [~SwitchC-erps-ring1] quit [~SwitchC] erps ring 2 [~SwitchC-erps-ring2] wtr-timer 6 [*SwitchC-erps-ring2] guard-timer 100 [*SwitchC-erps-ring2] commit [~SwitchC-erps-ring2] quit
- Configure Layer 2 forwarding on SwitchA, SwitchB, and SwitchC.
#Configure SwitchA.
[~SwitchA] vlan batch 100 to 200 300 to 400 [*SwitchA] commit [~SwitchA] interface eth-trunk 1 [~SwitchA-Eth-Trunk1] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchA-Eth-Trunk1] commit [~SwitchA-Eth-Trunk1] quit [~SwitchA] interface eth-trunk 2 [~SwitchA-Eth-Trunk2] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchA-Eth-Trunk2] commit [~SwitchA-Eth-Trunk2] quit
# Configure SwitchB.
[~SwitchB] vlan batch 100 to 200 300 to 400 [*SwitchB] commit [~SwitchB] interface eth-trunk 1 [~SwitchB-Eth-Trunk1] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchB-Eth-Trunk1] commit [~SwitchB-Eth-Trunk1] quit [~SwitchB] interface eth-trunk 3 [~SwitchB-Eth-Trunk3] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchB-Eth-Trunk3] commit [~SwitchB-Eth-Trunk3] quit
# Configure SwitchC.
[~SwitchC] vlan batch 100 to 200 300 to 400 [*SwitchC] commit [~SwitchC] interface eth-trunk 2 [~SwitchC-Eth-Trunk2] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchC-Eth-Trunk2] commit [~SwitchC-Eth-Trunk2] quit [~SwitchC] interface eth-trunk 3 [~SwitchC-Eth-Trunk3] port trunk allow-pass vlan 100 to 200 300 to 400 [*SwitchC-Eth-Trunk3] commit [~SwitchC-Eth-Trunk3] quit
- Enable EFM globally on SwitchA, SwitchB, and SwitchC.
#Configure SwitchA.
[~SwitchA] efm enable [*SwitchA] commit
# Configure SwitchB.
[~SwitchB] efm enable [*SwitchB] commit
# Configure SwitchC.
[~SwitchC] efm enable [*SwitchC] commit
- Enable EFM on interfaces and set EFM detection parameters.
#Configure SwitchA. The configuration of SwitchB and SwitchC is similar to that of SwitchA. Refer to the following example to configure SwitchB and SwitchC.
[~SwitchA] interface 10ge 1/0/1 [~SwitchA-10GE1/0/1] efm timeout 300 //Set a timeout interval at which EFM packets are received on the interface. [*SwitchA-10GE1/0/1] efm packet max-size 1518 //Set the maximum size of an EFM packet on the interface. [*SwitchA-10GE1/0/1] efm interval 100 //Set an interval at which the interface sends EFM packets. [*SwitchA-10GE1/0/1] efm enable //Enable EFM on the interface. [*SwitchA-10GE1/0/1] efm trigger if-down //Associate EFM with the interface. [*SwitchA-10GE1/0/1] quit [*SwitchA] interface 10ge 1/0/2 [*SwitchA-10GE1/0/2] efm timeout 300 [*SwitchA-10GE1/0/2] efm packet max-size 1518 [*SwitchA-10GE1/0/2] efm interval 100 [*SwitchA-10GE1/0/2] efm enable [*SwitchA-10GE1/0/2] efm trigger if-down [*SwitchA-10GE1/0/2] quit [*SwitchA] interface 10ge 1/0/3 [*SwitchA-10GE1/0/3] efm timeout 300 [*SwitchA-10GE1/0/3] efm packet max-size 1518 [*SwitchA-10GE1/0/3] efm interval 100 [*SwitchA-10GE1/0/3] efm enable [*SwitchA-10GE1/0/3] efm trigger if-down [*SwitchA-10GE1/0/3] quit [*SwitchA] interface 10ge 1/0/4 [*SwitchA-10GE1/0/4] efm timeout 300 [*SwitchA-10GE1/0/4] efm packet max-size 1518 [*SwitchA-10GE1/0/4] efm interval 100 [*SwitchA-10GE1/0/4] efm enable [*SwitchA-10GE1/0/4] efm trigger if-down [*SwitchA-10GE1/0/4] quit [*SwitchA] commit
Verifying the Configuration
# After the network becomes stable, run the display erps command to check brief information about the ERPS ring and ports added to the ERPS ring. SwitchB is used as an example.
[~SwitchB] display erps D : Discarding F : Forwarding R : RPL Owner N : RPL Neighbour FS : Forced Switch MS : Manual Switch Total number of rings configured = 2 Ring Control WTR Timer Guard Timer Port 1 Port 2 ID VLAN (min) (csec) -------------------------------------------------------------------------------- 1 10 6 100 (F)Eth-Trunk1 (F)Eth-Trunk3 2 20 6 100 (F)Eth-Trunk1 (D,R)Eth-Trunk3 --------------------------------------------------------------------------------
# Run the display erps verbose command to check detailed information about the ERPS ring and ports added to the ERPS ring. SwitchB is used as an example.
[~SwitchB] display erps verbose Ring ID : 1 Description : Ring 1 Control Vlan : 10 Protected Instance : 1 Service Vlan : 100 to 200 WTR Timer Setting (min) : 6 Running (s) : 0 Guard Timer Setting (csec) : 100 Running (csec) : 0 Holdoff Timer Setting (deciseconds) : 0 Running (deciseconds) : 0 WTB Timer Running (csec) : 0 Ring State : Idle RAPS_MEL : 7 Revertive Mode : Revertive R-APS Channel Mode : - Version : 1 Sub-ring : No Forced Switch Port : - Manual Switch Port : - TC-Notify : - Time since last topology change : 0 days 0h:35m:5s -------------------------------------------------------------------------------- Port Port Role Port Status Signal Status -------------------------------------------------------------------------------- Eth-Tunk1 Common Forwarding Non-failed Eth-Tunk3 Common Forwarding Non-failed Ring ID : 2 Description : Ring 2 Control Vlan : 20 Protected Instance : 2 Service Vlan : 300 to 400 WTR Timer Setting (min) : 6 Running (s) : 0 Guard Timer Setting (csec) : 100 Running (csec) : 0 Holdoff Timer Setting (deciseconds) : 0 Running (deciseconds) : 0 WTB Timer Running (csec) : 0 Ring State : Idle RAPS_MEL : 7 Revertive Mode : Revertive R-APS Channel Mode : - Version : 1 Sub-ring : No Forced Switch Port : - Manual Switch Port : - TC-Notify : - Time since last topology change : 0 days 0h:35m:30s -------------------------------------------------------------------------------- Port Port Role Port Status Signal Status -------------------------------------------------------------------------------- Eth-Tunk1 Common Forwarding Non-failed Eth-Tunk3 RPL Owner Discarding Non-failed
Configuration Files
SwitchA configuration file
# sysname SwitchA # vlan batch 10 20 100 to 200 300 to 400 # stp region-configuration instance 1 vlan 10 100 to 200 instance 2 vlan 20 300 to 400 # efm enable # erps ring 1 control-vlan 10 protected-instance 1 wtr-timer 6 guard-timer 100 # erps ring 2 control-vlan 20 protected-instance 2 wtr-timer 6 guard-timer 100 # interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 erps ring 2 # interface Eth-Trunk2 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 rpl owner erps ring 2 # interface 10GE1/0/1 eth-trunk1 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/2 eth-trunk1 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/3 eth-trunk2 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/4 eth-trunk2 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # return
SwitchB configuration file
# sysname SwitchB # vlan batch 10 20 100 to 200 300 to 400 # stp region-configuration instance 1 vlan 10 100 to 200 instance 2 vlan 20 300 to 400 # efm enable # erps ring 1 control-vlan 10 protected-instance 1 wtr-timer 6 guard-timer 100 # erps ring 2 control-vlan 20 protected-instance 2 wtr-timer 6 guard-timer 100 # interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 erps ring 2 # interface Eth-Trunk3 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 erps ring 2 rpl owner # interface 10GE1/0/1 eth-trunk1 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/2 eth-trunk1 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/3 eth-trunk3 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/4 eth-trunk3 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # return
SwitchC configuration file
# sysname SwitchC # vlan batch 10 20 100 to 200 300 to 400 # stp region-configuration instance 1 vlan 10 100 to 200 instance 2 vlan 20 300 to 400 # efm enable # erps ring 1 control-vlan 10 protected-instance 1 wtr-timer 6 guard-timer 100 # erps ring 2 control-vlan 20 protected-instance 2 wtr-timer 6 guard-timer 100 # interface Eth-Trunk2 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 erps ring 2 # interface Eth-Trunk3 port link-type trunk port trunk allow-pass vlan 10 20 100 to 200 300 to 400 stp disable erps ring 1 erps ring 2 # interface 10GE1/0/1 eth-trunk3 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/2 eth-trunk3 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/3 eth-trunk2 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # interface 10GE1/0/4 eth-trunk2 efm packet max-size 1518 efm interval 100 efm timeout 300 efm enable efm trigger if-down # return