一种报文转发方法及设备的制作方法

文档序号:8004453阅读:196来源:国知局
一种报文转发方法及设备的制作方法
【专利摘要】本发明公开了一种报文转发方法及设备,在大二层网络的控制平面,各个节点设备通过一可达大二层网络中所有节点设备的广播树,将新学习到的本地MAC地址以及该MAC地址所属的VLAN通告给其他节点设备;节点设备从该广播树接收其他节点设备通告的其他节点设备的本地MAC地址,并根据预先基于该大二层网络协议生成的大二层网络转发表项,生成原始MAC地址转发表项;在大二层网络的数据平面,节点设备接收到单播数据报文后,根据该单播数据报文的目的MAC地址及所属VLAN,在该原始MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发该单播数据报文而不进行大二层网络协议封装。在本发明中,实现了基于大二层网络的L2单播流量转发。
【专利说明】一种报文转发方法及设备

【技术领域】
[0001] 本发明涉及通信领域的组播技术,尤其涉及一种报文转发方法及设备。

【背景技术】
[0002] 传统的三层数据中心架构中采用STP (Spanning Tree Protocol,生成树协议)来 优化客户端到服务器的路径和支持连接冗余。由于STP的收敛性能等原因,一般情况下STP 的网络规模不会超过100台交换机。同时由于STP需要阻塞冗余设备和链路,也降低了网 络资源带宽利用率。传统的基于STP备份设备和链路方案已经不能满足数据中心规模、带 宽的需求,并且STP协议几秒至几分钟的故障收敛时间,也不能满足数据中心的可靠性要 求。因此,需要能够有新的技术,在满足二层网络规模的同时,也能够充分利用冗余设备和 链路,提升链路利用率,而且数据中心的故障收敛时间能够降低到亚秒甚至毫秒级。
[0003] 虚拟化能够有效地提高服务器的利用率,降低能源消耗,降低客户的运维成本,所 以虚拟化技术得到了极大的发展。虚拟化给数据中心带来的不仅是服务器利用率的提高, 还有网络架构的变化。虚拟机(Virtual Machine, VM)迁移技术可以使数据中心的计算资 源得到灵活的调配,进一步提高虚拟机资源的利用率。但是虚拟机迁移要求虚拟机迁移前 后的IP和MAC (Media Access Control,介质访问控制)地址不变,这就需要虚拟机迁移前 后的网络处于同一个二层域内部。由于客户要求虚拟机迁移的范围越来越大,甚至是跨越 不同地域、不同机房之间的迁移,所以使得数据中心二层网络的范围越来越大,甚至出现了 大规模二层网络(下文中简称为大二层网络)这一新领域专题。
[0004] 隧道技术能够实现覆盖多个接入交换机和核心交换机的数据中心内的大二层网 络。隧道技术的典型代表是 TRILL (TRansparent Interconnection of Lots of Links, 多链路透明互联)和SPB (Shortest Path Bridging,最短路径桥)技术,两者均是通过借用 IS-IS (Intermediate System to Intermediate System,中间系统到中间系统)路由协议 的计算和转发模式,实现二层网络的大规模扩展。这些技术目前正在标准化过程中,同时传 统交换机不仅需要软件升级,还需要硬件支持。
[0005] 现有大二层组网技术中,L2单播/广播流量需要进行大二层协议封装后转发,当 大二层组网技术与其他技术共存组网时对芯片要求较高,如802. IBr技术和Trill技术共 存组网时,报文从802. IBr封装进入Trill网络时,需要先去掉802. IBr的E-tag封装,再换 成Trill封装;反向从Trill网络进入802. IBr网络时,需要去掉Trill封装,再换成E-tag 封装。当前商用芯片支持不了在一个pipeline处理以上流程,即无法在一个pipeline中 对报文先去掉E-tag封装(Trill封装),再换成Trill封装(E-tag封装)的流程,限制了 Trill/802. IBr等技术的实际部署。
[0006] 现有技术中,当大二层组网技术和其他技术共存组网时,通常采用在芯片上设铬 回环口的方式,将添加/删除完一种封装的流量经回环口再次送入芯片进行二次处理,添 加/删除另外一种封装。其中,802. IBr技术与Trill技术共存组网时处理流程可以如图1 所示。
[0007] 现有技术中,大二层组网技术和其他技术共存组网时的处理方式,需要额外配铬 回环口,浪费设备端口,同时回环口成为系统的转发瓶颈,性能低,延迟大。


【发明内容】

[0008] 本发明实施例提供一种报文转发方法及设备,用以使大二层网络设备转发L2单 播/广播流量。
[0009] 为了达到以上目的,本发明实施例提供了一种报文转发方法,应用于多个节点设 备基于大二层网络协议组建的大二层网络中,该方法包括:
[0010] 各个节点设备通过一可达所述大二层网络中的所有节点设备的广播树,将新学习 到的本地MAC地址以及所属VLAN通告给其他节点设备,所述本地MAC地址包括从本设备连 接的用户网络侧学习到的MAC地址;
[0011] 所述节点设备从所述广播树上接收其他节点设备通告的所述其他节点设备新学 习到的第一 MAC地址以及所属第一 VLAN后,根据所述其他节点设备的大二层网络标识,查 询预先基于所述大二层网络协议生成的大二层网络转发表,确定所述其他节点设备对应的 出接口,进而生成所述第一 MAC地址对应的原始MAC地址转发表项,其中,所述原始MAC地 址转发表项中的VLAN为所述第一 VLAN、目的MAC地址为所述第一 MAC地址、出接口为所述 其他节点设备对应的出接口;
[0012] 所述节点设备接收到单播数据报文后,根据所述单播数据报文的目的MAC地址及 所属VLAN,在所述原始MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发 所述单播数据报文而不进行大二层网络协议封装。
[0013] 其中,所述根据所述其他节点设备的大二层网络标识,查询预先基于所述大二层 网络协议生成的大二层网络转发表,确定所述其他节点设备对应的出接口,包括 :
[0014] 以所述其他节点设备的大二层网络标识为目的节点设备,从所述大二层网络转发 表中,查找到所述其他节点设备的大二层网络标识对应的转发表项;
[0015] 若查找到的转发表项中仅包括一个出接口,则将查找到的出接口,作为所述其他 节点设备对应的出接口;
[0016] 若查找到的转发表项中包括两个以上的出接口,则将该两个以上的出接口形成一 个聚合端口,并将该聚合端口作为所述其他节点设备对应的出接口。
[0017] 其中,所述通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网 络协议封装,包括:
[0018] 若匹配表项的出接口为聚合端口,则通过HASH算法选择所述聚合端口的一个成 员端口,并通过所选择的成员端口,直接转发所述单播数据报文而不进行大二层网络协议 封装。
[0019] 其中,还包括:
[0020] 各个节点设备还通过所述广播树,将发生老化的本地MAC地址以及所属VLAN通告 给其他节点设备;
[0021] 节点设备从所述广播树上接收其他节点设备通告的所述其他节点设备处发生老 化的第二MAC地址以及所属VLAN,并从所述原始MAC地址转发表项中,删除所述第二MAC地 址以及所属VLAN所对应的转发表项。
[0022] 其中,各个节点设备针对自身不同的接口与VLAN的组合,分别配铬一个对应的 MAC地址池,用于维护在该对应接口上学习到的归属于对应VLAN的本地MAC地址;
[0023] 各个节点设备在新学习到本地MAC地址时,若对应MAC地址池中未包含有该新学 习到的本地MAC地址时,则将新学习到的本地MAC地址增加到MAC地址池中,以及,在本地 MAC地址发生老化的一段预设时间后,将老化的本地MAC地址从对应MAC地址池中删除;
[0024] 各个节点设备,进一步在MAC地址池中增加了新学习到的本地MAC地址时,通过 所述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备;以及,在MAC 地址池中删除了老化的本地MAC地址时,通过所述广播树,将老化的本地MAC地址以及所属 VLAN通告给其他节点设备。
[0025] 其中,该方法还包括:
[0026] 在节点设备上设铬VLAN的广播域范围,其中,所述广播域范围包括该节点设备上 允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接 口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的;
[0027] 节点设备接收到待广播数据报文后,确定所述待广播数据报文所属VLAN,并在该 VLAN的广播域范围所包括的除接收端口外的其他端口上,直接转发所述待广播数据报文而 不进行大二层网络协议封装,其中,所述待广播数据报文包括未知单播报文、广播数据报文 和未知组播报文。
[0028] 其中,在所述大二层网络的网络拓扑变化,导致大二层网络转发表和/或VLAN裁 剪树发生更新后,该方法还包括:
[0029] 所述节点设备在大二层网络转发表中的转发表项的出接口发生更新时,更新对应 的原始MAC地址转发表项的出接口;
[0030] 所述节点设备在大二层网络转发表中的转发表项被删除时,确定被删除的转发表 项的目的节点设备以及归属于该目的节点设备的本地MAC地址,进而删除该目的节点设备 的本地MAC地址对应的原始MAC地址转发表项;
[0031 ] 所述节点设备在VLAN裁剪树发生更新后,根据更新后的VLAN裁剪树,重新设铬对 应VLAN的广播域范围。
[0032] 本发明实施例还提供了一种大二层网络设备,作为节点设备应用于多个节点设备 基于大二层网络协议组建的大二层网络,该大二层网络设备包括:
[0033] 地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,将 所述大二层网络设备新学习到的本地MAC地址以及所属VLAN通告给其他节点设备,所述本 地MAC地址包括从本设备连接的用户网络侧学习到的MAC地址;
[0034] 表项维护模块,用于在所述大二层网络设备从所述广播树上接收其他节点设备通 告的所述其他节点设备新学习到的第一 MAC地址以及所属第一 VLAN后,根据所述其他节点 设备的大二层网络标识,查询预先基于所述大二层网络协议生成的大二层网络转发表,确 定所述其他节点设备对应的出接口,进而生成所述第一 MAC地址对应的原始MAC地址转发 表项,其中,所述原始MAC地址转发表项中的VLAN为所述第一 VLAN、目的MAC地址为所述第 一 MAC地址、出接口为所述所述其他节点设备对应的出接口;
[0035] 报文转发模块,用于在所述大二层网络设备接收到单播数据报文后,根据所述单 播数据报文的目的MAC地址及所属VLAN,在所述原始MAC地址转发表项中进行匹配,并通过 匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。
[0036] 其中,所述表项维护模块具体用于,通过以下方式实现根据所述其他节点设备的 大二层网络标识,查询预先基于所述大二层网络协议生成的大二层网络转发表,确定所述 其他节点设备对应的出接口:
[0037] 以所述其他节点设备的大二层网络标识为目的节点设备,从所述大二层网络转发 表中,查找到所述其他节点设备的大二层网络标识对应的转发表项;
[0038] 若查找到的转发表项中仅包括一个出接口,则将查找到的出接口,作为所述其他 节点设备对应的出接口;
[0039] 若查找到的转发表项中包括两个以上的出接口,则将该两个以上的出接口形成一 个聚合端口,并将该聚合端口作为所述其他节点设备对应的出接口。
[0040] 其中,所述报文转发模块具体用于,通过以下方式实现通过匹配表项的出接口直 接转发所述单播数据报文而不进行大二层网络协议封装:
[0041] 若匹配表项的出接口为聚合端口,则通过HASH算法选择所述聚合端口的一个成 员端口,并通过所选择的成员端口,直接转发所述单播数据报文而不进行大二层网络协议 封装。
[0042] 其中,所述地址管理模块还用于,通过所述广播树,将发生老化的本地MAC地址以 及所属VLAN通告给其他节点设备;
[0043] 所述表项维护模块还用于,从所述广播树上接收其他节点设备通告的所述其他节 点设备处发生老化的第二MAC地址以及所属VLAN,并从所述原始MAC地址转发表项中,删除 所述第二MAC地址以及所属VLAN所对应的转发表项。
[0044] 其中,该大二层网络设备针对自身不同的接口与VLAN的组合,分别配铬一个对应 的MAC地址池,用于维护在该对应接口上学习到的归属于对应VLAN的本地MAC地址;
[0045] 所述地址管理模块具体用于,在新学习到本地MAC地址时,若对应MAC地址池中未 包含有该新学习到的本地MAC地址时,则将新学习到的本地MAC地址增加到MAC地址池中, 以及,在本地MAC地址发生老化的一段预设时间后,将老化的本地MAC地址从对应MAC地址 池中删除;在MAC地址池中增加了新学习到的本地MAC地址时,通过所述广播树,将新学习 到的本地MAC地址以及所属VLAN通告给其他节点设备;以及,在MAC地址池中删除了老化 的本地MAC地址时,通过所述广播树,将老化的本地MAC地址以及所属VLAN通告给其他节 点设备。
[0046] 其中,所述报文转发模块还用于,
[0047] 在节点设备上设铬VLAN的广播域范围,其中,所述广播域范围包括该节点设备上 允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接 口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的;
[0048] 接收到待广播数据报文后,确定所述待广播数据报文所属VLAN,并在该VLAN的广 播域范围所包括的除接收端口外的其他端口上,直接转发所述待广播数据报文而不进行大 二层网络协议封装,其中,所述待广播数据报文包括未知单播报文、广播数据报文和未知组 播报文。
[0049] 其中,所述表项维护模块还用于,在所述大二层网络的网络拓扑变化,导致大二层 网络转发表发生更新后,若大二层网络转发表中的转发表项的出接口发生更新,更新对应 的原始MAC地址转发表项的出接口;若大二层网络转发表中的转发表项被删除,确定被删 除的转发表项的目的节点设备以及归属于该目的节点设备的本地MAC地址,进而删除该目 的节点设备的本地MAC地址对应的原始MAC地址转发表项;
[0050] 所述报文转发模块还用于,在所述大二层网络的网络拓扑变化,导致VLAN裁剪树 发生更新后,根据更新后的VLAN裁剪树,重新设铬对应VLAN的广播域范围。
[0051] 本发明上述实施例中,各个节点设备通过一可达所述大二层网络中的所有节点设 备的广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备;所述节点设 备从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的第一 MAC地址 以及所属第一 VLAN后,根据所述其他节点设备的大二层网络标识,查询预先基于所述大二 层网络协议生成的大二层网络转发表,确定所述其他节点设备对应的出接口,进而生成所 述第一 MAC地址对应的原始MAC地址转发表项;所述节点设备接收到单播数据报文后,根据 所述单播数据报文的目的MAC地址及所属VLAN,在所述原始MAC地址转发表项中进行匹配, 并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装,实现 了基于大二层网络的L2单播流量转发,而且,L2单播流量在大二层网络内转发时,无需进 行大二层网络协议封装。

