全球电信业正面临着严峻的挑战。VoIP的冲击使传统话音业务收入的比重持续下降;IPTV的兴起导致带宽数十倍增加而视频业务的收费价格却在降低;数据业务的增长明显趋缓。运营商面临业务转型和大幅降低成本的考验。
电信级以太网技术成为这一转变中构建城域网的主力。在支持多业务承载,推动发展Triple-Play业务,中继无线网络和互联企业网络需求中,电信级以太网技术逐渐成熟;另外,以太网巨大的经济性优势,被公认是解决运营商成本问题的法宝。
图 1 电信级以太网技术
电信级以太网技术(即运营商级以太网技术)是一种用于构建城域范围的大网络的组网技术,所以也被称为城域以太网技术。不同组织或企业面向不同国家、不同地区运营商的网络特点,推出了不同的市场技术。目前,主要是三种方式:
IETF主导的超级以太网方式。关键技术是MPLS PWE (MPLS Pseudo Wire Emulate)加VPLS(Virtual Private LAN Service);
IEEE与ITU主导的PBB(Provider Backbone Bridge)和PBT(Provider Backbone Trunk)方式。主要技术标准是IEEE 802.1ah/MiM(MacInMac)和ITUSG15 G.PBT;
各大厂商主导的增强以太网方式。目前流行的市场技术主要是RPR(Resilient Packet Ring,IEEE 802.17),SPB(Shortest Path Bridging,IEEE802.1ao),RRPP(Rapid Ring Protection Protocol,H3C),EAPS(Ethernet Automatic Protection Switching,IETF RFC 3619,Extreme Networks),MRP(Metro Ring Protocol,Foundry Networks),MMRP(Multi Mater Ring Protocol,Hitachi Cable),ERP(Ethernet Ring Protection,Siemens AG),…
其中,RRPP是我司自主知识产权的专门应用于以太网环网的链路层拓扑控制协议。它在以太网环中能够阻断冗余链路,防止数据环路引起的广播风暴;当以太网环上链路或设备故障时,能实现50ms的保护倒换,迅速切换到备份链路,保证业务快速恢复;并且具有收敛时间与环网上节点数无关的显著优势;同时,环网的组网模式可以避免SRG(Shared Risk Group)共享风险组问题。
环接网络根据拓扑可以划分为图 1所示的三种基本类型:
单环(Single-Ring):由多个节点组成的闭链;
相切环(Tangent-Ring):只存在一个公共节点的两个环;
相交环(Intersect-Ring):存在两个公共节点的两个环;
图 2 单环、相切环和相交环
其他环接拓扑可以视为由这三种基本拓扑组成。
RRPP应用于物理上环接在一起的一组设备上,我们称这组设备的网络结构为物理拓扑。由于IEEE 802.1Q规定的桥接网络中,数据是属于某一个VLAN的,RRPP实际管理的是一个或一组VLAN。我们称RRPP管理的物理环接网络上的一个VLAN或一组VLAN的逻辑结构为逻辑拓扑。
RRPP域(RRPP Domain):RRPP域由一组配置了相同域ID、控制VLAN和数据VLAN的环接的节点设备组成。一个RRPP域就是一个RRPP协议的实例,一个RRPP域存在于一个逻辑的环接网络上。
RRPP环(RRPP Ring):RRPP环对应RRPP域管理的逻辑环接网络中的一个逻辑环,RRPP环的彼此互连构成整个RRPP域。其中只能由有一个为主环,其他环为子环。
RRPP域可以只包含一个主环或一个子环(单环),也可以由一个主环和多个子环环接而成(相交环)。
环通过下面两种稳定状态来表示环上是否存在节点或链路的故障:完整状态(Complete State)和故障状态(Failed State)。
图 3 RRPP基本概念
主节点(Master Node):主节点在RRPP环上必须唯一存在,是RRPP环上的主要决策和控制节点。主节点负责阻塞和放开环上的冗余链路,发送和监控Hello检测报文,接收其他节点故障通知。
根据环上是否存在链路故障来划分,主节点分为故障状态(Failed State)和完整状态(Complete State)。由于RRPP通过主节点控制整个环的状态,所以主节点的状态就对应环的两种状态
传输节点(Transit Node):环上除主节点之外的其它节点都称为传输节点(边缘节点和辅助边缘节点实际上是特殊的主节点或传输节点)。一个RRPP环上可以有多个传输节点,也可以没有传输节点。传输节点主要负责检测环上的链路或者节点故障并通知主节点。同时,传输节点还会接收来自主节点的各种报文,刷新自己的状态或参数。
根据传输节点环上两个端口的状态划分,传输节点有3种状态:
链路Up状态(Link-Up State):两个环上端口都Up,且都处于转发状态;
链路Down状态(Link-Down State):至少存在一个环上端口Down;
临时阻塞状态(Pre-forwarding State):两个环上端口都Up,至少一个环上端口处于阻塞状态。
主端口(Primary Port):这个概念只对主节点有效。主节点主端口负责发送Hello检测报文。
副端口(Secondary Port):这个概念只对主节点有效。主节点副端口负责控制冗余链路阻塞、转发状态。
控制VLAN(Control VLAN):用于转发RRPP协议报文。控制VLAN只能包含RRPP节点接入以太环网的端口。
每个RRPP域配有两个控制VLAN,分别为主控制VLAN和子控制VLAN,主环协议报文在主控制VLAN中传播,子环协议报文在子控制VLAN中传播,主、子控制VLAN的(参见图 4)。
图 4 子环的RRPP端口只包含子控制VLAN
主环的RRPP端口既要属于主控制VLAN,同时也要属于子控制VLAN
由于主环的报文只在主环内部转发,主控制VLAN只存在于主环的RRPP端口上。由于主环被看作是子环的一个逻辑节点,子环的报文需要通过主环透传,子控制VLAN即存在于子环的RRPP端口,还存在于主环的RRPP端口。
数据VLAN组(Data VLAN Group):与控制VLAN相对,RRPP域用来传输数据报文的VLAN组称为数据VLAN组。要注意的是,数据VLAN组内的VLAN不一定已经在设备上创建,也不一定已经有端口加入,是指由RRPP域控制其转发状态VLAN。可以看出,数据VLAN组就是映射到RRPP实例的VLAN集合。数据VLAN中可以包含RRPP端口,也可以包含非RRPP端口。
虚拟节点(Virtual Node):图 5所示的相交环拓扑中,主环作为一个逻辑节点加入子环中,主环称为子环的虚拟节点。
图 5 虚拟节点
虚拟节点可以作为子环的传输节点,也可以作为子环的主节点;另外,虚拟节点同样具有主端口和副端口。为了便于设备配置和文档描述,目前的版本中虚拟节点的副端口所在的物理节点称为边缘节点(Edge Node),虚拟节点的主端口所在的物理节点称为辅助边缘节点(Assistant Edge Node),在不需要细致区分时,边缘节点、辅助边缘节点统称为边缘节点,虚拟节点的主、副端口统称为边缘端口(Edge Port)。
子环协议报文隧道(Sub Ring Packet Tunnel):主环作为子环虚拟节点需要象普通节点一样透传子环协议报文。
图 6 子环协议报文隧道
在图 6所示的主环上,主环连接子环的两个边缘节点间,存在的两条用于传输子环协议报文的路径称为子环协议报文隧道。为了防止子环协议报文在主环上形成环路,同一时刻,两条SRPT路径中至多只有一条导通。
环网健康检测报文(Hello):由主节点发起,对网络进行环路完整性检测。
链路故障通知报文(Link-Down):由传输节点发起,用来通知主节点环网发生故障。
刷新FDB通知报文(Common-Flush-FDB):由主节点发起,用来通知环上所有传输节点环网故障,刷新转发表。
环网恢复刷新FDB报文(Complete-Flush-FDB):由主节点发起,用来通知环上其它节点环网恢复,刷新转发表,放开处于阻塞状态的端口。
SRPT状态检查报文(Edge-Hello):由子环的边缘节点周期性的向两条SRPT发送,同子环的辅助边缘节点接收,用来检查子环的SRPT是否畅通。
SRPT故障通知报文(Major-Fault):由子环的辅助边缘节点周期性的从边缘端口发送出去,边缘节点接收,用于通知边缘节点检查到两条SRPT均故障。
RRPP报文格式和各域的含义如下:
0 7 | 8 15 | 16 23 | 24 31 | 32 39 | 40 47 | |
Destination MAC Address (6 bytes) | ||||||
Source MAC Address (6 bytes) | ||||||
EtherType | PRI | VLAN ID | Frame Length | |||
DSAP/SSAP | CONTROL | OUI = 0x00e02b | ||||
0x00bb | 0x99 | 0x0b | RRPP Length | |||
RRPP_VER | RRPPTYPE | Domain ID | Ring ID | |||
0x0000 | SYSTEM_MAC_ADDR (6 bytes) | |||||
HELLO_TIMER | FAIL_TIMER | |||||
0x00 | ||||||
LEVEL | HELLO_SEQ | 0x0000 | ||||
RESERVED(0x000000000000) | ||||||
RESERVED(0x000000000000) | ||||||
RESERVED(0x000000000000) | ||||||
RESERVED(0x000000000000) | ||||||
RESERVED(0x000000000000) | ||||||
RESERVED(0x000000000000) | ||||||
表 1 RRPP报文格式
Destination MAC Address:48bits,协议报文的目的MAC。
Source Mac Address:48bits,协议报文的源MAC,总是0x000fe203fd75。
EtherType:8bits,报文封装类型域,总是0x8100,表示Tagged封装。
PRI:4bits,COS(Class of Service)优先级,总是0xe0。
VLAN ID:12bits,报文所在VLAN的ID。
Frame Length:16bits,以太网帧长度,总是0x48。
DSAP/SSAP:16bits,目的服务访问点/源服务访问点,总是0xaaaa。
CONTROL:8bits,总是0x03。
OUI:24bits,总是0x00e02b。
RRPP_LENGTH:16bits,RRPP协议数据单元长度,总是0x40。
RRPP_VERS:16bits,RRPP版本信息,当前是0x0001。
DOMAIN_ID: 16bits,报文所属RRPP域的ID。
RING_ID:16bits,报文所属RRPP环的ID。
SYSTEM_MAC_ADDR:48bits,发送报文节点的桥MAC。
HELLO_TIMER:16bits,发送报文节点使用的Hello定时器的超时时间,单位(s)。
FAIL_TIMER:16bits,发送报文节点使用的Fail定时器的超时时间,单位(s)。
LEVEL:8bits,报文所属RRPP环的级别。
HELLO_SEQ:16bits,Hello报文的序列号。
环网中的各个节点通过对端口上数据VLAN组转发状态、协议报文收发和转发表刷新的控制,实现协议规定的所有功能。RRPP协议工作在下面三种环网状态下:
当环网上没有任何链路故障时,环网处于完整状态。主节点也工作在完整状态,传输节点工作在链路Up状态。
为了防止形成环路,主节点阻塞副端口上自己的数据VLAN组。同时,主节点在主端口控制VLAN内发送Hello报文,并在主节点副端口回收(见图 7)。
传输节点主副端口都处于转发状态。传输节点接收同时转发主节点发送的Hello报文,并从接收的Hello报文中提取主节点的配置参数,同步到本地。
图 7 环网完整状态
主节点可以从副端口收到自己发送的HELLO报文,就说主节点处于Complete状态。主节点的状态即反映了RRPP环的状态,因此RRPP环也处于Complete状态。
当环网上出现链路故障时,环网处于故障状态。主节点也工作在故障状态,传输节点工作在链路Down状态。
链路Down上报机制是故障检测的主要手段。由传输节点完成,为协议提供性能保障。
从图 8可以看出,传输节点监测到链路Down,传输节点立刻在其环上另外一个Up的端口的控制VLAN内发送链路Down报文通知主节点。然后,传输节点阻塞故障链路端口。
图 8 链路Down通知机制
主节点一旦接收到传输节点发送的链路Down报文,或者主节点干脆自己检测到其直连链路发生故障,则马上将其副端口设置为转发状态,启用备用的冗余链路转发其数据VLAN的流量。由于物理拓扑变化,所有节点的L2、L3转发表(MAC表和ARP表)都需要刷新。为了单向流量的快速恢复,主节点发送Common-Flush-FDB报文给环上所有节点,同时刷新自己的转发表。
故障链路轮询机制是故障检测的次要手段。由主节点完成,为链路Down上报提供备份。
主节点周期性的从其主端口发送Hello报文,通过环上各传输节点转发。如果主节点能够从副端口收到自己发送的Hello报文,说明环网链路完整;否则如果在规定时间内收不到Hello报文,就认为环网发生链路故障。
图 9 故障链路轮询机制
主节点一旦检测到环网发生链路故障(接收到传输节点发送的链路Down报文,或者主节点自己检测到其直连链路发生故障,或者轮询超时),则马上将其副端口设置为转发状态,启用备用的冗余链路转发其数据VLAN的流量。由于物理拓扑变化,所有节点的L2、L3转发表(MAC表和ARP表)都需要刷新。为了单向流量的快速恢复,主节点发送Common-Flush-FDB报文给环上所有节点,同时刷新自己的转发表。
图 10 链路故障转发表刷新
传输节点接收到Common-Flush-FDB报文后,刷新各自的L2、L3转发表。
检测到故障链路恢复时,传输节点工作在Pre-Forwarding状态。在故障恢复的传输节点端口上,所有数据VLAN组都暂时保持阻塞状态(链路故障时设置的),防止形成临时环路。同时,故障恢复的节点会启动故障恢复定时器,记录故障恢复的时间。
图 11 环网恢复检测
故障链路轮询机制是环网故障恢复检测的唯一手段,由主节点完成。
从图当环网上所有故障链路都恢复时,由于主节点主端口持续地发送Hello报文,通过环上各传输节点转发,主节点会重新在副端口收到自己发送的Hello报文。主节点迁移回Complete状态。主节点重新阻塞副端口上自己的数据VLAN组,并发送Complete-Flush-FDB通知报文。传输节点收到通知报文后,刷新自己的转发表,同时放开临时阻塞端口。
如果Complete-Flush-FDB通知报文丢失,在故障恢复定时器超时的时候,故障恢复的节点同样会放开临时阻塞的端口,恢复流量的转发。
为了支持相交环拓扑,将主环作为一个逻辑节点加入到子环中,主环称为子环的虚拟节点。主环要实现虚拟节点的功能,需要模拟物理节点的行为。
将主环作为一个逻辑传输节点加入子环时,主环称为子环的虚拟传输节点。主环要实现虚拟传输节点的功能,需要模拟物理传输节点的行为。下面介绍虚拟传输节点作为子环传输节的工作原理。
虚拟传输节点透传子环协议报文:主环作为子环虚拟传输节点需要象子环物理传输节点一样透传子环协议报文。子环协议报文在主环中通过SRPT转发。
另外,为了避免了子环协议报文在主环中形成数据环路,子环协议报文在主环中按照数据流量转发的规则进行转发。这样就保证了在任意时刻,子环的2条SRPT中,最多只有1条是通的。
图 12 虚拟传输节点透传子环协议报文
虚拟传输节点故障检测:鉴于虚拟传输节点必须具备透传子环协议报文的功能,所以两条SRPT都故障,则认为虚拟传输节点故障。虚拟传输节点故障检测就是对SRPT的状态检测。
边缘节点通过连入SRPT的两个端口周期性的向主环内发送Edge-Hello报文,经过SRPT各节点转发至辅助边缘节点。
图 13 SRPT状态检测
如果辅助边缘节点能够收到报文,说明SRPT畅通;否则如果在规定时间内收不到报文,说明SRPT故障。
图 14 虚拟传输节点故障检测
虚拟传输节点故障处理:两条SRPT全部故障时,各子环主节点收不到自己发出的Hello报文。当Fail定时器超时后,各子环主节点将放开副端口,子环之间势必形成8字形数据环路。
图 15 八字形数据环路
物理传输节点故障后,由于不再转发数据,不会产生8字形数据环路。与此类似,虚拟传输节点在各子环主节点副端口放开之前,辅助边缘节点发送Major-Fault报文,边缘节点收到报文后阻塞本节点的边缘端口,从而避免子环间形成数据环路。
Major-Fault报文是周期性发送的,如果边缘节点收到,其边缘端口继续阻塞;否则如果在规定时间内收不到报文,边缘端口自行放开。
图 16 虚拟传输节点故障处理
由于两条SRPT全部中断,因此子环协议报文无法在主环中透传,子环主节点收不到自己发出的Hello报文,放开副端口,迁移到Failed状态。(也可以通过Major-Fault报文或其他报文通知子环主节点快速放开,但是考虑到网络中发生多处故障,通过采用超时放开的简化处理)。
主环故障恢复时,SRPT得到恢复,辅助边缘节点重新收到Edge-Hello报文,停止发送Major-Fault通知报文。
如果子环本身没有故障,其主节点重新收到自己发出的Hello报文,于是阻塞副端口,切换到Complete状态。子环恢复后,主节点会从主端口发送Complete-Flush-FDB报文。边缘节点收到报文后,如果其边缘端口处于阻塞状态,立即放开边缘端口,通信恢复。
如果子环原来存在故障,则子环无法恢复。但是由于边缘节点的边缘端口原本处于转发状态,通行恢复。
如果主环故障恢复前子环恰巧发生了故障,则子环无法恢复。此时子环主节点不会发送Complete-Flush-FDB报文,如果边缘节点的边缘端口处于阻塞状态,该端口在规定时间(Fail timer)超时后仍会自行放开,也可以恢复通信。
图 17 虚拟传输节点恢复
虚拟传输节点对子环链路的故障检查和故障恢复处理和物理传输节点类似,不再此描述。
RRPP实例就是RRPP域,是由一组配置了相同域ID、控制VLAN和数据VLAN组的环接的节点设备组成。
RRPP多实例就是在同一个物理环接拓扑上(如图 19所示),相互独立的运行多个RRPP域(如图 18所示),每个RRPP域独立管理自己数据VLAN组的逻辑拓扑(如图 20、图 21和图 22所示)。
图 18 RRPP多实例
同一个物理环接拓扑上,RRPP管理的逻辑拓扑可以是不同的,如下图所示:
图 19 物理拓扑
图 20 实例1拓扑
图 21 实例2拓扑
图 22 实例3拓扑
通过多实例特性可以实现业务流量按VLAN组的负载分担,多域相交环等组网需求。
生成树组(STG,Spanning Tree Group):由于xSTP是IEEE规定的活动拓扑(Active Topology)的标准管理协议,芯片中实例一般都是以STG命名的,意思是xSTP管理的VLAN组。硬件多实例就是多个这样的VLAN组。
STG的应用需要完成两部分工作:在全局上,需要建立STG和VLAN间的一对多映射,即一个VLAN只能映射到一个STG上,一个STG可以包含多个VLAN;在端口上,要根据协议计算结果控制每个STG的转发状态。
同一台设备上可能同时运行多种拓扑管理协议,比如RRPP,MSTP和Smart-Link;而各种拓扑管理协议都存在多实例的概念。各种拓扑管理协议的多实例都是通过硬件中的STG来实现的。
在全局,各种拓扑管理协议共享一套STG-VLAN映射,但是拓扑管理协议的实例可以是STG的聚合,STG是各种拓扑管理协议能控制的最小粒度的实例。各种拓扑协议实例和STG的对应关系如下表:
拓扑协议实例 | 和STG的关系 |
xSTP实例 | 一般就是一个STG(也可以是一个或多个STG的聚合) |
RRPP域 | 一个或多个STG的聚合 |
其他拓扑协议 | 一个或多个STG的聚合 |
表 2 拓扑协议实例和STG的关系
在端口上,每个STG都有自己的转发状态,一个或多个STG的聚合也有自己的转发状态,所以最灵活的做法是:按照某实例某端口来跑某拓扑协议。
1 | 2 | 3 | … | n | |
1 | RRPP Domain 1 | MSTP MSTI 1 | RRPP Domain 1 | RRPP Domain k | |
2 | RRPP Domain 1 | MSTP MSTI 1 | RRPP Domain 1 | RRPP Domain k | |
3 | MSTP CIST | MSTP MSTI 1 | MSTP MSTI 2 | MSTP MSTI n | |
… | |||||
m-1 | MSTP CIST | RRPP Domain 2 | |||
m | MSTP CIST | RRPP Domain 2 | MSTP MSTI 2 | MSTP MSTI n |
表 3 按照某实例某端口来跑某拓扑协议
但是,考虑到实现的复杂性和应用的需求,现在的做法是按照端口运行不同的拓扑协议,即不同的协议跑在不同的端口上,改端口的所有实例均有同一个拓扑协议控制。举例如下:
1 | 2 | 3 | … | n | |
RRPP端口 | RRPP Domain 1 | RRPP Domain 2 | RRPP Domain 1 | … | RRPP Domain k |
MSTP端口 | MSTP CIST | MSTP MSTI 1 | MSTP MSTI 2 | … | MSTP MSTI n |
其他拓扑协议端口 | … | … | … | … | … |
表 4 多种拓扑协议的共存
图 23 单环
是RRPP最基本的组网应用,网络物理拓扑中只有一个环,接入设备通过单点接入,流量可以二层上环,也可以三层上环。这种组网的特点是只有汇聚层设备可以提供一定程度的高可靠性,网络规模小,网络拓扑简单。应用场景是中小企业网、校园网。
图 24 相切环
网络物理拓扑中出现多个环。各环间的关系可以是平等的;也可以是以一个环为骨干,其他环作接入。环间通过单点接入,环间流量走二层,也可以走三层。这种组网的特点是在单环的基础上提供链路级别的备份。应用场景是企业网。
图 25 相交环
接入环通过典型的双上行形式接入到汇聚环,环间流量可以走二层,也可以走三层。这种组网的特点是在相交环的基础上提供链路加设备级别的备份。应用场景是运营商,大企业网。
图 26 多域相交环
这种拓扑是汇聚环的扩展,即多个汇聚环相交。如上图所示,两个域配置相同的RRPP主环相交,通过在两个主环上激活不同的数据VLAN组(没有激活的数据VLAN组没有画出),保证两个RRPP主环环间流量走三层。这种组网的特点是在对大型网络进行支持,通过三层相交环划分环接网为不同的部分,有效减小MAC地址学习数量。应用场景是运营商。
图 27 多实例负载分担
通过在RRPP环上配置多实例,实现按VLAN组的负载分担,可以把不同的业务成功的划分到不同的数据通道上。
为了避免RRPP与STP在计算端口实例阻塞/放开状态时产生冲突,目前RRPP协议与xSTP协议在端口上互斥存在。
图 28 RRPP和xSTP混合组网
当RRPP环与xSTP网络邻接时,只支持xSTP网单点接入(通过单台设备接入)RRPP环的组网。
二者相交的组网,必须通过BPDU-Tunnel或者VLAN-VPN Tunnel来实现互连。
图 29 RRPP与Smart-Link的混合组网
RRPP与Smart-Link的混合组网通过Smart Link检测接入网络故障,基于主备模式快速切换。
RRPP单域相交环组网,可以使用虚拟传输节点技术,把主环作为子环的一个逻辑传输节点,实现对相交环拓扑的支持。但是,由于传输节点功能较为复杂,主环模拟传输节点实现较为复杂;由于需要实现相对较复杂的SRPT检测机制,占用硬件资源(ACL条目)较多;需要额外处理Edge-Hello和Major-Fault等报文,边缘节点的CPU占用较高。为此,需要提出更优的实现方案。
RRPP单域相交环组网还可以通过虚拟主节点的方式来实现,即把主环作为子环的一个逻辑主节点。
图 30 虚拟主节点
虚拟主节点检测所属子环是否发生链路故障,如果是,则将虚拟主节点的副端口设为转发模式,并刷新域内各节点的转发表。
当子环上没有任何链路故障时,子环处于完整状态。为了防止形成环路,虚拟主节点阻塞副端口(边缘节点的边缘端口)上自己的数据VLAN组。同时,虚拟主节点在主端口(辅助边缘节点的边缘端口)控制VLAN内发送Hello报文,并在虚拟主节点副端口回收。
当子环上出现链路故障时,子环处于故障状态。同样子环传输节点通过链路Down上报机制通知虚拟主节点。虚拟主节点副端口所在节点(边缘节点)一旦接收到传输节点发送的链路Down报文,或者虚拟主节点自己(辅助边缘节点)检测到其边缘端口直连链路发生故障,则马上将其副端口设置为转发状态,启用备用的冗余链路转发其数据VLAN的流量。由于物理拓扑变化,虚拟主节点通过两个边缘节点发送Common-Flush-FDB报文给域内所有节点,同时刷新自己的转发表。
虚拟主节点也会通过故障链路轮询机制检测故障。虚拟主节点周期性的从其主端口(辅助边缘节点的边缘端口)发送Hello报文,通过子环上各传输节点转发。如果虚拟主节点能够从副端口(边缘节点的边缘端口)收到自己发送的Hello报文,说明子环链路完整;否则如果在规定时间内收不到Hello报文,就认为子环发生链路故障。
虚拟主节点一旦检测到环网发生链路故障(接收到传输节点发送的链路Down报文,或者虚拟主节点自己检测到其直连链路发生故障,或者轮询超时),则马上将其副端口(边缘节点的边缘端口)设置为转发状态,启用备用的冗余链路转发其数据VLAN的流量。为了单向流量的快速恢复,虚拟主节点发送Common-Flush-FDB报文给环上所有节点,同时刷新自己的转发表。
虚拟主节点通过故障链路轮询机制检测子环故障恢复。当子环上所有故障链路都恢复时,由于虚拟主节点会重新在副端口收到自己发送的Hello报文。虚拟主节点重新阻塞副端口上自己的数据VLAN组,并发送Complete-Flush-FDB通知报文。
当RRPP环网中加入非RRPP设备或者其他厂商设备时,由于非RRPP设备或者其他厂商设备不具备RRPP传输节点故障上报等功能,就需要通过一种新的机制来实现快速的故障倒换。快速轮讯就是为了解决这种应用场景提出来的。
图 31 快速轮询
快速轮询机制原理和原来轮询机制的原理基本相同。通过主节点周期性的从其主端口发送Turbo Hello报文,通过环上各节点转发。如果主节点能够从副端口收到自己发送的Turbo Hello报文,说明环网链路完整;否则如果在规定时间内收不到Turbo Hello报文,就认为环网发生链路故障。区别在于,为了提高轮询检测的速度和精确性,必须作几点改进:
§ Turbo Hello报文的发送间隔大大缩短;
§ Turbo Hello报文发送的时间间隔更加均匀;
§ Turbo Hello报文接收的检测更加及时(确保报文检测对的间隔不会导致定时器消息累计);
目前,RRPP是一个依赖配置的协议。在组网复杂的情况下,配置工作量较大,配置复杂性增加。为了解决这个问题,需要引入RRPP的自动配置的功能。
一个可行的方案是主节点通过从自己的主副端口发送声明来实现RRPP端口属性的注册和注销,当环上其他各节点的主副端口接收到一个RRPP端口属性声明时,该端口将注册RRPP端口属性,如果环上其他各节点的主副端口接收到撤销RRPP端口属性的声明,该端口将注销RRPP端口属性。
图 32 RRPP自动配置过程
很明显,自动配置的RRPP端口属性注册和注销仅仅是对于接收到属性声明的端口而言的。因为只有接收到属性声明的端口才注册该属性,那么当属性注册过程平衡以后,在环上各台设备上建立必要RRPP控制VLAN通路和RRPP端口属性,从而完成启动配置。
RRPP单域相交环组网中,虚拟传输节点技术SRPT故障检测依赖于Edge-Hello报文接收超时,故障倒换性能较差;另外边缘节点需要额外处理Edge-Hello和Major-Fault等报文,导致CPU占用较高。为了解决这些问题,可是通过SRPT故障主动上报来解决。
图 33 SRPT故障上报
主环传输节点检测到链路故障,发送SRPT故障通知报文给两个边缘节点。当两个边缘节点从自己环上的两个端口都收到SRPT故障通知时,认为主环这个虚拟传输节点故障了,然后进行相应处理。
虚拟主节点的问题是子环数据VLAN的阻塞位置固定,不能完全由配置决定逻辑拓扑。
图 34 分段检测
为此,使用分段检测,将虚拟主节点对子环轮询的一份Hello报文拆成两份,分别从虚拟主节点的两个边缘端口发送出来,轮询报文的检测还是由子环主节点来完成。