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

一种报文转发方法及设备

文献发布时间:2023-06-19 13:46:35


一种报文转发方法及设备

技术领域

本申请涉及通信技术,特别涉及一种报文转发方法及设备。

背景技术

DRNI(Distributed Resilient Network Interconnect,分布式弹性网络互连)是基于IEEE P802.1AX协议的跨设备链路聚合技术。DRNI将两台物理设备虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。DRNI主要应用于双归接入组网,将可靠性从链路级提高到设备级。

DRNI组网中,两台物理设备之间通过IPL(Intra-Portal Link,内部控制链路)连接,转发DRCP报文和数据报文、对MAC地址表项和ARP表项进行同步,不需要像IRF(Intelligent Resilient Framework,智能弹性架构)/堆叠系统同步每台成员设备所有的信息,因此在控制面耦合程度相比堆叠小很多。任一设备DR接口未收到来自对端DR设备的DRCPDU(Distributed Relay Control Protocol Data Unit,分布式聚合控制协议数据单元),则认为对端DR设备DR接口已经失效。DRNI组网中,两台设备之间除了IPL链路还有一条Keep alive(保活)链路,用于检测邻居的状态,即交互Keep alive报文来进行IPL链路故障时的双主检测。

在数据转发层面,DRNI组网中非单播报文BUM(Broadcast,Unknown Unicast,Multicast;广播,未知单播,组播)转发是在出方向决定,即使邻居设备无需对非单播报文执行转发处理,收到非单播报文的DR设备也会通过IPL链路转发到邻居DR设备一份,然后由邻居DR设备在出方向上丢弃通过IPL链路收到的非单播报文,一旦IPL链路转发大量无用的报文的流量超出IPL链路带宽,IPL链路发生丢包。

发明内容

本申请的目的在于提供一种报文转发方法及设备,减少分布式弹性网络互连系统中内部控制链路上非必要转发的流量。

为实现上述发明目的,本申请提供了一种报文转发方法,该方法包括;为第一虚拟局域网VLAN建立第一映射组播组;确定第一VLAN内的非单播报文在邻居分布式弹性DR设备上无需远端转发;将本地分布式聚合口和第一VLAN内的非单播报文的本地端口设置为第一映射组播组的成员端口;将第一VLAN内的非单播报文为第一映射组播组的每个成员端口复制一份,通过第一映射组播组的每个成员端口在第一VLAN内发送一份复制的非单播报文。

为实现上述目的,本申请还提供了一种报文转发设备,该设备包括处理器和存储器;处理器执行存储器中的处理器可执行指令用于执行以下操作;为第一虚拟局域网VLAN建立第一映射组播组;确定第一VLAN内的非单播报文在邻居分布式弹性DR设备上无需远端转发;将本地分布式聚合口和第一VLAN内的非单播报文的本地端口设置为第一映射组播组的成员端口;接收第一VLAN内的非单播报文;为第一映射组播组的每个成员端口复制一份,通过第一映射组播组的每个成员端口在第一VLAN内发送一份复制的非单播报文。

本申请的有益效果在于,在DRNI网络中,DR设备前置设备过滤无需在邻居DR上远端转发的非单播报文,将不通过邻居DR远端转发的非单播报文映射到不包含IPP端口的组播组,避免在IPL链路转发无需邻居DR远端转发的流量,可以有效的节约IPL链路带宽的占用,避免出现IPL链路出现超带宽而发生的丢包。

附图说明

图1为本申请提供的报文转发方法实施例的流程图;

图2A-2B为本申请提供的不通过内部控制链路转发非单播报文的实施例的示意图;

图3A-3C为本申请提供的通过内部控制链路转发非单播报文的实施例的示意图;

图4为本申请提供的报文转发设备的示意。

具体实施方式

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本申请的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

图1所示本申请提供的报文转发方法实施例的流程图包括如下步骤;

步骤101,为虚拟局域网VLAN建立映射组播组;

