一种报文传输方法和设备转让专利

申请号 : CN201410233023.7

文献号 : CN104038447B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹包文王波

申请人 : 新华三技术有限公司

摘要 :

本发明公开了一种报文传输方法和设备,该方法包括:网络设备维护聚合组表项;网络设备在通过非ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则所述网络设备查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文。本发明实施例中,可以合理的利用各网络设备上的端口资源,并且可以避免单播报文的丢失。

权利要求 :

1.一种报文传输方法,应用于包括多个网络设备的网络中,其特征在于,所述多个网络设备上的物理端口组成跨设备聚合端口,所述方法包括:网络设备维护聚合组表项,所述聚合组表项中记录有跨设备聚合端口,且所述跨设备聚合端口下记录有所述多个网络设备上的物理端口;

所述网络设备在通过非中间交换连接ISC链路收到报文,且所述报文为单播报文,所述报文的目的介质访问控制MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则所述网络设备查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文;

其中,当所述网络设备学习到出端口为跨设备聚合端口的MAC地址时,所述网络设备通过ISC链路向其它网络设备发送MAC地址同步报文;由所述其它网络设备在本地MAC表项中记录所述MAC地址以及所述MAC地址对应的出端口,并向所述网络设备返回MAC地址同步成功确认报文;

所述网络设备在收到所述MAC地址同步成功确认报文之前,所述网络设备在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担;

所述网络设备在收到所述MAC地址同步成功确认报文之后,所述网络设备执行查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担的步骤。

2.如权利要求1所述的方法,其特征在于,所述网络设备在通过非中间交换连接ISC链路收到报文之后,所述方法进一步还包括:如果所述报文为广播报文,或者所述报文为单播报文,但所述本地MAC表项中没有记录所述报文的目的MAC地址,则所述网络设备以广播方式发送所述报文,以使所述报文通过ISC链路转发给其它网络设备,并使所述报文通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送。

3.如权利要求1所述的方法,其特征在于,所述网络设备在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文,具体包括:如果所述单播报文的出端口为本网络设备上的物理端口,则所述网络设备通过本网络设备上的物理端口转发所述单播报文;如果所述单播报文的出端口为其它网络设备上的物理端口,则所述网络设备通过ISC链路将所述单播报文转发给所述其它网络设备,由其它网络设备转发所述单播报文。

4.如权利要求1所述的方法,其特征在于,所述方法进一步包括:

所述网络设备在通过ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则所述网络设备通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。

5.如权利要求4所述的方法,其特征在于,所述网络设备在通过ISC链路收到报文之后,所述方法进一步还包括:如果所述报文为广播报文,或者所述报文为单播报文,但本地MAC表项中没有记录所述报文的目的MAC地址,则:当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为UP时,所述网络设备禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文;当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为DOWN时,所述网络设备通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。

6.一种网络设备,应用于包括多个网络设备的网络中,其特征在于,所述多个网络设备上的物理端口组成跨设备聚合端口,所述网络设备包括:表项维护模块,用于维护聚合组表项,所述聚合组表项中记录有跨设备聚合端口,且所述跨设备聚合端口下记录有所述多个网络设备上的物理端口;

报文发送模块,用于在通过非中间交换连接ISC链路收到报文,且所述报文为单播报文,所述报文的目的介质访问控制MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文;

其中,所述报文发送模块,还用于当学习到出端口为跨设备聚合端口的MAC地址时,通过ISC链路向其它网络设备发送MAC地址同步报文;由所述其它网络设备在本地MAC表项中记录所述MAC地址以及所述MAC地址对应的出端口,并向所述网络设备返回MAC地址同步成功确认报文;

在收到所述MAC地址同步成功确认报文之前,在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担;在收到所述MAC地址同步成功确认报文之后,执行查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担的步骤。

7.如权利要求6所述的网络设备,其特征在于,

