一种堆叠系统中报文转发方法和装置

申请号 CN201210281519.2 申请日 2012-08-09 公开(公告)号 CN103581274A 公开(公告)日 2014-02-12
申请人 杭州华三通信技术有限公司; 发明人 王东; 汪洪远;
摘要 本 申请 公开了一种堆叠系统中报文转发方法,该方法包括:所属任一成员设备的任一VD同与该成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连;该VD通过业务端口接收到单播报文时,在该VD上的转发表中查找,若根据查找结果确定该单播报文需跨成员设备转发,则通过堆叠链路转发该单播报文。基于同样的 发明 构思,本发明还提出一种装置,在通过堆叠实现VD的链路备份时,各VD使用共享堆叠链路,节省了带宽资源。
权利要求

1.一种堆叠系统中报文转发方法,应用于包含两个以上成员设备的堆叠系统中,所述各成员设备被划分为两个以上虚拟设备VD,所述各成员设备上具有相同VD编号的VD合并为同一VD,其特征在于,所属任一所述成员设备的任一VD同与该成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连,所述方法包括:
所属任一所述成员设备的任一VD通过业务端口接收到单播报文时,在该VD上的转发表中查找,若根据查找结果确定该单播报文需跨成员设备转发,则通过所述堆叠链路转发该单播报文。
2.根据权利要求1所述的方法,其特征在于,所述在该VD上的转发表中查找,若根据查找结果确定该单播报文需跨成员设备转发,包括:
根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,若确定查找到的目的端口号不为本成员设备的成员端口号,则确定该单播报文需跨成员设备转发。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括:
所述VD在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有所述查找到的目的端口号和本VD的VD编号;
在接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,确定该单播报文携带的描述符中的目的端口号是否为本成员设备的成员端口号,如果是,删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文。
4.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有本VD的VD编号;
在接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,并确定查找到的目的端口号是否为本成员设备的成员端口号,如果是,删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述查找到的目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文。
5.根据权利要求3所述的方法,其特征在于,
所述通过所述堆叠链路转发该单播报文时携带的描述符还包含源端口号,该源端口号为该单播报文进入所述堆叠系统的业务端口的端口号;
所述方法进一步包括,通过业务端口接收到单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该单播报文的业务端口的端口号;并且接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述单播报文携带的描述符中的源端口号。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述方法进一步包括:
当通过业务端口接收到多播报文时,在本地获取多播组编号,并根据获取的多播组编号在该VD的多播组成员表中查找,在查找到的每个成员端口上复制一份所述接收到的多播报文,若所述查找到的成员端口为堆叠端口,则在该多播报文中携带包含有VD编号和多播组编号的描述符,并通过所述堆叠链路转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发;
在接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,根据该多播报文中携带的多播组编号在本地的多播组成员表中查找,删除所述多播报文的描述符,并在查找到的每个成员端口上复制一份,若所述查找到的成员端口为堆叠端口,则在所述复制的多播报文中携带包含有本VD的VD编号和多播组编号的描述符,并通过所述查找到成员端口转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发。
7.根据权利要求6所述的方法,其特征在于,
通过所述堆叠链路转发的多播报文中携带的描述符还包含源端口号,其中,所述源端口号为所述多播报文进入所述堆叠系统的业务端口的端口号;
所述方法进一步包括,通过业务端口接收到多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该多播报文的业务端口的端口号;并且在由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述多播报文携带的描述符中的源端口号。
8.一种装置,可应用于包含两个以上成员设备的堆叠系统中任一成员设备的虚拟设备VD上,所述各成员设备被划分为两个以上VD,所述各成员设备上具有相同VD编号的VD合并为同一VD,其特征在于,所述装置包括:配置单元、接收单元、查找单元和转发单元;
所述配置单元,用于将本VD同与本VD所属的成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连;
所述接收单元,用于通过业务端口接收单播报文;
所述查找单元,用于当所述接收单元接收到单播报文时,在本地的转发表中查找;
所述转发单元,用于若根据所述查找单元查找的结果确定该单播报文需跨成员设备转发,通过所述配置单元配置的堆叠链路转发该单播报文。
9.根据权利要求8所述的装置,其特征在于,
所述查找单元,用于根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,若确定查找到的目的端口号不为本成员设备的成员端口号,则确定该单播报文需跨成员设备转发。
10.根据权利要求9所述的方法,其特征在于,所述装置进一步包括:确定单元;
所述转发单元,进一步用于在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有所述查找到的目的端口号和本VD的VD编号;如果所述确定单元确定该单播报文携带的描述符中的目的端口号是本成员设备的成员端口号,则删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文;
所述接收单元,进一步用于接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文;
所述确定单元,用于在所述接收单元接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,确定该单播报文携带的描述符中的目的端口号是否为本成员设备的成员端口号。
11.根据权利要求8所述的装置,其特征在于,所述装置进一步包括:确定单元;
所述转发单元,进一步用于在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有本VD的VD编号;如果所述确定单元确定查找到的目的端口号是本成员设备的成员端口号,则删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文;
所述接收单元,进一步用于接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文;
所述确定单元,用于在所述接收单元接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,并确定查找到的目的端口号是否为本成员设备的成员端口号。
12.根据权利要求10所述的装置,其特征在于,所述装置进一步包括:第一学习单元;
所述转发单元,通过所述堆叠链路转发该单播报文时携带的描述符还包含源端口号,该源端口号为该单播报文进入所述堆叠系统的业务端口的端口号;
所述第一学习单元,用于当所述接收单元通过业务端口接收到单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该单播报文的业务端口的端口号;当所述接收单元接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述单播报文携带的描述符中的源端口号。
13.根据权利要求8-12任意一项所述的装置,其特征在于,
所述接收单元,用于通过业务端口接收多播报文;接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文;
所述查找单元,用于当所述接收单元通过业务端口接收到多播报文时,在本地获取多播组编号,并根据获取的多播组编号在该VD的多播组成员表中查找;当所述接收单元接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,根据该多播报文中携带的多播组编号在本地的多播组成员表中查找;
所述转发单元,用于在所述查找单元根据获取的多播组编号在该VD的多播组成员表中查找到的每个成员端口上复制一份所述接收到的多播报文,若所述查找到的成员端口为堆叠端口,则在该多播报文中携带包含有VD编号和多播组编号的描述符,并通过所述堆叠链路转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发;删除所述接收单元接收的多播报文携带的描述符,并在所述查找单元根据该多播报文中携带的多播组编号在本地的多播组成员表中查找到的每个成员端口上复制一份,若所述查找到的成员端口为堆叠端口,则在所述复制的多播报文中携带包含有本VD的VD编号和多播组编号的描述符,并通过所述查找到成员端口转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发。
14.根据权利要求13所述的装置,其特征在于,所述装置进一步包括:第二学习单元;
所述转发单元,通过所述堆叠链路转发的多播报文中携带的描述符还包含源端口号,其中,所述源端口号为该多播报文进入所述堆叠系统的业务端口的端口号;
所述第二学习单元,用于当所述接收单元通过业务端口接收到多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该多播报文的端口号;当所述接收单元在由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLANID和源端口号的转发表项,其中,所述源端口号为所述多播报文携带的描述符中的源端口号。

