基于SDH光口链路状态检测机制的RSTP应用

2021-06-11 12:28郑志伟李明键
科教导刊·电子版 2021年11期
关键词:网管报文端口

郑志伟 白 杨 李明键

(中国电子科技集团公司第三十四研究所 广西·桂林 541004)

0 引言

由多台SDH设备组成的传输系统,通常采用SDH中的DCC开销字节作为其物理通道,组成SDH系统的网管网。当系统组成环形网络或mesh型网络(图1所示)时,网管网会出现多链路的冗余组网,产生环路,造成二层网络广播风暴,导致网管网络瘫痪。解决这一问题通常采用基于三层路由的OSPF协议或基于二层交换的RSTP(快速生成树协议)。基于OSPF协议的解决方案,技术要求高,对CPU的开销大,常在大型的固网中采用,而基于RSTP的方案,结构简单、实现容易、占用CPU资源少,成为节点少、网络拓扑变化系统的首选。

图1:系统组网示意图

基于RSTP的方案,是利用交换芯片基于RSTP协议,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。在SDH系统组网中,由于SDH光口并没有与交换芯片直接连接(设备网管模块原理如图2所示),无法由交换芯片直接获取SDH光口的链路状态,而RSTP协议程序是依赖链路状态变化来进行网络拓扑变化的,所以需要开发定制的光口链路检测机制以保证RSTP协议程序的正确运行。

图2:设备网管模块原理框图

1 RSTP原理

IEEE802.1WRSTP标准协议是基于IEEE802.3逻辑链路层协议实现的,符合二层链路层的帧格式,同时是在802.1D STP标准协议基础上改进而来的,具有统一的目的MAC地址(标准定义为01:80:C2:00:00:00),规定了传输的报文中的BPDU内容以及格式。通过CPU软件(RSTP应用软件)主动发送数据包到交换芯片,该数据包包含两个内容:一是由各厂商交换芯片定义的端口标签,二是基于IEEE802.1WRSTP协议的BPDU包(网桥管理单元数据包),交换芯片根据CPU构造的数据包中的端口标签,分发BPDU包到对应端口,从而传输给其他SDH设备,其他设备交换芯片收到BPDU包后自动打上端口标签,然后发送到网管CPU进行RSTP协议计算及处理。设备与设备之间通过BPDU包进行基于IEEE802.1W的RSTP标准协议的网桥信息交互以及根桥选举,各设备网桥分配端口角色,从而计算形成正确的树形网络拓扑,再根据网络拓扑以及各端口角色,配置交换芯片的端口状态,将冗余的链路阻塞,完成破环,解决环路问题。

RSTP协议只是在交换芯片层进行端口流量的阻塞控制,实际物理层链路依然有数据包传输,但是到交换芯片后会依据端口状态进行丢弃或转发,各端口的BPDU包依然能通过交换芯片与CPU间的网管口(带内管理口)传输给CPU进行处理计算,本私有光口链路检测机制便是基于交换芯片的这一工作特性进行的私有协议设计开发。

2 定制光口链路协议概述及优势

利用SDH光传输通道的网管通道,开发独立于RSTP协议之外的光口链路检测协议包(也是符合BPDU包格式定义的数据包),通过SDH设备间网管通道的RSTP协议包以及私有协议包互通,完成光口链路检测以及设备网管网络组网。利用网管通道本身的传输能力,在定时传输RSTP HELLO报文的74字节之外,再多传输74字节的私有光口链路协议报文,网管通道的带宽分配设计至少要有支持(光口数量*2*74字节)/每秒的能力。

光口链路协议原理类似BFD(双向转发检测机制)中的慢HELLO机制,两台设备之间通过互相发送报文,通知自己的接收状态,设定一个接收阈值,在接收阈值到达时,没有收到报文,则通知对端故障。由于在交换机的RSTP状态不在FORWARDING时,除了BPDU报文其他报文在到达交换机后会被丢弃,到达不了CPU处理程序,因此将光口私有链路协议的报文格式定为与BPDU相同的报文格式,但是源MAC地址为统一的特定MAC地址(全0),可以让私有链路协议包穿过交换机到达网管 CPU,同时 CPU的收包程序可以通过特定的源MAC地址将光口链路包以及普通BPDU包区分开来,而且由于是慢HELLO机制(秒级),CPU的处理任务负担不大。

本设计方案的优势:(1)由于利用网管通道传输,并不占用业务通道带宽,光口链路检测不会受到突发业务流量冲击影响以及业务链路切换的影响,保证了光口链路检测协议的独立以及稳定性。(2)使用私有链路协议检测光口状态是在RSTP应用程序基础上的补丁程序,只会给RSTP协议程序提供链路信息,不会影响RSTP标准协议程序工作。(3)本链路检测机制不依赖于具体硬件,对软件操作系统的依赖度小,增强了模块的解耦合度及通用性,便于复用移植。(4)在多板卡的项目中链路经过多个中间硬件节点,其他光口检测机制极有可能在单通或某个节点失效时认为链路良好,而实际两端CPU的报文收发失败,从而导致RSTP协议程序不能有效判断链路通断,造成故障,不能正确收敛。本方案链路通断由二层报文来确定,是CPU到CPU级别的完整链路,链路上任意节点故障导致通信中断都将被检测到,从而确保了链路检测的完整性,保证了链路发生故障时稳定收敛。(5)光口链路状态包定义固定字段(IEEE802.3标准的额外字节部分)的固定值来标识链路状态好坏且其他RSTP标准用字段为空,与标准协议隔离开来,即使商用交换机收到此包也不会对其RSTP协议程序造成影响。

3 私有光口链路实现

私有链路协议格式如下表:

表1:私有链路协议格式

光口链路协议的实现机制:

(1)初始化光口链路状态表,默认收发状态为BAD状态,链路状态为DOWN;(2)初始化光口发送定时器以及光口到期定时器,默认光口发送定时器为激活状态,而光口到期定时器为未激活状态;(3)光口链路由DOWN变为UP的实现机制:

(4)光口链路状态由UP变为DOWN的实现机制:

链路检测处理流程如下图:

图1:光口链路检测处理流程

4 结束语

SDH设备冗余组网后,进行拔插光纤,设备关电上电等操作,网管网络可以稳定收敛以及自动形成树形网络拓扑,且光口链路UP/DOWN的响应机制和收敛时间都符合预期设计。本设计方案可适用于专用网管网络,管理一个专用网络或核心骨干网中的所有设备,同时方案中的RSTP协议程序部分为标准协议,也可与商用交换机的电口进行组网。

猜你喜欢
网管报文端口
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
端口阻塞与优先级
ATS与列车通信报文分析
初识电脑端口
8端口IO-Link参考设计套件加快开发速度
发射机房网管系统的设计原则及功能
网管支撑系统运行质量管控的研究与实现
从网管系统到网管云:论网管集约化的建设思路