掌桥专利:专业的专利平台
掌桥专利
首页

一种报文处理方法及装置

文献发布时间:2023-06-19 13:26:15


一种报文处理方法及装置

技术领域

本申请涉及网络技术领域,特别是涉及一种报文处理方法及装置。

背景技术

随着网络技术的快速发展,基于DRNI(Distributed Resilient NetworkInterconnect,分布式弹性网络互连)协议的网络架构的应用也越来越广泛。

例如,参见图1,Switch(交换机)A和Switch B为使能DRNI协议的设备(可以称为DR设备),该两个DR设备构成DR系统。DR设备之间通过IPL(Intra-Portal Link,内部控制链路)和Keepalive(保活)链路连接。VM(Virtual Machine,虚拟机)1和VM2通过不同的DR组中的DR AC(Attachment Circuit,接入电路)接入DR系统,VM4和VM5通过单挂AC接入DR系统。DR系统上行连接三层路由透传设备Switch C,Switch C通过三层网络连接远端设备SwitchD。DR系统与Switch D之间建立Vxlan(Virtual eXtensible LAN,可扩展虚拟局域网)隧道。

图1所示的网络架构中,由于交换机与虚拟机之间存在多条链路,导致网络架构中存在环路,在广播流量的过程中,可能会导致一台虚拟机接收到多份流量,甚至产生广播风暴,进而,会导致网络架构的性能下降。例如,广播报文从VM1发送至Switch A,Switch A通过DR AC发送至VM2,以及通过IPL发送至Switch B。Switch B收到Switch A发送的报文后,也会通过DR AC向VM2发送,进而,导致VM2接收到重复的广播报文。

发明内容

本申请实施例的目的在于提供一种报文处理方法及装置,能够在一定程度上避免网络架构的性能下降。具体技术方案如下:

第一方面,为了达到上述目的,本申请实施例公开了一种报文处理方法,所述方法应用于第一分布式弹性DR设备,所述方法包括:

通过内部控制链路IPL接收第一报文;

针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态;

若所述第一DR链路处于异常状态,则通过该DR AC发送所述第一报文;

若所述第一DR链路未处于异常状态,则拒绝通过该DR AC发送所述第一报文。

可选的,在所述针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态之后,所述方法还包括:

根据所述第一DR链路的状态,对预设免过滤表进行更新;其中,所述预设免过滤表用于记录免过滤DR AC对应的物理端口,所述第二DR设备中与所述免过滤DR AC属于同一DR组的DR AC对应的DR链路处于异常状态;

所述若所述第一DR链路处于异常状态,则通过该DR AC发送所述第一报文,包括:

若所述预设免过滤表中存在该DR AC对应的物理端口,则通过该DR AC发送所述第一报文;

所述若所述第一DR链路未处于异常状态,则拒绝通过该DR AC发送所述第一报文,包括:

若所述预设免过滤表中不存在该DR AC对应的物理端口,则拒绝通过该DR AC发送所述第一报文。

可选的,在所述通过IPL接收第一报文之后,所述方法还包括:

在所述第一报文中添加第一隔离标识;其中,所述第一隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的预设过滤值确定的;

当在所述虚隧道对应的隧道口处,检测到所述第一报文中携带有所述第一隔离标识时,拒绝通过所述虚隧道向所述远端设备发送所述第一报文。

可选的,所述方法还包括:

通过所述第一DR设备中的第一DR AC接收第二报文;

在所述第二报文中添加第一免隔离标识;其中,所述第一免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

当在所述IPL对应的链路口处,检测到所述第二报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第二报文。

可选的,所述方法还包括:

在所述第二报文中添加第二免隔离标识;其中,所述第二免隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的第二预设免过滤值确定的;

当在所述虚隧道对应的隧道口处,检测到所述第二报文中携带有所述第二免隔离标识时,通过所述虚隧道向所述远端设备发送所述第二报文。

可选的,所述方法还包括:

通过所述第一DR设备与远端设备之间的虚隧道接收第三报文;

在所述第三报文中添加第三免隔离标识;其中,所述第三免隔离标识为基于所述第一DR设备中的AC对应的第三预设免过滤值确定的;

针对所述第一DR设备中的每一AC,当在该AC处检测到所述第三报文中携带有所述第三免隔离标识时,通过该AC发送所述第三报文。