所述报文发送模块,还用于在通过非中间交换连接ISC链路收到所述报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但所述本地MAC表项中没有记录所述报文的目的MAC地址,则以广播方式发送所述报文,以使所述报文通过ISC链路转发给其它网络设备,并使所述报文通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送。

8.如权利要求6所述的网络设备,其特征在于,

所述报文发送模块,具体用于在所述聚合组表项中记录的各物理端口之间进行负载分担之后,如果所述单播报文的出端口为本网络设备上的物理端口,则通过本网络设备上的物理端口转发所述单播报文;如果所述单播报文的出端口为其它网络设备上的物理端口,则通过ISC链路将所述单播报文转发给所述其它网络设备,由其它网络设备转发所述单播报文。

9.如权利要求6所述的网络设备,其特征在于,

所述报文发送模块,还用于在通过ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。

10.如权利要求9所述的网络设备,其特征在于,

所述报文发送模块,进一步用于在通过ISC链路收到报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但本地MAC表项中没有记录所述报文的目的MAC地址,则:当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为UP时,禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文;当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为DOWN时,通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。

说明书 :

一种报文传输方法和设备

技术领域

[0001] 本发明涉及通信技术领域,尤其是涉及一种报文传输方法和设备。

背景技术

[0002] 跨设备聚合指使用私有协议实现多台网络设备之间的跨设备端口聚合,如图1所示,为跨设备聚合的组网示意图,网络设备B和网络设备C均为跨设备聚合成员设备,网络设备B上的物理端口Eth1/0/1、Eth1/0/2,网络设备C上的物理端口Eth2/0/1、Eth2/0/2组成一个跨设备聚合端口,即跨设备聚合端口包括Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2。为了将网络设备B和网络设备C上的物理端口组成跨设备聚合端口,网络设备B和网络设备C之间需要至少提供两个专用链路,一个为ISC(Inter Switch Connect,中间交换连接)链路,其用于在网络设备之间交互控制报文,并用于转发跨设备流量;另一个为保活链路,其用于在ISC链路发生故障时,通过发送保活消息判断故障类型。
[0003] 现有技术中,网络设备在收到出端口为跨设备聚合端口的单播报文时,无法实现在跨设备聚合端口中的所有物理端口之间进行负载分担。

发明内容

