一种EAPS以太环网的主备倒换方法与流程

文档序号:19579086发布日期:2019-12-31 19:46阅读:303来源:国知局
一种EAPS以太环网的主备倒换方法与流程

本发明涉及一种eaps以太环网的主备倒换方法,属于通信技术领域。



背景技术:

eaps是ietf在rfc3619中定义的一种以太环网自动保护倒换技术,当以太环网上一条链路断开时,能迅速启用备份链路以恢复环网上各个节点之间的通信。和stp协议相比,eaps具有拓扑收敛速度快(低于50ms)和收敛时间与环网上节点数无关的特点。以单环为例,所有协议报文都在vlan5的控制平面中传输,所有数据报文都在其它vlan的数据平面中转发,具体实现方案如下:s1,正常情况下,master主节点周期性地从主端口发送health报文,如果能从副端口收到该报文,则表明环路完整,主节点进入complete状态,此时将副端口stp状态置为blocking阻塞状态,阻塞数据报文,消除环路。s2,l2链路故障,传输节点transmit2的副端口和transmit3的主端口会发送linkdown报文,并进入link-down状态。主节点收到linkdown报文,进入failed状态,并将副端口stp状态置为forwarding转发状态并通知发送comm-flush-fdb报文通知环网所有传输节点清除本地fdb表。s3,l2链路恢复,传输节点transmit2和transmit3进入preforwarding状态(临时阻塞状态)并将恢复的端口置为blocking阻塞状态,防止环路。此时master主节点的副端口可以收到主端口发送的health报文进入complete状态,重新阻塞自己的副端口,并发送comp-flush-fdb报文。传输节点transmit2和transmit3收到主节点发送的comp-flush-fdb报文后清除本地fdb地址表,并迁移到link-up状态,并将blocking阻塞状态的端口重新置为forwarding转发状态。

master主节点是维持整个环网网络运转的核心,它在eaps环网上唯一存在,是eaps环上的主要决策和控制节点。主节点负责阻塞和放开环上的冗余链路,发送和监控health检测报文接收其他节点故障通知。一旦master主节点故障或崩溃了,整个环网协议也就失去控制而充满未知了。这可能导致以下后果发生:1)master节点控制平面崩溃,数据平面工作正常,如果此时副端口为forwarding状态,环网上也没有其它链路故障,则会形成环路,引起广播风暴。反之,如果此时副端口为blocking状态,环网上虽然不会再出现环路,但如果环网上其它链路出现链路故障或恢复,则master节点无法控制环网所有传输节点清除fdb地址表,导致环上数据切换非常缓慢。2)master节点控制平面和数据平面都崩溃,此时如果环网其它链路出现故障,则以master节点为分界点的故障链路两端的传输节点之间将完全隔离而无法互通数据流量;如果环网故障链路恢复,master节点无法控制其它传输节点清fdb表,同样会导致环网数据切换非常缓慢。3)如果master节点正常,但其主副端口都linkdown了,其最终也将导致环网数据切换非常缓慢。



技术实现要素:

针对以上方法存在的不足,本发明提出了一种eaps以太环网的主备倒换方法,一旦主节点出现异常,其能够迅速将备用主节点转成新的主节点,并利用rpl链路组建新的环网,维持环网协议的继续运行。

本发明解决其技术问题采取的技术方案是:

本发明实施例提供的一种eaps以太环网的主备倒换方法,在eaps以太环网中增加一条rpl保护链路配置,将与master主端口直连的传输节点通过命令配置成master-owner,将与master副端口直连的传输节点通过命令配置成master-neighbor,master-neighbor和master-owner的副端口与master直连。

结合作为本实施例一种可能的实现方式,所述主备倒换方法包括以下步骤:

s1,正常情况下,master主节点周期性地从主端口发送health报文,如果能从副端口收到该报文,则表明环路完整,master主节点进入complete状态,将副端口stp状态置为blocking阻塞状态,阻塞数据报文,消除环路,同时发送comp-flush-fdb报文通知所有传输节点清除fdb表;

s2,如果master-owner的副端口linkdown,master-owner进入listen状态,master-owner主端口会发送link-down报文,如果master-neighbor主端口收到link-down报文,且报文源mac地址为步骤s1中mac协商保存的mac,表明master-owner主端口和master-neighbor主端口之间的所有传输节点都没有链路故障,此时master-neighbor也进入listen状态,监控master-neighbor副端口和master节点之间链路状态;