可选的,所述方法还包括:

在所述第三报文中添加第四免隔离标识;其中,所述第四免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

当在所述IPL对应的链路口处,检测到所述第三报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第三报文

第二方面,为了达到上述目的,本申请实施例公开了一种报文处理装置,所述装置应用于第一分布式弹性DR设备,所述装置包括:

第一报文接收模块,用于通过内部控制链路IPL接收第一报文;

判断模块,用于针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态;

第一发送模块,用于若所述第一DR链路处于异常状态,则通过该DR AC发送所述第一报文;

第一过滤模块,用于若所述第一DR链路未处于异常状态,则拒绝通过该DR AC发送所述第一报文。

可选的,所述装置还包括:

更新模块,用于在所述针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态之后,根据所述第一DR链路的状态,对预设免过滤表进行更新;其中,所述预设免过滤表用于记录免过滤DRAC对应的物理端口,所述第二DR设备中与所述免过滤DR AC属于同一DR组的DR AC对应的DR链路处于异常状态;

所述第一发送模块,具体用于若所述预设免过滤表中存在该DR AC对应的物理端口,则通过该DR AC发送所述第一报文;

所述第一过滤模块,具体用于若所述预设免过滤表中不存在该DR AC对应的物理端口,则拒绝通过该DR AC发送所述第一报文。

可选的,所述装置还包括:

第一隔离标识添加模块,用于在所述通过IPL接收第一报文之后,在所述第一报文中添加第一隔离标识;其中,所述第一隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的预设过滤值确定的;

第二过滤模块,具体用于当在所述虚隧道对应的隧道口处,检测到所述第一报文中携带有所述第一隔离标识时,拒绝通过所述虚隧道向所述远端设备发送所述第一报文。

可选的,所述装置还包括:

第二报文接收模块,用于通过所述第一DR设备中的第一DR AC接收第二报文;

第一免隔离标识添加模块,用于在所述第二报文中添加第一免隔离标识;其中,所述第一免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

第二发送模块,用于当在所述IPL对应的链路口处,检测到所述第二报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第二报文。

可选的,所述装置还包括:

第二免隔离标识添加模块,用于在所述第二报文中添加第二免隔离标识;其中,所述第二免隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的第二预设免过滤值确定的;

第三发送模块,用于当在所述虚隧道对应的隧道口处,检测到所述第二报文中携带有所述第二免隔离标识时,通过所述虚隧道向所述远端设备发送所述第二报文。

可选的,所述装置还包括:

第三报文接收模块,用于通过所述第一DR设备与远端设备之间的虚隧道接收第三报文;

第三免隔离标识添加模块,用于在所述第三报文中添加第三免隔离标识;其中,所述第三免隔离标识为基于所述第一DR设备中的AC对应的第三预设免过滤值确定的;

第四发送模块,用于针对所述第一DR设备中的每一AC,当在该AC处检测到所述第三报文中携带有所述第三免隔离标识时,通过该AC发送所述第三报文。

可选的,所述装置还包括:

第四免隔离标识添加模块,用于在所述第三报文中添加第一免隔离标识;其中,所述第一免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

第五发送模块,用于当在所述IPL对应的链路口处,检测到所述第三报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第三报文。

在本申请实施的另一方面,为了达到上述目的,本申请实施例还公开了一种网络设备,所述网络设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现如上述第一方面所述的报文处理方法。

在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的报文处理方法。

在本申请实施的又一方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的报文处理方法。

本申请实施例有益效果:

本申请实施例提供的报文处理方法,应用于第一DR设备,通过IPL接收第一报文;针对第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DRAC对应的第一DR链路是否处于异常状态;若第一DR链路处于异常状态,则通过该DR AC发送第一报文;若第一DR链路未处于异常状态,则拒绝通过该DR AC发送第一报文。

基于上述处理,针对第一DR设备中的每一DR AC,通过该DR AC接入的设备,与通过第二DR设备中与该DR AC属于同一DR组的DR AC接入的设备相同。若第二DR设备中与该DRAC属于同一DR组的DR AC对应的第一DR链路未处于异常状态,表明第二DR设备也会向通过与该DR AC属于同一DR组的DR AC接入的设备发送第一报文,因此,第一DR设备拒绝通过该DR AC发送第一报文,也就使得通过该DR AC接入的设备不会重复接收到第一报文。进而,在一定程度上避免网络架构的性能下降。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。

