报文环路消除方法及分布式弹性DR设备与流程

文档序号:16309387发布日期:2018-12-19 05:13阅读:383来源:国知局
报文环路消除方法及分布式弹性DR设备与流程

本发明涉及通信技术领域,具体而言,涉及一种报文环路消除方法及分布式弹性dr设备。

背景技术

跨设备聚合(multi-chassislinkaggregationgroups,简称:mlag)是通过将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。分布式弹性网络互连(distributedresilientnetworkinterconnect,drni)是一种跨设备链路聚合技术,drni典型组网中两台(distributedresilient,dr)分布式弹性设备通过以太网链路聚合形成dr系统。drni为每台dr设备定义了以下几个接口角色:dr接口为dr设备与外部设备连接的二层聚合接口。本端dr设备和对端dr设备与外部设备上相同聚合组连接的dr接口属于同一dr组。内部控制链路端口(intra-portalport,ipp)为连接对端dr邻居设备用于内部控制的二层聚合接口。每台dr设备只有一个ipp,ipp间通过内部控制链路(intra-portallink,ipl)在dr设备间传输drni协议报文。然而,由于drni组网在物理上是一个环形,在实际的使用过程中不可避免的出现报文环路的问题。

相关技术中,通常采用部署多生成树协议(multiplespanningtreeprotocol,mstp)方式进行报文环路消除。mstp配置复杂,协议运算复杂,并且链路的利用率很低,浪费大量的带宽资源,显然,采用mstp进行报文环路消除的方式,并不适合于drni组网。



技术实现要素:

本发明实施例的目的在于提供一种报文环路消除方法及分布式弹性dr设备,以便在解决报文环路的同时避免造成链路利用率低及网络带宽资源的浪费问题。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种报文环路消除方法,应用于分布式弹性网络互连drni组网中的分布式弹性dr设备,本端dr设备包括与对端dr设备的各第一分布式聚合dr接口分别组成dr组的第二dr接口,针对本端dr设备的内部控制链路端口ipp设置有单向隔离组,所述单向隔离组包括满足预设条件的第二dr接口,所述方法包括:

从ipp接收到对端dr设备发送的报文;

将所述报文通过除所述单向隔离组中的第二dr接口之外的其它接口发送。

如上所述,设置所述单向隔离组的方式包括:

根据对端dr设备的各第一dr接口的工作状态,将与工作状态为up的第一dr接口组成dr组的第二dr接口确定为满足预设条件的第二dr接口,并加入所述单向隔离组中。

如上所述,所述报文环路消除方法还包括:

根据对端dr设备的各第一dr接口的工作状态更新所述单向隔离组。

如上所述,所述根据对端dr设备的各第一dr接口的工作状态更新所述单向隔离组的步骤包括:

若确定对端dr设备的一个第一dr接口的工作状态由up变为down,则将与该一个第一dr接口组成dr组的第二dr接口从所述单向隔离组中删除;

若确定对端dr设备的一个第一dr接口的工作状态由down变为up,则将与该一个第一dr接口组成dr组的第二dr接口加入所述单向隔离组中。

如上所述,所述报文为广播、未知单播、组播bum报文。

第二方面,本发明实施例提供了一种分布式弹性dr设备,所述dr设备包括与对端dr设备的各第一分布式聚合dr接口分别组成dr组的第二dr接口,针对所述dr设备的内部控制链路端口ipp设置有单向隔离组,所述单向隔离组包括满足预设条件的第二dr接口,所述dr设备包括:

接收单元,用于从ipp接收到对端dr设备发送的报文;

发送单元,用于将所述报文通过除所述单向隔离组中的第二dr接口之外的其它接口发送。

如上所述,所述dr设备还包括设置单元,在设置所述单向隔离组时,所述设置单元用于:

根据对端dr设备的各第一dr接口的工作状态,将与工作状态为up的第一dr接口组成dr组的第二dr接口确定为满足预设条件的第二dr接口,并加入所述单向隔离组中。