s3,如果master-owner副端口状态为linkup,在3倍的health报文发送周期内收不到master节点发送的health报文时,master-neighbor也将收不到health报文,master-neighbor进入listen状态,master-owner直接触发主备倒换,master-owner切换工作模式为master主节点;

s4,增加manual-switch命令,手动触发主备倒换,可以将任意传输节点指定成master节点,新的master主端口发送health报文,如果旧的master节点收到health报文,但报文源mac地址不是自己的,则将工作模式切换成传输节点;如果在master-owner或master-neighbor上执行manual-switch命令,选择是否启用rpl链路;

s5,步骤s2中,如果master-owner故障端口恢复linkup,且收到health报文,则触发主备反转,master-owner工作模式切换成传输节点,rpl主端口和rpl副端口角色互换,并将rpl主端口置为disabled状态,重新阻塞rpl链路;rpl主端口发送link-up报文,master-neighbor主端口收到link-up报文,且报文源mac地址为s1中mac协商的mac地址,则将rpl主端口和rpl副端口角色互换,此时如果副端口是linkdown的,则将节点状态置为listen状态,否则置为transmit状态。

结合作为本实施例一种可能的实现方式,在步骤s1中,master-owner和master-neighbor之间进行mac协商,master-owner和master-neighbor都定时1秒从主端口和副端口周期发送特殊health报文,master-neighbor和master-owner收到特殊health报文,记下报文源mac地址,保存到本地,并发送reserved字段为0xbb的特殊health报文作为应答,master-owner和master-neighbor收到应答报文,停止发送reserved字段为0xaa的特殊health报文。

结合作为本实施例一种可能的实现方式,在步骤s2中,master主端口也会检测到linkdown,master副端口会变成forwarding状态,并从master副端口连续发送3个comm-flush-fdb报文,通知其它传输节点清fdb表。

结合作为本实施例一种可能的实现方式,所述触发主备倒换的过程报一下步骤:

s2-1,如果处于listen状态的master-neighbor节点的副端口没有链路故障,且5秒时间内没有收到master节点发送的comm-flush-fdb报文,则master-neighbor主端口主动发送link-down报文,master-owner收到link-down报文,且报文源mac地址等于mac协商地址,此时,如果master-owner不是listen状态,则置为listen状态,否则触发主备倒换,将master-owner工作模式切换成主节点;

s2-2,如果master-neighbor节点的副端口linkdown,则master-neighbor主端口主动发送link-down报文,master-owner收到link-down报文,且报文源mac地址等于mac协商地址,此时,如果master-owner不是listen状态,则置为listen状态,否则触发主备倒换,将master-owner工作模式切换成主节点;

s2-3,master-owner触发主备倒换流程为:master-owner成为主节点,rpl端口stp状态置为blocking,然后rpl主端口和rpl副端口角色互换,rpl主端口周期性地发送health报文,rpl副端口发送2个health报文,如果rpl副端口收到health报文,则rpl节点状态变为complete状态,并从rpl副端口发送comp-flush-fdb报文通知其它传输节点清除fdb表;如果master-neighbor收到health报文且报文源mac地址为mac协商地址,则将自己的状态置为switch状态,并将rpl主端口和rpl副端口角色互换。

结合作为本实施例一种可能的实现方式,所述listen状态为:master节点的主端口或副端口其中一个故障或控制报文不通;此时master-owner和maser-neighbor处于主节点故障监控状态。

结合作为本实施例一种可能的实现方式,所述transmit状态为:master的主端口和副端口都正常;此时master-owner和maser-n处于正常的传输节点状态。

结合作为本实施例一种可能的实现方式,所述switch状态为:master的主端口和副端口都故障或控制报文不通,此时环网处于倒换状态;体现在master-owner主节点上是complete或failed状态,体现在master-neighbor传输节点上是switch状态。