步骤102,确定VLAN内的非单播报文在邻居DR设备上没有远端出端口;

步骤103,将本地分布式聚合口和VLAN内的非单播报文的本地端口设置为映射组播组的成员端口;

步骤104,将VLAN内的非单播报文为映射组播组的每个成员端口复制一份,通过映射组播组的每个成员端口在VLAN内发送一份复制的非单播报文。

图1实施例的有益效果在于,在DRNI网络中,DR设备前置设备过滤无需在邻居DR上远端转发的非单播报文,将不通过邻居DR远端转发的非单播报文映射到不包含IPP端口的组播组,避免在IPL链路转发无需邻居DR远端转发的流量,可以有效的节约IPL链路带宽的占用,避免出现IPL链路出现超带宽而发生的丢包。

图2A-2B为本申请提供的不通过内部控制链路转发非单播报文的实施例的示意图。

DRNI(Distributed Resilient Network Interconnect,分布式弹性网络互连)网络中,DR(Distributed Resilient,分布式弹性)设备DU1和DUT2聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。

DR设备DUT1和DUT2互为邻居DUT1和DUT2各自的DR接口(Distributed Relayinterface,分布式聚合接口)1a和2a属于同一DR组(Distributed-Relay group,分布式聚合组)。DUT1和DUT2通过互联的IPL链路发送DRCP协议报文,DUT1和DUT2间的keep alive链路未示出。

图2A所示实施例中,DUT3通过DR组的DR接口1a和1b双归属接入DR系统,DUT4通过DR接口2a和2b双归属接入DR系统。终端S1、S2位于VLAN10(图中点划线圆圈所示)。

DUT1通过IPL链路发送DRCP协议报文201;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。DUT2通过IPL链路发送DRCP协议报文202;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。

DUT1通过IPL收到无单挂口通知消息202,获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的无单挂口通知消息202以及本地分布式聚合口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT2上无需远端转发。DUT1为VLAN10建立映射组播组G10,将本地DR接口1a、2a设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息201后,获取本地DR接口1b、2b的状态为正常,基于在VLAN10内接收的无单挂口通知消息201以及本地分布式聚合口1b、2b的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上无需远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1b、2b设置为映射组播组G10的成员端口。

DUT3从终端S1收到VLAN10内的未知单播报文或未知组播报文或广播报文301,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10内的未知单播报文或未知组播报文或广播报文301时,查找VLAN10的映射组播组G10,为成员端口2a复制一份,然后通过成员端口2a发送到DUT4。DUT4可以在VLAN10内继续广播到终端S2。

图2A所示实施例中,当S1为组播源时,S2为组播组成员时,DUT1和DUT2将收到组播组加入报文的DR接口2a、2b添加为组播组成员端口。

DUT1通过IPL收到无单挂口通知消息202后,确定在远端DR设备上没有远端出端口,获取本地DR接口1a、2a的状态为正常,则为VLAN10建立映射组播组G10,将本地DR接口1a、组播成员端口2a设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息201后,确定在邻居DR设备上没有远端出端口,获取本地DR接口1b、2b的状态为正常,将本地DR接口1b、组播成员端口2b设置为映射组播组G10的成员端口。

DUT4从组播源S2收到VLAN10内的组播数据报文302,选择DR接口2b发送到DUT2。

DUT2通过DR接口2b收到VLAN10的组播数据报文302时,查找VLAN10的映射组播组G10,为成员端口1b复制一份,然后通过成员端口1b送到DUT3。DUT3可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文302到终端S1。

图2B所示实施例中,DUT2的2b与DUT4之间的链路故障。DUT1的DR接口因为未收到DRCPDU的时间超时,检测到邻居DUT2的DR接口2b故障。

DUT1通过IPL链路发送DRCP协议报文201;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。

DUT2通过IPL链路发送DRCP协议报文202;其中,扩展字段携带VLAN10以及单挂口标识,作为有无单挂口通知消息。

