报文转发方法及装置转让专利

申请号 : CN201710203800.7

文献号 : CN106982169B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊志鑫吕辉

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

摘要 :

本申请提供一种报文转发方法及装置,该方法应用于IRF系统中的任一AC,该方法包括:当接收到本地终端发送的数据报文时,确定用于转发该数据报文的IRF物理成员口;从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址;将数据报文的源MAC地址更换为查找到的端口MAC地址;将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至二层网络设备。因此,本申请中接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。

权利要求 :

1.一种报文转发方法,其特征在于,所述方法应用于智能弹性架构IRF系统中的任一接入控制器AC,所述AC通过所述IRF系统中的二层网络设备与所述IRF系统中的其他AC相连接,所述方法包括:当接收到本地终端发送的数据报文时,确定用于转发所述数据报文的IRF物理成员口;

从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,所述MAC地址表中包括所述AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同;

将所述数据报文的源MAC地址更换为查找到的端口MAC地址;

将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至所述二层网络设备。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若本AC的设备角色是所述IRF系统的主设备,则为所述IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,且所分配的端口MAC地址还与所述IRF系统中所有AC的MAC地址以及所述二层网络设备的MAC地址不同;

将为本AC的各个IRF物理成员口所分配的端口MAC地址保存至所述MAC地址表中,以及将为所述IRF系统中其他AC的各个IRF物理成员口所分配的端口MAC地址发送至各自对应的AC;

若本AC的设备角色是所述IRF系统的从设备,则接收所述IRF系统的主设备发送的为本AC的各个IRF物理成员口分配的不同端口MAC,并将分配的端口MAC保存至所述MAC地址表中。

3.根据权利要求2所述的方法,其特征在于,所述为所述IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,包括:将所述IRF系统中的一个AC作为起始AC,对所述起始AC的MAC地址递增指定数值,得到第一MAC地址;

判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;

若是,将所述第一MAC地址分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;

否则,对所述第一MAC地址递增所述指定数值,得到第二MAC地址,将所述第二MAC地址作为所述第一MAC地址,返回执行判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第二MAC地址,并分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;

对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址;

判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;

若是,将所述第三MAC地址分配给所述起始AC上另一个IRF物理成员口,将所述另一个IRF物理成员口作为该IRF物理成员口,返回执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤,直到为所述起始AC的所有IRF物理成员口分配完端口MAC地址为止;

否则,对所述第三MAC地址递增所述指定数值,得到第四MAC地址,将所述第四MAC地址作为所述第三MAC地址,返回执行判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第四MAC地址,并分配给该IRF物理成员口,返回执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤;

判断所述IRF系统中的另一个AC的MAC地址是否位于已分配端口MAC地址的AC的MAC地址和已分配端口的MAC地址组成的MAC地址区间;

若是,将所述另一个AC作为所述起始AC,将所述MAC地址区间中最大MAC地址作为所述起始AC的MAC地址,返回执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤,直到为所述IRF系统中所有AC的所有IRF物理成员口分配完端口MAC地址为止;

否则,将所述另一个AC作为所述起始AC,返回执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当接收到本地终端发送的心跳报文时,将所述心跳报文的源MAC地址更换为本AC的MAC地址;

将带有所述本AC的MAC地址的心跳报文发送至所述二层网络设备。

5.一种报文转发装置,其特征在于,所述装置应用于智能弹性架构IRF系统中的任一接入控制器AC,所述AC通过所述IRF系统中的二层网络设备与所述IRF系统中的其他AC相连接,所述装置包括:IRF物理成员口确定单元,用于当接收到本地终端发送的数据报文时,确定用于转发所述数据报文的IRF物理成员口;

查找单元,用于从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,所述MAC地址表中包括所述AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同;

第一更换单元,用于将所述数据报文的源MAC地址更换为查找到的端口MAC地址;

第一发送单元,用于将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至所述二层网络设备。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

分配单元,用于若本AC的设备角色是所述IRF系统的主设备,则为所述IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,且所分配的端口MAC地址还与所述IRF系统中所有AC的MAC地址以及所述二层网络设备的MAC地址不同;

第二发送单元,用于将为本AC的各个IRF物理成员口所分配的端口MAC地址保存至所述MAC地址表中,以及将为所述IRF系统中其他AC的各个IRF物理成员口所分配的端口MAC地址发送至各自对应的AC;

接收单元,用于若本AC的设备角色是所述IRF系统的从设备,则接收所述IRF系统的主设备发送的为本AC的各个IRF物理成员口分配的不同端口MAC,并将分配的端口MAC保存至所述MAC地址表中。