结合作为本实施例一种可能的实现方式,在步骤s5中,如果master-neighbor的副端口恢复linkup,则其主端口发送link-up报文,rpl端口和rpl副端口角色互换,节点状态置为listen,一旦其收到旧master发送的health报文或与mac协商地址匹配的link-up报文,则其状态置为transmit状态;如果master-owner主端口收到link-up报文,且报文中的源mac为s1中mac协商的mac地址,则触发主备反转,master-owner工作模式切换成传输节点,rpl端口和副端口角色互换,并将rpl端口置为disabled状态,重新阻塞rpl链路,此时如果副端口为linkup,则状态变为transmit,否则状态为listen;旧的master节点会从主端口周期发送health报文,如果副端口收到该报文,则将副端口置为blocking状态,master节点进入complete状态,并发送comp-flush-fdb报文,通知其它传输节点清除fdb表。

本发明实施例的技术方案可以具有的有益效果如下:

环网中的主节点是整个协议正常运转的核心,一旦主节点发生异常,整个环网协议将无法正常运转,本发明在eaps环网中采用一种高可靠性主备倒换技术,将指定的传输节点配置成备份主节点,一旦主节点异常时,让配置的备份主节点成为新的主节点,保证了环网协议仍能继续运转,有效保障了工业网络的稳定性和可用性。

本发明应用于以太环网的链路层协议,它在以太环网中能够防止数据环路引起的广播风暴。当环型网络中的交换机内部的链路发生一个单一故障时,可以迅速将备用主节点转成新的主节点,并利用rpl链路组建新的环网,维持环网协议的继续运行,能够在一定的时间内确定性地恢复网络的功能,满足了工业网络的可用性要求。

附图说明:

图1是现有具有自动保护倒换功能的一种以太环网示意图;

图2是根据一示例性实施例示出的一种主备倒换的eaps以太环网示意图;

图3是根据一示例性实施例示出的一种主备倒换的eaps以太环网示意图;

图4是根据一示例性实施例示出的一种主备倒换的eaps以太环网示意图;

图5是根据一示例性实施例示出的一种主备倒换的eaps以太环网示意图;

图6是根据一示例性实施例示出的一种主备倒换的eaps以太环网示意图。

具体实施方式

下面结合附图与实施例对本发明做进一步说明:

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

环网中的主节点是整个协议正常运转的核心,一旦主节点发生异常,整个环网协议将无法正常运转,本发明主要是在eaps环网中采用一种高可靠性主备倒换技术,将指定的传输节点配置成备份主节点,一旦主节点异常时,让配置的备份主节点成为新的主节点,保证环网协议仍能继续运转,有效保障工业网络的稳定性和可用性。

本发明在现有eaps方案基础上,增加了一种高可靠性主备倒换技术,具体如下图2所示:

本技术方案中,增加一条rpl保护链路配置,将与master主端口直连的传输节点通过命令配置成master-owner(简称master-o),将与master副端口直连的传输节点通过命令配置成master_neighbor(简称master-n),master-n和master-o的副端口与master直连,以上图为例,将传输节点transmit1配置成master-o,传输节点transmit5配置成master-n,transmit1的rpl端口和transmit5的rpl端口构成rpl保护链路。初始时,master-o的rpl端口stp状态为disabled,master-n的rpl端口stp状态为forwarding,保证rpl保护链路不通任何流量。

本发明的一种eaps以太环网的主备倒换方法,包括以下步骤:

s1,正常情况下,master主节点周期性地从主端口发送health报文,如果能从副端口收到该报文,则表明环路完整,主节点进入complete状态,此时将副端口stp状态置为blocking阻塞状态,阻塞数据报文,消除环路,同时发送comp-flush-fdb报文通知所有传输节点清除fdb表。此时master-o和master-n仍然以普通传输节点的角色参与环网运行,其状态都为transmit状态。

进一步地,步骤s1中,master-o和master-n之间进行mac协商,master-o和master-n都定时1秒从主端口和副端口周期发送特殊health报文(将health报文的第一个reserved字段置为0xaa),master-n和master-o收到特殊health报文,记下报文源mac地址,保存到本地,并发送reserved字段为0xbb的特殊health报文作为应答,master-o和master-n收到应答报文,停止发送reserved字段为0xaa的特殊health报文。此时mac协商完成。如上图1所示。

s2,如果master-o的副端口linkdown,master-o进入listen状态,其主端口会发送link-down报文(rpl端口不参与环网运行,只有其角色变为副端口时,才会参与环网运行,所以即使rpl端口linkdown也不会触发link-down报文发送),此时如果master-n主端口收到link-down报文,且报文源mac地址为s1中mac协商保存的mac,表明master-o主端口和master-n主端口之间的所有传输节点都没有链路故障,此时master-n也进入listen状态,监控副端口和master节点之间链路状态。