说明书全文

一种堆叠系统中报文转发方法和装置

技术领域

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

背景技术

[0002] 数据中心的发展正在经历从整合、虚拟化到自动化的演变,基于计算的数据中心是未来更远的目标。整合是基础,虚拟化技术为自动化、云计算数据中心的实现提供支持。
[0003] 数据中心的数据化有很多的技术优点,可以通过整合或者共享物理资源来提高资源的利用率,调查公司的结果显示,全球多数的数据中心资源利用率为15%~20%之间,通过整合、虚拟化技术可以实现50%~60%的利用率;通过虚拟化技术可以实现节能高效的绿色数据中心,如可以减少物理设备、电缆、空间、电、制冷等的需求成本;可以实现对资源的快速部署以及重部署以满足业务发展需求。
[0004] 由此可见,虚拟化技术是数据中心发展关注的焦点,对于基础网络来说,虚拟化技术分为两类:将多个物理网络设备整合成一台逻辑设备,简化网络架构,则可称之为N:1的虚拟化,如堆叠技术;将一套物理网络上划分出多个相互隔离的逻辑网络或将一台物理设备划分成多个虚拟设备,可称为1:N的虚拟化。
[0005] 在现有的数据中心组网中,存在将分立网络整合为一个通用基础设施的虚拟化需求,在保留物理上独立的网络的管理界限划分和故障隔离特性的前期下,提供单一基础设施所拥有。
[0006] 现有实现中通过跨设备多链路绑技术,可以实现在单个设备上使用聚合链路连接两个经过虚通道连接(vPC)捆绑的上行设备,完全使用了所有上行链路的带宽,实现了链路的备份,在个别链路失效时提供了故障快速收敛,但是单个vPC域需要保证20G的链路用于vPC捆绑设备的维护。当存在多个VD时,就需要多个vPC进行捆绑,对系统的带宽开销较大,且部署复杂,增加维护成本。发明内容
[0007] 有鉴于此,本申请提供一种堆叠系统中报文转发方法和装置,在通过堆叠实现VD的链路备份时,各VD使用共享堆叠链路,节省了带宽资源。
[0008] 为解决上述技术问题,本发明的技术方案是这样实现的:
[0009] 一种堆叠系统中报文转发方法,应用于包含两个以上成员设备的堆叠系统中,所述各成员设备被划分为两个以上VD,所述各成员设备上具有相同VD编号的VD合并为同一VD,所属任一所述成员设备的任一VD同与该成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连,所述方法包括:
[0010] 所属任一所述成员设备的任一VD通过业务端口接收到单播报文时,在该VD上的转发表中查找,若根据查找结果确定该单播报文需跨成员设备转发,则通过所述堆叠链路转发该单播报文。
[0011] 一种装置,可应用于包含两个以上成员设备的堆叠系统中任一成员设备的VD上,所述各成员设备被划分为两个以上VD,所述各成员设备上具有相同VD编号的VD合并为同一VD,所述装置包括:配置单元、接收单元、查找单元和转发单元;
[0012] 所述配置单元,用于将本VD同与本VD所属的成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连;
[0013] 所述接收单元,用于通过业务端口接收单播报文;
[0014] 所述查找单元,用于当所述接收单元接收到单播报文时,在本地的转发表中查找;
[0015] 所述转发单元,用于若根据所述查找单元查找的结果确定该单播报文需跨成员设备转发,通过所述配置单元配置的堆叠链路转发该单播报文。
[0016] 综上所述,本申请通过在堆叠系统中实现VD,并将各成员设备中相同VD编号的VD合并成同一VD管理,且各成员设备上的同一VD之间共享同一堆叠链路,在接收到需跨成员设备转发的单播报文时,通过所述共享堆叠链路转发所述接收的单播报文,在通过堆叠实现VD的链路备份时,各VD使用共享堆叠链路,节省了带宽资源。附图说明
[0017] 图1为本发明实施例中堆叠系统进行VD虚拟化示意图;
[0018] 图2为本发明实施例中实现堆叠系统中单播报文转发方法流程示意图;
[0019] 图3为本发明实施例中堆叠系统中多播报文转发流程示意图;
[0020] 图4为本发明具体实施例中用于实现堆叠系统中报文转发的装置的结构示意图;
[0021] 图5是本发明具体实施例中用于实现堆叠系统中报文转发的装置500的硬件架构组成示意图。