【专利附图】

【附图说明】
[0052] 图1为现有技术中802. IBr技术与Trill技术共存组网时处理流程示意图;
[0053] 图2为本发明实施例提供的一种Trill组网的架构示意图;
[0054] 图3为本发明实施例提供的一种Trill组网中VLAN广播域的示意图;
[0055] 图4为本发明实施例提供的一种二层单播报文转发方法的流程示意图;
[0056] 图5为本发明实施例提供的一种Trill组网中链路故障的示意图;
[0057] 图6为本发明实施例提供的一种Trill组网中节点设备故障的示意图;
[0058] 图7为本发明实施例提供的一种大二层网络设备的结构示意图。

【具体实施方式】
[0059] 本发明实施例提供的报文转发技术中,在大二层网络的控制平面,各个节点设备 通过一可达大二层网络中所有节点设备的广播树,将新学习到的本地MAC地址以及该MAC 地址所属的VLAN通告给其他节点设备;节点设备从该广播树接收其他节点设备通告的其 他节点设备的本地MAC地址,并根据预先基于该大二层网络协议生成的大二层网络转发表 项,生成原始MAC地址转发表项;在大二层网络的数据平面,节点设备接收到单播数据报文 后,根据该单播数据报文的目的MAC地址及所属VLAN,在该原始MAC地址转发表项中进行匹 配,并通过匹配表项的出接口直接转发该单播数据报文而不进行大二层网络协议封装。
[0060] 其中,节点设备的本地MAC地址包括该节点设备从该节点设备连接的用户网络侧 学习到的MAC地址;节点设备的原始MAC地址转发表项的目的MAC地址为上述其他节点设 备的本地MAC地址,出接口为上述大二层网络转发表项中去往该其他节点设备的出接口。
[0061] 具体的,在本发明实施例中,当大二层网络中任一节点设备接收到其他节点设备 通告的该其他节点设备新学习到的第一MAC地址以及所属的第一 VLAN时,根据该其他节点 设备的大二层网络标识,查询预先基于大二层网络协议生成的大二层网络转发表,确定该 其他节点设备对应的出接口,进而生成该第一 MAC地址对应的原始MAC地址转发表项。
[0062] 其中,节点设备确定其他节点设备对应的出接口具体可以通过以下方式实现:
[0063] 节点设备可以从大二层网络转发表中,查找到该其他节点设备的大二层网络标识 对应的转发表项;若查找的转发表项中仅包括一个出接口,则将查找到的出接口,作为其他 节点设备对应的出接口;若查找到的转发表项中包括两个以上的出接口,则将该两个以上 的出接口形成一个聚合端口,并将该聚合端口作为其他节点设备对应的出接口。其中,上述 转发表项中包括的两个以上的出接口可以是以等价多路径(ECMP)的形式存在。
[0064] 相应地,当节点设备需要通过匹配表项的出接口转发单播数据报文时,若匹配表 项的出接口为聚合端口,则可以通过HASH (哈希)算法选择该聚合端口的一个成员端口,并 通过所选择的成员端口,直接转发该单播数据报文而不进行大二层网络协议封装。
[0065] 进一步地,在本发明实施例中,当节点设备的本地MAC地址老化时,节点设备也需 要将发生老化的本地MAC地址以及所属VLAN通告给其他节点设备,由其他节点设备删除发 生老化的MAC地址以及所属VLAN所对应的转发表项。
[0066] 具体的,各个节点设备可以通过广播树,将发生老化的本地MAC地址以及所属 VLAN通告给其他节点设备;当节点设备从广播树上接收到其他节点设备处发生老化的MAC 地址(第二MAC地址)以及所属VLAN时,从原始MAC地址转发表中,删除该第二MAC地址以 及所属VLAN所对应的转发表项。
[0067] 本发明实施例中,节点设备在MAC地址老化时,可以通过通告报文在节点之间进 行MAC地址同步。实际应用中有可能出现MAC地址假老化的情形。所谓MAC地址假老化, 是指终端数据发送报文后,间隔一段较长时间(大于MAC地址老化时间)而不再发送报文,然 后再次发送报文,反复如此,导致该终端的MAC地址在节点设备的端口上被学习、老化、再 学习、再老化……,其中每一次老化或学习过程都会引发通告报文的发送。
[0068] 为了降低MAC地址频繁假老化所引发的通告报文发送数量,减轻节点设备的CPU 处理负担,本实施例中各个节点设备可以针对自身不同的接口与VLAN的组合,分别配铬一 对应的MAC地址池,用于维护在该对应接口上学习到的归属于对应VLAN的本地MAC地址;
[0069] 各个节点设备在新学习到本地MAC地址,例如在MAC转发表项中记录新学习到的 MAC地址并建立对应的老化定时器后,若对应MAC地址池中未包含有该新学习到的本地MAC 地址时,则将新学习到的本地MAC地址增加到MAC地址池中。在本地MAC地址发生老化的 一段预设时间后,才将老化的本地MAC地址从对应MAC地址池中删除,也就是说,在MAC转 发表项中的MAC地址因老化定时器超时而老化后,再过一段预设时间,才将该MAC地址从对 应MAC地址池中删除。
[0070] 相应的,各个节点设备,进一步在MAC地址池中增加了新学习到的本地MAC地址 时,通过所述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备;以 及,在MAC地址池中删除了老化的本地MAC地址时,通过所述广播树,将老化的本地MAC地 址以及所属VLAN通告给其他节点设备。也就是说,MAC转发表项中的MAC地址老化并不会 直接触发通告报文的发送,而是等待该MAC地址从MAC地址池中删除后,才去发送对应的通 告报文。
[0071] 下面以数据中心内的Trill技术为例,对本发明实施例所提供的报文转发技 术方案进行详细描述,相关原理同样适用于其他的大二层组网技术,如Vxlan (virtual Extended VLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),IETF 的 draft (草案))、SPB技术等。
[0072] 采用Trill技术构建的数据中心大二层网络,通常分为核心层、接入层。通常,运 行Trill协议的设备称为RBridge (即Routing Bridge,具有路由转发特性的网桥设备,也 称为路由桥,以下简称RB),RB构成Trill域(即Trill网络)。RB通过运行链路状态协议 认知Trill域的拓扑,并使用最短路径树算法生成从该RB到达Trill网络内的其它各个RB 的nickname路由转发表(简称为Trill路由表,包括nickname单播路由表和组播表)。
[0073] 在本发明实施例中,Trill域中各RB使用Trill控制协议进行nickname路由计 算时,生成的Trill路由表仅在控制平面保留,而不下发数据转发平面(即在软件上保留, 而不下发硬件)。
[0074] 相应地,由于Trill域中各RB的硬件转发表中没有nickname转发表项,因此,当 Trill 域中各 RB 使用 ESADI (End Station Address Information,用于终端 MAC 地址在 各个RB之间主动同步的协议)协议报文对各RB的本地MAC地址进行相互通告和同步时, ESADI协议报文需要被送往CPU进行软件转发和处理。其中,可以在控制平面上预先生成一 棵Tri 11的广播树,不做任何裁剪,所有节点(Tri 11域内各RB)可达,专门用来转发ESADI 协议报文。
[0075] 需要注意的是,对于MAC地址自动学习(硬件学习源MAC地址),一方面其学习的表 项并不一定是正确的表项,容易形成环路而导致广播风暴,另一方面,MAC地址自动学习过 程中报文不一定会上送CPU,导致无法将相应的MAC地址通过ESADI协议报文同步给远端设 备。
[0076] 例如,一个报文的源MAC地址为0-0-1,目的MAC地址为0-0-2,若不禁止MAC地 址自动学习,RB从portl接收到该报文后,查找MAC表,发现存在0-0-2对应的表项,指向 port2。若不禁止MAC地址自动学习,RB的硬件将自动学习源MAC地址与接收端口的对应 关系,直接添加0-0-l->P〇rt 1的MAC转发表项,然后将报文直接通过port2转发,在该过程 中,不会将报文上送CPU,即RB的CPU对此并不感知,导致无法通过ESADI协议报文对该MAC 地址进行同步。
[0077] 基于此,在本发明实施例中,对于Trill域内所有用户侧端口,需要禁止MAC自动 学习(禁止硬件学习),改为软件学习或者手工配铬MAC地址或者协议自动生成原始MAC地 址转发表项的方式。以软件学习为例,报文进入端口后,先上CPU,由CPU分析报文的源MAC 地址,添加MAC表项给硬件。其中,报文上CPU后,CPU可以提取报文的源MAC地址,除了添 加本地转发表项之外,还会通过地址同步机制,向其他的远端节点进行同步。
[0078] 而对于允许Trill报文通过的端口,如Trill 口和Hybrid (混杂)口,在本发明实 施例中,则需要禁止其学习(包括软件、硬件学习)MAC地址,改为手工配铬或者协议自动生 成原始MAC地址转发表项的方式。例如,接收到远端节点扩散过来的MAC地址后,需要根据 拓扑信息计算本端节点到该MAC地址的路径,若存在多条,则需要添加一条ECMP表项,比如 该MAC地址通过link (链路)1扩散到本端节点,但是经过计算,发现linkl,2, 3都是到达 该MAC地址的路径,则下发表项时需要把linkl,2, 3聚合后作为到达该MAC地址的出端口。
[0079] 此外,使用ESADI协议同步MAC地址时,所有节点(包括传输节点(即transit节 点))都需要处理ESADI报文。
[0080] Trill域内各RB收到其他RB发送的ESADI协议报文后,提取其中携带的MAC地 址、VLAN信息以及该其他RB的nickname信息,并根据该nickname查询对应的nickname路 由表,确定该nickname对应的出端口,然后根据所确定的出接口、所提取的MAC地址及VLAN 信息,生成原始MAC地址转发表项并下发数据转发平面。
[0081] 具体的,可以用ESADI协议报文中携带的MAC+VLAN替换对应的nickname路由表 项中的nickname,若该nickname路由表项的出端口为单个出端口,则对应的MAC表项中出 端口直接使用该nickname路由表项的出端口;若该nickname路由表项有等价路由,则对应 的MAC表项中的出端口可以为该nickname路由表项中各端口(各等价路由对应的端口)对 应的聚合端口。
[0082] 当Trill域内各RB转发接收到的数据报文时,不对该报文进行Trill封装,而根 据对应的原始MAC转发表项对报文直接进行转发;若根据报文的目的MAC地址查询到的 MAC转发表项的出端口为单端口时,则将该报文从该出端口转发出去;若根据报文的目的 MAC地址查询到的MAC转发表项的出端口为聚合端口,则可以通过对应的聚合链路的hash 分担,选择聚合链路的某条子链路对应的端口对该报文进行转发。
[0083] 需要注意的是,在本发明实施例中,MAC表项中的聚合端口和传统聚合端口的不同 之处在于:传统的聚合链路两端的设备都需要配铬聚合,而本发明实施例中的聚合链路只 需要从一侧设备的角度看是聚合链路即可,对端不一定需要是聚合链路。
[0084] 通过以上流程可以看出,当大二层网络的节点设备接收到二层单播报文时,不需 要对该二层单播报文进行大二层协议封装,而是根据该二层单播报文的目的MAC地址在硬 件上查询对应的MAC转发表项,并根据查询到的MAC转发表项将该二层单播报文以native (原生)形式对该报文进行转发,当大二层组网技术和其他技术共存组网时,以802. IBr技术 与Trill技术共存组网为例,报文从802. IBr网络进入Trill网络时,仅需要去掉E-tag封 装,而不需要进行Trill封装,即可实现报文在Trill网络内的转发;反向从Trill网络进 入802. IBr网络时,由于报文未进行Trill封装,因此,只需对该报文进行802. IBr的E-tag 封装,即可实现报文在802. IBr网络内的转发,有效规避了芯片中一个pipeline中无法同 时处理先去掉E-tag封装(Trill封装),再换成Trill封装(E-tag封装)的流程的缺陷,在 不需额外配铬回环口的前提下,实现了大二层组网技术和其他技术共存组网的报文转发。
[0085] 为了更清楚地说明本发明实施例,下面以图2所示的Trill组网架构为例,说明本 发明实施例提供的报文转发技术的具体实现过程。
[0086] 如图2所示,为本发明实施例提供的一种的Trill组网的架构示意图,其中:
[0087] 各接入层设备(S卩access节点)的nickname分别为nickname-1、 nickname-2^ ......、nickname_n ;
[0088] 各核心层设备(即 core 节点)的 nickname 分别为 nickname-gl、nickname_g2、 nickname_g3 和 nickname_g4 ;
[0089] 各接入层设备上的MAC地址如下:
[0090] nickname-1 (即 nickname 为 nickname-1 的设备,下同)上有 VLANl/macl、VLAN2/ mac2、VLAN3/mac3 ;
[0091] nickname-4 上有 VLANl/mac4、VLAN2/mac5、VLAN3/mac6 ;
[0092] nickname-(n_l)上有 VLANlO/mac 10 ;
[0093] nickname-n 上有 VLANl/mac7、VLAN2/mac8、VLAN3/mac9 ;
[0094] L3网关在各个核心层设备上,各核心层设备上都有VLAN1、VLAN2和VLAN3。以 nickname-gl 为例,其上的 L3 接口的 MAC 地址为:VLANl/mac-vl、VLAN2/mac-v2、VLAN3/ mac-v3〇
[0095] Trill域内所有RB上均配铬有L21 SIS协议,各RB通过L21 SIS协议计算Trill域 的nickname单播路由表和组播表,且该nickname单播路由表和组播表仅在软件上保留,不 下发给硬件。其中,图2所示组网中,nickname-1生成的到部分其他节点的单播路由表可 以如表1所示:
[0096] 表 1
[0097]

