Configuring ERPS Multi-instance
Applicable Products and Versions
This example applies to the CE12800 V100R003C00 or later, the CE12800E configured with FD-X series cards V200R005C00 or later, the CE8800 V100R006C00 or later and the CE7800/CE6800/CE5800 (excluding CE5880EI, CE6881, CE5881, CE6881K, CE6820, CE6863, CE6863K, CE6881E, and CE6880EI) V100R003C10 or later.
Networking Requirements
Figure 2-23 shows SwitchA through SwitchC constitute a ring network at the aggregation layer to implement service aggregation at Layer 2 and process Layer 3 services. ERPS is used on the ring network to provide 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.
Configuration Roadmap
Configure the link type of all ports to be added to ERPS rings as trunk.
Create ERPS rings and configure control VLANs and Ethernet Ring Protection (ERP) instances in the ERPS rings.
Add Layer 2 ports to ERPS rings and specify port roles.
Configure the Guard timers and WTR timers in the ERPS rings.
Configure Layer 2 forwarding on SwitchA through SwitchC.
Procedure
- Configure the link type of all ports to be added to an ERPS ring as 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 ERP instances in the two 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 MSTIs. If you map a VLAN that has already been mapped to an MSTI to another MSTI, 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 the 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 through 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
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 # 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 # interface 10GE1/0/2 eth-trunk1 # interface 10GE1/0/3 eth-trunk2 # interface 10GE1/0/4 eth-trunk2 # 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 # 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 # interface 10GE1/0/2 eth-trunk1 # interface 10GE1/0/3 eth-trunk3 # interface 10GE1/0/4 eth-trunk3 # 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 # 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 # interface 10GE1/0/2 eth-trunk3 # interface 10GE1/0/3 eth-trunk2 # interface 10GE1/0/4 eth-trunk2 # return