基于稳定拓扑的以太环网保护
2010-01-13
作者:沈一波1,石旭刚2,张 胜3,吴敏凉1
摘 要: 介绍了RFC3619和G.8032两种主要的以太环网保护切换方案。在此基础上提出了一种基于稳定拓扑的方案,阐述了其中保护切换的机制。结合两种传统方案的优点,引入了稳定拓扑的思想,能有效缩短业务恢复时间,提高环网可靠性。
关键词: RFC3619;G.8032;保护切换;稳定拓扑;业务恢复
城域以太网和工业以太网对网络可靠性都有很高的要求。典型的电信级以太网要求达到50 ms的业务自愈时间。工业级的要求稍低,但也普遍要求满足200 ms自愈时间的需求。而传统的用于LAN领域的以太网技术(如STP/RSTP)难以满足要求[1]。为此人们不断为提高以太网技术的可靠性而努力。
环形拓扑结构简单,便于层次化组网,传输延迟相对确定, 便于网络管理,它非常适合用来提供快速灵活的保护。目前的城域传送网和工业以太网也大都采用环形架构。在此基础上, RFC3619(EAPS)以太网自动保护切换和G.8032以太环网保护方案,日益受到人们的重视,并逐渐实现了一些应用。
本文在分析RFC3619和G.8032这两种主流的以太环网保护技术的基础上,提出了一种基于稳定拓扑的以太环网保护切换方案,以进一步缩短业务恢复时间,同时提高环网可靠性。
1 主流的以太环网保护
1.1 RFC3619(EAPS)
RFC3619[2]是互联网工程任务组(IETF)于2003年发布的具有较大影响的以太网自动保护切换方案,如图1所示。1个单独的以太网环上存在1个EAPS域,域中所有的端口是被预先配置的。EAPS环中节点分为两类,1个节点被定为主节点(RingMaster),其余节点被定为从节点(RingSlaves)。主节点有2个端口,其中1个端口被定义为主端口(PrimaryPort),主要负责转发数据;另1个端口定义为从端口(SecondaryPort),正常状态下该端口被阻塞(Blocking)。从节点正常状态下端口都处于转发(Forwarding)状态。

RFC3619提供了2种机制检测环路故障。EAPS环上的从节点监测自己的直连链路状态,如果发现故障,相邻节点发送1次故障报文(Linkdown Message)通知主节点。主节点也周期性地从其主端口发送健康检测报文(Hello Message),依次经过各从节点在环上传播。如果主节点从端口能够收到自己发送的健康检测报文,说明该环网链路完整;如果在规定时间内无法收到健康检测报文,则认为环网发生了故障。检测到故障后,主节点会将其从端口置于转发状态,同时向全网发布刷新地址表命令。
当链路或者节点故障恢复的时候,主节点又从从端口收到健康检测报文。主节点又将其从端口置于阻塞状态,再次向全网发布刷新地址表的命令。
1.2 G.8032(APS)
继RFC3619后,多家通信厂商都向ITU-T提出了自己的环网保护方案。ITU-T于2008年2月提出了G.8032[3]标准。
G.8032与RFC3619的原理基本相同,它运行在APS域之上。如图2所示,备用链路称为RPL,主节点称为RPL Owner。PRL Owner不再周期性地发出Hello Message。每个节点检测ETH-CC(以太网连续性检查)OAM消息,ETH-CC OAM在ITU-T Y.1731中定义。一旦节点检测到故障,就会不断发起Signal Fail(SF)消息。但为了减轻网络负担,发送SF消息的时间间隔不是均匀的:开始的3个SF消息时间间隔很短,短至毫秒级,后面的SF消息则以秒级的间隔较慢地发送。

同时,为了增加环路的稳定性和协议的可靠性,G.8032也比RFC3619增加了2个定时器。1个称作Hold-off Timer,用于滤除间歇性故障;另1个称为WTR Timer,用于避免在故障恢复时发生新的故障而导致的误判。
2 稳定拓扑保护切换(STPS)
2.1 稳定拓扑(Stable Topology)
无论是RFC3619草案还是G.8032协议,在故障发生或恢复时,都会将主节点的备用端口状态转移。 因为实际传输路径已经切换,要实现报文的正确寻址,每个节点必须刷新MAC地址表[4],然后通过泛洪重建,这会导致环路流量的激增。业务恢复时间也不等于保护切换时间,还必须加上这个MAC地址表重建的时间[5]。如果故障马上恢复,重复执行这个过程,有可能引起振荡。
在环路故障发生时,由于故障点的不可预知,为了保证系统可靠,必须要有以上完整的保护切换过程。但在故障恢复时,我们可以将一个故障端口选为备份端口,故障链路直接选为备份链路。这样可以省去路径的切换,最大程度地维持了原拓扑的稳定,也不再需要业务恢复时间。这样的处理,对频发故障点是很有效的。
2.2 概念和定义
(1)STPS域:由指定的环网端口组成的1个VLAN域,在上面传输STPS的3种环网报文。
(2)Master:主节点,在1个环路中特别指定或者运行其他拓扑发现算法而选举出的唯一节点。
(3)Transit:传输节点,环网中除Master以外的节点。
(4)Backup Link:备份链路,不管是环路初始还是环路恢复,均指最后接通形成环路的链路,这样备份链路不一定位于主节点旁边。
(5)PID:环网端口ID号=MAC地址+端口号,这是1个端口在环网中的唯一标识。
(6)Backup Port:备份端口,在1个环路中唯一被Master指定为阻塞的端口。备份端口总是2个故障点中拥有最小PID值的那1个。
(7)Hello Message:健康检测报文,主节点在定时器作用下,不断向两个环网端口发送。
(8)Linkdown Message:故障通告报文,传输节点检测到一侧故障后,向另一侧发起的通告。
(9)Command Message:命令报文,主节点检测到故障恢复后发布命令,指定1个Backup Port。
(10)Send Timer:发送报文的定时器,主节点用其定期发送Hello Message;故障节点用其定期发送Linkdown Message。
(11)Alive Timer:各个端口用来监视链路故障的计时器,如果超时,说明环网出现故障。
(12)Hold-off Timer:端口检测到物理断路时才触发,超时后发起Linkdown Message,这样可以过滤不稳定的物理连接引起的短暂故障。
(13)WTR Timer:主节点在检测到环路恢复时启用,超时后发出Command Message,这样可以避免故障恢复的同时产生新故障引起的误判和误判。
2.3 保护切换机制
2.3.1 健康的环路
如图3所示,所有节点在物理拓扑上连接成环;主节点通过将STPS域上的1个端口置于Blocking状态,来避免在逻辑上成环。主节点在Send Timer作用下,向两侧端口定期发送Hello Message,从节点从1个端口收到后重置Alive Timer,并向另1个端口转发。这样在健康环路的两个方向上,充斥着Hello Message。各个节点通过Alive Timer监视相邻的2个节点,通过PHY监视相邻链路。

