1.一种堆叠系统中媒质访问控制MAC地址同步的方法,应用于所述堆叠系统中任一成员设备上,其特征在于,包括:
该成员设备获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址;
若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从所述待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;
若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据所述待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;
该成员设备通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。
2.根据权利要求1所述的方法,其特征在于,
所述根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送,构建广播报文,包括:将每一个所筛选出的MAC地址作为广播报文的源MAC地址,并将该所筛选出的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上;
所述根据所述待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文,包括:将每一个所述待同步的,且处于激活状态的MAC地址作为广播报文的源MAC地址,并将该待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上。
3.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:该成员设备作为主成员设备,配置第一预设时间和第二预设时间;其中,第一预设时间小于MAC地址老化时间,第二预设时间大于MAC地址老化时间;
当第一预设时间到时,获知需要同步MAC地址,且确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;
当第二预设时间到时,获知需要同步MAC地址,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。
4.根据权利要求3所述的方法,其特征在于,
该成员设备作为非主成员设备时,所述获知需要同步MAC地址,包括:接收到主成员设备发送的堆叠消息时,获知需要同步MAC地址;
当该堆叠消息中通知同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;
当该堆叠消息中通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。
5.根据权利要求1或2所述的方法,其特征在于,所述该成员设备通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习,包括:
通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据该广播报文的源MAC地址,以及广播报文中携带的VLAN ID和端口信息在本地MAC地址表项中进行匹配;
如果完全匹配,若该源MAC地址对应的MAC地址的状态为老化状态,更新为激活状态;
如果匹配到源MAC地址和VLAN ID,且未匹配到该源MAC地址对应的端口信息,进行MAC Move处理;
否则,将该广播报文的源MAC地址,以及该广播报文携带的端口信息和VLAN ID绑定学习到MAC地址表项中,并设置该源MAC地址的状态为激活状态。
6.一种设备,可应用于堆叠系统中任一成员设备上,其特征在于,该设备包括:获知单元、读取单元和接收单元和处理单元;
所述获知单元,用于获知是否需要同步媒质访问控制MAC地址;
所述读取单元,用于当所述获知单元获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址;
所述接收单元,用于通过堆叠口接收其他成员设备同步MAC地址的广播报文;
所述处理单元,用于若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从所述读取单元获得的待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当所述获知单元若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据所述读取单元获得的待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当所述接收单元接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。
7.根据权利要求6所述的设备,其特征在于,
所述处理单元,具体用于将每一个所筛选出的MAC地址作为广播报文的源MAC地址,并将该所筛选出的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上;将每一个所述待同步的,且处于激活状态的MAC地址作为广播报文的源MAC地址,并将该待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上。
8.根据权利要求6或7所述的设备,其特征在于,所述设备进一步包括:配置单元;
所述配置单元,用于本设备作为主成员设备时,配置第一预设时间和第二预设时间;其中,第一预设时间小于MAC地址老化时间,第二预设时间大于MAC地址老化时间;
所述获知单元,进一步用于当所述配置单元配置的第一预设时间到时,获知需要同步MAC地址,且确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;当所述配置单元配置的第二预设时间到时,获知需要同步MAC地址,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。
9.根据权利要求8所述的设备,其特征在于,
所述获知单元,具体用于该成员设备作为非主成员设备时,接收到主成员设备发送的堆叠消息时,获知需要同步MAC地址;当该堆叠消息中通知同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;当该堆叠消息中通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。
10.根据权利要求6或7所述的设备,其特征在于,
所述处理单元,具体用于根据所述接收单元接收到的广播报文的源MAC地址,以及广播报文中携带的VLAN ID和端口信息在本地MAC地址表项中进行匹配;如果完全匹配,若该源MAC地址对应的MAC地址的状态为老化状态,更新为激活状态;如果匹配到源MAC地址和VLAN ID,且未匹配到该源MAC地址对应的端口信息,进行MAC Move处理;否则,将该广播报文的源MAC地址,以及该广播报文携带的端口信息和VLAN ID绑定学习到所述MAC地址表项中。
一种堆叠系统中媒质访问控制地址同步的方法和设备\n技术领域\n[0001] 本申请涉及通信技术领域,特别涉及一种堆叠系统中媒质访问控制(MAC)地址同步的方法和设备。\n背景技术\n[0002] 以太网交换机堆叠技术,可以将多台交换机互联在一起,形成分布式交换架构,并作为一个逻辑交换实体运行。\n[0003] 从管理和配置的角度看,一个分布式交换架构看起来就像一台交换设备;从性能的角度看,分布式交换架构中的每台交换机都能针对其端口上的第二层、第三层流量通信业务制定本地转发决策。\n[0004] 支持堆叠的多台交换设备可以互相连接起来形成一个联合设备,我们将这台联合设备称为一个堆叠系统(Stacking),而将组成Stacking的每个设备称为一个成员设备(Slot)。多个Slot组成Stacking后,无论在管理还是在使用上,就成为了一个整体。也就是说,用户可以将这多台设备看成单一设备进行管理和使用。这样既可以通过增加设备来扩展端口数量和交换能力,同时也通过多个Slot之间的相互备份增加了整个Stacking的可靠性。\n[0005] 参见图1,图1为3台设备链形堆叠系统示意图。图1中Slot1和Slot3有一组外部堆叠口,Slot2有两组外部堆叠口,分别为P1,P2。相邻两设备的堆叠口P1与P2相连,组成环形堆叠。如果成员设备之间形成环形堆叠,则链路两端的成员设备各有两组外部堆叠口。\n[0006] 图1中,交换机(SW1)向SW2发送源MAC地址为MAC1,目的MAC地址为MAC2的单播报文,SW1在本地进行哈希,选择到达Slot1的链路发送,Slot1接收到该单播报文进行源MAC地址学习,并将该单播报文转发给SW2。SW2接收该单播报文的端口为聚合端口,因此,将该单播报文的源MAC地址学习到该聚合端口所在的聚合组的聚合组标识上。\n[0007] SW2向SW1发送源MAC地址为MAC2,目的MAC地址为MAC1的单播报文时,SW2也会在进行哈希计算,在该聚合组中选择一个端口发送,假设选择的是与Slot2相连的端口,该单播报文就会被发送到Slot2上,而Slot2上并没有学习到MAC1,因此,Slot2就会将该单播报文作为未知单播报文进行广播处理。增加了额外带宽的消耗,及可能的多份转发。\n[0008] 为了避免上述情况的发生,堆叠系统进行借助进程间通信(Inter-process Communication,IPC)通信技术,进行成员设备学习到的MAC地址同步处理。主要有定期批量同步方式,事件触发方式。具体实现如下:\n[0009] 定期批量同步方式是定期读取本成员设备所学习到的所有MAC地址,将相关信息,通过IPC通信手段,打包发送到其它成员设备。其它成员设备接收到同步的MAC地址信息后,确定是否同步。当需要同步时,则对指定MAC进行硬件FDB的添加。\n[0010] 事件触发方式,是指软件收到转发芯片上报的新MAC地址事件,或MAC地址老化事件,对指定同步的MAC地址进行堆叠内MAC地址同步,过程同定期批量同步。被指定同步的MAC地址可以是学习到聚合组标识上的MAC地址,也可以是学习到的任何单一端口上的MAC地址。\n[0011] 现有的堆叠系统内MAC地址同步方法,必须进行板间IPC消息通信传递被同步。同步发起端需要组织同步的MAC数据包,被同步端需要解析MAC数据包,并逐条下发硬件转发数据库(Forwarding Database,FDB)表项,整个过程严重消耗CPU处理能力。当MAC地址增多时,对设备性能影响非常大,占用CPU可达80%以上。因MAC地址规模限制,严重影响堆叠的实际部署。\n发明内容\n[0012] 有鉴于此,本申请提供一种堆叠系统中媒质访问控制地址同步的方法和设备,在MAC地址同步时能够降低CPU的消耗。\n[0013] 为解决上述技术问题,本发明的技术方案是这样实现的:\n[0014] 一种堆叠系统中媒质访问控制地址MAC同步的方法,应用于所述堆叠系统中任一成员设备上,包括:\n[0015] 该成员设备获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址;\n[0016] 若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从所述待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLANID,构建广播报文并向堆叠系统中的其他成员设备发送;\n[0017] 若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据所述待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;\n[0018] 该成员设备通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。\n[0019] 一种设备,可应用于堆叠系统中任一成员设备上,该设备包括:获知单元、读取单元和接收单元和处理单元;\n[0020] 所述获知单元,用于获知是否需要同步MAC地址;\n[0021] 所述读取单元,用于当所述获知单元获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址;\n[0022] 所述接收单元,用于通过堆叠口接收其他成员设备同步MAC地址的广播报文;\n[0023] 所述处理单元,用于若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从所述读取单元获得的待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当所述获知单元若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据所述读取单元获得的待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当所述接收单元接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。\n[0024] 综上所述,本申请通过成员设备获知需要同步MAC地址时,批量读取待同步的MAC地址,并同步待同步的MAC地址中需要同步的MAC地址,在同步需要同步的MAC地址时,根据该MAC地址,以及该MAC地址对应的VLAN ID和端口信息构建广播报文进行MAC地址的同步;\n该成员设备在接收到MAC地址通过的广播报文时,根据广播报文的内容进行硬件MAC地址学习,使用该方法,在MAC地址同步时能够降低CPU的消耗。\n附图说明\n[0025] 图1为3台设备环形堆叠系统示意图;\n[0026] 图2为本发明实施例一中同步MAC地址的方法流程示意图;\n[0027] 图3为本发明实施例三中堆叠系统示意图;\n[0028] 图4为本发明具体实施例中应用于上述技术的设备的结构示意图。\n具体实施方式\n[0029] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。\n[0030] 本发明实施例中提出一种堆叠系统中MAC同步的方法,应用于所述堆叠系统中任一成员设备上,成员设备获知需要同步MAC地址时,批量读取待同步的MAC地址,并同步待同步的MAC地址中需要同步的MAC地址,在同步需要同步的MAC地址时,根据该MAC地址,以及该MAC地址对应的VLAN ID和端口信息构建广播报文进行MAC地址的同步;该成员设备在接收到MAC地址通过的广播报文时,根据广播报文的内容进行硬件MAC地址学习,使用该方法,在MAC地址同步时能够降低CPU的消耗。\n[0031] 实施例一\n[0032] 本实施例中详细描述堆叠系统中的成员设备作为非主成员设备时,如何进行MAC地址同步。\n[0033] 参见图2,图2为本发明实施例一中同步MAC地址的方法流程示意图。具体步骤为:\n[0034] 步骤201,堆叠系统中的成员设备获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址。\n[0035] 该成员设备在批量读出的所有MAC地址中删除端口信息为其他成员设备的端口号的MAC地址,即排除通过MAC地址同步,而学习到其他成员设备的普通端口上的MAC地址。\n[0036] 本发明具体实施例中,普通端口相对于聚合端口而定义。任一成员设备本地加入聚合组的端口称为聚合端口,未加入聚合组的端口称为普通端口。\n[0037] MAC地址对应的端口信息为端口号或聚合组标识ID,其中,端口号通过芯片ID和物理端口号标识,芯片ID用于区分该端口为哪个成员设备上的端口。\n[0038] 成员设备如何获知需要同步MAC地址,对于该成员设备作为主成员设备和非主成员设备时,实现不同。下面分别描述主成员设备和非主成员设备获知需要同步的MAC地址的过程:\n[0039] 当该成员设备作为主成员设备时,配置第一预设时间和第二预设时间;其中,第一预设时间小于MAC地址老化时间,第二预设时间大于MAC地址老化时间。\n[0040] 有上述配置可见在一个MAC地址老化周期内,可以进行多次的MAC地址同步,即主成员设备多次发送堆叠消息,触发各成员设备同步MAC地址。在堆叠系统中的各成员设备对MAC地址进行老化的老化时间配置为相同。\n[0041] 主成员设备设置第二预设时间大于MAC地址老化时间,即为了使端口信息为聚合组标识的MAC地址的同步周期大于MAC地址的老化时间,避免对应端口信息为聚合组标识的MAC地址,因堆叠系统中的各成员设备互相同步MAC地址,而永远不老化。\n[0042] 当第一预设时间到时,获知需要同步MAC地址,且确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址。\n[0043] 当第二预设时间到时,获知需要同步MAC地址,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。\n[0044] 当该成员设备作为非主成员设备时,接收到主成员设备发送的堆叠消息时,获知需要同步MAC地址。\n[0045] 当该堆叠消息中通知同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址。\n[0046] 当该堆叠消息中通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。\n[0047] 由此可见,主成员设备什么时候同步MAC地址,由主成员设备设置的第一预设时间和第二预设时间到时时触发。主成员设备触发同步MAC地址时,同时发送堆叠消息触发非主成员设备同步MAC地址。\n[0048] 步骤202,该成员设备若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从所述待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和VLANID,构建广播报文并向堆叠系统中的其他成员设备发送。\n[0049] 当确定仅同步学习到本地普通端口上的MAC地址,不同步学习到聚合组标识上的MAC地址时,仅将所有待同步的且处于激活状态的MAC地址中学习到本地普通端口上而非聚合组标识上的MAC地址同步给其他成员设备。\n[0050] 该成员设备将每一个所筛选出的MAC地址作为广播报文的源MAC地址,并将该所筛选出的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上。\n[0051] 步骤203,该成员设备若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据所述待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送使其他成员设备通过硬件MAC地址学习。\n[0052] 该成员设备确定既同步学习到本地普通端口上的MAC地址,也同步学习到聚合组标识上的MAC地址时,将所有待同步的,且处于激活状态的MAC地址同步给其他成员设备。\n[0053] 该成员设备在同步MAC地址时,通过构建广播报文的方式同步待同步的MAC地址。\n[0054] 该成员设备将每一个待同步的,且处于激活状态的MAC地址作为广播报文的源MAC地址,该待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址时能够学习到的位置上。\n[0055] 这样,为待同步的所有MAC地址分别构建一条广播报文,发送给堆叠系统中的其他成员设备,使其他成员设备能够学习到同步的MAC地址。\n[0056] 步骤202和步骤203中无论确定同步哪些MAC地址,都是将处于激活状态的MAC地址同步,处于老化状态的MAC地址均不同步。\n[0057] 各成员设备在学习到一个MAC地址时,都会为该MAC地址设置老化时间,在老化时间内,该MAC地址对应的状态为激活状态,老化时间到时,将该MAC地址的激活状态修改为老化状态,再等待预设时间,删除该MAC地址对应的表项。\n[0058] 实施例二\n[0059] 各成员设备发送同步MAC地址的广播报文后,其他成员设备会通过堆叠口接收到该广播报文。\n[0060] 各成员设备通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。具体过程如下:\n[0061] 成员设备通过堆叠口接收到其他成员设备同步MAC地址的广播报文时,根据该广播报文的源MAC地址,以及广播报文中携带的VLAN ID和端口信息在本地MAC地址表项中进行匹配。\n[0062] 如果完全匹配,若该源MAC地址对应的MAC地址的状态为老化状态,更新为激活状态;如果匹配到源MAC地址和VLAN ID,且未匹配到该源MAC地址对应的端口信息,进行MAC Move处理;否则,通过硬件MAC地址学习,将该广播报文的源MAC地址学习到MAC地址表项中,并将该源MAC地址的状态置为激活状态。\n[0063] 当该广播报文的源MAC地址,以及该广播报文中携带的VLAN ID和端口信息,在本地MAC地址表中完全能够匹配到时,如果该源MAC地址在MAC地址表项中处于激活状态,则不进行处理;如果该源MAC地址在MAC地址表项中处于老化状态,则将该源MAC地址在MAC地址表项中对应的状态更新为激活状态。\n[0064] 如果该广播报文的源MAC地址,以及该广播报文中携带的VLAN ID和端口信息,在本地MAC地址表中仅能完全匹配到源MAC地址和VLAN ID,而端口信息不匹配,说明发生了MAC Move情况。进行MAC Move处理,具体实现即为删除该源MAC地址在MAC地址表中对应的表项。\n[0065] 如果仅匹配到广播报文中的源MAC地址,而该源MAC地址在MAC地址表中对应的VLAN ID,与广播报文携带的VLAN ID不一致;或者,未在MAC地址表中匹配到该广播报文的源MAC地址,则对该广播报文通过硬件MAC地址学习,将该广播报文的源MAC地址学习到MAC地址表项中。\n[0066] 该成员设备通过硬件MAC地址学习,将该广播报文的源MAC地址学习到MAC地址表项中,包括:\n[0067] 该成员设备将该广播报文的源MAC地址,以及该广播报文携带的端口信息和VLAN ID绑定学习到所述MAC地址表项中。\n[0068] 实施例三\n[0069] 参见图3,图3为本发明实施例三中堆叠系统示意图。图3中Slot1,Slot2,Slot3组成一个堆叠,Slot2是主成员设备。Slot1,Slot3在普通端口与聚合组端口所在的组合组的聚合组标识上分别学习到若干MAC地址。\n[0070] 以Slot1和Slot3学习到的MAC地址为例。参见表1,表1为Slot1的MAC地址表中包含的内容。参见表2,表2为Slot3的MAC地址表中包含的内容。\n[0071]\nMAC地址 VLAN ID 端口信息 状态\nMAC1 2 Slot1 Port3 激活\nMAC2 1 Slot1 Port2 激活\nMAC3 2 Slot1 Port6 老化\nMAC6 100 LAG1 激活\n[0072] 表1\n[0073]\nMAC地址 VLAN ID 端口信息 状态\nMAC9 2 Slot3 Port3 激活\nMAC7 1 Slot3 Port2 激活\nMAC5 2 Slot3 Port6 激活\nMAC8 100 LAG1 老化\n[0074] 表2\n[0075] 当Slot1接收Slot2发送的堆叠消息,且该堆叠消息通知同步学习到本地普通端口上的MAC地址和学习到聚合组标识上的MAC地址时,当Slot1批量读出表1中的所有MAC地址,且该表1中的MAC地址中不存在端口信息为其他成员设备的端口的MAC地址,因此,将表1中的处于激活状态的MAC地址,即MAC1、MAC2和MAC6都进行同步,以MAC1为例,将MAC作为一个广播报文的源MAC地址,并将VLANID2和Slot1Port3携带在该广播报文中硬件学习MAC地址时能够学习到的位置上。\n[0076] 当Slot3接收到Slot1发送的各条广播报文时,分别进行处理。以源MAC地址为MAC1的广播报文为例。在Slot3的MAC地址表中,即表2中匹配MAC1+VLAN2+Slot1Port3,从表2中,可知既不能匹配到MAC1+VLAN2+Slot1 Port3,也不能匹配到MAC1+VLAN2,因此,该广播报文进行硬件MAC地址学习,将MAC1、VLAN2、Slot1 Port3绑定学习到表2中。\n[0077] 参见表3,表3为Slot3学习Slot1同步的MAC地址后本地MAC地址表中包含的内容。\n[0078]\nMAC地址 VLAN ID 端口信息 状态\nMAC9 2 Slot3 Port3 激活\nMAC7 1 Slot3 Port2 激活\nMAC5 2 Slot3 Port6 激活\nMAC8 100 LAG1 老化\nMAC1 2 Slot1 Port3 激活\nMAC2 1 Slot1 Port2 激活\nMAC6 100 LAG1 激活\n[0079] 表3\n[0080] 以Slot3接收到Slot2再次发送的堆叠消息,且该堆叠消息通知同步学习到本地普通端口上的MAC地址,但不同步学习到聚合组标识上的MAC地址时,批量读出表3中的所有MAC地址,从表3中可见,MAC1和MAC2对应的端口信息为Slot1上的端口号,不为本成员设备上的端口号,因此将MAC1和MAC2删除。\n[0081] 由于不同步学习到聚合组标识上的MAC地址,因此,不同步MAC8和MAC6。最后,将表\n3中的MAC9、MAC7、MAC5进行同步。\n[0082] 本发明具体实施例中基于同样的发明构思,还提出一种设备,可应用于堆叠系统中任一成员设备上。参见图4,图4为本发明具体实施例中应用于上述技术的设备的结构示意图。该设备包括:获知单元401、读取单元402和接收单元403和处理单元404。\n[0083] 获知单元401,用于获知是否需要同步MAC地址。\n[0084] 读取单元402,用于当获知单元401获知需要同步MAC地址时,批量读出本成员设备硬件学习到的MAC地址,将对应端口信息为其他成员设备的端口号的MAC地址删除后的MAC地址作为待同步的MAC地址。\n[0085] 接收单元403,用于通过堆叠口接收其他成员设备同步MAC地址的广播报文。\n[0086] 处理单元404,用于若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址,则从读取单元402获得的待同步的MAC地址中,筛选出处于激活状态且对应端口信息为本成员设备的端口号的MAC地址,并根据所筛选出的MAC地址、以及所筛选出的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当获知单元401若确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址,根据读取单元402获得的待同步的,且处于激活状态的MAC地址,以及所述待同步的且处于激活状态的MAC地址对应的端口信息和虚拟局域网标识VLAN ID,构建广播报文并向堆叠系统中的其他成员设备发送;当接收单元403接收到其他成员设备同步MAC地址的广播报文时,根据接收到的广播报文的内容进行硬件MAC地址学习。\n[0087] 较佳地,\n[0088] 处理单元404,具体用于将每一个所筛选出的MAC地址作为广播报文的源MAC地址,并将该所筛选出的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上;将每一个所述待同步的,且处于激活状态的MAC地址作为广播报文的源MAC地址,并将该待同步的且处于激活状态的MAC地址对应的端口信息和VLAN ID,携带在构建的广播报文中硬件学习MAC地址能够学习到的位置上。\n[0089] 较佳地,该设备进一步包括:配置单元405。\n[0090] 配置单元405,用于本设备作为主成员设备时,配置第一预设时间和第二预设时间;其中,第一预设时间小于MAC地址老化时间,第二预设时间大于MAC地址老化时间。\n[0091] 获知单元401,进一步用于当配置单元405配置的第一预设时间到时,获知需要同步MAC地址,且确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;当配置单元405配置的第二预设时间到时,获知需要同步MAC地址,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址;并发送堆叠消息通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。\n[0092] 较佳地,\n[0093] 获知单元401,具体用于该成员设备作为非主成员设备时,接收到主成员设备发送的堆叠消息时,获知需要同步MAC地址;当该堆叠消息中通知同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且不同步对应端口信息为聚合组标识的MAC地址;当该堆叠消息中通知其他成员设备同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址时,确定需要同步对应端口信息为本成员设备的端口号的MAC地址,且同步对应端口信息为聚合组标识的MAC地址。\n[0094] 较佳地,\n[0095] 处理单元404,具体用于根据接收单元403接收到的广播报文的源MAC地址,以及广播报文中携带的VLAN ID和端口信息在本地MAC地址表项中进行匹配;如果完全匹配,若该源MAC地址对应的MAC地址的状态为老化状态,更新为激活状态;如果匹配到源MAC地址和VLAN ID,且未匹配到该源MAC地址对应的端口信息,进行MAC Move处理;否则,将该广播报文的源MAC地址,以及该广播报文携带的端口信息和VLAN ID绑定学习到所述MAC地址表项中。\n[0096] 上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。\n[0097] 综上所述,本发明具体实施例中成员设备获知需要同步MAC地址时,批量读取待同步的MAC地址,并同步待同步的MAC地址中需要同步的MAC地址,在同步需要同步的MAC地址时,根据该MAC地址,以及该MAC地址对应的VLANID和端口信息构建广播报文进行MAC地址的同步;该成员设备在接收到MAC地址通过的广播报文时,根据广播报文的内容进行硬件MAC地址学习,使用该方法,在MAC地址同步时能够降低CPU的消耗。\n[0098] 同时本发明具体实施例中还给出了成员设备接收到同步MAC地址的广播报文后,如何通过硬件进行MAC地址学习。\n[0099] 整个同步过程完全不使用IPC等板间通信手段,不用软件组织MAC地址同步数据包,也不用解析MAC地址同步数据包。根本上降低MAC地址同步CPU消耗。解决MAC硬件学习方式下,MAC地址高效同步方法,有效支持堆叠系统在大MAC应用场景的强壮性。\n[0100] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-05-10
专利权人的姓名或者名称、地址的变更
专利权人由杭州华三通信技术有限公司变更为新华三技术有限公司
地址由310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地变更为310052 浙江省杭州市滨江区长河路466号
- 2016-08-17
- 2014-02-12
实质审查的生效
IPC(主分类): H04L 29/12
专利申请号: 201310350354.4
申请日: 2013.08.12
- 2013-11-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-02-16
|
2003-07-31
| | |
2
| |
2008-05-14
|
2007-12-18
| | |
3
| | 暂无 |
2002-12-10
| | |
4
| |
2010-09-15
|
2010-04-16
| | |
5
| |
2010-09-01
|
2009-02-27
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |