定义

  • 快速环网保护协议
  • 应用于以太环网的链路层协议
  • H3C、华为私有协议
  • RRPP与STP、Smart-link冲突

相关概念

RRPP域

  • 共同运行同一个RRPP协议的网络范围

主环

  • 主要环结构
  • 主环和子环的健康状态检测都在主环上进行

子环

  • 和主环相连的其他环结构

节点

  • 定义:运行RRPP的交换机

  • 分类:

    • 主节点 负责环网的健康状态检测

    • 传输节点 除主节点外的 其他节点

    • 边缘节点 子环和主环相交的节点

    • 辅助边缘节点 子环上和主环相交的另一个节点

端口角色

主端口
  • 主节点上的主端口周期性发起Hello报文,默认处于转发状态
  • 传输节点上的主端口接收或发送Hello报文,处于转发状态
副端口
  • 主节点上的副端口通过接受Hello报文来判断环网健康状态,默认处于阻塞状态
  • 传输节点上的副端口接受或发送Hello报文,处于转发状态
边缘端口
  • 边缘节点和辅助边缘节点上连接子环一侧的端口
公共端口
  • 边缘节点和辅助边缘节点上连接主环一侧的端口

工作机制

Polling机制

  • 主节点的主端口周期性发送Hello报文
  • 传输节点转发该报文
  • 如副端口能够周期性收到Hello报文,判断为环网正常,超出周期末收到,则判断环网故障
  • 检测到环网故障,主节点立即开启副端口

链路状态变换通知机制

  • 环网故障后,故障所在节点立即向主节点发起Link-down报文
  • 主节点收到Link-down报文后,立即开启副端口

子环状态检测机制

  • 子环主节点的主端口周期性发送Hello报文
  • Hello报文分别沿主环链路和主环与子环相交的链路转发
  • 只有子环和主环相交的链路和某一条主环链路同时故障,才会导致子环主节点的副端口无法收到Hello报文,判断为子环故障
  • 子环故障后,子环主节点立即开启副端口
  • 该机制会导致多子环环境产生环路

主环上子环协议报文通道状态检测机制

  • 正常情况下,边缘节点周期性沿主环链路和主环与子环相交的链路发送Edge-hello报文,该报文会被辅助边缘节点接收
  • 当子环和主环相交的链路和某一条主环链路同时故障,辅助边缘节点无法收到Edge-hello报文,立即沿子环链路发送Major-fault报文
  • 边缘节点收到Major-fault报文后,立即阻塞所有边缘端口
  • 阻塞完成后,子环主节点开启副端口
  • 该机制会造成部分设备成为孤岛设备

环组

  • 如果有多个子环,每个子环都会在边缘和辅助边缘节点通过收发Edge-hello、Major-fauIt等报文来进行状态检测,增加设备性能负担
  • 可以在边缘和复杂边缘节点上把多个子环加入到一个环组

拓扑状态变化

  • 环网健康时,处于Complete状态

链路故障

  • 传输节点链路故障,主节点收到Link-down报文后,切换至Faied状态,并放开副端口;主节点发送Common-Flush-FDB报文刷新其他交换机表项
  • 如果Link-down报文未被主节点收到,主节点的副端口无法收到Hello报文,同样会切换至Failed状态,并进行后续操作

链路恢复

  • 当传输节点链路恢复,传输节点状态切换至Preforwardfing状态,阻塞刚刚恢复的端口
  • 主节点的副端口收到Hello报文,状态切换至Complete,阻塞副端口
  • 主节点从主端口发送Complete-Flush-FDB报文
  • 传输节点收到Complete-Flush—FDB报文后,状态切换到Link-Up状态,放开临时阻塞的端口,并刷新表项
  • 传输节点中Preforwarding状态下,一定时间内接受不到主节点的Complete-Flush-FDB报文,也可以自动放开阻塞端口

相关命令

1
2
3
4
5
6
7
8
9
[h3c]rrpp domain 'domain-id'	#创建RRPP域
[h3c-rrpp-domain1]control-vlan 'vlan-id' #配置控制VLAN。控制VLAN不能提前创建
[h3c-rrpp-domain1]protected-vlan reference-instance 'instance-list' #配置保护VLAN
[h3c-rrpp-domain1]ring 'ring-id' node-mode master primary-port 'port-name' secondary-port 'port-name' level 'level' #配置主节点
[h3c-rrpp-domain1]ring 'ring-id' node-mode transit primary-port 'port-name' secondary-port 'port-name' level 'level' #配置传输节点
[h3c-rrpp-domain1]ring 'ring-id' node-mode edge edge-port 'port-name' #配置边缘节点
[h3c-rrpp-domain1]ring 'ring-id' node-mode assistant-edge edge-port 'port-name' #配置辅助边缘节点
[h3c-rrpp-domain1]ring 'ring-id' enable #使能RRPP环
[h3c]rrpp enable #使能RRPP