2.3.2 故障产生
(1)端口检测到PHY链路故障后启动Hold-off Timer,在一定时间内没有检测到PHY链路恢复,就触发保护切换机制。端口检测到Alive Timer超时,直接触发保护切换机制。
(2)故障节点阻塞故障端口,刷新地址表,当Send Timer超时就向另一侧端口发出Linkdown Message,其中包含故障节点的PID。
(3)传输节点收到Linkdown Message,刷新地址表,并将报文向另一个方向转发。如果有端口状态为Blocking,转至Forwarding。
(4)主节点收到Linkdown Message,也要确保环网端口处于转发态,刷新地址表,但不将报文转发。
(5)至此,环网处于保护状态,如图4所示,所有的节点在逻辑拓扑中仍为链型结构。

(6)主节点最终会收到2个故障端口的PID,将其存储。如果从现有的链型拓扑中移去或者加入新的节点,主节点总是根据故障端口发出的Linkdown Message,记录2个最新的PID。
2.3.3 故障恢复
(1)当失效的链路或者节点恢复,故障点端口任然保持阻塞状态。
(2)当主节点的2个端口重新收到Hello Message,就启动WTR Timer。
(3)在预定时间内,主节点没有收到Linkdown Message,WTR Timer过期。主节点可判断故障恢复,向2个端口各发送1帧Command Message,里面指定了1个备份端口,这个备份端口就是原来记录的2个PID值中较小的1个,如图5所示。

(4)各个端口收到Command Message后,如果发现自己不是被指定的备份端口,就确保处于Forwarding状态,然后将报文转发;如果发现自己就是被指定的端口,就确保处于Blocking状态,不再转发Command Message。
(5)至此,环网重建完成,不需要刷新地址表。环网中只有1个备份端口和一条备份链路,环路恢复到健康状态,如图6所示。

2.4 方案的实现
本文基于稳定拓扑的以太环网保护切换方案定义了4种节点状态和8类事件,使用状态机可以灵活实现状态的转移和事件的处理。
(1)节点状态
S1:Master/Ring=1:主节点成环状态;
S2:Master/Ring=0:主节点未成环状态;
S3:Transit/Ring=1:传输节点成环状态;
S4:Transit/Ring=0:传输节点未成环状态。
(2)事件
E1:收到Hello Message;
E2:收到Linkdown Message;
E3:收到Command Message;
E4:PHY检测到链路故障;
E5:Alive Timer超时;
E6:Hello Timer超时;
E7:Hold-off Timer超时;
E8:WTR Timer超时。
(3)实现框图
如图7所示,报文类型判断模块主要负责从报文队列中取出报文,然后根据类型号判断是Hello Message、Linkdown Message还是Command Message,并产生事件请求。

在接收报文的同时,各个定时器也可能产生超时事件,而各种事件对系统的重要性是不同的,STPS请求优先级判断模块判断所产生事件的优先级,并交给处理模块。
STPS处理模块根据请求和节点状态做出相应动作,并实现状态的转移。主要有对定时器的操作,对MAC地址表的操作及对端口的操作和发送STPS报文。
3 与传统以太环网保护方案的比较
基于稳定拓扑的保护切换(STPS),以RFC3619和G.8032技术为蓝本,并对过程进行了优化,具有一些鲜明的特点:引入了拓扑稳定的想法,使备份端口的选取更灵活,从而在环网恢复时,不再需要刷新MAC地址表,最大程度地稳定了拓扑结构,减少了业务恢复时间,这对频发故障点特别有效。
本方案保留了RFC3619中Hello Message的概念,但做了改进,由主节点向2个端口发送。舍弃了Y.1731协议中的ETH-CC OAM,减轻了网络开销和CPU处理负担。沿用了G.8032中WTR Timer和Hold-off Timer,增加了网络的可靠性。在实现方法上,可以对同时发生的多事件进行优先级排序处理,比较适合操作系统实现,可以有效提高嵌入式系统的实时性。
参考文献
[1] 张琦.案例精解企业级网络构建[M].北京:电子工业出版社,2008.
[2] Etrame network’Ethernet automatic protection switching version1[S].2003.
[3] G.8032 ethernet ring protection overview[S]. ITU-T Q9-SG15,2008(3).
[4] 88E6092/6095/6095F Marvell datesheet.2005.
[5] 詹翊春.以太网线性保护与环网保护[J].烽火网络,2008(7).