进一步地,步骤s2中,master主端口也会检测到linkdown,其副端口会变成forwarding状态,并从其副端口连续发送3个comm-flush-fdb报文,通知其它传输节点清fdb表,此时有以下触发主备倒换的场景:

s2-1,如果处于listen状态的master-n节点的副端口没有链路故障,且5秒时间内没有收到master节点发送的comm-flush-fdb报文,则其主端口主动发送link-down报文,master-o收到link-down报文,且报文源mac地址等于mac协商地址(表明环网master-o主端口和master-n主端口之间的传输节点都没有链路故障),此时,如果master-o不是listen状态,则置为listen状态,否则触发主备倒换,master-o工作模式切换成主节点。

s2-2,如果master-n节点的副端口linkdown,则其主端口主动发送link-down报文,master-o收到link-down报文,且报文源mac地址等于mac协商地址(表明环网master-o主端口和master-n主端口之间的传输节点都没有链路故障),此时,如果master-o不是listen状态,则置为listen状态,否则触发主备倒换,master-o工作模式切换成主节点。

s2-3,master-o触发主备倒换流程:master-o成为主节点,rpl端口stp状态置为blocking,然后rpl端口和副端口角色互换,主端口周期性地发送health报文,副端口发送2个health报文,如果副端口收到health报文,则节点状态变为complete状态,并从副端口发送comp-flush-fdb报文通知其它传输节点清除fdb表。如果master-n收到health报文且报文源mac地址为mac协商地址,则将自己的状态置为switch状态,并将rpl端口和副端口角色互换。新的环网如下图3所示。

其中,transmit状态、switch状态和listen状态是只有master-o和master-n才有的3个新增状态。新增状态说明如下:

listen状态:master节点的主端口或副端口其中一个故障或控制报文不通。此时master-o和maser-n处于主节点故障监控状态。

transmit状态:master的主端口和副端口都正常。此时master-o和maser-n处于正常的传输节点状态。

switch状态:master的主端口和副端口都故障或控制报文不通,此时环网处于倒换状态。体现在master-o主节点上是complete或failed状态,体现在master-n传输节点上是switch状态。

s3,如果master-o副端口状态为linkup,但3倍的health报文发送周期内收不到master节点发送的health报文,master-n也将收不到health报文,master-n进入listen状态,master-o直接触发主备倒换,master-o切换工作模式为master主节点,倒换流程同以上s2-3。

s4,增加manual-switch命令,手动触发主备倒换,可以将任意传输节点指定成master节点,新的master节点主端口发送health报文,如果旧的master节点收到health报文,但报文源mac地址不是自己的,则将工作模式切换成传输节点。如果在master-o或master-n上执行manual-switch命令,可以选择是否启用rpl链路。如下图4所示,将传输节点transmit2配置成master节点,则环网中已经存在的master将工作模式自动切换成传输节点。

s5,步骤s2中,如果master-o故障端口恢复linkup,且收到health报文,则触发主备反转,master-o工作模式切换成传输节点,rpl端口和副端口角色互换,并将rpl端口置为disabled状态,重新阻塞rpl链路。其主端口发送link-up报文,master-n主端口收到link-up报文,且报文源mac地址为s1中mac协商的mac地址,则将rpl端口和副端口角色互换,此时如果副端口是linkdown的,则将节点状态置为listen状态,如下图5所示,否则置为transmit状态,如上图2所示。

进一步地,步骤s5中,如果master-n的副端口恢复linkup,则其主端口发送link-up报文,rpl端口和副端口角色互换,节点状态置为listen,一旦其收到旧master发送的health报文或与mac协商地址匹配的link-up报文,则其状态置为transmit状态。如果master-o主端口收到link-up报文,且报文中的源mac为s1中mac协商的mac地址,则触发主备反转,master-o工作模式切换成传输节点,rpl端口和副端口角色互换,并将rpl端口置为disabled状态,重新阻塞rpl链路,此时如果副端口为linkup,则状态变为transmit,如上图2所示,否则状态为listen,如下图6所示。旧的master节点会从主端口周期发送health报文,如果副端口收到该报文,则将副端口置为blocking状态,master节点进入complete状态,并发送comp-flush-fdb报文,通知其它传输节点清除fdb表。

以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视作为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1