图1为本申请实施例提供的一种网络架构的示意图;

图2为本申请实施例提供的一种报文处理方法的流程图;

图3为本申请实施例提供的一种有Peerlink的网络架构的示意图;

图4为本申请实施例提供的一种无Peerlink的网络架构的示意图;

图5为本申请实施例提供的另一种报文处理方法的流程图;

图6为本申请实施例提供的另一种报文处理方法的流程图;

图7为本申请实施例提供的另一种有Peerlink的网络架构的示意图;

图8为本申请实施例提供的另一种无Peerlink的网络架构的示意图;

图9为本申请实施例提供的一种报文处理装置的结构图;

图10为本申请实施例提供的一种网络设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供了一种报文处理方法,该方法可以应用于第一DR设备,该第一DR设备可以为网络架构中DR系统包含的任一DR设备。例如,第一DR设备可以为图1所示的网络架构中的Switch A,也可以为该网络架构中的Switch B。也就是说,DR系统中的每一DR设备均可以按照本申请实施例提供的方法对报文进行处理。

参见图2,图2为本申请实施例提供的一种报文处理方法的流程图,该方法可以包括以下步骤:

S201:通过IPL接收第一报文。

S202:针对第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态。

S203:若第一DR链路处于异常状态,则通过该DR AC发送第一报文。

S204:若第一DR链路未处于异常状态,则拒绝通过该DR AC发送第一报文。

本申请实施例提供的报文处理方法,针对第一DR设备中的每一DR AC,通过该DRAC接入的设备,与通过第二DR设备中与该DR AC属于同一DR组的DR AC接入的设备相同。若第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路未处于异常状态,表明第二DR设备也会向通过与该DR AC属于同一DR组的DR AC接入的设备发送第一报文,因此,第一DR设备拒绝通过该DR AC发送第一报文,也就使得通过该DR AC接入的设备不会重复接收到第一报文,进而,在一定程度上避免网络架构的性能下降。

另外,若第一报文为某一设备通过DR链路发送至第二DR设备,并通过IPL发送至第一DR设备,则在接收到第一报文后,第一DR设备也并不会通过该DR链路对应的DR AC向该设备发送第一报文,也就能够避免第一报文回传至该设备。

在本申请实施例中,针对一个DR设备,该DR设备中作为DR使用的AC可以称为DRAC。例如,参见图1,Switch A中用于接入VM1和VM2的AC,以及Switch B中用于接入VM1和VM2的AC,均可以称为DR AC。相应的,DR设备与通过DR AC接入的设备之间的链路可以称为DR链路。例如,Switch A与VM1之间的链路,以及Switch A与VM2之间的链路。DR系统中用于接入同一个设备的DR AC属于同一个DR组,例如,图1中,Switch A和Switch B中用于接入VM1的DR AC属于DR1组,用于接入VM2的DR AC属于DR2组。

针对步骤S201,第一DR设备通过IPL接收到的第一报文可以为广播报文。

DR系统中两个DR设备之间的IPL可以以不同的形式存在。

一种实现方式中,两台DR设备之间的IPL承载在聚合接口上,此时,该网络架构可以称为有Peerlink(匹配连接)的网络架构。例如,参见图3,图3为本申请实施例提供的一种有Peerlink的网络架构的示意图。

图3所示的网络架构中,DR系统(即Switch A和Switch B)通过Group(组)地址(即虚IP地址)与Switch D之间建立虚隧道。图3中虚线表示虚隧道,单箭头表示流量可达,双箭头表示流量不可达。此时,IPL在两个DR设备中对应的接口可以称为IPL AC。

另外,DR设备中除IPL AC和DR AC以外的其他AC可以称为单挂AC。例如,图1中,Switch A中用于接入VM4的AC可以称为单挂AC。同理,Switch B中用于接入VM5的AC可以称为单挂AC。

针对图3所示的网络架构,若第一DR设备为Switch B,相应的,第二DR设备为Switch A。VM1向Switch A发送第一报文,Switch A通过IPL向Switch B发送第一报文。若Switch A与VM2之间的DR链路(即第一DR链路)未异常,也就是说,Switch A也可以通过DR2组中的DR AC向VM2发送第一报文。在通过IPL接收到第一报文后,Switch B判定第一DR链路未异常,则拒绝通过DR2组中的DR AC发送第一报文,即,Switch B并不会向VM2发送第一报文,也就能避免VM2接收到重复的第一报文。

