发明内容
本发明要解决的是现有技术中环网故障恢复时所有数据报文转发中断的问题。
本发明所述以太环网的故障恢复方法,包括以下步骤:
在检测到环网故障消除后,主节点转发出入从端口的单播数据报文,其他节点恢复数据报文转发;
按照阻塞从端口后数据报文的转发路径同步节点的转发表信息;
主节点阻塞从端口。
优选地,所述同步节点的转发表信息通过每个节点通知其他节点在该节点下环转发的数据报文的目的地址及该数据报文在其他节点的出端口来进行。
优选地,所述每个节点通知其他节点在该节点下环转发的数据报文的目的地址及该数据报文在其他节点的出端口具体为:
每个节点从其环上端口发送转发表同步报文并沿环网转发其他节点发送的转发表同步报文,该报文中包括发送该报文的节点转发表中出端口为非环上端口的数据报文目的地址;
主节点阻塞出入从端口的转发表同步报文;
当转发表同步报文的入端口与该报文中的目的地址在本节点转发表中的出端口不同时,接收该报文的节点将该目的地址的出端口修改为该报文的入端口。
优选地,主节点通过刷新转发表通知报文启动转发表同步并指令传输节点恢复数据报文转发。
优选地,所述主节点转发出入从端口的单播数据报文具体为:主节点转发目的地址在其转发表中的单播数据报文;
所述方法还包括:主节点过滤目的地址不在其转发表中的单播数据报文、组播数据报文和广播数据报文。
优选地,所述主节点阻塞从端口具体为:主节点在启动转发表同步后的预定时间到时阻塞从端口或主节点在收到各传输节点的转发表同步完毕通知后阻塞从端口。
本发明提供了一种应用于网络节点的环网故障恢复方法,所述网络节点通过至少两个环上端口连接在环网上,其中之一为环网的从端口,所述故障恢复方法包括以下步骤:
在得知环网故障消除后,转发出入从端口的单播数据报文;
从与从端口在同一环网上的另一个环上端口发送包括本节点转发表信息的转发表同步报文;
在满足设定条件时阻塞从端口。
优选地,所述方法还包括:
在得知环网故障消除后,通知检测到环网故障消除的节点恢复数据报文转发;
根据其他节点发送的转发表同步报文按照阻塞从端口后数据报文的转发路径同步本节点的转发表。
优选地,所述转发表同步报文中包括在所述网络节点进行下环转发的数据报文的目的地址;
所述根据其他节点发送的转发表同步报文更新本节点的转发表具体为:当该报文的入端口与该报文中的目的地址在所述网络节点转发表中的出端口不同时,将该目的地址的出端口修改为该报文的入端口。
优选地,所述方法还包括:阻塞出入从端口的转发表同步报文。
优选地,所述设定条件包括设定同步时间到或接收到其他节点的转发表同步完成通知;
所述转发出入从端口的单播数据报文具体为:转发目的地址在其转发表中的单播数据报文。
本发明提供了一种网络节点,通过至少两个环上端口连接在环网上,其中之一为环网的从端口,该网络节点包括从端口过滤单元、同步报文生成单元、转发表单元和故障恢复控制单元,其中:
从端口过滤单元用来按照故障恢复控制单元的指令过滤出入从端口的数据报文;
转发表单元用来存储本节点的转发表信息;
同步报文生成单元用来根据本节点的转发表信息生成转发表同步报文,并自与从端口在同一环网上的另一个环上端口发送;
故障恢复控制单元用来控制故障恢复过程,包括在得知环网故障消除后指令从端口过滤单元过滤组播和广播数据报文,指令转发表生成单元生成及发送转发表同步报文,在满足设定条件时指令从端口过滤单元阻塞从端口。
优选地,所述网络节点还包括同步报文处理单元,用来根据接收的非本节点发送的转发表同步报文更新本节点的转发表信息,并丢弃该转发表同步报文。
优选地,所述网络节点还包括故障恢复通知单元,用来根据故障恢复控制单元的指令通知与原故障点连接的节点恢复数据报文转发,并启动转发表同步过程。
本发明在环网故障恢复时在主节点上过滤组播和广播数据报文而继续转发单播数据报文,通过转发表同步机制将环上各节点的转发表更新为匹配于阻塞从端口后数据报文的转发路径,实现了环网故障恢复过程中单播数据报文的不间断转发,并且避免了可能的广播风暴;同时,转发表同步机制避免了环网因全部节点刷新转发表而造成的流量振荡,使得故障恢复过程更为平稳。
具体实施方式
在环网故障恢复的过程中,当与原故障点连接的节点检测到故障消除时,会暂时阻塞与原故障点连接的环上端口,即过滤所有通过该环上端口的数据报文,数据报文的转发路径仍保持与环网故障时相同。
对工作在稳定状态的环网,此时每个节点对接收的单播数据报文,根据本节点的转发表中该报文目的地址的出端口对其进行转发,按照环网故障时的数据报文转发路径转发至该报文目的地址的出端口为非环上端口的节点,由此节点将该报文下环转发;对接收的组播数据报文和广播数据报文,则通常需要到达转发路径末端,即具有阻塞端口的节点才会被丢弃。可见,在环网不阻塞环上端口时可能造成广播风暴的是组播数据报文和广播数据报文,而并非单播数据报文。
对尚未工作在稳定状态的环网,可能会接收到一些目的地址还不在转发表中的单播数据报文,这种未知单播报文可能在二层环网中广播转发,也是环网不阻塞环上端口时可能造成广播风暴的原因。
在现有技术中环网故障恢复时先阻塞主节点的从端口、再将与原故障点连接的端口恢复正常转发状态是为了避免广播环路,而目的地址在转发表中的已知单播数据报文即使在二层环状转发路径中也不会形成广播风暴,因此在故障恢复过程中可以不中断对已知单播数据报文的转发。
仅仅不中断对单播数据报文的转发尚不能实现单播数据报文的转发不间断。当节点按照其环网故障时的转发表将某个单播数据报文顺时针转发至主节点的主端口时,主节点已经阻塞了副端口,而该报文的下环转发节点位于副端口的顺时针方向,则该单播数据报文不会到达其下环转发节点。在单播数据报文的转发过程中发生节点刷新FDB表时也有可能发生上述情况。因此在故障恢复过程中,需要将节点的转发表修正为与阻塞从端口后的数据报文转发路径相匹配,使得节点能够将按照环网故障时转发路径转发的单播数据报文重定向至正确的转发路径上。
本发明所述环网故障恢复方法的流程如图1所示,在步骤S210,与原故障点相邻的节点检测到故障消除时,暂时阻塞与原故障点连接的端口,不将数据报文转发出该端口。本步骤与现有技术中相同。
在步骤S220,主节点得知环网故障消除。现有技术中,不论从端口是否阻塞,主节点都定时发送环网探测报文,当主节点在从端口收到自己发送的环网探测报文时,得知环网故障消除。还可以令与原故障点相邻的节点在检测到故障消除时向主节点发送故障恢复通知报文,主节点由收到故障恢复通知报文或环网探测报文得知环网故障消除。
在步骤S230,主节点继续转发单播数据报文,并通知与原故障点相邻的节点正常转发数据报文。与现有技术中主节点阻塞从端口不同,本发明中主节点过滤出入从端口的组播数据报文和广播数据报文,即可以对组播数据报文或广播数据报文进行协议处理,但不对其进行转发。
主节点可以采用现有技术中的刷新转发表通知报文来指令与原故障点相邻的节点将其连接原故障点的端口置为正常转发状态,但需要说明的是,在本发明中采用该报文时接收和转发该报文的传输节点不会执行刷新转发表的操作。
在步骤S240,按照阻塞从端口后数据报文的转发路径同步环上各节点的转发表信息。有多种方式可以实现环网上各节点的转发表同步机制,以下详细说明本发明推荐的一种,本领域技术人员可以由下述实现方式推知适合于具体应用环境的其他方式。
在本发明推荐的转发表同步方式中,由主节点来启动转发表同步机制。主节点可以在通知与原故障点相邻的节点正常转发数据报文的同时启动环上各节点进行转发表同步,也可以另行发送控制报文启动转发表同步。每个节点将转发表中出端口为非环上端口的数据报文的目的地址封装在转发表同步报文中,并从环上端口发送。每个节点发送的转发表同步报文中包括在该节点进行下环转发的数据报文的目的地址,换言之,在同步完成后,其他节点的转发表中这些目的地址对应的出端口是在从端口阻塞时连通该节点的环上端口。
每个节点发送的转发表同步报文沿环网转发,主节点过滤所有出入从端口的转发表同步报文。也就是说,传输节点从其连接故障消除的环网的两个环上端口发送本节点生成的转发表同步报文,这些转发表同步报文沿不同的方向遍历环网上的其他节点后均终止于主节点。而主节点生成的转发表同步报文只从主端口发送至环网上,在遍历环网上的传输节点后进入主节点的从端口而被过滤。
在接收到其他节点发送的转发表同步报文后,每个节点解析该同步报文,对比该同步报文中包括的目的地址在本节点转发表中的出端口与该同步报文的入端口,如果二者不同,则将本节点转发表中该目的地址对应的出端口同步为该同步报文的入端口。
对在某个节点进行下环转发的数据报文,由于包括其目的地址的转发表同步报文的转发路径与阻塞从端口后该数据报文的转发路径相反,因此这种同步方式可以按照阻塞从端口后数据报文的转发路径来同步环网上各个节点的转发表。同时,这种方式可以使环网上所有节点获得故障恢复时的当前全部环网的转发表信息。
以图1中的环网为例,其转发表同步报文的转发路径如图3所示。设传输节点130的非环上端口连接一个MAC(Media Access Control,媒介接入控制)地址为MAC1的节点,环网的原故障点在传输节点130和140之间。在故障恢复过程中启动转发表同步后,MAC1作为在传输节点130进行下环转发的数据报文的目的地址,将封装在传输节点130生成的转发表同步报文330中从传输节点130的两个环上端口发送。
对传输节点120,在故障时和故障消除后其转发表中MAC1的出端口均为连接传输节点130的环上端口,也就是转发表同步报文330的入端口。按照上述转发表同步方式,传输节点120转发表中MAC1的出端口同样不需修改。对传输节点150,在故障时其转发表中MAC1的出端口为与传输节点160连接的环上端口,在故障消除后MAC1的出端口为与传输节点140连接的环上端口。由于沿顺时针方向转发的转发表同步报文330被主节点110过滤,到达传输节点150的为沿逆时针方向转发的转发表同步报文330,以与传输节点140连接的环上端口为入端口。按照上述转发表同步方式,可以将传输节点150的转发表中MAC1的出端口同步至与传输节点140连接的环上端口。
在上述转发表同步方式中,转发表同步报文为控制报文,例如可以是在EAPS协议的控制VLAN(Virtual Local Area Network,虚拟局域网)里广播转发的组播报文,也可以通过RRPP协议采用的ACL(Access Control List,访问控制列表)规则、转发表项控制等实现上述转发过程。
在故障恢复的过程中,需要更改转发路径的数据报文为在故障时通过主节点从端口转发的数据报文,这些数据报文在主节点上以从端口为出端口,或在与从端口连接的传输节点上以与从端口连接的环上端口为出端口。因此,还可以采用只将这些数据报文的转发路径同步到故障恢复后的环网链路上的转发表同步方式,这种方式只对通过从端口的数据报文的转发表项进行同步,同步时在环网上产生的数据量较少,所需的同步时间较短。这种转发表同步方式可以参照前述本发明推荐的同步方式,将需要同步的转发表项中的目的地址封装在转发表同步报文中,在沿环网发送过程中修正环上节点转发表中的出端口,此处不再赘述。
在转发表同步过程中,单播数据报文在环网上仍处在转发状态。沿故障时转发路径转发的单播数据报文会被某个节点同步后的转发表的重定向至阻塞从端口后的转发路径,此时即使阻塞从端口,该报文仍会转发至对其进行下环转发的节点,从而实现单播数据报文的转发不间断。
回到图2,在步骤S250,在满足设定条件时主节点阻塞从端口,完成故障恢复过程。
设定条件可以是环网转发表同步完成,例如令每个需要进行转发表同步的传输节点在同步完成后通知主节点,主节点以收到所有需要同步的传输节点的同步完成通知后阻塞从端口。采用这种方式主节点需要知道环网的当前拓扑结构。一种实现较为简单的设定条件是定时机制,主节点在启动转发表同步后开始计时,在预定时间到时阻塞从端口。
本发明所述故障恢复方法同样适用于多环结构的环网。多环结构的环网包括相切环网和相交环网,相切环网公用一个节点,而相交环网共用一段共享链路,在公共链路两端的节点为相交节点。对相切环网,只要在每个环网分别应用本发明所述故障恢复方法即可。对相交环网的实现RRPP协议和EAPS协议有所不同。
采用RRPP协议的相交环网将相交环中的一个作为主环,其他作为子环,将主环作为子环的一个节点来实现冗余保护。以主环作为子环的主节点为例,子环的主端口和从端口分别为两个相交节点与子环连接的环上端口。主环的工作模式与单环RRPP协议相同。当子环上的节点和链路工作正常时,将子环的从端口置为阻塞状态,将子环的主端口置为正常转发状态;在检测到子环发生故障时,将子环的从端口置为正常转发状态,并发起刷新转发表通知;在检测到子环故障消除后,重新将子环的从端口置为阻塞状态,并发起刷新转发表通知。
在采用RRPP协议的相交环网上应用本发明时,主环的故障恢复只涉及相交节点而不会对子环其他节点的转发表产生影响,而子环的故障恢复只涉及相交节点而不会对主环上其他节点的转发表产生影响。因此可以在主环上直接应用本发明所述方法进行主环的故障恢复,而将主环作为一个逻辑上的主节点来应用本发明进行子环的故障恢复,即可以将与从端口相关的操作在包括子环从端口的相交节点上进行,将与主端口相关的操作在包括子环主端口的相交节点上进行。
采用EAPS协议的相交环网以每个环作为至少一个EAPS域应用单环EAPS协议,由相交节点在共享链路发生故障时阻塞除连接共享链路的环上端口外其他环上端口中的一个,以避免形成数据报文转发的环路。在故障恢复时,只要分别在每个域中应用本发明所述方法即可实现单播数据报文的不间断转发。
图4为环网主节点在应用本发明所述方法后的流程图。对于各步骤的详细描述请参见前述对本发明所述方法的说明,此处不再重复。在步骤S410,节点得知环网故障消除。
在步骤S420,节点通知检测到环网故障消除的节点恢复数据报文转发。
在步骤S430,节点继续转发单播数据报文,过滤组播数据报文和广播数据报文。对工作在不稳定状态的环网,还可以过滤未知单播数据报文。
在步骤S440,节点生成包括本节点转发表信息的转发表同步报文并从与从端口在同一环网上的另一个环上端口发送。根据所采用的转发表同步方式不同,主节点生成不同的转发表同步报文。例如,在采用前述转发表同步方式时,节点生成的转发表同步报文中包括本节点转发表中出端口为非环上端口的数据报文的目的地址。
在步骤S450,根据其他节点发送的转发表同步报文更新本节点的转发表。对应于步骤S440,节点根据所采用的转发表同步方式来相应地按照其他节点发送的转发表同步报文来同步转发表。
例如在采用前述转发表同步方式时,如果其他节点发送的转发表同步报文中包括的目的地址在本节点转发表中的出端口与该同步报文的入端口不同,则将本节点转发表中该目的地址对应的出端口同步为该同步报文的入端口。
在步骤S460,阻塞出入从端口的转发表同步报文。由于转发表同步报文通常为环网控制报文,本步骤与现有技术相同。
在步骤S470,在满足设定条件时,阻塞从端口。如前所述,设定条件可以是环网完成转发表同步或设定时间到。
当图4所示的流程应用在采用RRPP协议的相交环网的相交节点上时,对包括子环从端口的相交节点,步骤S420中通知检测到环网故障消除的节点恢复数据报文转发的工作通常在包括子环主端口的相交节点上完成,因而这一步骤可以省略;由于在主节点上仅针对主端口执行步骤S450,因此对包括子环从端口的相交节点步骤S450也可以省略。
图5为应用本发明所述方法的节点的结构示意图,该节点可以作为环网的主节点。故障恢复控制单元540分别连接同步报文生成单元520、同步报文处理单元530、故障恢复通知单元560和从端口过滤单元550;转发表单元510与同步报文生成单元520和同步报文处理单元530相连接。
转发表单元510中存储着节点的转发表信息。从端口过滤单元550根据故障恢复控制单元540的指令对出入从端口的数据报文进行过滤。
故障恢复控制单元540得知环网故障消除后,向故障恢复通知单元560发出指令,并指令从端口过滤单元550过滤组播数据报文和广播数据报文,还可以指令从端口过滤单元550也过滤未知单播数据报文。故障恢复通知单元560在接到故障恢复控制单元540的指令后,通知与原故障点连接的节点恢复数据报文转发,并启动环网的转发表同步过程。故障恢复控制单元540并指令同步报文生成单元520生成和发送转发表同步报文。
同步报文生成单元520在接到故障恢复控制单元540的指令后,根据转发表单元510中的转发表信息生成转发表同步报文,并将其发送出与从端口在同一环网上的另一个环上端口。对接收的其他节点发送的转发表同步报文,同步报文处理单元530解析出该同步报文的内容并据以更新转发表单元510中的转发表信息,之后丢弃该同步报文。
同步报文生成单元520和同步报文处理单元530按照对应的方式生成和处理转发表同步报文,例如前述转发表同步方式。
在满足设定条件时,故障恢复控制单元540指令从端口过滤单元550阻塞从端口,过滤所有数据报文。当设定条件为环网转发表同步完成时,同步报文处理单元530应将转发表同步的进程通知故障恢复控制单元540,以方便故障恢复控制单元540判断本节点的转发表同步是否完成。
对采用RRPP协议、以主环作为子环主节点的相交环网上的相交节点,如果该相交节点包括子环的从端口,则同步报文处理单元530和故障恢复通知单元560可以省略。
本发明利用转发表同步机制实现了故障恢复过程中环网的单播数据报文转发不间断,单播业务不丢包或极少量丢包;同时通过阻断所有引起二层广播风暴的数据报文,避免环网故障恢复过程中的广播风暴。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。