DUT1通过IPL收到无单挂口通知消息202获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的无单挂口通知消息201以及本地分布式聚合口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上无需远端转发。DUT1为VLAN10建立映射组播组G10,将本地DR接口1a、2a设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息201后,获取本地DR接口1b状态为正常,本地DR接口2b状态为故障,基于在VLAN10内接收的无单挂口通知消息201以及本地分布式聚合口2b的故障状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上需要远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1b、IPP端口IPP2设置为映射组播组G10的成员端口。

DUT3从终端S1收到VLAN10内的未知单播报文或未知组播报文或广播报文301,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10内的未知单播报文或未知组播报文或广播报文301时,查找VLAN10的映射组播组G10,为成员端口2a复制一份,然后通过成员端口2a发送到DUT4。DUT4可以在VLAN10内继续广播到终端S2。

图2B所示实施例中,当S1为组播源时,S2为组播组成员时,DUT1将收到组播组加入报文的DR接口2a添加为组播组成员端口。

DUT1通过IPL收到无单挂口通知消息202后,基于在VLAN10内接收的无单挂口通知消息201以及本地分布式聚合口1b、2b的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上无需远端转发。DUT1为VLAN10建立映射组播组G10,将本地DR接口1a、2a设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息201后,获取本地DR接口1b的状态为正常,本地DR接口2b的状态为故障,确定VLAN10内的非单播报文在邻居DR设备DUT2上需要远端转发,将本地DR接口1b、IPP端口IPP2设置为映射组播组G10的成员端口。

DUT3从组播源S1收到VLAN10内的组播数据报文302,选择DR接口1b发送到DUT2。

DUT2通过DR接口1b收到VLAN10的组播数据报文302时,查找VLAN10的映射组播组G10,为成员端口IPP2复制一份,然后通过成员端口IPP2连接的IPL链路发送送到DUT4。

DUT1收到组播数据报文302,查找组播组在VLAN10的映射组播组G10的成员端口,确认DR接口2b故障为成员端口2a复制一份,将组播数据报文发送到DUT4。DUT4可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文302到终端S2。

通过图2A-2B所示实施例可知,本发明的DR设备在邻居DR设备无需进行远端转发非单播报文时,无需通过IPL链路向邻居DR设备发送非单播报文,减少了IPL链路的带宽占用。

图3A-3C为本申请提供的通过内部控制链路转发非单播报文的实施例的示意图。

图3A所示实施例中,DUT3通过DR组的DR接口1a和1b双归属接入DR系统,DUT4通过DR接口2a和2b双归属接入DR系统,终端S1、S2、S3位于VLAN10(图中点划线圆圈所示),终端S3通过端口P3连接到DUT2。DUT1和DUT2间的keep alive链路未示出。

DUT1通过IPL链路发送DRCP协议报文203;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。

DUT2通过IPL链路发送DRCP协议报文204;其中,扩展字段携带VLAN10以及单挂口标识,作为有单挂口通知消息。本申请中,连接单归属接入的终端的端口为单挂口。

DUT1通过IPL收到VLAN10内的单挂口通知消息204,获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态,以及邻居DR设备DUT2的DR接口1b、2b的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT2上需要远端转发。DUT1为VLAN10建立映射组播组G10,将本地DR接口1a、2a、IPP端口IPP1设置为映射组播组G10的成员端口。

DUT2通过IPL收到VLAN10内的无单挂口通知消息203后,获取本地DR接口1b、2b的状态为正常,基于在VLAN10内接收的无单挂口通知消息203、本地分布式聚合口1b、2b的正常状态以及邻居DR设备DUT1的DR接口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上无需远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1b、2b、VLAN10内的本地端口P3设置为映射组播组G10的成员端口。