相应的,若第一DR链路异常,即,Switch A并不会向VM2发送第一报文,因此,在通过IPL接收到第一报文后,Switch B判定第一DR链路异常,则通过DR2组中的DR AC发送第一报文,即,Switch B向VM2发送第一报文。同样,也能避免VM2接收到重复的第一报文。

另外,由于Switch A与VM1之间的DR链路(即DR1组对应的DR链路)未异常,因此,在通过IPL接收到第一报文后,Switch B判定该DR链路未异常,则拒绝通过DR1组中的DR AC发送第一报文,即,Switch B并不会向VM1发送第一报文,也就能避免第一报文回传至VM1。

另外一种实现方式中,两台DR设备之间的IPL承载在Vxlan隧道上,此时,该网络架构可以称为无Peerlink的网络架构。例如,参见图4,图4为本申请实施例提供的一种无Peerlink的网络架构的示意图。该网络架构中,Switch A与Switch B之间的IPL承载在Vxlan隧道上。DR系统(即Switch A和Switch B)通过Group地址(即虚IP地址)与Switch D之间建立虚隧道。另外,Switch A、Switch B分别通过实IP与Switch D建立实隧道(图中未标出)。

为了便于区分,在申请中,针对有Peerlink的网络架构,两个DR设备之间的IPL称为IPL;针对无Peerlink的网络架构,两个DR设备之间的IPL称为IPL隧道。

与图3所示的网络架构类似,在图4所示的网络架构中,若第一DR设备为Switch B,VM1向Switch A发送第一报文,Switch A通过IPL隧道向Switch B发送第一报文。若SwitchA与VM2之间的DR链路(即第一DR链路)未异常,也就是说,Switch A也可以通过DR2组中的DRAC向VM2发送第一报文。在通过IPL隧道接收到第一报文后,Switch B判定第一DR链路未异常,则拒绝通过DR2组中的DR AC发送第一报文,即,Switch B并不会向VM2发送第一报文,也就能避免VM2接收到重复的第一报文。

相应的,若第一DR链路异常,即,Switch A并不会向VM2发送第一报文,因此,在通过IPL隧道接收到第一报文后,Switch B判定第一DR链路异常,则通过DR2组中的DR AC发送第一报文,即,Switch B向VM2发送第一报文。同样,也能避免VM2接收到重复的第一报文。

另外,由于Switch A与VM1之间的DR链路(即DR1组对应的DR链路)未异常,因此,在通过IPL隧道接收到第一报文后,Switch B判定该DR链路未异常,则拒绝通过DR1组中的DRAC发送第一报文,即,Switch B并不会向VM1发送第一报文,也就能避免第一报文回传至VM1。

在一个实施例中,DR系统中的一个DR设备可以通过IPL向对端的DR设备,发送自身对应的DR链路的状态。

在一个实施例中,在确定出DR链路的状态时,DR设备可以通过预设免过滤表对报文进行处理。

在上述步骤S202之后,该方法还可以包括以下步骤:根据第一DR链路的状态,对预设免过滤表进行更新。

相应的,上述步骤S203可以包括:若预设免过滤表中存在该DR AC对应的物理端口,则通过该DR AC发送第一报文。

相应的,上述步骤S204可以包括:若预设免过滤表中不存在该DR AC对应的物理端口,则拒绝通过该DR AC发送第一报文。

其中,预设免过滤表用于记录免过滤DR AC对应的物理端口。第二DR设备中与免过滤DR AC属于同一DR组的DR AC对应的DR链路处于异常状态。

一种实现方式中,上述预设免过滤表可以为源过滤表。

在本申请实施例中,第一DR设备在确定第一DR链路的状态后,可以基于该状态,对预设免过滤表进行更新。由于第二DR设备中与免过滤DR AC属于同一DR组的DR AC对应的DR链路处于异常状态,也就是说,免过滤DR AC是第一DR设备中允许发送第一报文的DR AC。因此,在确定出第一DR链路处于异常状态时,则可以将第一DR设备中,与第一DR链路对应的DRAC对应的物理端口添加至预设免过滤表中。后续,在确定预设免过滤表中存在对应的物理端口的情况下,通过第一DR设备中对应的DR AC发送第一报文。