如上所述,所述dr设备还包括更新单元,所述更新单元用于:

根据对端dr设备的各第一dr接口的工作状态更新所述单向隔离组。

如上所述,所述根据对端dr设备的各第一dr接口的工作状态更新所述单向隔离组时,所述更新单元用于:

若确定对端dr设备的一个第一dr接口的工作状态由up变为down,则将与该一个第一dr接口组成dr组的第二dr接口从所述单向隔离组中删除;

若确定对端dr设备的一个第一dr接口的工作状态由down变为up,则将与该一个第一dr接口组成dr组的第二dr接口加入所述单向隔离组中。

如上所述,所述报文为广播、未知单播、组播bum报文。

相对现有技术,本发明实施例提供的一种报文环路消除方法,通过在分布式弹性网络互连drni组网的每个分布式弹性dr设备中设置针对本端dr设备的内部控制链路端口ipp的单向隔离组,并在从ipp接收到对端dr设备发送的报文,将所述报文通过除所述单向隔离组中的第二dr接口之外的其它接口发送,不再是盲目地进行转发,进而避免了报文环路的出现。同时,无需借助复杂的协议算法,提高链路利用率及节省网络带宽。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了现有技术中drni网络典型组网示意图;

图2示出了现有技术中出现报文环路的示意图之一;

图3示出了现有技术中出现报文环路的示意图之二;

图4示出了本发明实施例提供的一种报文环路消除方法的流程图;

图5示出了本发明实施例提供的dr设备的功能模块示意图。

图标:100-dr接口;200-内部控制链路端口ipp;10-接收单元;20-发送单元;30-设置单元;40-更新单元。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本发明下述各实施例均可应用于如图1所示的交互环境中,如图1所示,在分布式弹性网络互连drni组网中,分布式弹性dr设备a(以下简称dr设备a)与分布式弹性dr设备b(简称dr设备b)之间通过多条以太网链路捆绑在一起所形成的一条以太网逻辑链路(bridgeaggregationgroup,bagg)连接。每个dr设备均包括了分布式聚合端口(distributedrelayinterface,dr接口)和内部控制链路端口(intra-portalport,ipp),当dr设备a和dr设备b之间需要构成分布式聚合系统(distributed-relaysystem,dr)时,dr设备a的ipp与dr设备b的ipp之间bagg3链路作为ipl,用于传递drni协议报文。并互相同步mac表项和arp报文,使得两端mac表项和arp表项一致。此时,dr系统对设备c(也即,外部设备)呈现为一台网络转发设备,dr系统内部dr设备a与dr设备b形成负载分担,共同进行报文转发,当其中一台dr设备发生故障时,报文可以快速切换到另一台dr设备,保证业务的正常运行。同一dr系统内的dr设备数量并不做限定。

由dr设备a与dr设备b组成一个dr系统,该dr系统对外呈现为一台网络转发设备,dr设备a与dr设备b互为邻居dr设备。

然而,在如图2所示的情况下,在dr设备a接收到广播或未知单播或未知组播(broadcast/unknownunicast/unknownmulticast,bum)报文时,dr设备a不仅会通过bbag1将接收到的bum报文发送至外接设备,还会通过ipl链路将接收到的bum报文发送至dr设备b。此时,对于dr设备b而言,在接收到的bum报文时,依然会将其发送至设备c,这样则出现了设备c接收多包的问题。

在如图3所示的情况下,设备c向dr设备a发送bum报文,dr设备a接收到该bum报文后,会通过ipl链路将该bum报文发送至dr设备b。此时,对于dr设备b而言,接收到的报文依然是bum报文,此时,便会继续将其发送给设备c,这样就会造成报文环路。

造成上述问题的原因为drni在物理链路上呈环形,然而,为了确保drni网络可以起到的设备级冗余保护和流量负载分担的作用,不能直接对物理链路进行改进,相关技术中则采用部署mstp的方式,控制报文环路的发生。但是,部署mstp配置复杂,协议运算复杂,并且链路的利用率很低,浪费大量的带宽资源。