DUT3从终端S1收到VLAN10内的未知单播报文或未知组播报文或广播报文303,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10内的未知单播报文或未知组播报文或广播报文303时,查找VLAN10的映射组播组G10,为成员端口2a、IPP1分别复制一份,然后通过成员端口2a发送到DUT4、通过成员端口IPP1发送到DUT2。DUT2通过IPP端口收到数据报文304,查找VLAN10的映射组播组G10,因为邻居DR设备DUT1的DR接口1a、2a的正常,不会再通过DR接口转发,为成员端口P3复制一份,然后通过成员端口P3发送到终端S3。

图3A所示实施例中,当S1为组播源时,S2和S3为组播组成员时,DUT1将收到组播组加入报文的DR接口2a添加为组播组成员端口、DUT2将收到组播组加入报文的DR接口2b、P3添加为组播组成员端口。

DUT1通过IPL收到单挂口通知消息204后,获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态,以及邻居DR设备DUT2的DR接口1b、2b的正常状态,确定VLAN10内的组播数据报文在邻居DR设备DUT2上需要远端转发,则为组播组在VLAN10建立映射组播组G10,将本地DR接口1a、2a、IPP1设置为组播组在VLAN10的映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息203后,获取本地DR接口1b、2b的状态为正常,基于在VLAN10内接收的无单挂口通知消息203、本地分布式聚合口1b、2b的正常状态以及邻居DR设备DUT1的DR接口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上无需远端转发。DUT2为组播组在VLAN10建立映射组播组G10,将本地DR接口1b、2b设置为组播组在VLAN10的映射组播组G10的成员端口。

DUT3从组播源S1收到VLAN10内的组播数据报文304,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10的组播数据报文304时,查找VLAN10的映射组播组G10,为成员端口2b、IPP端口IPP1各复制一份,然后通过成员端口2b发送组播数据报文304送到DUT4,通过IPP端口IPP1发送组播数据报文304到DUT2。

DUT4收到组播数据报文304,可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文304到终端S2。

DUT2收到组播数据报文304,查找组播组在VLAN10的映射组播组G10,因为邻居DR设备DUT1的DR接口1a、2a的正常,不会再通过DR接口转发,为成员端口P3复制一份,然后通过成员端口P3发送到终端S3。

图3A所示实施例中,如果DUT3从组播源S1收到VLAN10内的组播数据报文305,选择DR接口1b发送到DUT2。

DUT2通过DR接口1b收到VLAN10的组播数据报文304时,查找组播组在VLAN10的映射组播组G10,为成员端口2b、P3各复制一份,然后通过成员端口2b发送组播数据报文305到DUT4,通过成员端口P3发送组播数据报文305到S3。

DUT4收到组播数据报文305,可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文304到终端S2。

通过图3A所示实施例可知,本申请DR设备在邻居DR设备需要进行远端转发时,将非单播报文通过IPP端口所在的IPL链路发往邻居DR设备进行远端转发,当邻居DR设备没有无需远端转发时,则直接根据映射组播组在本地进行转发,减少了IPL链路的带宽占用。

图3B所示实施例中,DUT3通过DR组的DR接口1a和1b双归属接入DR系统。DUT2的DR接口2b与DUT4间的链路故障,DUT4通过DR接口2a单归属接入DR系统。DUT1的DR接口2a因为未收到DRCPDU的时间超时,检测到邻居DUT1的DR接口2b故障。终端S1、S2、S3位于VLAN10(图中点划线圆圈所示),终端S3通过端口P3连接到DUT2。DUT1和DUT2间的keep alive链路未示出。

DUT1通过IPL链路发送DRCP协议报文203;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。

DUT2通过IPL链路发送DRCP协议报文204;其中,扩展字段携带VLAN10以及单挂口标识,作为有单挂口通知消息。