反之,在确定出第一DR链路未处于异常状态时,可以将第一DR设备中,与第一DR链路对应的DR AC对应的物理端口从预设免过滤表中删除。后续,在确定预设免过滤表中不存在对应的物理端口的情况下,拒绝通过对应的DR AC发送第一报文。

在一个实施例中,当通过IPL接收到第一报文时,可以通过预设信息对第一报文进行匹配。

例如,在有Peerlink的组网架构中,当通过IPL AC接收到第一报文时,可以匹配第一报文中的Tgid和Vlanid,并分配Eport(Extend port,扩展端口)、Meshid(网格标识)、Srcid(源标识)和Flowid(流标识),以及修改第一报文中的Vlanid,即,将Vlanid修改为大于4095的数值,以支持Vxlan的场景。其中,Tgid表示聚合口的索引,Srcid表示免过滤表的key值,默认没有设置隔离,即,默认DR设备中的所有物理端口都添加入该Srcid对应的免过滤表。Meshid表示下文中的隔离标识和免隔离标识对应的字段。

通过匹配第一报文中携带的Tgid,确定与第一报文匹配的Eport,以及对应的聚合口,即,确定接收第一报文的IPL AC。然后,可以分配对应的Srcid,进而,获取对应的免过滤表,并根据对端的第二DR设备对应的DR链路的状态,对免过滤表进行更新。进而,则可以基于对应的免过滤表,在DR AC处对第一报文进行处理。

又例如,在无Peerlink的组网架构中,当通过IPL隧道接收到第一报文时,可以匹配第一报文的目的IP、源IP和L4端口号,并分配Eport、Meshid、Srcid、Flowid,以及修改第一报文中的Vlanid。具体处理方式,与有Peerlink的组网架构的处理方式类似。

在一个实施例中,在上述步骤S201之后,该方法还可以包括以下步骤:

在第一报文中添加第一隔离标识;当在虚隧道对应的隧道口处,检测到第一报文中携带有第一隔离标识时,拒绝通过虚隧道向远端设备发送第一报文。

其中,第一隔离标识为基于第一DR设备与远端设备之间的虚隧道对应的预设过滤值确定的。例如,该虚隧道对应的预设过滤值可以为0xf。

在本申请实施例中,针对有Peerlink的组网架构,当通过IPL AC接收到第一报文时,可以在第一报文中添加Meshid=0xf。进而,在虚隧道对应的隧道口处,可以检测待发送的报文(即第一报文)中是否携带有数值为0xf的Meshid字段。若携带有,则拒绝通过虚隧道向远端设备发送第一报文。也就能够实现通过IPL AC接收的流量不能通过虚隧道广播至远端设备,能够避免远端设备接收到重复的报文。

例如,针对图3,若第一DR设备为Switch B,相应的,第二DR设备为Switch A。VM1向Switch A发送第一报文,Switch A通过虚隧道向Switch D发送第一报文,以及通过IPL向Switch B发送第一报文。在通过IPL接收到第一报文后,Switch B为第一报文添加Meshid=0xf,在虚隧道对应的隧道口处,确定第一报文携带有数值为0xf的Meshid字段,因此,拒绝通过虚隧道向远端设备发送第一报文,也就不会通过虚隧道向Switch D发送第一报文,能够避免Switch D重复接收到第一报文。

针对无Peerlink的组网架构,当通过IPL隧道接收到第一报文时,可以在第一报文中添加Meshid=0xf。进而,在虚隧道对应的隧道口处,可以检测待发送的报文(即第一报文)中是否携带有数值为0xf的Meshid字段。若携带有,则拒绝通过虚隧道向远端设备发送第一报文。也就能够实现通过IPL隧道接收的流量不能通过虚隧道广播至远端设备,能够避免远端设备接收到重复的报文。

例如,针对图4,若第一DR设备为Switch B,相应的,第二DR设备为Switch A。VM1向Switch A发送第一报文,Switch A通过虚隧道向Switch D发送第一报文,以及通过IPL隧道向Switch B发送第一报文。在通过IPL隧道接收到第一报文后,Switch B为第一报文添加Meshid=0xf,在虚隧道对应的隧道口处,确定第一报文携带有数值为0xf的Meshid字段,因此,拒绝通过虚隧道向远端设备发送第一报文,也就不会通过虚隧道向Switch D发送第一报文,能够避免Switch D重复接收到第一报文。

