交换机首尾相连拉成环?华为RRPP主节点堵住副口防环断链秒切

园区和城域网组网特别爱用环形结构,道理很简单:环上任意一个节点或一段链路坏了,流量可以从另一边绕过去,业务不断。但环是把双刃剑——广播帧在环里没有出口,一圈一圈放大就是广播风暴,全网瘫掉。用生成树协议能防环,可环上一旦真断了链路,收敛时间随网络规模变大而变长,环上节点一多切换就慢,业务还是跟着抖。

华为为环网保护专门开发了 RRPP 协议,官方给了三个硬指标:收敛时间与环上节点数无关,节点再多也不拖慢切换;环完整时能防止环路广播风暴;环上某条链路断开时能迅速启用备份链路恢复各节点通信。思路上它跟生成树完全两样——不选根桥不算路径,而是在环上指定一台主节点,主节点的副端口平时直接堵住防环,环一断立刻放开,切换自然快。

配置步骤

官方示例是三台交换机 SwitchA、SwitchB、SwitchC 首尾相连组成单环。SwitchA 做环的主节点,SwitchB 和 SwitchC 做传输节点。数据 VLAN 是 VLAN100~VLAN300,控制报文走 VLAN20。

第一步,建 RRPP 域和控制 VLAN。三台都要配,以 SwitchA 为例:

<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] rrpp domain 1
[SwitchA-rrpp-domain-region1] control-vlan 20    //每个RRPP域配有两个控制VLAN,分别为主控制VLAN和子控制VLAN。配置时只需要指定主控制VLAN,而设备会自动把比主控制VLAN ID值大1的VLAN设置为子控制VLAN
[SwitchA-rrpp-domain-region1] quit

配一个 20,设备自动把 21 设成子控制 VLAN,不用自己动手。

第二步,把环上要通过的 VLAN 映射进实例 1,包括数据 VLAN 和两个控制 VLAN:

[SwitchA] vlan batch 100 to 300
[SwitchA] stp region-configuration
[SwitchA-mst-region] instance 1 vlan 20 21 100 to 300  //将主控制VLAN、子控制VLAN、数据VLAN加入实例1中
[SwitchA-mst-region] active region-configuration
[SwitchA-mst-region] quit

第三步,把要加入环的接口配成 Trunk、放行数据 VLAN,并且必须关掉 STP——RRPP 域的接口上 STP 和 Smart Link 都得关,两套环路协议打架会出问题:

[SwitchA] interface gigabitethernet 2/0/1
[SwitchA-GigabitEthernet2/0/1] port link-type trunk
[SwitchA-GigabitEthernet2/0/1] undo port trunk allow-pass vlan 1
[SwitchA-GigabitEthernet2/0/1] port trunk allow-pass vlan 100 to 300  
[SwitchA-GigabitEthernet2/0/1] stp disable
[SwitchA-GigabitEthernet2/0/1] quit
[SwitchA] interface gigabitethernet 2/0/2
[SwitchA-GigabitEthernet2/0/2] port link-type trunk
[SwitchA-GigabitEthernet2/0/2] undo port trunk allow-pass vlan 1
[SwitchA-GigabitEthernet2/0/2] port trunk allow-pass vlan 100 to 300 
[SwitchA-GigabitEthernet2/0/2] stp disable
[SwitchA-GigabitEthernet2/0/2] quit

第四步,配保护 VLAN、建环并指定节点角色。SwitchA 是主节点,GE2/0/1 做主端口、GE2/0/2 做副端口:

[SwitchA] rrpp domain 1
[SwitchA-rrpp-domain-region1] protected-vlan reference-instance 1  //将实例1配置为RRPP域的保护实例
[SwitchA-rrpp-domain-region1] ring 1 node-mode master primary-port gigabitethernet 2/0/1 secondary-port gigabitethernet 2/0/2 level 0
[SwitchA-rrpp-domain-region1] ring 1 enable
[SwitchA-rrpp-domain-region1] quit

SwitchB 和 SwitchC 角色是传输节点,命令只有 node-mode 一处不同:

[SwitchB] rrpp domain 1
[SwitchB-rrpp-domain-region1] protected-vlan reference-instance 1
[SwitchB-rrpp-domain-region1] ring 1 node-mode transit primary-port gigabitethernet 2/0/1 secondary-port gigabitethernet 2/0/2 level 0
[SwitchB-rrpp-domain-region1] ring 1 enable
[SwitchB-rrpp-domain-region1] quit

第五步,全局使能 RRPP 协议,三台都得敲:

[SwitchA] rrpp enable

验证

网络稳定后,在 SwitchA 上看两条命令。display rrpp brief 能确认协议状态、控制 VLAN 和节点角色——Domain Index 1、Control VLAN major 20 sub 21、Ring 1 上 Node Mode 是 M(主节点),主端口 GE2/0/1、副端口 GE2/0/2、Is Enabled Yes:

[SwitchA] display rrpp brief
Abbreviations for Switch Node Mode :
M - Master , T - Transit , E - Edge , A - Assistant-Edge
RRPP Protocol Status:  Enable
RRPP Working Mode: HW
RRPP Linkup Delay Timer: 0 sec (0 sec default)
Number of RRPP Domains: 1
Domain Index  : 1
Control VLAN  : major 20    sub 21
Protected VLAN : Reference Instance 1
Hello Timer   : 1 sec(default is 1 sec)  Fail Timer : 6 sec(default is 6 sec)
 Ring   Ring    Node     Primary/Common           Secondary/Edge          Is
 ID     Level   Mode     Port                     Port                    Enabled
 ----------------------------------------------------------------------------
 1      0       M        GigabitEthernet2/0/1     GigabitEthernet2/0/2    Yes

再看环的状态,display rrpp verbose domain 1 里的关键字段是 Ring State Complete 和副端口 BLOCKED——环完整时主节点就是靠堵住副端口防环的:

[SwitchA] display rrpp verbose domain 1
Domain Index   : 1
Control VLAN   : major 20    sub 21
Protected VLAN : Reference Instance 1
Hello Timer    : 1 sec(default is 1 sec)  Fail Timer : 6 sec(default is 6 sec) 
RRPP Ring      : 1
Ring Level     : 0
Node Mode      : Master
Ring State     : Complete
Is Enabled     : Enable                       Is Active: Yes
Primary port   : GigabitEthernet2/0/1         Port status: UP
Secondary port : GigabitEthernet2/0/2         Port status: BLOCKED

环一断,主节点收不到自己发出的 Hello 报文(Fail Timer 默认 6 秒),立刻放开副端口切换到备份链路。除接口必须关 STP 外,还有两条注意:RRPP 控制 VLAN 不能配 DHCP 业务和 MAC 地址学习限制规则;配保护实例与 MUX VLAN 映射时,同一个 MUX VLAN 的主 VLAN 和两类从 VLAN 要配在同一个保护实例里,否则可能出部分环路。

厂区、校园、地铁沿线这类多节点串成圈的组网,RRPP 比靠生成树硬扛稳得多。贵州诚鑫致达科技做园区环网改造时,主节点选位和端口角色规划是开工前就要定好的事。你那儿有环形组网吗,现在防环靠的是什么?