因此,本发明实施例提供一种报文环路消除方法及分布式弹性dr设备,用以解决报文环路的同时避免造成链路利用率低及网络带宽资源的浪费问题。在本发明实施例中,为了方便说明,以drni组网中的任一dr设备为例进行描述,并将该任一dr设备作为本端dr设备,将其对应的邻居dr设备作为对端dr设备,例如,当图1中的dr设备a作为本端dr设备时,则dr设备b则为对端dr设备;当图1中的dr设备b作为本端dr设备时,则dr设备a则为对端dr设备。

请参照图4,图4示出了本发明实施例提供的应用于分布式弹性网络互连drni组网中的dr设备的报文环路消除方法流程图。报文环路消除方法包括以下步骤:

s101、从ipp接收到对端dr设备发送的报文。

在本发明实施例中,在drni正常的工作机制中,本端dr设备和对端dr设备互为dr系统中的邻居设备。

需要说明的是,dr系统中每一个dr设备均包括多个二层聚合接口。二层聚合接口可以分为普通的二层聚合接口和已组成分布式聚合组(distributed-relaygroup,dr组)的分布式聚合端口(distributedrelayinterface,dr接口)。需要说明的是,当本端dr设备的一个二层聚合接口与对端dr设备的一个二层聚合接口同时连接一个外部设备上的同一个二层聚合接口时,则可以由上述两个二层聚合接口组成一个dr组。可选地,本端dr设备上可以具有多个分别与对端dr设备上的各第一dr接口对应的第二dr接口。对端dr设备的各第一dr接口与本端dr设备中对应的第二dr接口组成对应的dr组。

进一步地,本端dr设备的二层聚合接口中存在一个作为ipp的二层聚合接口,对端dr设备亦然。

本端dr设备和对端dr设备上的多个二层聚合接口均可以接收外界发送的报文。该报文是可以采用广播、未知单播、未知组播、已知单播和已知组播报文的形式给本端dr设备或者对端dr设备。在对端dr设备获得报文进行转发时,对于已知单播和已知组播优先选择本地的二层聚合接口中除ipp之外的其他二层聚合接口进行数据转发,从而避免对本端dr设备与对端dr设备之间的ipl造成压力。然而,对于属于采用广播、未知单播或组播bum的报文而言,则需要通过ipl转发至作为邻居设备的本端dr设备。

进一步地,本端dr设备通过其ipp接收到对端dr设备发出的报文时,流程进入步骤s102。

步骤s102,将报文通过除单向隔离组中的第二dr接口之外的其它接口发送。

需要说明的是,本端dr设备内设置有针对本端dr设备的ipp的单向隔离组。单向隔离组内可以包括满足预设条件的第二dr接口。也就是说,本端dr设备的ipp与单向隔离组中的每一个第二dr接口之间均存在单向隔离。即,从本端dr设备的ipp接收到的报文不能从单向隔离组中的第二dr接口发出;而从单向隔离组中的第二dr接口接收到的报文却可以从本端dr设备的ipp发出。

可选地,上述单向隔离组的设置方式包括:

根据对端dr设备的各第一dr接口的工作状态,从本端dr设备的第二dr接口中确定满足预设条件的第二dr接口。具体地,可以是将与工作状态为up的第一dr接口组成dr组的第二dr接口确定为满足预设条件的第二dr接口,并加入所述单向隔离组中。

需要说明的是,在dr设备工作运行过程中,dr设备的二层聚合接口处于正常工作状态时,对应的工作状态为up。但,在dr设备工作运行过程中,dr设备的每个二层聚合接口均可能进入异常工作状态,即工作状态为down。需要说明的是,二层聚合接口异常工作状态可以是该二层聚合接口与外部设备之间的连接链路断开,也可以是该二层聚合接口自身故障引发的掉线等,其对应的工作状态对外呈现为down。