在一个实施例中,参见图5,该方法还可以包括以下步骤:

S501:通过第一DR设备中的第一DR AC接收第二报文。

S502:在第二报文中添加第一免隔离标识。

S503:当在IPL对应的链路口处,检测到第二报文中携带有第一免隔离标识时,通过IPL发送第二报文。

其中,第一免隔离标识为基于IPL对应的第一预设免过滤值确定的。例如,第一免隔离表示可以为0。

在本申请实施例中,针对有Peerlink的组网架构,当通过DR AC接收到报文(即第二报文)时,可以在第二报文中添加Meshid=0。进而,在IPL对应的链路口(即IPL AC)处,可以检测待发送的报文(即第二报文)中是否携带有数值为0的Meshid字段。若携带有,则通过IPL发送第二报文。也就能够实现通过DR AC接收的流量能够广播至IPL AC。

例如,针对图3,若第一DR设备为Switch A,第二DR设备为Switch B。VM1向SwitchA发送第二报文,相应的,Switch A在DR1组中的DR AC处为第二报文添加Meshid=0,在IPLAC处检测到第二报文携带有数值为0的Meshid字段,进而,可以通过IPL AC发送第二报文,即,通过IPL向Switch B发送第二报文。

针对无Peerlink的组网架构,当通过DR AC接收到报文(即第二报文)时,可以在第二报文中添加Meshid=0。进而,在IPL隧道对应的链路口(即隧道口)处,可以检测待发送的报文(即第二报文)中是否携带有数值为0的Meshid字段。若携带有,则通过IPL隧道发送第二报文。也就能够实现通过DR AC接收的流量能够广播至IPL隧道。

例如,针对图4,若第一DR设备为Switch A,第二DR设备为Switch B。VM1向SwitchA发送第二报文,相应的,Switch A在DR1组中的DR AC处为第二报文添加Meshid=0,在IPL隧道的隧道口处检测到第二报文携带有数值为0的Meshid字段,进而,可以通过IPL隧道发送第二报文,即,通过IPL隧道向Switch B发送第二报文。

在一个实施例中,在上述步骤S501之后,该方法还可以包括以下步骤:

步骤一:在第二报文中添加第二免隔离标识。

步骤二:当在虚隧道对应的隧道口处,检测到第二报文中携带有第二免隔离标识时,通过虚隧道向远端设备发送第二报文。

其中,第二免隔离标识为基于第一DR设备与远端设备之间的虚隧道对应的第二预设免过滤值确定的。第二预设免过滤值可以与上述IPL对应的第一预设免过滤值相同。

在本申请实施例中,针对有Peerlink的组网架构,当通过DR AC接收到报文(即第二报文)时,可以在第二报文中添加Meshid=0。进而,在虚隧道的隧道口处,可以检测待发送的报文(即第二报文)中是否携带有数值为0的Meshid字段。若携带有,则通过虚隧道发送第二报文。也就能够实现通过DR AC接收的流量能够通过虚隧道广播至远端设备。

例如,针对图3,若第一DR设备为Switch A,第二DR设备为Switch B。VM1向SwitchA发送第二报文,相应的,Switch A在DR1组中的DR AC处为第二报文添加Meshid=0,在虚隧道的隧道口处检测到第二报文携带有数值为0的Meshid字段,进而,可以通过虚隧道的隧道口发送第二报文,即,通过虚隧道向Switch D发送第二报文。

针对无Peerlink的组网架构,其处理方式与Peerlink的组网架构的处理方式类似。例如,针对图4,VM1向Switch A发送第二报文,Switch A在DR1组中的DR AC处为第二报文添加Meshid=0,在虚隧道的隧道口处检测到第二报文携带有数值为0的Meshid字段,进而,可以通过虚隧道的隧道口发送第二报文,即,通过虚隧道向Switch D发送第二报文。

在一个实施例中,参见图6,该方法还可以包括以下步骤:

S601:通过第一DR设备与远端设备之间的虚隧道接收第三报文。