7.根据权利要求6所述的装置,其特征在于,所述分配单元包括:

起始子单元,用于将所述IRF系统中的一个AC作为起始AC,对所述起始AC的MAC地址递增指定数值,得到第一MAC地址;

第一判断子单元,用于判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;

第一分配子单元,用于若所述第一判断子单元的判断结果为是,将所述第一MAC地址分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;

第二分配子单元,用于若所述第一判断子单元的判断结果为否,对所述第一MAC地址递增所述指定数值,得到第二MAC地址,将所述第二MAC地址作为所述第一MAC地址,返回所述第一判断子单元执行判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第二MAC地址,并分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;

递增子单元,用于对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址;

第二判断子单元,用于判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;

第三分配子单元,用于若所述第二判断子单元的判断结果为是,将所述第三MAC地址分配给所述起始AC上另一个IRF物理成员口,将所述另一个IRF物理成员口作为该IRF物理成员口,返回所述递增子单元执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤,直到为所述起始AC的所有IRF物理成员口分配完端口MAC地址为止;

第四分配子单元,用于若所述第二判断子单元的判断结果为否,对所述第三MAC地址递增所述指定数值,得到第四MAC地址,将所述第四MAC地址作为所述第三MAC地址,返回所述第二判断子单元执行判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第四MAC地址,并分配给该IRF物理成员口,返回所述递增子单元执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤;

第三判断子单元,用于判断所述IRF系统中的另一个AC的MAC地址是否位于已分配端口MAC地址的AC的MAC地址和已分配端口的MAC地址组成的MAC地址区间;

第五分配子单元,用于若所述第三判断子单元的判断结果为是,将所述另一个AC作为所述起始AC,将所述MAC地址区间中最大MAC地址作为所述起始AC的MAC地址,返回所述起始子单元执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤,直到为所述IRF系统中所有AC的所有IRF物理成员口分配完端口MAC地址为止;

第六分配子单元,用于若所述第三判断子单元的判断结果为否,将所述另一个AC作为所述起始AC,返回所述起始子单元执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤。

8.根据权利要求5所述的装置,其特征在于,所述装置还包括:

第二更换单元,用于当接收到本地终端发送的心跳报文时,将所述心跳报文的源MAC地址更换为本AC的MAC地址;

第三发送单元,用于将带有所述本AC的MAC地址的心跳报文发送至所述二层网络设备。

说明书 :

报文转发方法及装置

技术领域

[0001] 本申请涉及通信技术领域,特别涉及一种报文转发方法及装置。

背景技术

[0002] IRF(Intelligent Resilient Framework,智能弹性架构)是将多台设备连接在一起,进行必要的配置后,虚拟化成一台设备。
[0003] 目前,在星型IRF中,各个AC(Access Controller,接入控制器)之间可以通过二层网络设备(例如,二层交换机)连接在一起,并通过该连接转发报文。
[0004] 并且,为了提高星型IRF的报文转发能力,还可以在各个AC与二层交换机之间建立多条IRF链路,并通过这多条IRF链路平均分担报文转发。
[0005] 但是,当星型IRF中各个AC之间需要转发的流量不均匀时,容易出现某个IRF链路拥塞而其他IRF链路空闲的情形,降低了报文转发效率。

发明内容

[0006] 本申请提供一种报文转发方法及装置,以解决现有技术中当星型IRF中各个AC之间需要转发的流量不均匀时,容易出现某个IRF链路拥塞而其他IRF链路空闲的情形,降低了报文转发效率的问题。
[0007] 根据本申请实施例的第一方面,提供了一种报文转发方法,所述方法应用于IRF系统中的任一接入控制器AC,所述AC通过所述IRF系统中的二层网络设备与所述IRF系统中的其他AC相连接,所述方法包括:
[0008] 当接收到本地终端发送的数据报文时,确定用于转发所述数据报文的IRF物理成员口;
[0009] 从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,所述MAC地址表中包括所述AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同;
[0010] 将所述数据报文的源MAC地址更换为查找到的端口MAC地址;
[0011] 将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至所述二层网络设备。
[0012] 根据本申请实施例的第二方面,提供了一种报文转发装置,所述装置应用于IRF系统中的任一接入控制器AC,所述AC通过所述IRF系统中的二层网络设备与所述IRF系统中的其他AC相连接,所述装置包括:
[0013] IRF物理成员口确定单元,用于当接收到本地终端发送的数据报文时,确定用于转发所述数据报文的IRF物理成员口;
[0014] 查找单元,用于从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,所述MAC地址表中包括所述AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同;
[0015] 第一更换单元,用于将所述数据报文的源MAC地址更换为查找到的端口MAC地址;
[0016] 第一发送单元,用于将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至所述二层网络设备。
[0017] 应用本申请实施例,通过将数据报文的源MAC地址更换为用于转发该数据报文的IRF物理成员口的端口MAC地址,这样同一AC通过不同IRF物理成员口转发的数据报文的源MAC地址是不同的,使得接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,提高了报文转发效率。