具体实施方式

[0022] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0023] 本发明实施例中提出一种堆叠系统中报文转发方法,在通过堆叠实现VD的链路备份时,各VD使用共享堆叠链路,节省了带宽资源。该方法应用在包含两个以上成员设备的堆叠系统中,所述各成员设备被划分为两个以上VD,所述各成员设备上具有相同VD编号的VD合并为同一VD,所属任一所述成员设备的任一VD同与该成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连。该方法包括:所属任一所述成员设备的任一VD通过业务端口接收到单播报文时,在该VD上的转发表中查找,若根据查找结果确定该单播报文需跨成员设备转发,则通过所述堆叠链路转发该单播报文。
[0024] 也就是说,各成员设备之间堆叠建立之后,通过堆叠链路相连的两个成员设备上编号相同的VD之间的连接均通过所述堆叠链路相连。参见图1,图1为本发明实施例中堆叠系统进行VD虚拟化示意图。图1中成员设备1和成员设备2建立之间建立堆叠链路,成员设备1上的VD1和成员设备2上的VD1之间、成员设备1上的VD2和成员设备2上的VD2,以及成员设备1上的VD3和成员设备2上的VD3,均通过成员设备1和成员设备2建立的堆叠链路相连,即共享同一堆叠链路。
[0025] 下面简要描述本发明实施例中实现报文转发前堆叠系统的建立、VD的合并、以及堆叠链路的共享配置过程:
[0026] 完整的堆叠系统将经历物理连接,拓扑收集、色选举、成员管理与维护四个阶段。成员设备之间需要先建立堆叠物理连接,然后会自动进行拓扑收集和角色选举,完成堆叠的建立,此后进入成员设备的管理和维护阶段,保持堆叠系统成员设备的关系稳定。在支持VD的堆叠系统中,以上四个阶段的功能由管理VD负责完成,非管理VD则直接在此基础上存在。堆叠系统上电启动时,管理VD首先启动并完成堆叠系统的建立,非管理VD随后才能启动。堆叠链路信息的变化由管理VD负责维护,如堆叠端口配置的改变,堆叠端口LINK状态的变化等,当感知到这些变化时,管理VD需及时通告其他非管理VD。另外,对于堆叠端口的物理层配置等操作也均是管理VD完成的,非管理VD不参与。
[0027] 管理VD依靠Hello报文传递堆叠建立信息,Hello报文中携带指定的VD编号及特殊的hello报文类型标识,由CPU指定从堆叠端口发出,报文在到达目的成员设备堆叠口后,确定为hello报文将直接上送CPU处理,CPU软件再根据报文中的VD编号进入到该VD的堆叠建立状态机处理。如果该成员设备不存在对应编号的VD,将不予处理。
[0028] 当各成员设备中具有相同编号的VD完成堆叠建立后,将进入到堆叠状态的管理和维护阶段。该阶段也统一由管理VD负责,包括堆叠链路的状态及成员设备的状态的维护与检测,当检测到堆叠链路断开或成员设备退出后,将通知各VD各自堆叠分裂。
[0029] 除堆叠协议外的其他协议均由各VD内独立负责,各VD内发送的控制报文(由报文中的特殊字段标识为控制报文,以与数据报文区分开)由CPU指定从共享的堆叠端口发送到目的成员设备。目的成员设备收到该控制报文后,一律直接上送CPU软件,由CPU根据报文中的VD编号通知到指定的VD进行后续处理。
[0030] 在堆叠系统启动时,首先创建管理VD(默认VD1),由管理VD创建非管理VD,即用户VD,并为各创建的用户VD进行配置。对于分布式设备具体包括:根据VD的数目划分控制板,并将接口板上的业务端口划分给各VD,进而实现将接口板划分给各VD。这样,一个接口板可能划分给一个VD,也可能划分给多个VD,一个VD可能被分配一个接口板也可能多个接口板。在堆叠系统中,成员设备及其堆叠链路的配置均是在管理VD中进行配置与保存,非管理VD自动继承这些配置并不可单独修改配置。对于集中式设备,则将各控制板集成在接口板中,在将接口板划分给各VD时,关联到控制板的划分,当整个接口板划分给一个VD时,该接口板上集成的控制板自动划分各VD,当一个接口板划分给多个VD时,该接口板上集成的控制板也需要划分给该接口板划分给的各VD。分布式或者集中式设备将接口板和控制板如何划分给本成员设备虚拟的各VD,同现有实现,这里不再详细赘述。
[0031] 当堆叠系统启动后,管理VD将自身所在成员设备建立堆叠链路的堆叠端口号、为各用户VD分配的VD编号、以及分配的业务端口号下发给各用户VD。
[0032] 各用户VD接收到管理VD下发的信息形成入端口属性表,该入端口属性表包括VD编号、业务端口号和堆叠端口号。
[0033] 下面结合附图,详细说明本发明具体实施例中如何实现堆叠系统中报文的转发。
[0034] 参见图2,图2为本发明实施例中VD实现堆叠系统中单播报文转发方法流程示意图。
[0035] 步骤201,所属任一成员设备的任一VD接收到单播报文。
[0036] 步骤202,该VD确定接收该单播报文的端口是否为堆叠端口,如果是,执行步骤203;否则,执行步骤207。
[0037] 每个端口都属于一个VD,每个VD上都有入端口属性表,根据接收该单播报文的端口的端口号在本地的入端口属性表中查找,可获知接收该单播报文的端口是堆叠端口还是业务端口。
[0038] 步骤203,该VD对接收到的该单播报文进行源MAC地址学习,生成转发表项。
[0039] 如果确定该单播报文是通过堆叠端口接收,则该单播报文会携带描述符,该描述符为其他成员设备中与该VD编号相同的VD转发该单播报文时添加的,其中该描述符包含有:VD编号、目的端口号和源端口号,其中,所述源端口号为该单播报文进入该堆叠系统的端口的端口号。
[0040] 所述成员设备通过堆叠口接收到报文,由于各VD的堆叠端口相同,因此,该堆叠端口接收到通过堆叠链路发来的单播报文时,根据该单播报文携带的描述符中的VD编号将该单播报文分配到对应的VD上进行处理。
[0041] 其中,进行源MAC地址学习,生成转发表项包括:对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述单播报文携带的描述符中的源端口号。
[0042] 步骤204,该VD确定该单播报文携带的描述符中的目的端口号是否为本成员设备的成员端口号,如果是,执行步骤205;否则,执行步骤206。
[0043] 步骤205,该VD删除该单播报文携带的描述符,并从所述目的端口号所对应的端口转发,结束本流程。
[0044] 当确定该单播报文携带的描述符中的目的端口号为本成员设备的成员端口号,则确定该单播报文需转发出该堆叠系统,这时将该单播报文携带的描述符删除,从对应的端口转发。
[0045] 步骤206,该VD根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文。
[0046] 当确定该单播报文携带的目的端口号不为本成员设备的成员端口号,则确定该单播报文需跨成员设备转发,这时该单播报文仍然需要携带描述符,且处理VD和该报文进入该堆叠系统的端口的端口号不变,因此,直接将该报文通过共享堆叠链路转发即可,在转发时,选择哪条堆叠链路转发需根据目的成员设备确定,即不会将该单播报文从接收的堆叠链路的转发回去,从另外一条堆叠链路去转发。如果该VD仅与一条堆叠链路,该种转发情况也不会出现。
[0047] 步骤207,该VD在本地的转发表项中,根据接收到的单播报文携带的目的MAC地址和目的VLAN ID查找到对应的目的端口号,同时进行源MAC地址学习,生成转发表项。
[0048] 其中,对该单播报文进行源MAC地址学习,生成转发表项包含源MAC地址、源VLAN ID和源端口号。其中,所述源端口号为接收该单播报文端口的端口号。
[0049] 步骤208,该VD确定所述查找到的目的端口号是否本成员设备的成员端口号,如果是,执行步骤209;否则,执行步骤210。
[0050] 步骤209,该VD将该单播报文从所述目的端口号对应的端口转发,结束本流程。
[0051] 当确定查找到目的端口号是本成员设备的成员端口号时,不需跨成员设备转发,将该单播报文直接转发,同现有实现。
[0052] 步骤210,该VD在所述接收的单播报文中添加描述符,并从所述堆叠链路转发。
[0053] 当确定查找到目的端口号不是本成员设备的成员端口号时,该单播报文需跨成员设备转发,在转发该单播报文时携带描述符,该描述符中包含有VD编号、目的端口号和源端口号,由于本发明具体实现报文跨成员设备共享一条堆叠链路,携带VD编号,使其他成员设备接收到该单播报文时,可以获知并分配到对应的VD;携带源端口号可以使通过共享堆叠链路接收该单播报文的VD在进行源MAC地址学习时,学习到真正的源端口号,携带目的端口号,可以节省在转发表中查找目的端口号的时间,直接从描述符中获得目的端口号。
[0054] 由上可见,本发明具体实现时,描述符中也可以不包含目的端口号,任一VD接收到携带描述符的单播报文时,可以根据报文携带的目的MAC地址和目的VLAN ID在本地的转发表中查找目的端口号,查找到目的端口号后具体实现方式同上述方法,这里不再详细赘述。
[0055] 下面结合具体实施例详细说明本发明如何实现堆叠系统中多播报文转发的。
[0056] 参见图3,图3为本发明实施例中堆叠系统中多播报文转发流程示意图。
[0057] 步骤301,所属任一成员设备的任一VD接收到多播报文。
[0058] 步骤302,该VD确定接收该多播报文的端口是否为堆叠端口,如果是,执行步骤303;否则,执行步骤304。
[0059] 步骤303,该VD根据该多播报文携带的描述符中的多播组编号在多播组成员表中查找端口号,删除该多播报文携带的描述符,并在查找到的每个端口号对应的端口上复制,执行步骤305。
[0060] 本步骤中如果为该VD分配多个接口板,则在查找多播组转发表时,要在各个属于该VD的接口板上查找。其中,复制的多播报文为原始多播报文,即不携带描述符的多播报文。
[0061] 步骤304,该VD获得该多播报文的多播组编号,在本地多播组成员表中查找成员端口号,并在查找到的每个成员端口号对应的端口上复制一份所述接收的多播报文。
[0062] 其中,通过接收该多播报文的端口获知该多播报文的多播组编号,或者根据具体实现时的配置,获得多播组编号的方法同现有实现。
[0063] 步骤305,该VD确定所述查找到的成员端口号是否为堆叠端口号,如果是,执行步骤306;否则,执行步骤307。
[0064] 步骤306,在复制的多播报文中携带描述符,并通过所述查找到的成员端口号对应的端口转发,结束本流程。
[0065] 本步骤中携带的描述符包含有本VD的VD编号、该多播报文的多播组编号。
[0066] 步骤307,该VD将所述复制的多播报文通过所述查找到的成员端口号对应的端口转发。
[0067] 在转发复制后的多播报文之前,需进行源端口过滤,即不将该多播报文从接收端口转发出去。
[0068] 步骤306中通过所述共享的堆叠链路转发的多播报文中携带的描述符还包含源端口号,用于接收到该多播报文时进行源MAC地址学习生成转发表,指导单播报文的转发。
[0069] 该VD通过业务端口接收到多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该多播报文的业务端口的端口号;并且在由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述多播报文携带的描述符中的源端口号。
[0070] 本发明具体实施例中基于同样的发明构思,还提出一种装置,可应用于包含两个以上成员设备的堆叠系统中任一成员设备的VD上,所述各成员设备被划分为两个以上VD,所述各成员设备上具有相同VD编号的VD合并为同一VD。参见图4,图4为本发明具体实施例中用于实现堆叠系统中报文转发的装置的结构示意图。该装置包括:配置单元401、接收单元402、查找单元403和转发单元404。
[0071] 配置单元401,用于将本VD同与本VD所属的成员设备建立堆叠链路的成员设备上的VD编号相同的VD,通过所述堆叠链路相连。
[0072] 接收单元402,用于通过业务端口接收单播报文。
[0073] 查找单元403,用于当接收单元402接收到单播报文时,在本地的转发表中查找。
[0074] 转发单元404,用于若根据查找单元403查找的结果确定该单播报文需跨成员设备转发,通过配置单元401配置的堆叠链路转发该单播报文。
[0075] 较佳地,
[0076] 查找单元403,用于根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,若确定查找到的目的端口号不为本成员设备的成员端口号,则确定该单播报文需跨成员设备转发。
[0077] 较佳地,该装置进一步包括:确定单元405。
[0078] 转发单元404,进一步用于在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有所述查找到的目的端口号和本VD的VD编号;如果确定单元405确定该单播报文携带的描述符中的目的端口号是本成员设备的成员端口号,则删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文。
[0079] 接收单元402,进一步用于接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文。
[0080] 确定单元405,用于在接收单元402接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,确定该单播报文携带的描述符中的目的端口号是否为本成员设备的成员端口号。
[0081] 较佳地,该装置进一步包括:确定单元405。
[0082] 转发单元404,进一步用于在通过所述堆叠链路转发该单播报文时,进一步在该单播报文中携带描述符,该描述符包含有本VD的VD编号;如果确定单元405确定查找到的目的端口号是本成员设备的成员端口号,则删除该单播报文的描述符,并通过所述目的端口号对应的端口转发;否则,根据所述目的端口号确定到达目的成员设备的堆叠链路,并通过所述到达目的成员设备的堆叠链路转发所述单播报文。
[0083] 接收单元402,进一步用于接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文。
[0084] 确定单元405,用于在接收单元402接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,根据该单播报文携带的目的MAC地址和目的VLAN ID在本地转发表中查找对应的目的端口号,并确定查找到的目的端口号是否为本成员设备的成员端口号。
[0085] 较佳地,该装置进一步包括:第一学习单元406。
[0086] 转发单元404,通过所述堆叠链路转发该单播报文时携带的描述符还包含源端口号,该源端口号为该单播报文进入所述堆叠系统的业务端口的端口号。
[0087] 第一学习单元406,用于当接收单元402通过业务端口接收到单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该单播报文的业务端口的端口号;当接收单元402接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的单播报文时,在本地对该单播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为所述单播报文携带的描述符中的源端口号。
[0088] 较佳地,
[0089] 接收单元402,用于通过业务端口接收多播报文;接收由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文。
[0090] 查找单元403,用于当接收单元402通过业务端口接收到多播报文时,在本地获取多播组编号,并根据获取的多播组编号在该VD的多播组成员表中查找;当接收单元402接收到由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,根据该多播报文中携带的多播组编号在本地的多播组成员表中查找。
[0091] 转发单元404,用于在查找单元404根据获取的多播组编号在该VD的多播组成员表中查找到的每个成员端口上复制一份所述接收到的多播报文,若所述查找到的成员端口为堆叠端口,则在该多播报文中携带包含有VD编号和多播组编号的描述符,并通过所述堆叠链路转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发;删除接收单元402接收的多播报文携带的描述符,并在查找单元403根据该多播报文中携带的多播组编号在本地的多播组成员表中查找到的每个成员端口上复制一份,若所述查找到的成员端口为堆叠端口,则在所述复制的多播报文中携带包含有本VD的VD编号和多播组编号的描述符,并通过所述查找到成员端口转发;若所述查找到的成员端口为业务端口,将所述复制的多播报文通过所述查找到的成员端口转发。
[0092] 较佳地,该装置进一步包括:第二学习单元407。
[0093] 转发单元404,通过所述堆叠链路转发的多播报文中携带的描述符还包含源端口号,其中,所述源端口号为该多播报文进入所述堆叠系统的业务端口的端口号。
[0094] 第二学习单元407,用于当接收单元402通过业务端口接收到多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLAN ID和源端口号的转发表项,其中,所述源端口号为接收该多播报文的端口号;当接收单元402在由所述堆叠链路的堆叠端口依据描述符中携带的VD编号分发给自身处理的多播报文时,在本地对该多播报文进行源MAC地址学习,生成包含源MAC地址、源VLANID和源端口号的转发表项,其中,所述源端口号为所述多播报文携带的描述符中的源端口号。
[0095] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0096] 以上对本发明具体实施例中用于实现堆叠系统中报文转发的装置进行了说明,下面给出本发明具体实施例中用于实现堆叠系统中报文转发的装置的硬件架构组成,该装置是可以软硬件结合的可编程设备,具体参见图5,图5是本发明具体实施例中用于实现堆叠系统中报文转发的装置500的硬件架构组成示意图,装置500包括存储器510,处理器520,报文处理芯片530,以及耦合存储器510、处理器520、报文处理芯片的互联机构540;其中,[0097] 存储器510,用于存储指令代码,当所述指令代码被执行时完成的操作主要为上述装置中确定单元、查找单元、第一学习单元、第二学习单元和转发单元完成的功能,这里不再详述。
[0098] 处理器520,用于与报文处理芯片530通信,进行单播报文和多播报文的收发;用于与存储器510通信,读取和执行存储器510中存储的所述指令代码,完成上述装置中确定单元、查找单元、第一学习单元、第二学习单元和转发单元完成的功能,以及对从报文处理芯片530上送的报文的处理。
[0099] 报文处理芯片530,用于通过该芯片上的端口连接到堆叠系统中的其他成员设备和堆叠系统以外的设备,负责数据报文的收发处理,从堆叠端口收发单播报文和多播报文,从业务端口收发多播报文和单播报文。
[0100] 需要说明的是,图5所示的用于堆叠系统中报文转发的装置只是一个具体的例子,也可以通过其他的与本实施例描述不同结构实现,例如,上述指令代码时所完成的操作,也可以由特定应用专用集成电路(ASIC)实现。另外,上述的处理器520可以是一个或多个,如果是多个,则由多个处理器共同负责读取和执行所述指令代码。因此,本发明对用于实现堆叠系统中报文转发的装置的具体结构不作具体限定。
[0101] 综上所述,本发明具体实施例中在堆叠系统中实现VD,并将各成员设备中相同VD编号的VD合并成同一VD管理,且各成员设备上的同一VD之间共享同一堆叠链路,在接收到需跨成员设备转发的单播报文时,通过所述共享堆叠链路转发所述接收的单播报文,在通过堆叠实现VD的链路备份时,各VD使用共享堆叠链路,节省了带宽资源。
[0102] 具体实现时,在通过堆叠链路的转发的报文中携带包含有VD编号和源端口号的描述符,使通过所述共享堆叠链路接收到报文时,通过报文携带的描述符获知该报文应该分配到哪个VD,并且能够根据描述符中的源端口号进行源MAC地址学习。
[0103] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
QQ群二维码
意见反馈