S602:在第三报文中添加第三免隔离标识。

S603:针对第一DR设备中的每一AC,当在该AC处检测到第三报文中携带有第三免隔离标识时,通过该AC发送第三报文。

其中,第三免隔离标识为基于第一DR设备中的AC对应的第三预设免过滤值确定的。一种实现方式中,第三预设免过滤值可以与上述IPL对应的第一预设免过滤值相同。

在本申请实施例中,第一DR设备中的AC可以为DR AC、也可以为单挂AC,还可以为IPL AC。

在本申请实施例中,针对有Peerlink的组网架构,当通过虚隧道接收到报文(即第三报文)时,可以在第三报文中添加Meshid=0。进而,在每一AC处,可以检测待发送的报文(即第三报文)中是否携带有数值为0的Meshid字段。若携带有,则通过该AC发送第三报文。也就能够实现通过虚隧道接收的流量能够发送至DR AC、IPL AC,以及单挂AC。

例如,参见图7,VM3向Switch D发送第三报文,Switch D通过虚隧道向Switch C发送第三报文。若在Switch C处通过Hash(哈希)将第三报文透传至Switch A。此时,第一DR设备为Switch A,Switch A在虚隧道的隧道口处为第三报文添加Meshid=0。在DR1组中的DRAC处检测到第三报文携带有数值为0的Meshid字段,进而,可以通过该DR AC发送第三报文,即,通过该DR AC向VM1发送第三报文。

同理,在DR2组中的DR AC处检测到第三报文携带有数值为0的Meshid字段,进而,可以通过该DR AC发送第三报文,即,通过该DR AC向VM2发送第三报文。也可以通过单挂AC向VM4发送第三报文。

针对无Peerlink的组网架构,参见图8,VM3向Switch D发送第三报文,Switch D通过虚隧道向Switch C发送第三报文。若在Switch C处通过Hash(哈希)将第三报文透传至Switch A。此时,第一DR设备为Switch A,Switch A在虚隧道的隧道口处为第三报文添加Meshid=0。在DR1组中的DR AC处检测到第三报文携带有数值为0的Meshid字段,进而,可以通过该DR AC发送第三报文,即,通过该DR AC向VM1发送第三报文。

同理,也可以通过单挂AC向VM4发送第三报文。

在一个实施例中,在上述步骤S601之后,该方法还可以包括以下步骤:

在第三报文中添加第四免隔离标识;当在IPL对应的链路口处,检测到第三报文中携带有第一免隔离标识时,通过IPL发送第三报文。

其中,第四免隔离标识为基于IPL对应的第一预设免过滤值确定的,例如,可以为0。

在本申请实施例中,针对有Peerlink的组网架构,当通过虚隧道接收到报文(即第三报文)时,可以在第三报文中添加Meshid=0。进而,在IPL AC处,可以检测待发送的报文(即第三报文)中是否携带有数值为0的Meshid字段。若携带有,则通过该IPL AC发送第三报文。也就能够实现通过虚隧道接收的流量能够发送至IPL AC。

例如,参见图7,VM3向Switch D发送第三报文,Switch D通过虚隧道向Switch C发送第三报文。若在Switch C处通过Hash(哈希)将第三报文透传至Switch A。此时,第一DR设备为Switch A,Switch A在虚隧道的隧道口处为第三报文添加Meshid=0。在IPL AC处检测到第三报文携带有数值为0的Meshid字段,进而,可以通过该IPL AC发送第三报文,即,通过该IPL向Switch B发送第三报文。

针对无Peerlink的组网架构,参见图8,VM3向Switch D发送第三报文,Switch D通过虚隧道向Switch C发送第三报文。若在Switch C处通过Hash(哈希)将第三报文透传至Switch A。此时,第一DR设备为Switch A,Switch A在虚隧道的隧道口处为第三报文添加Meshid=0。在IPL隧道对应的链路口(即隧道口)处检测到第三报文携带有数值为0的Meshid字段,进而,可以通过该隧道口发送第三报文,即,通过该IPL隧道向Switch B发送第三报文。

由于Switch A与VM2之间的DR链路异常,因此,Switch A并不会向VM2发送第三报文,进而,基于上述实施例,Switch B在判定Switch A与VM2之间的DR链路异常时,也就可以通过DR2组中的DR AC向VM2发送第三报文。