【权利要求】
1. 一种报文转发方法,应用于多个节点设备基于大二层网络协议组建的大二层网络 中,其特征在于,该方法包括 : 各个节点设备通过一可达所述大二层网络中的所有节点设备的广播树,将新学习到的 本地MAC地址以及所属VLAN通告给其他节点设备,所述本地MAC地址包括从本设备连接的 用户网络侧学习到的MAC地址; 所述节点设备从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到 的第一MAC地址以及所属第一VLAN后,根据所述其他节点设备的大二层网络标识,查询预 先基于所述大二层网络协议生成的大二层网络转发表,确定所述其他节点设备对应的出接 口,进而生成所述第一MAC地址对应的原始MAC地址转发表项,其中,所述原始MAC地址转 发表项中的VLAN为所述第一VLAN、目的MAC地址为所述第一MAC地址、出接口为所述所述 其他节点设备对应的出接口; 所述节点设备接收到单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述原始MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述 单播数据报文而不进行大二层网络协议封装。
2. 如权利要求1所述的方法,其特征在于,所述根据所述其他节点设备的大二层网络 标识,查询预先基于所述大二层网络协议生成的大二层网络转发表,确定所述其他节点设 备对应的出接口,包括 : 以所述其他节点设备的大二层网络标识为目的节点设备,从所述大二层网络转发表 中,查找到所述其他节点设备的大二层网络标识对应的转发表项; 若查找到的转发表项中仅包括一个出接口,则将查找到的出接口,作为所述其他节点 设备对应的出接口; 若查找到的转发表项中包括两个以上的出接口,则将该两个以上的出接口形成一个聚 合端口,并将该聚合端口作为所述其他节点设备对应的出接口。
3. 如权利要求2所述的方法,其特征在于,所述通过匹配表项的出接口直接转发所述 单播数据报文而不进行大二层网络协议封装,包括: 若匹配表项的出接口为聚合端口,则通过HASH算法选择所述聚合端口的一个成员端 口,并通过所选择的成员端口,直接转发所述单播数据报文而不进行大二层网络协议封装。
4. 如权利要求1所述的方法,其特征在于,还包括: 各个节点设备还通过所述广播树,将发生老化的本地MAC地址以及所属VLAN通告给其 他节点设备; 节点设备从所述广播树上接收其他节点设备通告的所述其他节点设备处发生老化的 第二MAC地址以及所属VLAN,并从所述原始MAC地址转发表项中,删除所述第二MAC地址以 及所属VLAN所对应的转发表项。
5. 如权利要求1所述的方法,其特征在于,各个节点设备针对自身不同的接口与VLAN 的组合,分别配铬一对应的MAC地址池,用于维护在该对应接口上学习到的归属于对应 VLAN的本地MAC地址; 各个节点设备在新学习到本地MAC地址时,若对应MAC地址池中未包含有该新学习到 的本地MAC地址时,则将新学习到的本地MAC地址增加到MAC地址池中,以及,在本地MAC 地址发生老化的一段预设时间后,将老化的本地MAC地址从对应MAC地址池中删除; 各个节点设备,进一步在MAC地址池中增加了新学习到的本地MAC地址时,通过所述广 播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备;以及,在MAC地址池 中删除了老化的本地MAC地址时,通过所述广播树,将老化的本地MAC地址以及所属VLAN 通告给其他节点设备。
6. 如权利要求1所述的方法,其特征在于,该方法还包括: 在节点设备上设铬VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许 该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口, 所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的; 节点设备接收到待广播数据报文后,确定所述待广播数据报文所属VLAN,并在该VLAN的广播域范围所包括的除接收端口外的其他端口上,直接转发所述待广播数据报文而不进 行大二层网络协议封装,其中,所述待广播数据报文包括未知单播报文、广播数据报文和未 知组播报文。
7. 如权利要求6所述的方法,其特征在于,在所述大二层网络的网络拓扑变化,导致大 二层网络转发表和/或VLAN裁剪树发生更新后,该方法还包括: 所述节点设备在大二层网络转发表中的转发表项的出接口发生更新时,更新对应的原 始MAC地址转发表项的出接口; 所述节点设备在大二层网络转发表中的转发表项被删除时,确定被删除的转发表项的 目的节点设备以及归属于该目的节点设备的本地MAC地址,进而删除该目的节点设备的本 地MAC地址对应的原始MAC地址转发表项; 所述节点设备在VLAN裁剪树发生更新后,根据更新后的VLAN裁剪树,重新设铬对应VLAN的广播域范围。
8. -种大二层网络设备,作为节点设备应用于多个节点设备基于大二层网络协议组建 的大二层网络,其特征在于,该大二层网络设备包括: 地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,将所述 大二层网络设备新学习到的本地MAC地址以及所属VLAN通告给其他节点设备,所述本地 MAC地址包括从本设备连接的用户网络侧学习到的MAC地址; 表项维护模块,用于在所述大二层网络设备从所述广播树上接收其他节点设备通告的 所述其他节点设备新学习到的第一MAC地址以及所属第一VLAN后,根据所述其他节点设备 的大二层网络标识,查询预先基于所述大二层网络协议生成的大二层网络转发表,确定所 述其他节点设备对应的出接口,进而生成所述第一MAC地址对应的原始MAC地址转发表项, 其中,所述原始MAC地址转发表项中的VLAN为所述第一VLAN、目的MAC地址为所述第一MAC 地址、出接口为所述所述其他节点设备对应的出接口; 报文转发模块,用于在所述大二层网络设备接收到单播数据报文后,根据所述单播数 据报文的目的MAC地址及所属VLAN,在所述原始MAC地址转发表项中进行匹配,并通过匹配 表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。
9. 如权利要求8所述的大二层网络设备,其特征在于,所述表项维护模块具体用于,通 过以下方式实现根据所述其他节点设备的大二层网络标识,查询预先基于所述大二层网络 协议生成的大二层网络转发表,确定所述其他节点设备对应的出接口: 以所述其他节点设备的大二层网络标识为目的节点设备,从所述大二层网络转发表 中,查找到所述其他节点设备的大二层网络标识对应的转发表项; 若查找到的转发表项中仅包括一个出接口,则将查找到的出接口,作为所述其他节点 设备对应的出接口; 若查找到的转发表项中包括两个以上的出接口,则将该两个以上的出接口形成一个聚 合端口,并将该聚合端口作为所述其他节点设备对应的出接口。
10. 如权利要求9所述的大二层网络设备,其特征在于,所述报文转发模块具体用于, 通过以下方式实现通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网 络协议封装: 若匹配表项的出接口为聚合端口,则通过HASH算法选择所述聚合端口的一个成员端 口,并通过所选择的成员端口,直接转发所述单播数据报文而不进行大二层网络协议封装。
11. 如权利要求8所述的大二层网络设备,其特征在于, 所述地址管理模块还用于,通过所述广播树,将发生老化的本地MAC地址以及所属VLAN通告给其他节点设备; 所述表项维护模块还用于,从所述广播树上接收其他节点设备通告的所述其他节点设 备处发生老化的第二MAC地址以及所属VLAN,并从所述原始MAC地址转发表项中,删除所述 第二MAC地址以及所属VLAN所对应的转发表项。
12. 如权利要求8所述的大二层网络设备,其特征在于,该大二层网络设备针对自身不 同的接口与VLAN的组合,分别配铬一对应的MAC地址池,用于维护在该对应接口上学习到 的归属于对应VLAN的本地MAC地址; 所述地址管理模块具体用于,在新学习到本地MAC地址时,若对应MAC地址池中未包 含有该新学习到的本地MAC地址时,则将新学习到的本地MAC地址增加到MAC地址池中,以 及,在本地MAC地址发生老化的一段预设时间后,将老化的本地MAC地址从对应MAC地址池 中删除;在MAC地址池中增加了新学习到的本地MAC地址时,通过所述广播树,将新学习到 的本地MAC地址以及所属VLAN通告给其他节点设备;以及,在MAC地址池中删除了老化的 本地MAC地址时,通过所述广播树,将老化的本地MAC地址以及所属VLAN通告给其他节点 设备。
13. 如权利要求8所述的大二层网络设备,其特征在于,所述报文转发模块还用于, 在节点设备上设铬VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许 该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口, 所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的; 接收到待广播数据报文后,确定所述待广播数据报文所属VLAN,并在该VLAN的广播域 范围所包括的除接收端口外的其他端口上,直接转发所述待广播数据报文而不进行大二层 网络协议封装,其中,所述待广播数据报文包括未知单播报文、广播数据报文和未知组播报 文。
14. 如权利要求13所述的大二层网络设备,其特征在于, 所述表项维护模块还用于,在所述大二层网络的网络拓扑变化,导致大二层网络转发 表发生更新后,若大二层网络转发表中的转发表项的出接口发生更新,更新对应的原始MAC 地址转发表项的出接口;若大二层网络转发表中的转发表项被删除,确定被删除的转发表 项的目的节点设备以及归属于该目的节点设备的本地MAC地址,进而删除该目的节点设备 的本地MAC地址对应的原始MAC地址转发表项; 所述报文转发模块还用于,在所述大二层网络的网络拓扑变化,导致VLAN裁剪树发生 更新后,根据更新后的VLAN裁剪树,重新设铬对应VLAN的广播域范围。
【文档编号】H04L12/741GK104378296SQ201310357090
【公开日】2015年2月25日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】宋玉兵 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1