对于dr系统而言,当对端dr设备的第一dr接口对应的二层聚合接口的进入异常工作状态时,本应该通过该第一dr接口直接发送至外部设备的报文,需从本端dr设备中与该第一dr接口属于同一dr组的第二dr接口发送出去,以便该外部设备接收到该报文。具体地,对端dr设备可以将该报文从ipl发送至本端dr设备,并由本端dr设备的ipp接收到该报文。如果此时,与工作状态变为down的第一dr接口对应的第二dr接口被列于单向隔离组中,则可能造成报文无法送达该外部设备。因此,不能将与工作状态为down的第一dr接口组成dr组的第二dr接口确定为满足预设条件的第二dr接口。以确保对端dr设备通过ipl发出,且需要通过相应第二dr接口发送给外部设备的报文,可顺利送达外部设备。

进一步地,上述单向隔离组可以是预先设置的,为了使该单向隔离组更加灵活的适应对端dr设备的每个二层聚合接口的工作状态变化,避免出现报文无法送达与本端dr设备和对端dr设备均连接的外部设备。本发明实施例提供的报文环路消除还可以包括步骤:根据对端dr设备的各第一dr接口的工作状态更新所述单向隔离组。

在本发明实施例中,更新所述单向隔离组的方式可以是:

若确定对端dr设备的一个第一dr接口的工作状态由up变为down,则将与该一个第一dr接口组成dr组的第二dr接口从所述单向隔离组中删除。

若确定对端dr设备的一个第一dr接口的工作状态由down变为up,则将与该一个第一dr接口组成dr组的第二dr接口加入所述单向隔离组中。

作为一种可能的方式,在本端dr设备与对端dr设备之间进行转发表(例如mac表项和arp报文)同步,或者,本端dr设备与对端dr设备之间通过keepalive链路检测邻居状态的同时,本端dr设备和对端dr设备互相通知对方自身的dr接口的工作状态。以便本端dr设备根据对端dr设备的dr接口的工作状态,动态调整更新自身维护的单向隔离组。

需要说明的是,在本端dr设备与对端dr设备之间的dr组发生变化时,需要执行本端dr设备与对端dr设备之间的转发表同步操作。依据同步后的新的转发表可获得对端dr设备中与第二dr接口组成dr组的第一dr接口,并据此对该单向隔离组进行设置或更新。

具体地,当本端dr设备与对端dr设备之间新增了一组与外部设备连接的dr组时,本端dr设备与对端dr设备之间会通过转发表同步的方式进行信息同步。信息同步后,对端dr设备可以通过转发表确定本端dr设备新增的一个第二dr接口,本端dr设备可以通过转发表确定对端dr设备新增的一个第一dr接口。需要说明的是,新增的一个第一dr接口对应的工作状态为up,因此,本端dr设备可以将新增的一个第二dr接口加入针对本端dr设备的ipp设置的单向隔离组中。

可选地,当本端dr设备与对端dr设备之间减少一组与外部设备连接的dr组时,本端dr设备与对端dr设备之间也会通过转发表同步的方式进行信息同步。上述dr组的减少可以是本端dr设备的第二dr接口退出dr组造成的,也可以是对端dr设备的第一dr接口退出dr组造成的。信息同步后,如果是本端dr设备的第二dr接口退出dr组造成的dr组减少,则对端dr设备可以通过转发表确定本端dr设备的一个第二dr接口退出dr组,并将该一个第二dr接口对应的第一dr接口设置为普通的二层聚合接口,以退出dr组;如果是对端dr设备的一个第一dr接口退出dr组造成的dr组减少,本端dr设备可以通过转发表确定对端dr设备的一个第一dr接口退出dr组,并将该一个第一dr接口对应的第二dr接口设置为普通的二层聚合接口,以退出dr组。需要说明的是,当一个dr接口被设置为普通的二层聚合接口后,取消该一个dr接口与dr设备的ipp之间的单向隔离,也就是说,dr设备可以将该一个接口从相应的单向隔离组中删除。