本申请实施例提供的方法,能够实现在Vxlan DRNI场景AC口与隧道口的隔离,使得Vxlan场景能够支持DRNI特性,可以在leaf侧实现去堆叠化同时实现设备级冗余备份。

基于相同的发明构思,本申请实施例还提供了一种报文处理装置,所述装置应用于第一DR设备,参见图9,图9为本申请实施例提供的一种报文处理装置的结构图,该装置包括:

第一报文接收模块901,用于通过内部控制链路IPL接收第一报文;

判断模块902,用于针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态;

第一发送模块903,用于若所述第一DR链路处于异常状态,则通过该DR AC发送所述第一报文;

第一过滤模块904,用于若所述第一DR链路未处于异常状态,则拒绝通过该DR AC发送所述第一报文。

可选的,所述装置还包括:

更新模块,用于在所述针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态之后,根据所述第一DR链路的状态,对预设免过滤表进行更新;其中,所述预设免过滤表用于记录免过滤DRAC对应的物理端口,所述第二DR设备中与所述免过滤DR AC属于同一DR组的DR AC对应的DR链路处于异常状态;

所述第一发送模块903,具体用于若所述预设免过滤表中存在该DR AC对应的物理端口,则通过该DR AC发送所述第一报文;

所述第一过滤模块904,具体用于若所述预设免过滤表中不存在该DR AC对应的物理端口,则拒绝通过该DR AC发送所述第一报文。

可选的,所述装置还包括:

第一隔离标识添加模块,用于在所述通过IPL接收第一报文之后,在所述第一报文中添加第一隔离标识;其中,所述第一隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的预设过滤值确定的;

第二过滤模块,具体用于当在所述虚隧道对应的隧道口处,检测到所述第一报文中携带有所述第一隔离标识时,拒绝通过所述虚隧道向所述远端设备发送所述第一报文。

可选的,所述装置还包括:

第二报文接收模块,用于通过所述第一DR设备中的第一DR AC接收第二报文;

第一免隔离标识添加模块,用于在所述第二报文中添加第一免隔离标识;其中,所述第一免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

第二发送模块,用于当在所述IPL对应的链路口处,检测到所述第二报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第二报文。

可选的,所述装置还包括:

第二免隔离标识添加模块,用于在所述第二报文中添加第二免隔离标识;其中,所述第二免隔离标识为基于所述第一DR设备与远端设备之间的虚隧道对应的第二预设免过滤值确定的;

第三发送模块,用于当在所述虚隧道对应的隧道口处,检测到所述第二报文中携带有所述第二免隔离标识时,通过所述虚隧道向所述远端设备发送所述第二报文。

可选的,所述装置还包括:

第三报文接收模块,用于通过所述第一DR设备与远端设备之间的虚隧道接收第三报文;

第三免隔离标识添加模块,用于在所述第三报文中添加第三免隔离标识;其中,所述第三免隔离标识为基于所述第一DR设备中的DR AC对应的第三预设免过滤值确定的;

第四发送模块,用于针对所述第一DR设备中的每一DR AC,当在该DR AC处检测到所述第三报文中携带有所述第三免隔离标识时,通过该DR AC发送所述第三报文。

可选的,所述装置还包括:

第四免隔离标识添加模块,用于在所述第三报文中添加第一免隔离标识;其中,所述第一免隔离标识为基于所述IPL对应的第一预设免过滤值确定的;

第五发送模块,用于当在所述IPL对应的链路口处,检测到所述第三报文中携带有所述第一免隔离标识时,通过所述IPL发送所述第三报文。

本申请实施例还提供了一种网络设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,

存储器1003,用于存放计算机程序;

处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:

通过内部控制链路IPL接收第一报文;

针对所述第一DR设备中的每一DR AC,判断对端的第二DR设备中与该DR AC属于同一DR组的DR AC对应的第一DR链路是否处于异常状态;

若所述第一DR链路处于异常状态,则通过该DR AC发送所述第一报文;

若所述第一DR链路未处于异常状态,则拒绝通过该DR AC发送所述第一报文。

上述网络设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述网络设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文处理方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

相关技术
  • 一种报文的处理方法、报文转发装置以及报文处理装置
  • 一种报文处理方法、报文转发方法、装置及设备
技术分类

06120113675402