附图说明

[0018] 图1是应用本申请实施例的星型IRF的示意图;
[0019] 图2是本申请报文转发方法的一个实施例流程图;
[0020] 图3是本申请报文转发方法的另一个实施例流程图;
[0021] 图4是本申请报文转发方法的一个实施例流程图;
[0022] 图5是本申请报文转发装置所在设备的一种硬件结构示意图;
[0023] 图6本申请报文转发装置的一个实施例框图。

具体实施方式

[0024] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0025] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0026] 应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0027] 图1是应用本申请实施例的星型IRF的示意图。如图1所示,该星型IRF中包括AC1、AC2、AC3、AC4、以及分别与AC1、AC2、AC3、AC4相连接的二层网络设备。其中,AC是对本地无线终端进行集中统一管理的控制器设备。
[0028] 在星型IRF中,AC1、AC2、AC3、AC4这四个AC之间可以通过二层网络设备(例如,二层交换机)连接在一起,并通过该连接转发报文。
[0029] 为了提高星型IRF的报文转发能力,各个AC与二层网络设备之间可以建立多条IRF链路,并通过这多条IRF链路平均分担流量。比如:
[0030] AC1、AC2、AC3、AC4上分别创建有1个IRF聚合口。其中,AC1的IRF聚合口包括G1/1、G1/2、G1/3这三个IRF物理成员口;AC2的IRF聚合口包括G2/1、G2/2、G2/3这三个IRF物理成员口;AC3的IRF聚合口包括G3/1、G3/2、G3/3这三个IRF物理成员口;AC4的IRF聚合口包括G4/1、G4/2、G4/3这三个IRF物理成员口。
[0031] 二层网络设备的端口G1、G2、G3分别于AC1的G1/1、G1/2、G1/3相连接,创建聚合口B1且将G1、G2、G3加入到B1中。
[0032] 二层网络设备的端口G4、G5、G6分别于AC2的G2/1、G2/2、G2/3相连接,创建聚合口B2且将G4、G5、G6加入到B2中。
[0033] 二层网络设备的端口G7、G8、G9分别于AC3的G3/1、G3/2、G3/3相连接,创建聚合口B3且将G7、G8、G9加入到B3中。
[0034] 二层网络设备的端口G10、G11、G12分别于AC4的G4/1、G4/2、G4/3相连接,创建聚合口B4且将G10、G11、G12加入到B4中。
[0035] AC1、AC2、AC3、AC4的MAC(Media Access Control,媒体访问控制)地址分别为1-1-1-1、1-1-1-3、3-3-3-3、4-4-4-4。二层交换机创建单独的VLAN4000,且将B1、B2、B3、B4加入到VLAN4000内。
[0036] 如果各个AC之间的流量相对较均匀时,星型IRF的整体流量负载也会相对均匀。但是,当星型IRF中各个AC之间需要转发的流量不均匀时,容易出现某个IRF链路拥塞而其他IRF链路空闲的情形,并降低了报文转发效率。
[0037] 比如:现网络中只存在AC1到AC2的1200M跨板流量,若根据现有技术进行转发时,该1200M跨板流量的源MAC都为AC1的MAC地址1-1-1-1,并且较均匀的从G1/1、G1/2、G1/3这三个IRF物理成员口发送至二层网络设备,当二层网络设备从聚合口B1接收到1200M跨板流量后,会通过B2转发到AC2,由于从AC1来的1200M跨板流量为二层流量,且源MAC地址、目的MAC地址都相同(因为都来自AC1,都到AC2去),二层网络设备根据默认负载算法(默认算法可以为根据源MAC地址或者根据五元组来哈希)确定所有流量都通过G2/1到达AC2,若G2/1的速率大概是1000M,所以至少还有200M会被丢弃,而此时G2/2与G2/3几乎没有流量,所以降低了报文转发效率。
[0038] 为了解决上述问题,本申请实施例中提供了一种报文转发方法。
[0039] 图2是本申请报文转发方法的一个实施例流程图,所述方法应用于星型IRF系统中的任一AC,该AC可以为图1中AC1、AC2、AC3、和AC4中的任一AC,并通过二层网络设备与其他AC相连接。如图2所示,该报文转发方法包括以下步骤210-240:
[0040] 步骤210,当接收到本地终端发送的数据报文时,确定用于转发该数据报文的IRF物理成员口。
[0041] 本申请实施例中,可以采用以下方式确定用于转发该数据报文的IRF物理成员口:
[0042] 根据接收到的数据报文的目的MAC确定用于转发该数据报文的IRF聚合口,IRF聚合口中至少包括两个IRF物理成员口;
[0043] 从IRF聚合口中选取一个IRF物理成员口,并将所选取的IRF物理成员口作为用于转发数据报文的IRF物理成员口。
[0044] 参见图1,AC1创建有1个IRF聚合口,该IRF聚合口包括G1/1、G1/2、G1/3这三个IRF物理成员口,当AC1当接收到本地终端发送的数据报文时,会从本地IRF聚合口的G1/1、G1/2、G1/3这三个IRF物理成员口中选取一个IRF物理成员口,并将所选取的IRF物理成员口作为用于转发所述数据报文的IRF物理成员口。
[0045] 其中,选取IRF物理成员口时一般采用随机算法,这样容易将AC1接收到的所有数据报文比较均匀地从G1/1、G1/2、G1/3发送至二层网络设备。
[0046] 比如:AC1到AC2的1200M跨板流量中,400M跨板流量的源MAC地址为1-1-1-4,从端口G1/1发出;400M跨板流量的源MAC地址为1-1-1-5,从端口G1/2发出;400M跨板流量的源MAC地址为1-1-1-6,从端口G1/3发出。
[0047] 步骤220,从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,该MAC地址表中包括AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同。
[0048] 本申请实施例中,MAC地址表可以是管理员手工配置的,也可以是IRF系统的主设备自动生成的。
[0049] 比如:AC1的MAC地址表中包括G1/1、G1/2、G1/3这三个IRF物理成员口的端口MAC地址,若确定用于转发数据报文的IRF物理成员口为G1/1,则可以将该数据报文的源MAC地址更换为G1/1的端口MAC地址。
[0050] 步骤230,将数据报文的源MAC地址更换为查找到的端口MAC地址。
[0051] 步骤240,将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至二层网络设备。
[0052] 在一实施例中,该报文转发方法还包括:
[0053] 当接收到本地终端发送的心跳报文时,将该心跳报文的源MAC地址更换为本AC的MAC地址。
[0054] 将带有本AC的MAC地址的心跳报文发送至二层网络设备。
[0055] 本申请实施例中,将该心跳报文的源MAC地址更换为本AC的MAC地址,其目的是让二层网络设备能够学习到每个AC的MAC地址,从而保证了单播报文的可达性。
[0056] 由上述实施例可见,通过将数据报文的源MAC地址更换为用于转发该数据报文的IRF物理成员口的端口MAC地址,这样同一AC通过不同IRF物理成员口转发的数据报文的源MAC地址是不同的,使得接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0057] 图3是本申请报文转发方法的另一个实施例流程图,所述方法应用于星型IRF系统中的任一AC,该AC可以为图1中AC1、AC2、AC3、和AC4中的任一AC。如图3所示,该报文转发方法建立在图2所示方法的基础上,还包括以下步骤310-330:
[0058] 步骤310,若本AC的设备角色是IRF系统的主设备,则为IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,且所分配的端口MAC地址还与IRF系统中所有AC的MAC地址以及二层网络设备的MAC地址不同。
[0059] 本申请实施例中,在为IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址时,可以依据管理员手工配置的端口MAC地址,也可以依据IRF系统的主设备自动生成的端口MAC地址。
[0060] 其中,手工配置的方法包括但不限于以下方式:
[0061] 管理员预先为整个IRF系统的每个IRF物理成员口配置一个端口MAC地址,两两之间互不相同,以及与每个AC间的MAC地址以及二层网络设备的MAC地址均不同,并且,同一个成员AC上的IRF物理成员口的端口MAC地址是按1递增的关系。
[0062] 自动生成的方法包括但不限于以下方式:
[0063] 设备角色为主设备的AC自动给整个IRF系统的每个IRF物理成员口生成一个端口MAC地址,自动生成的方法需要管理员将二层网络设备的MAC地址以黑名单的方式添加到主设备中,自动生成的规则就是根据每个AC的MAC地址来递增1来生成,每生成一个端口MAC地址的时都会跟所有AC的MAC地址、二层网络设备的MAC地址进行比较,如果有冲突则该AC的所有IRF端口会在此冲突MAC的基础上加1重新生成。并且,为每个AC生成端口MAC地址之前,还会将该AC的MAC地址与已经生成端口MAC地址的其他AC进行比较,如果该AC的MAC地址在其它AC的MAC地址与已分配的最大端口MAC地址之间,则该AC的所有IRF端口会在已分配的最大端口MAC地址基础上加1生成,如此直到每个IRF物理端口都有一个端口MAC地址为止。
[0064] 在一实施例中,在为IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址时,其具体过程如下:
[0065] (1)将IRF系统中的一个AC作为起始AC,对该起始AC的MAC地址递增指定数值,得到第一MAC地址。
[0066] (2)判断第一MAC地址是否与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同。
[0067] (3)若是,将第一MAC地址分配给起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址。
[0068] (4)否则,对第一MAC地址递增指定数值,得到第二MAC地址,将第二MAC地址作为第一MAC地址,返回(2)执行判断第一MAC地址是否与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同的步骤,直到得到与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同的第二MAC地址,并分配给起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址。
[0069] 上述(1)至(4)是起始AC的首个IRF物理成员口的分配流程。比如:起始AC的首个IRF物理成员口为图1中AC1的G1/1。
[0070] (5)对该IRF物理成员口的端口MAC地址递增指定数值,得到第三MAC地址。
[0071] (6)判断第三MAC地址是否与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同。
[0072] (7)若是,将第三MAC地址分配给起始AC上另一个IRF物理成员口,将另一个IRF物理成员口作为该IRF物理成员口,返回(5)执行对该IRF物理成员口的端口MAC地址递增指定数值,得到第三MAC地址的步骤,直到为起始AC的所有IRF物理成员口分配完端口MAC地址为止。
[0073] 上述(5)至(7)是起始AC的另一个IRF物理成员口首次分到能够不同于其他MAC地址的情形,其中,执行返回(5)的流程后,是起始AC上所有IRF物理成员口均分配到MAC地址的情况。
[0074] (8)否则,对第三MAC地址递增指定数值,得到第四MAC地址,将第四MAC地址作为第三MAC地址,返回(6)执行判断第三MAC地址是否与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同的步骤,直到得到与IRF系统中其他AC的MAC地址以及二层网络设备的地址MAC不同的第四MAC地址,并分配给该IRF物理成员口,返回(5)执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤。
[0075] 上述(8)是起始AC的另一个IRF物理成员口与其他MAC地址相同的情况下,如何得到不相同的MAC地址,得到之后,对于这种存在相同情况,是将得到的MAC地址重新分配给首个IRF物理成员口。其中,执行返回(5)的流程,是在重新得到首个IRF物理成员口的MAC地址后,还需要重新循环以上流程。
[0076] (9)判断IRF系统中的另一个AC的MAC地址是否位于已分配端口MAC地址的AC的MAC地址和已分配端口的MAC地址组成的MAC地址区间。
[0077] 上述(9)是给非首个AC分配端口MAC时的首要判断。比如:图1中AC1为第一个分配端口MAC的AC,AC2为第二个分配端口MAC的AC、AC3为第三个分配端口MAC的AC、AC4为第四个分配端口MAC的AC。
[0078] (10)若是,将另一个AC作为起始AC,将MAC地址区间中最大MAC地址作为起始AC的MAC地址,返回(1)执行对起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤,直到为IRF系统中所有AC的所有IRF物理成员口分配完端口MAC地址为止。
[0079] 上述(10)是位于MAC地址区间需要执行的流程,其中,起始AC的MAC地址是MAC地址区间中最大MAC地址。
[0080] (11)否则,将另一个AC作为起始AC,返回(1)执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤。
[0081] 上述(11)是不位于MAC地址区间需要执行的流程,其中,起始AC的MAC地址是另一个AC的MAC地址。
[0082] 参见图1,AC2为主设备,AC1、AC2、AC3、AC4的MAC地址分别为1-1-1-1、1-1-1-3、3-3-3-3、4-4-4-4,二层网络设备的MAC地址为5-5-5-5。
[0083] AC2在为IRF系统中所有AC即AC1、AC2、AC3、和AC4的各个IRF物理成员口分配端口MAC地址时,可以根据各个AC的设备编号确定待分配的AC,比如:按照设备编号从小到大顺序进行分配,首先为AC1分配,然后依次为AC2、AC3、和AC4分配。
[0084] (1)为AC1分配。
[0085] 为AC1的G1/1分配的端口MAC地址为AC1的MAC地址1-1-1-1加1即为1-1-1-2,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC1的G1/2分配端口MAC地址为AC1的G1/1的端口MAC地址1-1-1-2加1即为1-1-1-3,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,与AC2的MAC地址相同,所以需要重新为AC1的G1/1分配端口MAC地址,分配的端口MAC地址为AC2的MAC地址1-1-1-3加1即为1-1-
1-4,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC1的G1/2分配端口MAC地址为AC1的G1/1的端口MAC地址1-1-1-4加
1即为1-1-1-5,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC1的G1/3分配端口MAC地址为AC1的G1/2的端口MAC地址
1-1-1-5加1即为1-1-1-6,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同。其中,为AC1分配的端口MAC地址,如表1所示。
[0086] 表1
[0087]
[0088] (2)为AC2分配。
[0089] 首先与AC1的端口MAC地址进行比较,发现AC2的MAC地址在AC1的MAC地址1-1-1-1与AC1的G1/3的端口MAC 1-1-1-6区域之间,所以AC2的IRF端口MAC地址需要从AC1的最大端口G1/3的端口MAC地址加1即1-1-1-7开始。
[0090] 为AC2的G2/1分配端口MAC地址为AC1的G1/3的端口MAC地址加1即为1-1-1-7,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC2的G2/2分配端口MAC地址为AC2的G2/1的端口MAC地址1-1-1-7加1即为1-1-1-8,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC2的G2/3分配端口MAC为AC2的G2/2的端口MAC地址1-1-1-8加1即为1-1-1-9,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同。其中,为AC2分配的端口MAC地址,如表2所示。
[0091] 表2
[0092]
[0093] (3)为AC3分配。
[0094] 首先与AC1、AC2的端口MAC地址进行比较,发现AC3的MAC地址不在AC1、AC2与已分配的最大端口MAC地址的区域之间,所以AC3的IRF端口MAC地址需要从AC3的MAC地址加1即3-3-3-4开始。
[0095] 为AC3的G3/1分配的端口MAC地址为AC3的MAC地址加1即为3-3-3-4,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC3的G3/2分配端口MAC地址为AC3的G3/1的端口MAC地址3-3-3-4加1即为3-3-3-5,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC3的G3/3分配端口MAC地址为AC3的G3/2的端口MAC地址3-3-3-5加1即为3-3-3-6,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同。其中,为AC3分配的端口MAC地址,如表3所示。
[0096] 表3
[0097]
[0098] (4)为AC4分配。
[0099] 首先与AC1、AC2、AC3的端口MAC地址进行比较,发现AC4的MAC地址不在AC1、AC2、AC3与已分配的最大端口MAC地址的区域之间,所以AC4的IRF端口MAC地址需要从AC4的MAC地址加1即4-4-4-5开始。
[0100] 为AC4的G4/1分配的端口MAC地址为AC4的MAC地址加1即为4-4-4-5,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC4的G4/2分配端口MAC地址为AC4的G4/1的端口MAC地址4-4-4-5加1即为4-4-4-6,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同;接着为AC4的G4/3分配端口MAC为AC4的G4/2的端口MAC地址4-4-4-6加1即为4-
4-4-7,分别与AC1、AC2、AC3、AC4的MAC地址进行比较,不相同,再与二层网络设备的MAC地址进行比较,不相同。其中,为AC4分配的端口MAC地址,如表4所示。
[0101] 表4
[0102]
[0103] 步骤320,将为本AC的各个IRF物理成员口所分配的端口MAC地址保存至MAC地址表中,以及将为IRF系统中其他AC的各个IRF物理成员口所分配的端口MAC地址发送至各自对应的AC。
[0104] 步骤330,若本AC的设备角色是IRF系统的从设备,则接收述IRF系统的主设备发送的为本AC的各个IRF物理成员口分配的不同端口MAC,并将分配的端口MAC保存至MAC地址表中。
[0105] 由上述实施例可见,通过为IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,使得每个IRF物理成员口发送的数据报文带有该IRF物理成员口的端口MAC地址,这样接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0106] 图4是本申请报文转发方法的一个实施例流程图,所述方法应用于星型IRF系统中的二层网络设备,该AC可以为图1中的二层网络设备。如图4所示,该报文转发方法包括以下步骤410-430:
[0107] 步骤410,接收IRF系统中的任一AC发送的数据报文,该数据报文的源MAC地址为AC中用于发送该数据报文的IRF物理成员口的端口MAC地址。
[0108] 本申请实施例中,数据报文的源MAC地址是AC中用于发送该数据报文的IRF物理成员口的端口MAC地址,而不是AC的MAC地址,这样同一AC通过不同的IRF物理成员口发送的数据报文中,其源MAC地址是不同的。
[0109] 比如:图1中的二层网络设备接收到的AC1通过G1/1发送的数据报文中,其源MAC地址为G1/1的端口MAC地址即1-1-1-4。
[0110] 步骤420,根据数据报文中的端口MAC地址确定用于转发该数据报文的聚合成员口。
[0111] 本申请实施例中,二层网络设备创建有与星型IRF系统中各个AC相连接的聚合口。
[0112] 在一实施例中,在根据数据报文中的端口MAC地址确定用于转发该数据报文的聚合成员口时,可以采用以下方式实现:
[0113] 根据数据报文的目的MAC地址确定用于转发该数据报文的聚合口,该聚合口中至少包括两个聚合成员口;
[0114] 从聚合口中选取一个聚合成员口,并将所选取的聚合成员口作为用于转发该数据报文的聚合成员口。
[0115] 参见图1,二层网络设备创建有B1、B2、B3、B4这四个聚合口,分别于AC1、AC2、AC3、AC4相连接。具体为:B1中的G1、G2、G3分别于AC1的G1/1、G1/2、G1/3相连接;B2中的G4、G5、G6分别于AC1的G1/1、G1/2、G1/3相连接;B3中的G7、G8、G9分别于AC1的G1/1、G1/2、G1/3相连接;B4中的G10、G11、G12分别于AC1的G1/1、G1/2、G1/3相连接;
[0116] 若二层网络设备接收到AC1需要发送至AC2的数据报文时,会先确定与AC2相连接的聚合口即B2,然后从B2中选择一个聚合成员口即G4、G5、G6中选取一个,作为用于转发该数据报文的聚合成员口。
[0117] 其中,选取聚合成员口时一般采用默认负载算法(默认算法可以为根据源MAC或者根据五元组来哈希),这样容易将AC1发送的所有数据报文比较均匀地从G4、G5、G6发送至AC2。
[0118] 比如:AC1到AC2的1200M跨板流量中,二层网络设备根据默认负载算法可以将源MAC地址为1-1-1-4的400M跨板流量负载到G4所在IRF链路;源MAC地址为1-1-1-5的400M跨板流量负载到G5所在IRF链路;源MAC地址为1-1-1-6的400M跨板流量负载到G6所在IRF链路,这样避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0119] 步骤430,通过聚合成员口所在IRF链路将数据报文发送至IRF系统中的另一AC。
[0120] 由上述实施例可见,根据不同的源MAC地址可以选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0121] 与前述报文转发方法实施例相对应,本申请还提供了报文转发装置的实施例。
[0122] 本申请报文转发装置的实施例可以应用在IRF系统中的任一AC上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请报文转发装置所在设备的一种硬件结构示意图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行磁盘分区表的管理的扩展。
[0123] 参见图6,为本申请报文转发装置的一个实施例框图,该装置可以应用于IRF系统中的任一AC,该AC可以为图1中AC1、AC2、AC3、和AC4中的任一AC,并通过二层网络设备与其他AC相连接。该装置可以包括:IRF物理成员口确定单元61、查找单元62、第一更换单元63和第一发送单元64。
[0124] IRF物理成员口确定单元61,用于当接收到本地终端发送的数据报文时,确定用于转发所述数据报文的IRF物理成员口;
[0125] 查找单元62,用于从获取的MAC地址表中查找确定的IRF物理成员口的端口MAC地址,所述MAC地址表中包括所述AC本地所有IRF物理成员口的端口MAC地址,且各个IRF物理成员口的端口MAC地址互不相同;
[0126] 第一更换单元63,用于将所述数据报文的源MAC地址更换为查找到的端口MAC地址;
[0127] 第一发送单元64,用于将带有查找到的端口MAC地址的数据报文通过确定的IRF物理成员口所在IRF链路发送至所述二层网络设备。
[0128] 由上述实施例可见,通过将数据报文的源MAC地址更换为用于转发该数据报文的IRF物理成员口的端口MAC地址,这样同一AC通过不同IRF物理成员口转发的数据报文的源MAC地址是不同的,使得接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0129] 在一个可选的实现方式中,所述装置还可以包括:分配单元、第二发送单元和接收单元(图6中未示出)。
[0130] 分配单元,用于若本AC的设备角色是所述IRF系统的主设备,则为所述IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,且所分配的端口MAC地址还与所述IRF系统中所有AC的MAC地址以及所述二层网络设备的MAC地址不同;
[0131] 第二发送单元,用于将为本AC的各个IRF物理成员口所分配的端口MAC地址保存至所述MAC地址表中,以及将为所述IRF系统中其他AC的各个IRF物理成员口所分配的端口MAC地址发送至各自对应的AC;
[0132] 接收单元,用于若本AC的设备角色是所述IRF系统的从设备,则接收所述IRF系统的主设备发送的为本AC的各个IRF物理成员口分配的不同端口MAC,并将分配的端口MAC保存至所述MAC地址表中。
[0133] 在一个可选的实现方式中,所述分配单元可以包括:起始子单元、第一判断子单元、第一分配子单元、第二分配子单元、递增子单元、第二判断子单元、第三分配子单元、第四分配子单元、第三判断子单元、第五分配子单元、和第六分配子单元(图6中未示出)。
[0134] 起始子单元,用于将所述IRF系统中的一个AC作为起始AC,对所述起始AC的MAC地址递增指定数值,得到第一MAC地址;
[0135] 第一判断子单元,用于判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;
[0136] 第一分配子单元,用于若所述第一判断子单元的判断结果为是,将所述第一MAC地址分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;
[0137] 第二分配子单元,用于若所述第一判断子单元的判断结果为否,对所述第一MAC地址递增所述指定数值,得到第二MAC地址,将所述第二MAC地址作为所述第一MAC地址,返回所述第一判断子单元执行判断所述第一MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第二MAC地址,并分配给所述起始AC上的一个IRF物理成员口,作为该IRF物理成员口的端口MAC地址;
[0138] 递增子单元,用于对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址;
[0139] 第二判断子单元,用于判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同;
[0140] 第三分配子单元,用于若所述第二判断子单元的判断结果为是,将所述第三MAC地址分配给所述起始AC上另一个IRF物理成员口,将所述另一个IRF物理成员口作为该IRF物理成员口,返回所述递增子单元执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤,直到为所述起始AC的所有IRF物理成员口分配完端口MAC地址为止;
[0141] 第四分配子单元,用于若所述第二判断子单元的判断结果为否,对所述第三MAC地址递增所述指定数值,得到第四MAC地址,将所述第四MAC地址作为所述第三MAC地址,返回所述第二判断子单元执行判断所述第三MAC地址是否与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的步骤,直到得到与所述IRF系统中其他AC的MAC地址以及所述二层网络设备的地址MAC不同的第四MAC地址,并分配给该IRF物理成员口,返回所述递增子单元执行对该IRF物理成员口的端口MAC地址递增所述指定数值,得到第三MAC地址的步骤;
[0142] 第三判断子单元,用于判断所述IRF系统中的另一个AC的MAC地址是否位于已分配端口MAC地址的AC的MAC地址和已分配端口的MAC地址组成的MAC地址区间;
[0143] 第五分配子单元,用于若所述第三判断子单元的判断结果为是,将所述另一个AC作为所述起始AC,将所述MAC地址区间中最大MAC地址作为所述起始AC的MAC地址,返回所述起始子单元执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤,直到为所述IRF系统中所有AC的所有IRF物理成员口分配完端口MAC地址为止;
[0144] 第六分配子单元,用于若所述第三判断子单元的判断结果为否,将所述另一个AC作为所述起始AC,返回所述起始子单元执行对所述起始AC的MAC地址递增指定数值,得到第一MAC地址的步骤。
[0145] 由上述实施例可见,通过为IRF系统中所有AC的各个IRF物理成员口分配不同的端口MAC地址,使得每个IRF物理成员口发送的数据报文带有该IRF物理成员口的端口MAC地址,这样接收到数据报文的二层网络设备可以根据不同的端口MAC地址选取不同的IRF链路进行负载分担,从而避免了出现某个IRF链路拥塞而其他IRF链路空闲的情形,并提高了报文转发效率。
[0146] 在一个可选的实现方式中,所述装置还可以包括:第二更换单元和第三发送单元(图6中未示出)。
[0147] 第二更换单元,用于当接收到本地终端发送的心跳报文时,将所述心跳报文的源MAC地址更换为本AC的MAC地址;
[0148] 第三发送单元,用于将带有所述本AC的MAC地址的心跳报文发送至所述二层网络设备。
[0149] 上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0150] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0151] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。