[0004] 本发明实施例提供一种报文传输方法和设备,以在多个网络设备之间进行负载分担,合理利用各网络设备上的端口资源,避免单播报文的丢失。
[0005] 为达到上述目的,本发明实施例提供一种报文传输方法,应用于包括多个网络设备的网络中,所述多个网络设备上的物理端口组成跨设备聚合端口,所述方法包括:网络设备维护聚合组表项,所述聚合组表项中记录有跨设备聚合端口,且所述跨设备聚合端口下记录有所述多个网络设备上的物理端口;
[0006] 所述网络设备在通过非中间交换连接ISC链路收到报文,且所述报文为单播报文,所述报文的目的介质访问控制MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则所述网络设备查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文。
[0007] 所述网络设备在通过非中间交换连接ISC链路收到报文之后,还包括:如果所述报文为广播报文,或者所述报文为单播报文,但所述本地MAC表项中没有记录所述报文的目的MAC地址,则所述网络设备以广播方式发送所述报文,以使所述报文通过ISC链路转发给其它网络设备,并使所述报文通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送。
[0008] 所述网络设备在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文,具体包括:
[0009] 如果所述单播报文的出端口为本网络设备上的物理端口,则所述网络设备通过本网络设备上的物理端口转发所述单播报文;如果所述单播报文的出端口为其它网络设备上的物理端口,则所述网络设备通过ISC链路将所述单播报文转发给所述其它网络设备,由其它网络设备转发所述单播报文。
[0010] 所述方法进一步包括:当所述网络设备学习到出端口为跨设备聚合端口的MAC地址时,所述网络设备通过ISC链路向其它网络设备发送MAC地址同步报文;由所述其它网络设备在本地MAC表项中记录所述MAC地址以及所述MAC地址对应的出端口,并向所述网络设备返回MAC地址同步成功确认报文;所述网络设备在收到所述MAC地址同步成功确认报文之前,所述网络设备在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担;所述网络设备在收到所述MAC地址同步成功确认报文之后,所述网络设备执行查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担的步骤。
[0011] 所述方法进一步包括:所述网络设备在通过ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则所述网络设备通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0012] 所述网络设备在通过ISC链路收到报文之后,所述方法进一步还包括:
[0013] 如果所述报文为广播报文,或者所述报文为单播报文,但本地MAC表项中没有记录所述报文的目的MAC地址,则:
[0014] 当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为UP时,所述网络设备禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文;当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为DOWN时,所述网络设备通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0015] 本发明实施例提供一种网络设备,应用于包括多个网络设备的网络中,所述多个网络设备上的物理端口组成跨设备聚合端口,所述网络设备包括:
[0016] 表项维护模块,用于维护聚合组表项,所述聚合组表项中记录有跨设备聚合端口,且所述跨设备聚合端口下记录有所述多个网络设备上的物理端口;
[0017] 报文发送模块,用于在通过非中间交换连接ISC链路收到报文,且所述报文为单播报文,所述报文的目的介质访问控制MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文。
[0018] 所述报文发送模块,还用于在通过非中间交换连接ISC链路收到所述报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但所述本地MAC表项中没有记录所述报文的目的MAC地址,则以广播方式发送所述报文,以使所述报文通过ISC链路转发给其它网络设备,并使所述报文通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送。
[0019] 所述报文发送模块,具体用于在所述聚合组表项中记录的各物理端口之间进行负载分担之后,如果所述单播报文的出端口为本网络设备上的物理端口,则通过本网络设备上的物理端口转发所述单播报文;如果所述单播报文的出端口为其它网络设备上的物理端口,则通过ISC链路将所述单播报文转发给所述其它网络设备,由其它网络设备转发所述单播报文。
[0020] 所述报文发送模块,还用于当学习到出端口为跨设备聚合端口的MAC地址时,通过ISC链路向其它网络设备发送MAC地址同步报文;由所述其它网络设备在本地MAC表项中记录所述MAC地址以及所述MAC地址对应的出端口,并向所述网络设备返回MAC地址同步成功确认报文;
[0021] 在收到所述MAC地址同步成功确认报文之前,在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担;在收到所述MAC地址同步成功确认报文之后,执行查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担的步骤。
[0022] 所述报文发送模块,还用于在通过ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0023] 所述报文发送模块,进一步用于在通过ISC链路收到报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但本地MAC表项中没有记录所述报文的目的MAC地址,则:当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为UP时,禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文;当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为DOWN时,通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0024] 与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,网络设备在收到单播报文之后,能够利用组成跨设备聚合端口的各个物理端口进行负载分担,继而在多个网络设备之间进行单播报文的负载分担,从而可以合理的利用各网络设备上的端口资源,并且可以避免单播报文的丢失。

附图说明

[0025] 图1是现有技术中提出的跨设备聚合的组网示意图;
[0026] 图2是本发明实施例中提出的一种报文传输方法流程示意图;
[0027] 图3是本发明实施例中提出的一种网络设备的结构示意图。

具体实施方式