DUT1通过IPL收到单挂口通知消息204,获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态以及邻居DR设备DUT2的故障DR接口2b,确定VLAN10内的组播数据报文在邻居DR设备DUT2需要远端转发,为VLAN10建立映射组播组G10,将本地DR接口1a、2a、IPP端口IPP1设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息203后,获取本地DR接口1b的状态正常,本地DR接口2b的状态为故障,基于在VLAN10内接收的无单挂口通知消息203、本地分布式聚合口2b的故障状态以及邻居DR设备DUT1的DR接口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上需要远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1b、2b、IPP端口IPP2设置为组播组在VLAN10的映射组播组G10的成员端口。

DUT3从终端S1收到VLAN10内的未知单播报文或未知组播报文或广播报文306,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10内的未知单播报文或未知组播报文或广播报文306时,查找VLAN10的映射组播组G10,为每个成员端口2a、IPP1复制一份,然后通过成员端口2a发送到DUT4、通过成员端口IPP1发送到DUT2。

DUT2通过IPP端口收到数据报文306,因为邻居DR设备的DUT1的DR接口正常,DUT3不会再通过本地DR接口转发,查找VLAN10的映射组播组G10,为成员端口P3复制一份,然后通过成员端口P3发送到终端S3。

图3B所示实施例中,当S1为组播源时,S2和S3为组播组成员时,DUT1将收到组播组加入报文的DR接口2a添加为组播组成员端口、DUT2将收到组播组加入报文的P3添加为组播组成员端口。

DUT1通过IPL收到单挂口通知消息204后,确定在远端DR设备上没有远端出端口,获取本地DR接口1a、2a的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态以及邻居DR设备DUT2的故障DR接口2b,确定VLAN10内的组播数据报文在邻居DR设备DUT2需要远端转发,为组播组在VLAN10建立映射组播组G10,将本地DR接口1a、2a、IPP端口IPP1设置为映射组播组G10的成员端口。DUT2通过IPL收到无单挂口通知消息203后,DUT2通过IPL收到无单挂口通知消息203后,获取本地DR接口1b的状态正常,本地DR接口2b的状态为故障,基于在VLAN10内接收的无单挂口通知消息203、本地分布式聚合口2b的故障状态以及邻居DR设备DUT1的DR接口1a、2a的正常状态,确定VLAN10内的非单播报文在邻居DR设备DUT1上需要远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1b、2b、IPP端口IPP2设置为组播组在VLAN10的映射组播组G10的成员端口。

DUT3从组播源S1收到VLAN10内的组播数据报文307,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10的组播数据报文307时,查找组播组在VLAN10的映射组播组G10,为成员端口2b、IPP端口IPP1各复制一份,然后通过成员端口2b发送组播数据报文307送到DUT4,通过IPP端口IPP1发送组播数据报文307到DUT2。

DUT4收到组播数据报文307,可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文307到终端S2。

DUT2收到组播数据报文307,因为邻居DR设备的DUT1的DR接口正常,DUT3不会再通过本地DR接口转发,查找VLAN10的映射组播组G10,为成员端口P3复制一份,然后通过成员端口P3发送到终端S3。

图3C所示实施例中,DUT3通过DR组的DR接口1a和1b双归属接入DR系统,DUT1的DR接口2a与DUT4间的链路故障,DUT4通过DR接口2b单归属接入DR系统。DUT2的DR接口2b因为未收到DRCPDU的时间超时,检测到邻居DUT1的DR接口2b故障。终端S1、S2、S3位于VLAN10(图中点划线圆圈所示),终端S3通过端口P3连接到DUT2。DUT1和DUT2间的keep alive链路未示出。

DUT1通过IPL链路发送DRCP协议报文203;其中,扩展字段携带VLAN10以及无单挂口标识,作为无单挂口通知消息。

DUT2通过IPL链路发送DRCP协议报文204;其中,扩展字段携带VLAN10以及单挂口标识,作为有单挂口通知消息。

DUT1通过IPL收到单挂口通知消息204,获取本地DR接口1a的状态为正常且本地DR接口2a的状态为故障,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口2a的故障状态以及邻居DR设备DUT2的DR接口正常,确定VLAN10内的非单播报文在邻居DR设备DUT2需要远端转发,为VLAN10建立映射组播组G10,将本地DR接口1a、IPP端口IPP1设置为映射组播组G10的成员端口。