可选地,本端dr设备和对端dr设备之间可以通过keepalive链路周期性地发送keepalive报文协议检测邻居的状态,那么,dr设备也可以通过keepalive报文将自身的各dr接口的工作状态信息发送给对端dr设备,本端dr设备可以得到对端dr设备的各dr接口的工作状态的变化。从而,根据对端dr设备的各dr接口的工作状态的变化更新自身的单向隔离组。

进一步的,本发明实施例中,dr设备在检测到自身任一dr接口的工作状态发生变化时,向对端dr设备发送用于表征dr接口工作状态变化的报文,那么,若对端dr设备在根据接收到的报文确定对端dr设备的一个dr接口的工作状态由up变为down时,在本地将与该一个dr接口组成dr组的dr接口从本地的单向隔离组中删除;若对端dr设备在根据接收到的报文确定对端dr设备的一个dr接口的工作状态由down变为up时,在本地将与该一个dr接口组成dr组的dr接口加入本地的单向隔离组中。

请参照图5,为本发明实施例所提供的分布式弹性dr设备(下面简称dr设备)的功能模块示意图。需要说明的是,本发明实施例所提供的dr设备,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本发明实施例中未提及部分,可参考方法实施例中的相应内容。该dr设备可以是计算机、笔记本、服务器、路由器等网络设备,主要用于在消除dr系统的报文环路的同时提高链路利用率及节省网络带宽。在本发明实施例中,dr系统包括互为邻居设备的本端dr设备和对端dr设备,本发明实施例中,以本端dr设备的结构为例进行详细说明,本端dr设备包括与对端dr设备通过内部控制链路ipl连接的内部控制链路端口ipp200,以及与对端dr设备的各第一dr接口组成分布式聚合组的第二dr接口100。上述本端dr设备还包括接收单元10、发送单元20、设置单元30及更新单元40;

接收单元10用于从ipp接收到对端dr设备发送的报文。可选地,上述报文包括可以是广播、未知单播、组播bum报文。

发送单元20,用于将报文通过除上述单向隔离组中的第二dr接口之外的其它接口发送。

可以理解,该本端dr设备可以执行上述步骤s101、步骤s102。

进一步的,设置单元30用于:

根据对端dr设备的各第一dr接口的工作状态,将与工作状态为up的第一dr接口组成dr组的第二dr接口确定为满足预设条件的第二dr接口,并加入上述单向隔离组中。

可以理解,该本端dr设备可以执行上述内容。

进一步的,更新单元40用于:

根据对端dr设备的各第一dr接口的工作状态更新上述单向隔离组。

可以理解,该本端dr设备可以执行上述内容。

优选地,根据对端dr设备的各第一dr接口的工作状态更新上述单向隔离组时,更新单元40用于:

若确定对端dr设备的一个第一dr接口的工作状态由up变为down,则将与该一个第一dr接口组成dr组的第二dr接口从上述单向隔离组中删除;

若确定对端dr设备的一个第一dr接口的工作状态由down变为up,则将与该一个第一dr接口组成dr组的第二dr接口加入上述单向隔离组中。

可以理解,该本端dr设备可以执行上述内容。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现前述实施例中涉及的报文环路消除方法的步骤。

综上所述,本发明实施例提供了一种报文环路消除方法及分布式弹性dr设备。其中,上述报文环路消除方法应用于该分布式弹性dr设备,本端dr设备包括与对端dr设备的各第一分布式聚合dr接口分别组成dr组的第二dr接口,针对本端dr设备的ipp设置有单向隔离组,上述单向隔离组包括满足预设条件的第二dr接口,上述方法包括:从ipp接收到对端dr设备发送的报文;将上述报文通过除上述单向隔离组中的第二dr接口之外的其它接口发送。不再是盲目地进行转发,进而避免了报文环路的出现。同时,无需借助复杂的协议算法,提高链路利用率及节省网络带宽。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

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