[0028] 现有技术中,如图1所示,当网络设备B收到出端口为跨设备聚合端口的单播报文时,如果Eth1/0/1、Eth1/0/2未发生DOWN,则网络设备B只会在Eth1/0/1、Eth1/0/2之间进行负载分担,即网络设备B只会通过Eth1/0/1或者Eth1/0/2转发该单播报文,而无法在Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2之间进行负载分担;因此,无法实现跨设备聚合端口的全局负载分担。当网络设备B收到大量出端口为跨设备聚合端口的单播报文,而网络设备C只收到很少的出端口为跨设备聚合端口的单播报文时,上述方式无法有效利用网络设备C上的端口资源,并且会造成网络设备B上收到的单播报文的丢失。
[0029] 针对现有技术中存在的问题,本发明实施例中提出一种报文传输方法,该方法应用于包括多个网络设备的网络中,且该多个网络设备上的物理端口组成跨设备聚合端口。为了方便描述,以两个网络设备上的物理端口组成跨设备聚合端口为例,并以图1为本发明实施例的应用场景。其中,网络设备B和网络设备C均为跨设备聚合成员设备,网络设备B上的物理端口Eth1/0/1、Eth1/0/2,网络设备C上的物理端口Eth2/0/1、Eth2/0/2组成一个跨设备聚合端口1,即跨设备聚合端口1包括Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2。
[0030] 本发明实施例中,各个网络设备上均需要维护聚合组表项,该聚合组表项中记录有跨设备聚合端口,且该跨设备聚合端口下记录有多个网络设备上的物理端口。在图1所示的应用场景下,网络设备B和网络设备C上维护的聚合组表项中均记录有跨设备聚合端口1,且该跨设备聚合端口1下均记录有Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2,即聚合组表项可以如表1所示。
[0031] 表1
[0032]
[0033] 为了获知跨设备聚合端口下包括的所有物理端口,各网络设备均通过ISC链路将本网络设备上的跨设备聚合端口和物理端口通知给其它网络设备,以使各网络设备均能够获知跨设备聚合端口下记录的所有物理端口。例如,网络设备B通过ISC链路将跨设备聚合端口1以及Eth1/0/1、Eth1/0/2的信息通知给网络设备C,使网络设备C获知跨设备聚合端口1下记录的物理端口包括Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2,并维护表1所示的聚合组表项。网络设备C通过ISC链路将跨设备聚合端口1以及Eth2/0/1、Eth2/0/2的信息通知给网络设备B,使网络设备B获知跨设备聚合端口1下记录的物理端口包括Eth1/0/1、Eth1/0/
2、Eth2/0/1、Eth2/0/2,并维护表1所示的聚合组表项。
[0034] 基于网络设备上维护的聚合组表项,如图2所示,该报文传输方法包括:
[0035] 步骤201,网络设备接收报文;如果网络设备通过非ISC链路收到报文,则执行步骤202,如果网络设备通过ISC链路收到报文,则执行步骤207。
[0036] 本发明实施例中,是针对跨设备聚合成员设备的处理过程,因此网络设备均是指跨设备聚合成员设备,本发明实施例中对此不再重复赘述。
[0037] 在图1所示的应用场景下,当网络设备C通过物理端口Eth2/0/3收到报文时,则说明网络设备C通过非ISC链路收到报文。当网络设备B通过物理端口Eth1/0/4收到报文时,则说明网络设备B通过ISC链路收到报文。
[0038] 步骤202,网络设备判断报文的类型(单播报文或者广播报文);如果报文为单播报文,则执行步骤203;如果报文为广播报文,则执行步骤206。
[0039] 步骤203,网络设备判断本地MAC(Media Access Control,介质访问控制)表项中是否记录有单播报文(即步骤201中网络设备收到的报文)的目的MAC地址,如果是,则执行步骤204;如果否,则执行步骤206。
[0040] 如果本地MAC表项中有单播报文的目的MAC地址,则说明之前已经学习过该目的MAC地址,即学习到该目的MAC地址与对应的出端口,并将该目的MAC地址和该出端口记录在本地MAC表项中;如果本地MAC表项中没有单播报文的目的MAC地址,则说明之前没有学习过该目的MAC地址。
[0041] 步骤204,当目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则网络设备查询聚合组表项(如表1所示),并在该聚合组表项中记录的各物理端口之间进行负载分担,以确定单播报文的出端口。当目的MAC地址在本地MAC表项中对应的出端口不是跨设备聚合端口时,则网络设备直接确定单播报文的出端口为该本地MAC表项中记录的出端口。
[0042] 本发明实施例中,以下对目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口的情况进行详细说明,对目的MAC地址在本地MAC表项中对应的出端口不是跨设备聚合端口的情况不再详加赘述。
[0043] 步骤205,如果单播报文的出端口为本网络设备上的物理端口,则网络设备直接通过本网络设备上的物理端口转发该单播报文;如果单播报文的出端口为其它网络设备上的物理端口,则网络设备将通过ISC链路将该单播报文转发给其它网络设备,由其它网络设备转发该单播报文。其中,其它网络设备转发该单播报文的过程参见后续步骤207-步骤210,在此不再赘述。
[0044] 步骤206,网络设备以广播方式发送报文(即步骤201中收到的报文)。网络设备在以广播方式发送报文时,该报文会通过ISC链路转发给其它网络设备,其它网络设备对报文的处理参见后续步骤207-步骤210,在此不再赘述。此外,该报文还会通过跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送,即网络设备通过跨设备聚合端口中包括的位于本网络设备上的任意一个物理端口转发该报文。
[0045] 以下结合图1所示的应用场景对上述步骤202-步骤206进行详细说明。
[0046] 网络设备C在通过物理端口Eth2/0/3收到报文时,如果该报文为广播报文,或者该报文为单播报文,但本地MAC表项中没有记录该报文的目的MAC地址,则网络设备C将以广播方式发送该报文,即网络设备C通过物理端口Eth2/0/1或Eth2/0/2发送该报文,并通过物理端口Eth2/0/4发送该报文,此时该报文会通过ISC链路(即物理端口Eth2/0/4对应的链路)发送给网络设备B,网络设备B的处理过程将在后续步骤中详细阐述。如果该报文为单播报文,且本地MAC表项中记录有该单播报文的目的MAC地址,并且该目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口1,则网络设备C查询表1所示的聚合组表项,并发现该跨设备聚合端口1下记录有物理端口Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2,因此网络设备C在物理端口Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2之间进行负载分担,以确定单播报文的出端口。如果单播报文的出端口为Eth2/0/1或者Eth2/0/2,则网络设备C直接通过Eth2/0/1或者Eth2/0/2转发该单播报文;如果单播报文的出端口为Eth1/0/1或者Eth1/0/2,则网络设备C通过ISC链路将单播报文转发给网络设备B,由网络设备B转发该单播报文,网络设备B的处理过程将在后续步骤中详细阐述。
[0047] 本发明实施例中,网络设备在学习到MAC地址的过程中,需要将MAC地址以及MAC地址对应的出端口记录在本地MAC表项中。当MAC地址对应的出端口为跨设备聚合端口(如跨设备聚合端口1)时,网络设备还需要通过ISC链路向其它网络设备发送MAC地址同步报文,该MAC地址同步报文中携带有MAC地址以及MAC地址对应的出端口。其它网络设备在收到该MAC地址同步报文之后,在本地MAC表项中记录该MAC地址以及该MAC地址对应的出端口,并向网络设备返回MAC地址同步成功确认报文。
[0048] 例如,网络设备C学习到MAC地址1对应的出端口为跨设备聚合端口1,则网络设备C将MAC地址1以及跨设备聚合端口1记录在本地MAC表项中,并通过ISC链路向网络设备B发送MAC地址同步报文,由网络设备B在本地MAC表项中记录MAC地址1以及跨设备聚合端口1,并向网络设备C返回MAC地址同步成功确认报文,该MAC地址同步成功确认报文用于表示网络设备B已经在本地MAC表项中记录MAC地址1以及跨设备聚合端口1。
[0049] 基于MAC地址同步成功确认报文的传输过程,如果报文为单播报文,且本地MAC表项中记录有该单播报文的目的MAC地址,并且该目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口,则:(1)网络设备在收到MAC地址同步成功确认报文之前,网络设备直接在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为跨设备聚合端口的报文进行负载分担,并通过本网络设备上的物理端口转发该单播报文;(2)网络设备在收到MAC地址同步成功确认报文之后,网络设备查询聚合组表项,并在该聚合组表项中记录的各物理端口之间,对出端口为跨设备聚合端口的报文进行负载分担,以确定单播报文的出端口,如果单播报文的出端口为本网络设备上的物理端口,则网络设备直接通过本网络设备上的物理端口转发该单播报文;如果单播报文的出端口为其它网络设备上的物理端口,则网络设备将通过ISC链路将该单播报文转发给其它网络设备,由其它网络设备转发该单播报文。
[0050] 例如,如果报文为单播报文,且本地MAC表项中记录有该单播报文的目的MAC地址,并且该目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口1,则:网络设备C在收到针对目的MAC地址的MAC地址同步成功确认报文之前,在Eth2/0/1和Eth2/0/2之间进行负载分担,并基于分担结果,通过Eth2/0/1或者Eth2/0/2转发该单播报文;网络设备C在收到针对目的MAC地址的MAC地址同步成功确认报文之后,查询表1所示的聚合组表项,发现跨设备聚合端口1下记录有物理端口Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2,因此网络设备C在物理端口Eth1/0/1、Eth1/0/2、Eth2/0/1、Eth2/0/2之间进行负载分担,以确定单播报文的出端口;如果单播报文的出端口为Eth2/0/1或者Eth2/0/2,则网络设备C直接通过Eth2/0/1或者Eth2/0/2转发该单播报文;如果单播报文的出端口为Eth1/0/1或者Eth1/0/2,则网络设备C通过ISC链路将单播报文转发给网络设备B,由网络设备B转发该单播报文。
[0051] 本发明实施例中,网络设备在聚合组表项中记录的各物理端口之间进行负载分担时,相应的负载分担算法可以基于实际需要任意选择。例如,网络设备选择hash算法在各物理端口之间进行负载分担,或者网络设备选择端口均匀算法在各物理端口之间进行负载分担。例如,网络设备选择端口均匀算法在各物理端口之间进行负载分担时,针对第一个报文,网络设备确定单播报文的出端口为Eth1/0/1,针对第二个报文,网络设备确定单播报文的出端口为Eth1/0/2,针对第三个报文,网络设备确定单播报文的出端口为Eth2/0/1,针对第四个报文,网络设备确定单播报文的出端口为Eth2/0/2,针对第五个报文,网络设备确定单播报文的出端口为Eth1/0/1,…,以此类推。
[0052] 步骤207,网络设备判断报文的类型(单播报文或者广播报文);如果报文为单播报文,则执行步骤208;如果报文为广播报文,则执行步骤210。
[0053] 步骤208,网络设备判断本地MAC表项中是否记录有单播报文的目的MAC地址,如果是,则执行步骤209;如果否,则执行步骤210。
[0054] 步骤209,当目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,网络设备通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发单播报文。当目的MAC地址在本地MAC表项中对应的出端口不是跨设备聚合端口时,网络设备直接通过目的MAC地址在本地MAC表项中对应的出端口转发该单播报文。
[0055] 步骤210,当对端网络设备(即通过ISC链路向本网络设备发送报文的网络设备)上的跨设备聚合端口为UP(正常)时,则网络设备将禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发报文;当对端网络设备上的跨设备聚合端口为DOWN(故障)时,则网络设备将可以通过跨设备聚合端口中包括的位于本网络设备上的物理端口直接转发报文。
[0056] 以下结合图1所示的应用场景对上述步骤207-步骤210进行详细说明。
[0057] 网络设备B在通过物理端口Eth1/0/4收到报文时,如果报文为单播报文,且本地MAC表项中记录有该单播报文的目的MAC地址,并且该目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口1,则网络设备B直接通过跨设备聚合端口1中包括的位于本网络设备上的物理端口(即Eth1/0/1或者Eth1/0/2)转发该单播报文。如果报文为广播报文,或者报文为单播报文,但本地MAC表项中没有记录该报文的目的MAC地址,则在网络设备C上的跨设备聚合端口1为UP时,网络设备B禁止通过跨设备聚合端口1中包括的位于本网络设备上的物理端口(Eth1/0/1和Eth1/0/2)转发报文;在网络设备C上的跨设备聚合端口1为DOWN时,网络设备B通过跨设备聚合端口1中包括的位于本网络设备上的物理端口(Eth1/0/1或者Eth1/0/2)转发报文。
[0058] 在具体实现中,还可以根据实际需要选择执行本发明实施例的上述步骤的报文。例如,手工设置目的MAC地址为MAC地址1-MAC地址100的报文执行本发明实施例的上述步骤,则网络设备在收到报文时,如果报文的目的MAC地址为MAC地址1,则执行本发明实施例的上述步骤;如果报文的目的MAC地址为MAC地址101,则按照现有技术进行处理。
[0059] 综上所述,本发明实施例中,能够利用组成跨设备聚合端口的各个物理端口进行负载分担,继而在多个网络设备之间进行单播报文的负载分担,从而可以合理的利用各网络设备上的端口资源,并且可以避免单播报文的丢失。
[0060] 基于与上述方法同样的发明构思,本发明实施例中还提供了、一种网络设备,应用于包括多个网络设备的网络中,所述多个网络设备上的物理端口组成跨设备聚合端口,如图3所示,所述网络设备具体包括:
[0061] 表项维护模块11,用于维护聚合组表项,所述聚合组表项中记录有跨设备聚合端口,所述跨设备聚合端口下记录有所述多个网络设备上的物理端口;
[0062] 报文发送模块12,用于在通过非中间交换连接ISC链路收到报文,且所述报文为单播报文,所述报文的目的介质访问控制MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间进行负载分担,转发所述报文。
[0063] 所述报文发送模块12,还用于在通过非中间交换连接ISC链路收到所述报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但所述本地MAC表项中没有记录所述报文的目的MAC地址,则以广播方式发送所述报文,以使所述报文通过ISC链路转发给其它网络设备,并使所述报文通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口进行发送。
[0064] 所述报文发送模块12,具体用于在所述聚合组表项中记录的各物理端口之间进行负载分担之后,如果所述单播报文的出端口为本网络设备上的物理端口,则通过本网络设备上的物理端口转发所述单播报文;如果所述单播报文的出端口为其它网络设备上的物理端口,则通过ISC链路将所述单播报文转发给所述其它网络设备,由其它网络设备转发所述单播报文。
[0065] 所述报文发送模块12,还用于当学习到出端口为跨设备聚合端口的MAC地址时,通过ISC链路向其它网络设备发送MAC地址同步报文;由所述其它网络设备在本地MAC表项中记录所述MAC地址以及所述MAC地址对应的出端口,并向所述网络设备返回MAC地址同步成功确认报文;
[0066] 在收到所述MAC地址同步成功确认报文之前,在跨设备聚合端口中包括的位于本网络设备上的物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担;在收到所述MAC地址同步成功确认报文之后,执行查询所述聚合组表项,并在所述聚合组表项中记录的各物理端口之间,对出端口为所述跨设备聚合端口的报文进行负载分担的步骤。
[0067] 所述报文发送模块12,还用于在通过ISC链路收到报文,且所述报文为单播报文,所述报文的目的MAC地址在本地MAC表项中对应的出端口为跨设备聚合端口时,则通过所述跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0068] 所述报文发送模块12,进一步用于在通过ISC链路收到报文之后,如果所述报文为广播报文,或者所述报文为单播报文,但本地MAC表项中没有记录所述报文的目的MAC地址,则:当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为UP时,禁止通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文;当通过ISC链路向所述网络设备发送所述报文的网络设备上的跨设备聚合端口为DOWN时,通过跨设备聚合端口中包括的位于本网络设备上的物理端口转发所述报文。
[0069] 其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0070] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0071] 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0072] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0073] 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。