DUT2通过IPL收到无单挂口通知消息203后,获取本地DR接口1b、2b的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态以及邻居DR设备DUT2的故障DR接口2b,确定VLAN10内的非单播报文在邻居DR设备DUT2不需要远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1a、2a、P3设置为VLAN10的非单播报文的映射组播组G10的成员端口。

DUT3从终端S1收到VLAN10内的未知单播报文或未知组播报文或广播报文308,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10内的未知单播报文或未知组播报文或广播报文308时,查找VLAN10的映射组播组G10,为成员端口IPP1复制一份,然后通过成员端口IPP1发送到DUT2。

DUT2通过IPP端口收到数据报文308,查找VLAN10的映射组播组G10,应为邻居DR设备属于同一链路聚合组的DR接口1a正常,不通过DR接口1b转发,为成员端口DR接口2b、成员端口P3各复制一份,然后通过DR接口2b将数据报文308发送到DUT4,通过端口P3将数据报文308发送到终端S3。

图3C所示实施例中,当S1为组播源时,S2和S3为组播组成员时,DUT2将收到组播组加入报文的DR接口2b、P3添加为组播组成员端口。

DUT1通过IPL收到单挂口通知消息204后,获取本地DR接口1a的状态为正常且本地DR接口2a的状态为故障,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口2a的故障状态以及邻居DR设备DUT2的DR接口正常,确定VLAN10内的组播数据报文在邻居DR设备DUT2需要远端转发,为VLAN10建立映射组播组G10,将本地DR接口1a、IPP端口IPP1设置为映射组播组G10的成员端口。

DUT2通过IPL在VLAN10内接收收到无单挂口通知消息203后,获取本地DR接口1b、2b的状态为正常,基于在VLAN10内接收的单挂口通知消息204,本地分布式聚合口1a、2a的正常状态以及邻居DR设备DUT2的故障DR接口2b,确定VLAN10内的组播数据报文在邻居DR设备DUT2不需要远端转发。DUT2为VLAN10建立映射组播组G10,将本地DR接口1a、2a、P3设置为VLAN10的非单播报文的映射组播组G10的成员端口。

DUT3从组播源S1收到VLAN10内的组播数据报文309,选择DR接口1a发送到DUT1。

DUT1通过DR接口1a收到VLAN10的组播数据报文309时,查找VLAN10的映射组播组G10,为成员端口IPP1复制一份,然后通过IPP端口IPP1发送组播数据报文309到DUT2。

DUT2收到组播数据报文309,组播组在VLAN10的映射组播组G10,为成员端口2b、P3各复制一份,通过成员端口2b发送组播数据报文309送到DUT4,通过成员端口P3发送组播数据报文309到S4。

DUT4收到组播数据报文307,可以根据组播加入报文学习的二层组播表项查找该组播组在VLAN10的成员端口,通过该成员端口发送组播数据报文307到终端S2。

图4为本申请提供的报文转发设备40的示意图。该设备40包括处理器和存储器;处理器执行存储器中的处理器可执行指令用于执行以下操作;为第一虚拟局域网VLAN建立第一映射组播组;确定第一VLAN内的非单播报文在邻居分布式弹性DR设备上无需远端转发;将本地分布式聚合口和第一VLAN内的非单播报文的本地端口设置为第一映射组播组的成员端口;接收第一VLAN内的非单播报文;为第一映射组播组的每个成员端口复制一份,通过第一映射组播组的每个成员端口在第一VLAN内发送一份复制的非单播报文。

处理器执行存储器中的处理器可执行指令还用于执行以下操作;为第二虚拟局域网VLAN建立属于第二VLAN的第二映射组播组;确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发;将本地分布式聚合口、内部控制链路端口和第一VLAN内的非单播报文的本地端口设置为第二映射组播组的成员端口;将第二VLAN内的非单播报文为第二映射组播组的每个成员端口复制一份,通过第二映射组播组的每个成员端口在第二VLAN内发送一份复制的非单播报文。

处理器执行存储器中的处理器可执行指令执行确定第一VLAN内的非单播报文在邻居分布式弹性DR设备上无需远端转发的操作包括;通过内部控制链路的内部控制链路端口接收邻居DR设备在第一VLAN内发送的无单挂口通知消息;基于在第一VLAN内接收的无单挂口通知消息,本地分布式聚合口的状态为正常,邻居DR设备的远端分布式聚合口的状态为正常,确定第一VLAN内的非单播报文在邻居DR设备上无需远端转发;或者处理器执行存储器中的处理器可执行指令执行确定第一VLAN内的非单播报文在邻居分布式弹性DR设备上无需远端转发的操作包括,通过内部控制链路的内部控制链路端口接收邻居DR设备在第一VLAN内发送的无单挂口通知消息;基于在第一VLAN内接收的无单挂口通知消息,本地分布式聚合口的状态为正常,邻居DR设备的远端分布式聚合口的故障状态,确定第一VLAN内的非单播报文在邻居DR设备上无需远端转发。

处理器执行存储器中的处理器可执行指令执行确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发的操作包括;通过内部控制链路的内部控制链路端口接收邻居DR设备在第二VLAN内发送的单挂口通知消息;基于在第二VLAN内接收的单挂口通知消息,本地分布式聚合口的状态为正常,邻居DR设备的远端分布式聚合口的状态为正常,确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发。

或者处理器执行存储器中的处理器可执行指令执行确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发的操作包括,通过内部控制链路的内部控制链路端口接收邻居DR设备在第二VLAN内发送的单挂口通知消息;基于在第二VLAN内接收的单挂口通知消息,本地分布式聚合口的状态为正常,邻居DR设备的远端分布式聚合口的故障状态,确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发。

或者,处理器执行存储器中的处理器可执行指令执行确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发的操作包括,通过内部控制链路的内部控制链路端口接收邻居DR设备在第二VLAN内发送的单挂口通知消息;基于在第二VLAN内接收的单挂口通知消息,本地分布式聚合口的故障状态,邻居DR设备的远端分布式聚合口的正常状态,确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发。

或者,处理器执行存储器中的处理器可执行指令执行确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发的操作包括,通过内部控制链路的内部控制链路端口接收邻居DR设备在第二VLAN内发送的单挂口通知消息;通过内部控制链路端口接收邻居DR设备在第二VLAN内发送的无单挂口通知消息;基于在第二VLAN内接收的无单挂口通知消息,本地分布式聚合口的故障状态,邻居DR设备的远端分布式聚合口的正常状态,确定第二VLAN内的非单播报文在邻居DR设备上需要远端转发。

第一VLAN内的非单播报文是指,第一VLAN的未知单播报文;或第一VLAN内的广播报文;或第一VLAN内的未知组播报文;第一VLAN内的非单播报文的本地端口是指,第一VLAN的所有本地端口;第二VLAN内的非单播报文是指,第二VLAN内的未知单播报文;或第二VLAN内的广播报文;或第二VLAN内的未知组播报文;第二VLAN内的非单播报文的本地端口是指,第二VLAN内的所有本地端口;接收邻居DR设备在第二VLAN内发送的单挂口通知消息携带是,邻居DR设备在第二VLAN内接入单归属终端的端口。

第一VLAN内的非单播报文是指,第一VLAN内的已知组播报文;第一VLAN内的非单播报文的本地端口是指,第一VLAN内已知单播报文的组播组在第一VLAN内的成员端口;第二VLAN内的非单播报文是指,第二VLAN内的已知组播报文;接收邻居DR设备在第二VLAN内发送的单挂口通知消息携带是,邻居DR设备在第二VLAN内接入单归属成员终端的端口。

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

技术分类

06120113804785