CN104378297A - 一种报文转发方法及设备 - Google Patents

一种报文转发方法及设备 Download PDF

Info

Publication number
CN104378297A
CN104378297A CN201310357517.1A CN201310357517A CN104378297A CN 104378297 A CN104378297 A CN 104378297A CN 201310357517 A CN201310357517 A CN 201310357517A CN 104378297 A CN104378297 A CN 104378297A
Authority
CN
China
Prior art keywords
gateway node
mac address
address
vlan
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310357517.1A
Other languages
English (en)
Other versions
CN104378297B (zh
Inventor
宋玉兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201310357517.1A priority Critical patent/CN104378297B/zh
Publication of CN104378297A publication Critical patent/CN104378297A/zh
Application granted granted Critical
Publication of CN104378297B publication Critical patent/CN104378297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种报文转发方法及设备,网关节点通过一可达大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址及所属VLAN;非网关节点设备通过广播树接收到各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN后,生成对应的第一MAC地址转发表项;当非网关节点接收到目的MAC地址为网关节点的虚MAC地址的数据报文时,根据该目的MAC地址在第一MAC地址转发表项中的匹配表项,直接转发该数据报文而不进行大二层网络协议封装;网关节点接收到该数据报文,且确定该数据报文的目的MAC地址为自身虚MAC地址时,根据该数据报文的目的IP地址,查找路由表转发该数据报文。在本发明中,实现了基于大二层网络的L3单播流量转发。

Description

一种报文转发方法及设备
技术领域
本发明涉及通信领域的组播技术,尤其涉及一种报文转发方法及设备。 
背景技术
传统的三层数据中心架构中采用STP(Spanning Tree Protocol,生成树协议)来优化客户端到服务器的路径和支持连接冗余。由于STP的收敛性能等原因,一般情况下STP的网络规模不会超过100台交换机。同时由于STP需要阻塞冗余设备和链路,也降低了网络资源带宽利用率。传统的基于STP备份设备和链路方案已经不能满足数据中心规模、带宽的需求,并且STP协议几秒至几分钟的故障收敛时间,也不能满足数据中心的可靠性要求。因此,需要能够有新的技术,在满足二层网络规模的同时,也能够充分利用冗余设备和链路,提升链路利用率,而且数据中心的故障收敛时间能够降低到亚秒甚至毫秒级。 
虚拟化能够有效地提高服务器的利用率,降低能源消耗,降低客户的运维成本,所以虚拟化技术得到了极大的发展。虚拟化给数据中心带来的不仅是服务器利用率的提高,还有网络架构的变化。虚拟机(Virtual Machine,VM)迁移技术可以使数据中心的计算资源得到灵活的调配,进一步提高虚拟机资源的利用率。但是虚拟机迁移要求虚拟机迁移前后的IP和MAC(Media Access Control,介质访问控制)地址不变,这就需要虚拟机迁移前后的网络处于同一个二层域内部。由于客户要求虚拟机迁移的范围越来越大,甚至是跨越不同地域、不同机房之间的迁移,所以使得数据中心二层网络的范围越来越大,甚至出现了大规模二层网络(下文中简称为大二层网络)这一新领域专题。 
隧道技术能够实现覆盖多个接入交换机和核心交换机的数据中心内的大二层网络。隧道技术的典型代表是TRILL(TRansparent Interconnection of Lots of Links,多链路透明互联)和SPB(Shortest Path Bridging,最短路径桥)技 术,两者均是通过借用IS-IS(Intermediate System to Intermediate System,中间***到中间***)路由协议的计算和转发模式,实现二层网络的大规模扩展。这些技术目前正在标准化过程中,同时传统交换机不仅需要软件升级,还需要硬件支持。 
现有大二层组网技术中,对于大二层环境下的跨VLAN的三层转发,还没有比较好的解决办法,限制了大二层组网的实际部署。 
以Trill组网为例,当前Trill标准相关的RFC刚发布不久,配套的芯片尚不成熟,相关芯片在一个pipeline中处理完Trill后,就不能再做L3转发;执行完L3转发后,就不能再做Trill处理。 
针对该问题,现有技术中有如下两种解决方式: 
方式一、采用代理转发 
Trill板卡接收Trill报文,完成Trill终结后,若需要做L3转发,则将报文发送给L3代理板进行处理转发; 
L3代理板完成正常L3代理转发后,若有外部接收者,则将报文发送给外网;若Trill域内有接收者,报文需要再次转发到Trill板卡的专用回环口(Loopback端口),报文回环口回环后完成Trill封装,根据封装后的Trill报文查找Trill单播表,从相应的端口发送给Trill网络,其处理流程示意图可以参见图1。 
方式二、Trill/L3分离处理 
Trill域外增加一层专门的设备来执行L3转发的功能。Trill的终结点在core节点,core节点以上采用不带封装的native以太网报文转发,上行到L3设备处进行L3转发处理。 
此外,现有大二层网络技术中,对于L3转发,目前存在的网关备份协议,存在固有的分担不均的问题。对于大规模的云计算数据中心(core节点大于4个),当数据中心内部跨VLAN的L3流量较大时,会形成转发瓶颈。 
针对该问题,现有技术中,对于控制平面,通过建立备份组,并选举一个 master,客户端的所有ARP请求都只能由master回应,master根据一定的负载分担算法,为不同的ARP请求回应不同的网关ARP信息,这样不同的的主机获得的ARP回应不同。 
对于数据平面,不同主机封装的报文由于网关ARP不同,被发送给了不同的网关,从而实现不同主机流量在不同L3网关出的分担。 
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题: 
对于现有大二层环境下的跨VLAN的三层转发问题的解决方式中,方式一需要集中式处理,性能较差,且代理配置复杂,需要专门的代理板卡或回环端口,造成资源浪费;方式二中需要额外的L3设备,设备层次增加,增加了成本,同时,Trill终结点和L3网关中间的链路存在很多的环路,需要考虑环路避免技术,且L3转发处理的性能还是较低。 
对于现有网关备份协议分担不均问题的解决方式中,对于同一个客户端发送的不同数据流,无法在不同L3网关之间分担,造成分担不均。 
发明内容
本发明实施例提供一种报文转发方法及设备,用以在大二层网络中实现L3单播流量转发。 
为了达到以上目的,本发明实施例提供了一种报文转发方法,应用于多个节点设备基于大二层网络协议组建的大二层网络中,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,该方法包括: 
非网关节点通过一可达所述大二层网络中的所有节点设备的广播树,接收各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN信息; 
非网关节点根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一 MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
非网关节点接收到目的MAC地址为一网关节点的虚MAC地址的数据报文时,根据该数据报文的目的MAC地址,查找匹配的第一MAC地址转发表项,并根据查找到的匹配表项,直接转发所述数据报文而不进行大二层网络协议封装。 
其中,该方法还包括: 
在非网关节点与网关节点之间的链路中断时,非网关节点按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口; 
在网关节点宕机时,非网关节点更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。 
本发明实施例还提供了一种报文转发方法,应用于多个节点设备基于大二层网络协议组建的大二层网络中,所述多个节点设备包括作为网关节点的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,该方法包括: 
网关节点通过一可达所述大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN信息,以使非网关节点设备根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
网关节点接收到目的MAC地址为自身虚MAC地址的数据报文,所述数据报文是非网关节点根据报文的目的MAC地址,匹配所述第一MAC地址转 发表项后直接转发的且没有进行大二层网络协议封装; 
所述网关节点在判断出所述数据报文的目的MAC地址为自身虚MAC地址时,根据所述数据报文的目的IP地址,查找路由表转发所述数据报文。 
其中,该方法还包括: 
各个节点设备通过所述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备,所述本地MAC地址包括从本节点设备连接的用户网络侧学习到的MAC地址; 
网关节点从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的本地MAC地址以及所属VLAN,并根据预先基于该大二层网络协议生成的大二层网络转发表项,生成所述其他节点设备的本地MAC地址对应的第二MAC地址转发表项,所述第二MAC地址转发表项中的目的MAC地址为所述其他节点设备的本地MAC地址,出接口为所述大二层网络转发表项中去往所述其他节点的出接口; 
所述网关节点接收到目的MAC地址不是自身端口MAC地址或所述虚MAC地址的单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。 
其中,所述网关节点还与所述大二层网络外部的路由设备连接; 
在各个节点设备上设置VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的; 
网关节点在接收到所述路由设备发送的数据报文时,查找匹配所述数据报文的目的IP地址的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发所述数据报文而不进行大二层网络协议封装。 
其中,若网关节点未查找到匹配所述数据报文的目的IP地址的ARP表项, 所述方法还包括: 
所述网关节点在该数据报文对应的VLAN的广播域内,直接广播发送用于请求所述数据报文的目的IP地址对应的MAC地址的第一ARP请求报文而不进行大二层网络协议封装,所述第一ARP请求报文的发送端sender IP地址是所述网关节点的发送端口IP地址,源MAC地址及发送端MAC地址是所述网关节点的发送端口MAC地址; 
所述网关节点根据接收到的针对第一ARP请求报文的第一ARP应答报文,建立所述数据报文的目的IP地址对应的ARP表项,并根据该建立的ARP表项,转发所述数据报文而不进行大二层网络协议封装。 
其中,同一VLAN中的一个网关节点被选举为该VLAN的主网关节点,该方法还包括: 
网关节点接收到主机发送的用于请求网关节点的MAC地址的第二ARP请求报文,且确定自身为对应VLAN的主网关节点时,生成第二ARP应答报文,该第二ARP应答报文的目的MAC地址为所述主机的MAC地址,源MAC地址和发送端sender MAC地址均为所述网关节点的虚MAC地址,sender IP地址为所述网关节点的虚IP地址,以使所述主机学习并建立所述网关节点的虚IP地址与虚MAC地址之间的关联关系; 
所述网关节点根据所述ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述ARP应答报文而不进行大二层网络协议封装。 
其中,所述主网关节点的选举包括: 
同一VLAN中的各个网关节点在该VLAN内广播携带有各自端口IP地址、端口MAC地址、虚IP及虚MAC地址的邻居发现及主网关节点选举协议报文; 
同一VLAN中的各个网关节点接收其他网关节点发送的所述协议报文,选举端口IP地址和/或端口MAC地址满足预设规则的网关节点,作为所述主网关节点。 
其中,还包括: 
在非网关节点与网关节点之间的链路中断时,该网关节点更新达到该非网关节点下所有主机的ARP表项的出接口; 
在非网关节点发生宕机down时,网关节点删除该非网关节点下的所有主机的ARP表项; 
VLAN内的主网关节点down时,该VLAN内其他网关节点重新选举该VLAN内的主网关节点; 
网关节点在发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举主网关节点,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口。 
本发明实施例还提供一种网络设备,应用于多个节点设备基于大二层网络协议组建的大二层网络中,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为非网关节点应用于所述大二层网络中,该网络设备包括: 
地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,接收各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN信息; 
表项维护模块,用于根据大二层网络协议和所述地址管理模块接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
报文转发模块,用于当所述网络设备接收到目的MAC地址为一网关节点的虚MAC地址的数据报文时,根据该数据报文的目的MAC地址,查找匹配的第一MAC地址转发表项,并根据查找到的匹配表项,直接转发所述数据报文而不进行大二层网络协议封装。 
其中,所述表项维护模块还用于, 
在所述网络设备与网关节点之间的链路中断时,按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口; 
在网关节点宕机时,更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。 
本发明实施例还提供了一种网络设备,应用于多个节点设备基于大二层网络协议组建的大二层网络中,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为网关节点应用于所述大二层网络中,该网络设备包括: 
地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN信息,以使非网关节点设备根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
报文转发模块,用于当所述网络设备接收到目的MAC地址为自身虚MAC地址的数据报文,且判断出所述数据报文的目的MAC地址为自身虚MAC地址时,根据所述数据报文的目的IP地址,查找路由表转发所述数据报文;其 中,所述数据报文是非网关节点根据报文的目的MAC地址,匹配所述第一MAC地址转发表项后直接转发的且没有进行大二层网络协议封装。 
其中,该网络设备还包括:表项维护模块; 
所述地址管理模块还用于,从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的本地MAC地址以及所属VLAN;所述本地MAC地址包括从所述其他节点设备连接的用户网络侧学习到的MAC地址; 
表项维护模块,用于根据预先基于该大二层网络协议生成的大二层网络转发表项,生成所述其他节点设备的本地MAC地址对应的第二MAC地址转发表项,所述第二MAC地址转发表项中的目的MAC地址为所述其他节点设备的本地MAC地址,出接口为所述大二层网络转发表项中去往所述其他节点设备的出接口; 
所述报文转发模块还用于,当所述网络设备接收到目的MAC地址不是自身端口MAC地址或所述虚MAC地址的单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。 
其中,所述网络设备还与所述大二层网络外部的路由设备连接; 
所述大二层网络中各节点设备上设置有VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的; 
所述报文转发模块还用于,在接收到所述路由设备发送的数据报文时,查找匹配所述数据报文的目的IP地址的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发所述数据报文而不进行大二层网络协议封装。 
其中,所述报文转发模块还用于,若未查找到匹配所述数据报文的目的IP 地址的ARP表项,在该数据报文对应的VLAN的广播域内,直接广播发送用于请求所述数据报文的目的IP地址对应的MAC地址的第一ARP请求报文而不进行大二层网络协议封装,所述第一ARP请求报文的发送端sender IP地址是所述网络设备的发送端口IP地址,源MAC地址及发送端MAC地址是所述网络设备的发送端口MAC地址; 
所述表项维护模块还用于,当所述网络设备接收到根据接收到针对第一ARP请求报文的第一ARP应答报文时,建立所述数据报文的目的IP地址对应的ARP表项; 
所述报文转发模块还用于,根据所述表项维护模块建立的ARP表项,转发所述数据报文而不进行大二层网络协议封装。 
其中,同一VLAN中的一个网关节点被选举为该VLAN的主网关节点, 
所述报文转发模块还用于,当接收到主机发送的用于请求网关节点的MAC地址的第二ARP请求报文,且确定所述网络设备为对应VLAN的主网关节点时,生成第二ARP应答报文,该第二ARP应答报文的目的MAC地址为所述主机的MAC地址,源MAC地址和发送端sender MAC地址均为所述网络设备的虚MAC地址,sender IP地址为所述网络设备的虚IP地址,以使所述主机学习并建立所述网络设备的虚IP地址与虚MAC地址之间的关联关系;根据所述ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述ARP应答报文而不进行大二层网络协议封装。 
其中,所述网络设备还包括: 
选举模块,用于在所述网络设备所属的VLAN内广播携带有所述网络设备自身端口IP地址、端口MAC地址、虚IP及虚MAC地址的邻居发现及主网关节点选举协议报文;接收所述VLAN内其他网关节点发送的所述协议报文,选举端口IP地址和/或端口MAC地址满足预设规则的网关节点,作为所述主网关节点。 
其中,所述表项维护模块还用于,在非网关节点与所述网络设备之间的链路中断时,更新达到该非网关节点下所有主机的ARP表项的出接口;在非网关节点发生宕机down时,删除该非网关节点下的所有主机的ARP表项; 
所述地址管理模块还用于,在所述网络设备发现外部路由器不可达时,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口; 
所述选举模块还用于,在所述网络设备发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举主网关节点。 
本发明上述实施例中,网关节点通过一可达大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN;非网关节点设备通过该广播树接收到各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN后,根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成该虚MAC地址对应的第一MAC地址转发表项;当非网关节点接收到数据报文,且确定该数据报文的目的MAC地址为网关节点的虚MAC地址时,该非网关节点根据该数据报文的目的MAC地址,在第一MAC地址转发表中查询匹配的表项,并根据查询到的匹配表项,转发该数据报文而不进行大二层网络协议封装;网关节点接收到该数据报文,且确定该数据报文的目的MAC地址为自身虚MAC地址时,网关节点根据该数据报文的目的IP地址,查找路由表转发该数据报文,实现了基于大二层网络的L3单播流量转发。 
附图说明
图1为现有技术中一种采用代理转发解决L3转发和Trill处理不能共存问 题的方式的示意图; 
图2为本发明实施例提供的一种Trill组网中VLAN广播域的示意图; 
图3为本发明实施例提供的一种Trill组网的架构示意图; 
图4为本发明实施例提供的一种三层单播报文转发方法的流程示意图; 
图5~8为本发明实施例提供的Trill组网内故障场景示意图; 
图9为本发明实施例提供的一种网络设备的结构示意图; 
图10为本发明实施例提供的另一种网络设备的结构示意图。 
具体实施方式
本发明实施例提供了一种报文转发的技术方案,应用于多个节点设备基于大二层网络协议组建的大二层网络中,该多个节点设备包括作为网关节点的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点都配置有该VLAN的三层(L3)接口,同一VLAN的各网关节点的三层接口具有互不相同的IP地址和MAC地址,即实IP地址和实MAC地址。本发明实施例中,针对同一VLAN的各网关节点的该三层接口,还配置相同的虚IP地址和虚MAC地址,即同一VLAN下的不同网关节点,具有相同的虚IP地址和虚MAC地址。 
本发明实施例中,网关节点可以通过一可达大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN。这里,通告的虚MAC地址是三层(L3)接口虚IP地址对应的虚MAC地址。 
非网关节点设备通过该广播树接收到各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN后,可以根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成该虚MAC地址对应的MAC地址转发表项(以下称为第一MAC地址转发表项),其中,该第一MAC地址转发表项中的VLAN为该MAC地址所属VLAN,目的MAC地址为该虚MAC地址、出 接口为该单播路由中代价最小的路由对应的出接口; 
当非网关节点接收到数据报文,且确定该数据报文的目的MAC地址为网关节点的虚MAC地址时,该非网关节点可以根据该数据报文的目的MAC地址,在第一MAC地址转发表中查询匹配的表项,并根据查询到的匹配表项,直接转发该数据报文而不进行大二层网络协议封装; 
网关节点接收到该数据报文,且确定该数据报文的目的MAC地址为自身虚MAC地址时,网关节点根据该数据报文的目的IP地址,查找路由表转发该数据报文。 
其中,当非网关节点根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算得到的去往同一VLAN的单播路由中存在多条代价(cost)最小的路由时,则需要形成等价路由,相应地,该非网关节点生成的该虚MAC地址对应的第一MAC地址转发表项中的出接口为该等价路由中各路由对应的出接口形成的聚合端口。 
相应地,非网关节点在转发目的MAC地址为上述虚MAC地址的数据报文时,由于根据该虚MAC地址查找到的匹配的第一MAC地址转发表项的出接口为聚合端口,非网关节点可以通过hash(哈希)算法从该聚合端口中选择一个端口作为该数据报文转发的出接口。 
在本发明实施例中,各个节点设备还需要通过上述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备,该本地MAC地址包括从本节点设备连接的用户网络侧学习到的MAC地址; 
网关节点可以从该广播树接收其他节点设备通过的该其他节点设备新学习到的本地MAC地址以及所属VLAN,并根据预先基于该大二层网络协议生成的大二层网络转发表项,生成该其他节点设备的本地MAC地址对应的MAC地址转发表项(以下称为第二MAC地址转发表项),该第二MAC地址转发表项中的目的MAC地址为上述其他节点设备的本地MAC地址,出接口为该大二层网络转发表项中去往该其他节点的出接口。 
当网关节点设备接收到单播数据报文,且确定该单播数据报文不是自身端口MAC地址或虚MAC地址时,该网关节点可以根据该单播数据报文的目的MAC地址及所属VLAN,在上述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发该单播数据报文而不进行大二层网络协议。 
进一步地,在本发明实施例中,上述网关节点还与大二层网络外部的路由设备连接,当网关节点接收到该路由设备发送的数据报文时,在数据报文的目的MAC地址为自身MAC地址时,检查数据报文的目的IP地址,若发现该目的IP地址在自己的直联网段,则可以根据该数据报文的目的IP地址查找匹配的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发该数据报文而不进行大二层网络协议封装。 
其中,当网关节点根据接收到的数据报文的目的IP地址未查找到匹配该数据报文的目的IP地址的ARP表项时,该网关节点需要在该数据报文对应的VLAN的广播域内,直接广播发送用于请求该数据报文的目的IP地址对应的MAC地址的ARP请求报文(以下称为第一ARP请求报文)而不进行大二层网络封装,该第一ARP请求报文的sender(发送端)IP地址为该网关节点的三层发送端口的实IP地址,源MAC地址及sender MAC地址为该网关节点的三层发送端口的实MAC地址。 
当该网关节点接收到针对第一ARP请求报文的ARP应答报文(以下称为第一ARP应答报文)时,该网关节点可以根据该第一ARP应答报文建立该数据报文的目的IP地址对应的ARP表项,并根据该建立的ARP表项,直接转发该数据报文而不进行大二层网络协议封装。 
其中,网关节点在VLAN的广播域内广播ARP请求报文时,需要根据预先设置的VLAN的广播域范围进行广播。 
具体的,在本发明实施例中,可以在各个节点设备上设置VLAN的广播域范围,该广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位置该VLAN裁剪树上的大二层网络侧接口,该裁剪树是基于 VLAN对上述广播树进行分发树的剪枝得到的。 
进一步地,在本发明实施例中,同一VLAN中的各网关节点还需要进行主网关节点的选举,以选举一个网关节点作为该VLAN的主网关节点;当网关节点接收到主机发送的用于请求网关节点的MAC地址的ARP请求报文(以下称为第二ARP请求报文)时,只有主网关节点进行响应。 
具体的,在本发明实施例中,同一VLAN中的各个网关节点可以在该VLAN内广播携带有自身三层端口的实IP地址、三层端口的实MAC地址、虚IP地址及虚MAC地址的邻居发现及主网关节点选举协议报文;当同一VLAN中的各个网关节点接收到其他网关节点发送的上述协议报文,选举端口实IP地址和/或端口实MAC地址满足预设规则的网关节点,作为主网关节点。例如,可以选举端口IP地址+端口MAC地址最大的网关节点作为主网关节点,或者,选举端口IP地址或端口MAC地址最大的网关节点作为主网关节点。 
当网关节点接收到主机发送的用于请求网关的MAC地址的第二ARP请求报文时,网关节点需要确定自身是否为对应VLAN的主网关节点,若确定自身为对应VLAN的主网关节点,则生成ARP应答报文(以下称为第二ARP应答报文),该第二ARP应答报文的目的MAC地址为该主机的MAC地址,源MAC地址和sender MAC地址均为该网关节点的虚MAC地址,sender IP地址为所述网关节点的虚IP地址,以使主机学习并建立网关节点的虚IP地址与虚MAC地址之间的关联关系;若确定自身不是对应VLAN的主网关节点,则该网关节点不对该ARP应答报文进行响应。 
其中,作为主网关节点的网关节点生成ARP应答报文后,根据该ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发该ARP应答报文而不进行大二层网络协议封装。 
需要注意的是,通过以上描述可以看出,在本发明实施例提供的技术方案中,非网关节点向网关节点转发数据报文、大二层网络节点设备对ARP请求报文、ARP应答报文的发送/转发,采取的均为不进行大二层封装,而直接查 询匹配MAC地址转发表项的方式进行,因此,为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面对大二层网络中二层单播/广播流量转发的技术方案进行详细描述。 
在大二层网络的控制平面,各个节点设备通过一可达大二层网络中所有节点设备的广播树,将新学***面,节点设备接收到单播数据报文后,若该单播数据报文的目的MAC地址不是自身的MAC地址,则根据该单播数据报文的目的MAC地址及所属VLAN,在该原始MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发该单播数据报文而不进行大二层网络协议封装。 
具体的,当一节点设备接收到其他节点设备通告的该其他节点设备新学习到的第一MAC地址以及所属的第一VLAN时,根据该其他节点设备的大二层网络标识,查询预先基于大二层网络协议生成的大二层网络转发表,确定该其他节点设备对应的出接口,进而生成该第一MAC地址对应的原始MAC地址转发表项。 
其中,节点设备确定其他节点设备对应的出接口具体可以通过以下方式实现: 
节点设备可以从大二层网络转发表中,查找到该其他节点设备的大二层网络标识对应的转发表项;若查找的转发表项中仅包括一个出接口,则将查找到的出接口,作为其他节点设备对应的出接口;若查找到的转发表项中包括两个以上的出接口,则将该两个以上的出接口形成一个聚合端口,并将该聚合端口 作为其他节点设备对应的出接口。其中,上述转发表项中包括的两个以上的出接口可以是以等价多路径的形式存在。 
相应地,当节点设备需要通过匹配表项的出接口转发单播数据报文时,若匹配表项的出接口为聚合端口,则可以通过HASH(哈希)算法选择该聚合端口的一个成员端口,并通过所选择的成员端口,直接转发该单播数据报文而不进行大二层网络协议封装。 
其中,需要注意的是,在本发明实施例中,由于网关节点通过广播树通告的是虚MAC地址,且同一VLAN内各网关节点配置的虚MAC地址相同,因此,非网关节点设备在生成该虚MAC地址对应的MAC地址转发表项时,需要根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项。 
进一步地,在大二层网络中二层单播/广播流量转发的技术方案中,当节点设备的本地MAC地址老化时,节点设备也需要将发生老化的本地MAC地址以及所属VLAN通告给其他节点设备,由其他节点设备删除发生老化的MAC地址以及所属VLAN所对应的转发表项。 
具体的,各个节点设备可以通过广播树,将发生老化的本地MAC地址以及所属VLAN通告给其他节点设备;当节点设备从广播树上接收到其他节点设备处发生老化的MAC地址(第二MAC地址)以及所属VLAN时,从原始MAC地址转发表中,删除该第二MAC地址以及所属VLAN所对应的转发表项。 
本发明实施例中,节点设备在MAC地址老化时,可以通过通告报文在节点之间进行MAC地址同步。实际应用中有可能出现MAC地址假老化的情形。所谓MAC地址假老化,是指终端数据发送报文后,间隔一段较长时间(大于MAC地址老化时间)而不再发送报文,然后再次发送报文,反复如此,导致该终端的MAC地址在节点设备的端口上被学习、老化、再学习、再老化……, 其中每一次老化或学习过程都会引发通告报文的发送。 
为了降低MAC地址频繁假老化所引发的通告报文发送数量,减轻节点设备的CPU处理负担,本实施例中各个节点设备可以针对自身不同的接口与VLAN的组合,分别配置一对应的MAC地址池,用于维护在该对应接口上学习到的归属于对应VLAN的本地MAC地址; 
各个节点设备在新学习到本地MAC地址,例如在MAC转发表项中记录新学习到的MAC地址并建立对应的老化定时器后,若对应MAC地址池中未包含有该新学习到的本地MAC地址时,则将新学习到的本地MAC地址增加到MAC地址池中。在本地MAC地址发生老化的一段预设时间后,才将老化的本地MAC地址从对应MAC地址池中删除,也就是说,在MAC转发表项中的MAC地址因老化定时器超时而老化后,再过一段预设时间,才将该MAC地址从对应MAC地址池中删除。 
相应的,各个节点设备,进一步在MAC地址池中增加了新学习到的本地MAC地址时,通过所述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备;以及,在MAC地址池中删除了老化的本地MAC地址时,通过所述广播树,将老化的本地MAC地址以及所属VLAN通告给其他节点设备。也就是说,MAC转发表项中的MAC地址老化并不会直接触发通告报文的发送,而是等待该MAC地址从MAC地址池中删除后,才去发送对应的通告报文。 
与之相对应的,在本发明实施例中,非网关节点也可以按照上述大二层网络中二层单播/广播流量转发的技术方案中的MAC地址老化方式对本地MAC地址进行老化处理。 
对于广播报文,在大二层网络中二层单播/广播流量转发的技术方案中,可以采用按照芯片vlan广播域范围(bitmap)直接广播的方式进行转发。 
具体的,可以在各节点设备上设置VLAN的广播域范围,其中,该广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位 于该VLAN裁剪树上的大二层网络侧接口,该VLAN裁剪树是基于VLAN对该广播树进行分发树的剪枝得到的; 
节点设备接收到待广播数据报文后,确定该待广播数据报文所属VLAN,并在该VLAN的广播域范围所包括的除接收端口外的其他端口上,直接转发该待广播数据报文而不进行大二层网络协议封装,其中,该待广播数据报文包括未知单播报文、广播数据报文和未知组播报文。 
与之相对应的,在本发明实施例中,对于广播报文的处理,可以采用上述大二层网络中二层单播/广播流量转发的技术方案中进行广播流量转发方式对本发明实施例中的广播报文进行转发。 
以数据中心内的Trill技术为例,在本发明实施例中,可以根据trill域的vlan裁剪树来设置硬件芯片中各个vlan的广播域范围,用户侧端口根据端口上允许通过的vlan来对应设置;对于trill口,不能根据允许通过的vlan来设置,而是需要根据trill计算出来的vlan裁剪树来对应设置(需要去掉设备上端口允许通过的vlan和该vlan的广播bitmap内包含该端口的一致性检查)。 
对于不同的vlan,可以使用不同的vlan裁剪树来实现广播流量的负载分担。如图2所示,实线部分的链路为vlan1的广播域,按照此链路拓扑,在nickname-1上,设置vlan1的bitmap包括用户侧端口P5(nickname-1到该VLAN内下挂主机的端口)和上行口P1-P4(分别为nickname-1到nickname-g1~nickname-g4的端口);在nickname-g1上,设置vlan1的bitmap仅包括P1、P4和Pn(分别为nickname-g1到nickname-1、nickname-4、nickname-n的端口),在nickname-4上仅包括用户侧端口P5(nickname-4到该VLAN内下挂主机的端口)及上行口P1(nickname-4到nickname-g1的端口);在nickname-n上,仅包括用户侧端口P5(nickname-n到该VLAN内下挂主机的端口)和上行口P1(nickname-n到nickname-g1的端口)。对于vlan2在各RB上的bitmap的设置原理同vlan1(虚线部分的链路),在此不再重复描述。对于从nickname-1用户侧端口接收到的报文需要在vlan1内广播的时候,只需要按照相应的vlan  bitmap进行广播即可,该广播报文可以沿着实线部分的链路,到达所有vlan1相关的RB,且不会产生环路。 
下面以数据中心内的Trill技术为例,对本发明实施例所提供的报文转发技术方案进行详细描述,相关原理同样适用于其他的大二层组网技术,如Vxlan(virtual Extended VLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),IETF的draft(草案))、SPB技术等。 
采用Trill技术构建的数据中心大二层网络,通常分为核心层、接入层。通常,运行Trill协议的设备称为RBridge(即Routing Bridge,具有路由转发特性的网桥设备,也称为路由桥,以下简称RB),RB构成Trill域(即Trill网络)。RB通过运行链路状态协议认知Trill域的拓扑,并使用最短路径树算法生成从该RB到达Trill网络内的其它各个RB的路由转发表(称之为Trill路由表)。 
在本发明实施例中,Trill域中各RB使用Trill控制协议进行nickname路由计算时,生成的nickname单播路由表和组播表仅在软件上保留,而不下发硬件。 
相应地,由于Trill域中各RB的硬件转发表中没有nickname转发表项,因此,当Trill域中各RB使用ESADI(End Station Address Information,用于终端MAC地址在各个RB之间主动同步的协议)协议报文对各RB的本地MAC地址进行相互通告和同步时,ESADI协议报文需要被送往CPU进行软件转发和处理。其中,可以在软件上预先生成一棵Trill的广播树,不做任何裁剪,所有节点(Trill域内各RB)可达,专门用来转发ESADI协议报文。 
需要注意的是,为了防止由于MAC地址自动学习导致的转发环路,在本发明实施例中,Trill域内所有用户侧端口需要禁止MAC自动学习(禁止硬件学习),改为软件学习或者手工配置或者协议自动生成的方式;Trill口(hybrid(混杂)口)禁止学习(禁止软件、硬件学习),改为手工配置或者协议自动生成的方式。此外,使用ESADI协议同步MAC地址时,所有节点(包括传输节点(即transit节点))都需要处理ESADI报文。 
同时,Trill域内配置为网关节点的RB节点还需要运行EGRP(Enhanced Gateway Redundancy Protocol,增强网关备份协议),对于同一VLAN的多个网关节点,除了需要配置各不相同的实IP地址/实MAC地址之外,还需要配置相同的虚IP地址/虚MAC地址(即同一VLAN的各网关节点的实IP地址/实MAC地址不同,虚IP地址/虚MAC地址相同)。 
启用EGRP协议后,配置为网关节点的RB节点在VLAN内发送EGRP协议报文,该EGRP协议报文可采用VLAN内广播发送的方式,进行邻居发现和master选举。 
其中,各网关节点利用EGRP协议进行邻居发现和master选举可以具体为: 
各网关节点在VLAN内发送EGRP协议报文,该EGRP协议报文中可以携带有各自设备标识信息、端口IP地址、端口MAC地址、虚IP及虚MAC地址;该VLAN内其他网关节点接收到该EGRP协议报文后,将报文中的端口IP地址和/或端口MAC地址与自身的端口IP地址和/或端口MAC地址作比较,通过比较,端口IP地址+端口MAC地址最大(或端口IP地址或端口MAC地址最大)的网关节点将成为master,其余网关节点则作为slave。 
其中,该EGRP协议报文可以周期性发送,且发送周期根据实际场景设置。当slave在一定时间内(如两倍的EGRP发送周期)未接收到master发送的EGRP协议报文(可以根据EGRP协议报文中携带的设备标识确定接收到的EGRP协议报文是否为master发送的),则认为作为master的网关节点down,需要重新在剩下的网关节点之间进行邻居发现和新master的选举。 
其中,对于同一VLAN的多个网关节点,在接收到host(主机)发送的ARP(Address Resolution Protocol,地址解析协议)请求报文时,仅有被选举为master的网关节点需要响应应答报文,且该应答报文为非Trill封装的ARP报文,且该ARP报文的外层MAC地址和sender MAC地址均为网关节点的虚MAC地址。而对于网关节点请求host的ARP的处理流程,由网关节点使用自身的实MAC地址作为ARP请求报文的源MAC地址,而不使用虚MAC地址。 
对于MAC地址的扩散和同步,在本发明实施例中,对于配置为网关节点的RB设备,在通过ESADI协议同步MAC地址时,可以配置为同步虚MAC地址,即将自身的虚MAC地址携带在ESADI协议报文中进行扩散和同步。 
Trill域内各RB收到ESADI协议报文后,提取其中携带的MAC地址、VLAN信息以及所属的nickname信息,并根据该nickname查询对应的nickname路由表,将该nickname路由表转换为MAC转发表下发转发平面。 
具体的,可以用ESADI协议报文中携带的MAC+VLAN替换对应的nickname路由表项中的nickname,若该nickname路由表项的出端口为单个出端口,则对应的MAC表项中出端口直接使用该nickname路由表项的出端口;若该nickname路由表项有等价路由,则对应的MAC表项中的出端口可以为该nickname路由表项中各端口(各等价路由对应的端口)对应的聚合端口。 
需要注意的是,由于同一VLAN的网关节点具有相同的虚IP地址/虚MAC地址相同,对于非网关节点,为了生成到网关节点的虚MAC地址的等价路径,非网关节点需要分别计算本节点到该虚MAC地址对应的各网关节点的单播路由,并将该单播路由中cost最小的路径在本节点的出端口作为到该虚MAC地址的出端口(即该虚MAC地址对应的MAC转发表项中的出端口);若存在多条cost最小的路径,就选取多条这种路径,把这些路径在本节点的出端口一起列出来,如果共享一个出端口,网关mac对应的出端口就是一个单独的物理端口;如果有多个,则将这几个物理端口聚合后作为该虚MAC地址的出端口。 
当Trill域内各RB接收到数据报文时,不对该报文进行Trill封装,而根据对应的MAC转发表项对报文进行转发;若根据报文的目的MAC地址查询到的MAC转发表项的出端口为单端口时,则将该报文从该出端口转发出去;若根据报文的目的MAC地址查询到的MAC转发表项的出端口为聚合端口,则可以通过对应的聚合链路的hash分担,选择聚合链路的某条子链路对应的端口对该报文进行转发。 
对于L3数据报文,当网关节点对该报文进行L3转发时,可以直接转发给 外网路由器,而不涉及解Trill封装的处理;相应地,外网路由器将该报文转发给目的主机所在VLAN的网关节点时,也不涉及对加Trill封装的处理。 
其中,由于同一VLAN内各网关节点配置有相同的虚IP地址/虚MAC地址,且网关节点进行MAC地址同步时同步的MAC地址为虚MAC地址,因此,Trill域内作为接入层设备的RB上生成的MAC转发表中对应该虚MAC地址的出端口通常为为聚合端口(包括该RB连接各网关节点的端口),因此,当作为接入层设备的RB需要将接收到host发送的L3数据报文发送给网关节点时,可以通过对该L3数据报文的目的MAC地址(网关节点的虚MAC地址)对应的MAC转发表项中出端口对应的聚合链路进行hash,选择聚合链路的某条子链路对应的端口对该报文进行转发,实现对流量的分担。 
需要注意的是,在本发明实施例中,MAC表项中的聚合端口和传统聚合端口的不同之处在于:传统的聚合链路两端的设备都需要配置聚合,而本发明实施例中的聚合链路只需要从一侧设备的角度看是聚合链路即可,对端不一定需要是聚合链路。 
此外,当Trill内作为网关节点的RB接收到access节点(非网关节点)返回的ARP应答报文时,需要根据该ARP应答报文的源MAC地址查询自身存储的MAC表,并将该源MAC地址对应的MAC表项中的出端口作为ARP表项中的出端口(该出端口可以是单端口或者聚合端口),其中,当网关节点到access节点存在等价路径时,该出端口为聚合端口。 
通过以上流程可以看出,在本发明实施例中,当大二层网络中设备接收到数据报文时,不对该报文进行大二层协议封装,而是根据数据报文的目的MAC地址查询MAC表项,并根据查询到的MAC转发表项将该数据报文以native(原生)形式进行转发。当网关节点确定该数据报文需要进行L3转发时,不需要进行解除大二层封装的处理,即可发送给外网路由器;相应地,外网路由器将该报文发送给其他VLAN的网关节点时,也不需要进行大二层封装的处理,避免了在一个pipeline处理L3转发和大二层协议加/解封装的问题,降低 了对芯片的要求,增强了大二层网络的可部署性; 
同时,由于配置为网关节点的大二层设备进行MAC地址同步时,使用的为虚MAC地址,且同一VLAN的各网关节点的虚MAC地址相同,因此,大二层设备中生成的对应网关节点的MAC转发表项中的出端口为聚合端口,当大二层设备需要将数据报文转发到网关节点时,可以对相应的MAC转发表项中出端口对应的聚合链路进行hash,选择聚合链路的某条子链路对应的端口对该报文进行转发,实现了对流量的负载分担。 
为了更清楚地说明本发明实施例,下面以图3所示的Trill组网架构为例,说明本发明实施例提供的报文转发技术的具体实现过程。 
如图3所示,为本发明实施例提供的一种的Trill组网的架构示意图,其中: 
各接入层设备(即access节点)的nickname分别为nickname-1、nickname-2、……、nickname-n; 
各核心层设备(即core节点)的nickname分别为nickname-g1、nickname-g2、nickname-g3和nickname-g4; 
nickname-g1(即nickname为nickname-g1的设备,下同)、nickname-g2、nickname-g3以及nickname-g4均为网关节点;nickname-g1、nickname-g2和nickname-g3为vlan1的网关;nickname-g2、nickname-g3和nickname-g4为vlan2的网关。 
nickname-g1、nickname-g2和nickname-g3上配置有vlan1的三层接口,且每个网关节点配置有各不相同的实IP地址和实MAC地址,同时每个网关节点配置相同的虚IP地址:1.1.1.1,以及虚MAC地址:1-1-1。同理,nickname-g2、nickname-g3和nickname-g4上配置有vlan2的三层接口,且每个网关节点配置有各不相同的实IP地址和实MAC地址,同时每个网关节点配置相同的虚IP地址:2.2.2.1,以及虚MAC地址:2-2-2。 
在本发明实施例中,nickname-g1、nickname-g2、nickname-g3以及 nickname-g4上均配置有EGRP协议。启用EGRP协议之后,同一VLAN的各网关节点之间在VLAN内发送EGRP协议报文,该协议报文可采用VLAN内广播的发送方式,进行邻居发现和master选举。 
EGRP协议报文可以为周期性发送,发送间隔可设置。当选举为master的网关节点(以下简称master)down时,重新在剩下的网关节点之间进行邻居发现和新的master选举。以图3为例,假设通过选举,vlan1中nickname-g1成为master,vlan2中nickname-g4是master,其余网关节点为slave。 
在host请求网关的ARP的处理流程中,当host发送网关的ARP请求的时候,只有master负责回复,slave不处理。其中,在本发明实施例中,master回复的ARP应答报文的外层MAC地址和sender MAC地址均为虚拟MAC地址。 
例如,假设host1.1.1.100请求1.1.1.1的ARP,由nickname-g1负责回复应答报文,应答报文为非Trill封装的普通ARP报文,外层MAC和内层的sender MAC都是1-1-1,该ARP应答报文的格式可以如表1所示: 
表1 
在网关请求host的ARP的处理流程中,各个master使用各自的实MAC地址作为ARP请求报文的源MAC地址,而不使用虚拟MAC地址。对于host来说,此时网关的实MAC地址相当于同网段的另外一台虚拟host。 
其中,若由于芯片限制等原因支持不了ARP表项的出端口为聚合端口,则网关以接收到ARP应答报文的端口作为ARP表项的出端口;若芯片支持ARP表项的出端口为聚合端口,则网关接收到ARP应答报文后,根据该ARP 应答报文的源MAC地址查询对应的MAC表项,若找到对应的MAC表项,copy该MAC表项的出端口作为ARP表项的出端口,从而,对于网关节点到该host存在等价路径的场合,ARP表项的出端口可以为聚合端口,可以对流量进行更好的分担和备份。 
在本发明实施例中,可以通过命令行配置,将vlan1和vlan2的虚MAC地址通过ESADI协议进行扩散和同步,最终所有节点均获知。其中,虚MAC地址1-1-1同时归属于nickname-g1、nickname-g2以及nickname-g3,虚MAC地址2-2-2同时归属于nickname-g2、nickname-g3以及nickname-g4。其中,由于网关节点的实MAC地址在本发明实施例提供的技术方案中作用不大,因此,可以配置实MAC地址不需要通过ESADI协议报文进行扩散和同步。 
Trill域内各RB接收到ESADI协议报文后,对于非网关节点,为了获得到达网关节点的等价路径,需要分别计算本节点到达该VLAN内各网关节点(如vlan1内的nickname-g1、nickname-g2和nickname-g3)的单播路由,并在这些单播路由中选择cost最小的路径进行合并,并当存在多条时,则形成等价路由。 
非网关节点获得到达VLAN内网关节点的等价路径后,用链路聚合来表示对应的等价路径,形成最终的转发表项,并下发到硬件。例如,图3所示的场景中,nickname-1和nickname-4生成的转发表项可以分别如表2和表3所示: 
表2 
Vlan MAC Egress Port(出端口)
vlan1 1-1-1 Trunk(P1,P2,P3)
表3 
Vlan MAC Egress Port
vlan2 2-2-2 Trunk(P2,P3,P4)
在数据转发流程中,对于非网关节点,接收到host发送的L3数据报文后,不对该数据报文进行Trill封装,并根据控制层面下到硬件的转发表项进行转发。其中,若出端口为聚合端口,则对该聚合端口对应的聚合链路进行hash, 选择聚合链路的某条子链路对应的端口对该报文进行转发。 
对于网关节点,同一VLAN中各网关节点接收到非网关节点转发的host主机发送的L3数据报文,均认为自身为网关,不对该数据报文进行Trill封装,并进行L3转发处理流程。 
以图3所示场景中vlan1内host1(IP地址为1.1.1.100)向vlan2内hsot2(IP地址为2.2.2.100)的报文转发流程为例。 
如图4所示,为本发明实施例提供的一种三层单播报文转发方法的流程示意图,可以包括以下步骤: 
步骤400,vlan1内host1在需要向vlan2内host2发送报文时,发现host2与自身不在同一网段(即host2不在本地网络),于是将报文发送给网关节点。如果host1当前没有网关节点的ARP表项,则广播发送ARP请求报文,该请求报文中的target的IP为网关节点的虚IP地址。该ARP请求报文经过access节点,转发至网关节点。其中,access节点接收到ARP请求报文后,通过设置的VLAN的广播域范围对该ARP请求报文进行广播转发。 
网关节点收到上述ARP请求报文后,若自身为对应VLAN内的master网关节点,则向主机单播返回ARP应答报文,该响应报文中的sender IP为网关节点的虚IP地址,sender MAC地址为网关的虚MAC地址。该ARP应答报文经过access节点,由access节点根据该ARP应答报文的目的MAC地址(即主机的MAC地址)查询匹配的MAC表项,转发至主机,从而主机学习到网关的ARP表项,建立网关的虚IP地址与虚MAC地址之间的关联。 
步骤401、host1向nickname-1发送报文,该报文的目的MAC地址为网关节点的虚MAC地址1-1-1,目的IP为host2的IP地址2.2.2.100。 
具体的,host1发送报文给host2,查找网关ARP表项,封装的目的MAC为1-1-1,目的IP为2.2.2.100。 
步骤402、nickname-1接收到报文后,根据该报文的外层MAC地址查找MAC转发表,并根据查询到的表项将该报文转发给nickname-g1。 
具体的,nickname-1接收到host1发送的报文后,根据该报文的外层MAC地址(1-1-1)查询本地MAC转发表,命中表3所示表项,该表项中出端口为聚合端口(Trunk(P1,P2,P3)),nickname-1通过hash算法选取其中一个,假设为端口P1,并将该报文从P1发送出去。其中,nickname-1将该报文从P1转发出去时,不会对该报文进行Trill封装,而是以将该报文以native形式发送出去。 
步骤403、nickname-g1接收到报文后,将报文转发给外网路由器。 
具体的,nickname-g1接收到nickname-1转发的报文后,根据发现该报文的目的MAC地址为自身的虚MAC地址,则认为该报文是发送给自己的,此时需要查询路由表进行三层转发。具体实现时,可以预先在虚MAC地址的MAC转发表项中设置特定的指示标识,这样nickname-g1根据该报文的目的MAC地址(1-1-1)查询本地MAC转发表,根据查询到的MAC转发表项中设置的指示标识,确定需要对该报文进行L3转发。于是查询路由表,由于本地没有直连路由,因此,nickname-g1将该报文转发给外网路由器。其中,nickname-g1也不对该报文进行Trill封装。 
步骤404、外网路由器接收到报文后,根据报文的目的IP地址查询路由表,将报文转发给nickname-g3。 
具体的,外网路由器接收到nickname-g1转发的报文后,根据该报文的目的IP地址(2.2.2.100)查询路由表,确定为等价路由,下一跳分别为nickname-g2、nickname-g3和nickname-g4,外网路由器可以通过hash算法,从中选择一个作为实际下一跳,假设选定为nickname-g3,则外网路由器将该报文转发给nickname-g3。其中,该报文仍未非Trill封装的报文。 
步骤405、nickname-g3接收到报文后,根据报文的目的IP地址查询本地ARP表,并根据查询到的表项将报文转发给nickname-4。 
其中,若nickname-g3上没有host2(2.2.2.100)的ARP表项,则可以使用自身的实IP地址/实MAC地址作为源IP地址/源MAC地址发起ARP请求, 以获取host2的ARP信息,并根据得到的ARP信息将该报文转发给nickname-4,其中,nickname-g3发送给nickname-4的报文为非Trill封装报文,且目的MAC地址为host2的目的MAC地址。 
步骤406、nickname-4接收到报文后,根据报文的目的MAC地址查询本地MAC转发表,并将该报文转发给host2。 
进一步地,在本发明实施例中,考虑到大二层网络中节点设备或链路可能发生异常,为了提高***可用性,本发明实施例还提供了异常处理机制。 
具体的,当非网关节点与网关节点之间的TRILL链路中断时,该非网关节点可以按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口; 
该网关节点更新达到该非网关节点下所有主机的ARP表项的出端口。 
在网关节点宕机时,非网关节点更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。 
当非网关节点发生宕机(down)时,网关节点删除该非网关节点下的所有主机的ARP表项; 
VLAN内的主网关节点down时,该VLAN内其他网关节点重新选举该VLAN内的主网关节点; 
当网关节点发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举新的主网关节点,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口。 
仍以数据中心内的Trill技术为例,对本发明实施例所提供的技术方案中的异常处理机制进行详细描述。 
场景一、Trill链路故障 
参见图5,假设nickname-1与nickname-g1之间的Trill链路发生故障,则与该Trill链路直接关联的节点设备(即nickname1和nickname-g1)需要确定 该链路故障后的网络拓扑,并向其他节点设备通告该网络拓扑,如可以通过ISIS协议报文向其他节点设备通告链路故障后的网络拓扑。 
各非网关节点需要按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口。 
例如,图5所示场景中,到虚MAC地址1-1-1的路径中,端口P1、P2、P3对应的三条cost最小的路径中,由于端口P1对应的路径出现了绕行,cost加大,被排除在外,因此只剩下端口P2和P3对应的两条cost最小的路径,因此,nickname-1上到虚MAC地址1-1-1的出端口刷新为新的聚合端口,对应的表项由表4刷新为表5: 
表4 
VLAN MAC Egress port
vlan1 1-1-1 Trunk(P1、P2、P3)
表5 
VLAN MAC Egress port
vlan1 1-1-1 Trunk(P2、P3)
同时,nickname-g1节点更新到达nickname-1下的所有主机的ARP表项的出端口,如从端口P1更新为端口P2(绕行路径)。 
场景二、access节点故障 
参见图6,假设nickname-1down,则与nickname-1相关联的节点设备需要确定该节点设备故障后的网络拓扑,并向其他节点设备通告该网络拓扑。 
各个网关节点删除nickname-1下的所有主机的ARP表项。 
场景三、core节点故障 
参见图7、假设nickname-g1(vlan1内的master)down,则vlan1内其他 网关节点需要根据EGRP协议重新选举新的master(假设为nickname-g2),down的nickname-g1之前通过ESADI协议报文通告的虚MAC地址1-1-1在后续的ESADI同步更新的过程中老化。各个节点设备刷新虚MAC地址1-1-1的新的出端口。例如,nickname-1到1-1-1的出端口为P2和P3组成的聚合端口,端口P1被删除。 
场景四、上行链路(网关节点与外部路由器之间的链路)故障 
参见图8,假设nickname-g1与外部路由之间的链路中断,则nickname-g1发现外部路由器不可达,down掉自身所有vlan上的三层接口,并通过ESADI协议报文撤销该节点发布的虚MAC地址信息,以使各非网关节点重新计算到达该网关节点配置的虚MAC地址的路径,更新该虚MAC地址对应的第一MAC地址转发表项的出端口。同时,nickname-g1退出所在VLAN的EGRP选举,其余网关节点重新选举新的master,各非网关节点 
例如,在图8所示的场景中,经过重新选举后,nickname-g2为新的master,nickname-1到达虚MAC地址1-1-1的出端口为仅包含端口P2和P3的聚合端口,端口P1被删除。 
应该认识到,上述实施例以数据中心内的Trill技术为例对本发明提供的报文转发技术方案进行了详细描述,当相关原理应用到其他大二层组网技术(如Vxlan技术、SPB技术)等中时,相应描述也应该进行调整。 
例如,对于大二层网络中的接入层设备和核心层设备,在Trill技术中,接入层设备和核心层设备均为RB;而在Vxlan技术中,接入层设备为VTEP(Vxlan Tunnel Endpoint,Vxlan隧道端点),而对核心层设备并未专门定义;而在SPB技术中,接入层设备为BEB(Backbone Edge Bridge,骨干边缘桥)设备,核心设备为BCB(Backbone Core Bridge,骨干核心桥)设备。 
对于大二层网络转发表,在Trill技术中,该大二层网络转发表具体为Trill路由表;而在Vxlan技术中,该大二层网络转发表具体为Vxlan中的骨干网L3 路由表;而在SPB技术中,该大二层网络转发表具体为SPBM中的骨干网的Bmac转发表。 
对于用于进行MAC地址同步的控制报文,在Trill技术中,该用于进行MAC地址同步的控制报文具体为ESADI协议报文;而在Vxlan技术和SPB技术中,由于其并未定义主动的MAC地址同步机制,因此,可以将Trill技术中的ESADI协议报文借用在Vxlan技术和SPB技术中,其具体实现在此不再赘述。 
基于相同的技术构思,本发明实施例还提供了上述大二层网络中的设备。 
参见图9,为本发明实施例提供的一种网络设备的结构示意图,该网络设备可以应用于多个节点设备基于大二层网络协议组建的大二层网络中,多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为非网关节点应用于所述大二层网络中,该网络设备包括: 
地址管理模块91,用于通过一可达所述大二层网络中的所有节点设备的广播树,接收各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN信息; 
表项维护模块92,用于根据大二层网络协议和所述地址管理模块91接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
报文转发模块93,用于当所述网络设备接收到目的MAC地址为一网关节点的虚MAC地址的数据报文时,根据该数据报文的目的MAC地址,查找匹配的第一MAC地址转发表项,并根据查找到的匹配表项,直接转发所述数据 报文而不进行大二层网络协议封装。 
其中,所述表项维护模块92还可用于, 
在所述网络设备与网关节点之间的链路中断时,按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口; 
在网关节点宕机时,更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。 
如图10所示,为本发明实施例提供的另一种网络设备的结构示意图,该网络设备可以应用于多个节点设备基于大二层网络协议组建的大二层网络中,多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为网关节点应用于所述大二层网络中,该网络设备包括: 
地址管理模块101,用于通过一可达所述大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN信息,以使非网关节点设备根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口; 
报文转发模块102,用于当所述网络设备接收到目的MAC地址为自身虚MAC地址的数据报文,且判断出所述数据报文的目的MAC地址为自身虚MAC地址时,根据所述数据报文的目的IP地址,查找路由表转发所述数据报文;其中,所述数据报文是非网关节点根据报文的目的MAC地址,匹配所述第一MAC地址转发表项后直接转发的且没有进行大二层网络协议封装。 
其中,该网络设备还包括:表项维护模块103; 
所述地址管理模块101还可用于,从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的本地MAC地址以及所属VLAN;所述本地MAC地址包括从所述其他节点设备连接的用户网络侧学习到的MAC地址; 
表项维护模块103,用于根据预先基于该大二层网络协议生成的大二层网络转发表项,生成所述其他节点设备的本地MAC地址对应的第二MAC地址转发表项,所述第二MAC地址转发表项中的目的MAC地址为所述其他节点设备的本地MAC地址,出接口为所述大二层网络转发表项中去往所述其他节点设备的出接口; 
所述报文转发模块102还可用于,当所述网络设备接收到目的MAC地址不是自身端口MAC地址或所述虚MAC地址的单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。 
其中,所述网络设备还与所述大二层网络外部的路由设备连接; 
所述大二层网络中各节点设备上设置有VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的; 
所述报文转发模块102还可用于,在接收到所述路由设备发送的数据报文时,查找匹配所述数据报文的目的IP地址的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发所述数据报文而不进行大二层网络协议封装。 
其中,所述报文转发模块102还可用于,若未查找到匹配所述数据报文的目的IP地址的ARP表项,在该数据报文对应的VLAN的广播域内,直接广播发送用于请求所述数据报文的目的IP地址对应的MAC地址的第一ARP请求报文而不进行大二层网络协议封装,所述第一ARP请求报文的发送端sender IP 地址是所述网络设备的发送端口IP地址,源MAC地址及发送端MAC地址是所述网络设备的发送端口MAC地址; 
所述表项维护模块103还可用于,当所述网络设备接收到根据接收到针对第一ARP请求报文的第一ARP应答报文时,建立所述数据报文的目的IP地址对应的ARP表项; 
所述报文转发模块102还可用于,根据所述表项维护模块建立的ARP表项,转发所述数据报文而不进行大二层网络协议封装。 
其中,同一VLAN中的一个网关节点被选举为该VLAN的主网关节点, 
所述报文转发模块102还可用于,当接收到主机发送的用于请求网关节点的MAC地址的第二ARP请求报文,且确定所述网络设备为对应VLAN的主网关节点时,生成第二ARP应答报文,该第二ARP应答报文的目的MAC地址为所述主机的MAC地址,源MAC地址和发送端sender MAC地址均为所述网络设备的虚MAC地址,sender IP地址为所述网络设备的虚IP地址,以使所述主机学习并建立所述网络设备的虚IP地址与虚MAC地址之间的关联关系;根据所述ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述ARP应答报文而不进行大二层网络协议封装 
其中,所述网络设备还包括: 
选举模块104,用于在所述网络设备所属的VLAN内广播携带有所述网络设备自身端口IP地址、端口MAC地址、虚IP及虚MAC地址的邻居发现及主网关节点选举协议报文;接收所述VLAN内其他网关节点发送的所述协议报文,选举端口IP地址和/或端口MAC地址满足预设规则的网关节点,作为所述主网关节点。 
其中,所述表项维护模块103还可用于,在非网关节点与所述网络设备之间的链路中断时,更新达到该非网关节点下所有主机的ARP表项的出接口;在非网关节点发生宕机down时,删除该非网关节点下的所有主机的ARP表项; 
所述地址管理模块101还可用于,在所述网络设备发现外部路由器不可达时,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口; 
所述选举模块104还可用于,在所述网络设备发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举主网关节点。 
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。 

Claims (18)

1.一种报文转发方法,应用于多个节点设备基于大二层网络协议组建的大二层网络中,其特征在于,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,该方法包括:
非网关节点通过一可达所述大二层网络中的所有节点设备的广播树,接收各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN信息;
非网关节点根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口;
非网关节点接收到目的MAC地址为一网关节点的虚MAC地址的数据报文时,根据该数据报文的目的MAC地址,查找匹配的第一MAC地址转发表项,并根据查找到的匹配表项,直接转发所述数据报文而不进行大二层网络协议封装。
2.如权利要求1所述的方法,其特征在于,该方法还包括:
在非网关节点与网关节点之间的链路中断时,非网关节点按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口;
在网关节点宕机时,非网关节点更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。
3.一种报文转发方法,应用于多个节点设备基于大二层网络协议组建的大二层网络中,其特征在于,所述多个节点设备包括作为网关节点的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,该方法包括:
网关节点通过一可达所述大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN信息,以使非网关节点设备根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口;
网关节点接收到目的MAC地址为自身虚MAC地址的数据报文,所述数据报文是非网关节点根据报文的目的MAC地址,匹配所述第一MAC地址转发表项后直接转发的且没有进行大二层网络协议封装;
所述网关节点在判断出所述数据报文的目的MAC地址为自身虚MAC地址时,根据所述数据报文的目的IP地址,查找路由表转发所述数据报文。
4.如权利要求3所述的方法,其特征在于,该方法还包括:
各个节点设备通过所述广播树,将新学习到的本地MAC地址以及所属VLAN通告给其他节点设备,所述本地MAC地址包括从本节点设备连接的用户网络侧学习到的MAC地址;
网关节点从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的本地MAC地址以及所属VLAN,并根据预先基于该大二层网络协议生成的大二层网络转发表项,生成所述其他节点设备的本地MAC地址对应的第二MAC地址转发表项,所述第二MAC地址转发表项中的目的MAC地址为所述其他节点设备的本地MAC地址,出接口为所述大二层网络转发表项中去往所述其他节点的出接口;
所述网关节点接收到目的MAC地址不是自身端口MAC地址或所述虚MAC地址的单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。
5.如权利要求4所述的方法,其特征在于,
所述网关节点还与所述大二层网络外部的路由设备连接;
在各个节点设备上设置VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的;
网关节点在接收到所述路由设备发送的数据报文时,查找匹配所述数据报文的目的IP地址的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发所述数据报文而不进行大二层网络协议封装。
6.如权利要求5所述的方法,其特征在于,
若网关节点未查找到匹配所述数据报文的目的IP地址的ARP表项,所述方法还包括:
所述网关节点在该数据报文对应的VLAN的广播域内,直接广播发送用于请求所述数据报文的目的IP地址对应的MAC地址的第一ARP请求报文而不进行大二层网络协议封装,所述第一ARP请求报文的发送端sender IP地址是所述网关节点的发送端口IP地址,源MAC地址及发送端MAC地址是所述网关节点的发送端口MAC地址;
所述网关节点根据接收到的针对第一ARP请求报文的第一ARP应答报文,建立所述数据报文的目的IP地址对应的ARP表项,并根据该建立的ARP表项,转发所述数据报文而不进行大二层网络协议封装。
7.如权利要求4所述的方法,其特征在于,同一VLAN中的一个网关节点被选举为该VLAN的主网关节点,该方法还包括:
网关节点接收到主机发送的用于请求网关节点的MAC地址的第二ARP请求报文,且确定自身为对应VLAN的主网关节点时,生成第二ARP应答报文,该第二ARP应答报文的目的MAC地址为所述主机的MAC地址,源MAC地址和发送端sender MAC地址均为所述网关节点的虚MAC地址,sender IP地址为所述网关节点的虚IP地址,以使所述主机学习并建立所述网关节点的虚IP地址与虚MAC地址之间的关联关系;
所述网关节点根据所述ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述ARP应答报文而不进行大二层网络协议封装。
8.如权利要求7所述的方法,其特征在于,所述主网关节点的选举包括:
同一VLAN中的各个网关节点在该VLAN内广播携带有各自端口IP地址、端口MAC地址、虚IP及虚MAC地址的邻居发现及主网关节点选举协议报文;
同一VLAN中的各个网关节点接收其他网关节点发送的所述协议报文,选举端口IP地址和/或端口MAC地址满足预设规则的网关节点,作为所述主网关节点。
9.如权利要求3所述的方法,其特征在于,还包括:
在非网关节点与网关节点之间的链路中断时,该网关节点更新达到该非网关节点下所有主机的ARP表项的出接口;
在非网关节点发生宕机down时,网关节点删除该非网关节点下的所有主机的ARP表项;
VLAN内的主网关节点down时,该VLAN内其他网关节点重新选举该VLAN内的主网关节点;
网关节点在发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举主网关节点,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口。
10.一种网络设备,应用于多个节点设备基于大二层网络协议组建的大二层网络中,其特征在于,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为非网关节点应用于所述大二层网络中,该网络设备包括:
地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,接收各个网关节点通告的该网关节点配置的虚MAC地址以及所属VLAN信息;
表项维护模块,用于根据大二层网络协议和所述地址管理模块接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口;
报文转发模块,用于当所述网络设备接收到目的MAC地址为一网关节点的虚MAC地址的数据报文时,根据该数据报文的目的MAC地址,查找匹配的第一MAC地址转发表项,并根据查找到的匹配表项,直接转发所述数据报文而不进行大二层网络协议封装。
11.如权利要求10所述的网络设备,其特征在于,所述表项维护模块还用于,
在所述网络设备与网关节点之间的链路中断时,按照更新后的拓扑,重新计算去往同一VLAN的各网关节点的单播路由,并更新重新计算得到的单播路由,更新第一MAC地址转发表项的出接口;
在网关节点宕机时,更新该网关节点配置的虚MAC地址对应的第一MAC地址转发表项的出接口。
12.一种网络设备,应用于多个节点设备基于大二层网络协议组建的大二层网络中,其特征在于,所述多个节点设备包括作为网关设备的网关节点和作为接入设备的非网关节点,同一VLAN的各网关节点配置有相同的虚IP地址和虚MAC地址,所述网络设备作为网关节点应用于所述大二层网络中,该网络设备包括:
地址管理模块,用于通过一可达所述大二层网络中的所有节点设备的广播树,通告本节点设备配置的虚MAC地址以及所属VLAN信息,以使非网关节点设备根据大二层网络协议和接收到的同一虚MAC地址对应的各个网关节点的大二层网络标识,计算去往同一VLAN的各网关节点的单播路由,进而生成所述虚MAC地址对应的第一MAC地址转发表项,其中,所述第一MAC地址转发表项中的VLAN为所述虚MAC所属VLAN、目的MAC地址为所述虚MAC地址、出接口为所述单播路由中代价最小的路由对应的出接口;
报文转发模块,用于当所述网络设备接收到目的MAC地址为自身虚MAC地址的数据报文,且判断出所述数据报文的目的MAC地址为自身虚MAC地址时,根据所述数据报文的目的IP地址,查找路由表转发所述数据报文;其中,所述数据报文是非网关节点根据报文的目的MAC地址,匹配所述第一MAC地址转发表项后直接转发的且没有进行大二层网络协议封装。
13.如权利要求12所述的方法,其特征在于,该网络设备还包括:表项维护模块;
所述地址管理模块还用于,从所述广播树上接收其他节点设备通告的所述其他节点设备新学习到的本地MAC地址以及所属VLAN;所述本地MAC地址包括从所述其他节点设备连接的用户网络侧学习到的MAC地址;
表项维护模块,用于根据预先基于该大二层网络协议生成的大二层网络转发表项,生成所述其他节点设备的本地MAC地址对应的第二MAC地址转发表项,所述第二MAC地址转发表项中的目的MAC地址为所述其他节点设备的本地MAC地址,出接口为所述大二层网络转发表项中去往所述其他节点设备的出接口;
所述报文转发模块还用于,当所述网络设备接收到目的MAC地址不是自身端口MAC地址或所述虚MAC地址的单播数据报文后,根据所述单播数据报文的目的MAC地址及所属VLAN,在所述第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述单播数据报文而不进行大二层网络协议封装。
14.如权利要求13所述的网络设备,其特征在于,所述网络设备还与所述大二层网络外部的路由设备连接;
所述大二层网络中各节点设备上设置有VLAN的广播域范围,其中,所述广播域范围包括该节点设备上允许该VLAN通过的用户侧端口和该节点设备上的位于该VLAN裁剪树上的大二层网络侧接口,所述裁剪树是基于VLAN对所述广播树进行分发树的剪枝得到的;
所述报文转发模块还用于,在接收到所述路由设备发送的数据报文时,查找匹配所述数据报文的目的IP地址的ARP表项,并根据查找到的ARP表项的目的MAC地址以及出接口,直接转发所述数据报文而不进行大二层网络协议封装。
15.如权利要求14所述的网络设备,其特征在于,
所述报文转发模块还用于,若未查找到匹配所述数据报文的目的IP地址的ARP表项,在该数据报文对应的VLAN的广播域内,直接广播发送用于请求所述数据报文的目的IP地址对应的MAC地址的第一ARP请求报文而不进行大二层网络协议封装,所述第一ARP请求报文的发送端sender IP地址是所述网络设备的发送端口IP地址,源MAC地址及发送端MAC地址是所述网络设备的发送端口MAC地址;
所述表项维护模块还用于,当所述网络设备接收到根据接收到针对第一ARP请求报文的第一ARP应答报文时,建立所述数据报文的目的IP地址对应的ARP表项;
所述报文转发模块还用于,根据所述表项维护模块建立的ARP表项,转发所述数据报文而不进行大二层网络协议封装。
16.如权利要求13所述的网络设备,其特征在于,同一VLAN中的一个网关节点被选举为该VLAN的主网关节点,
所述报文转发模块还用于,当接收到主机发送的用于请求网关节点的MAC地址的第二ARP请求报文,且确定所述网络设备为对应VLAN的主网关节点时,生成第二ARP应答报文,该第二ARP应答报文的目的MAC地址为所述主机的MAC地址,源MAC地址和发送端sender MAC地址均为所述网络设备的虚MAC地址,sender IP地址为所述网络设备的虚IP地址,以使所述主机学习并建立所述网络设备的虚IP地址与虚MAC地址之间的关联关系;根据所述ARP应答报文的目的MAC地址,在第二MAC地址转发表项中进行匹配,并通过匹配表项的出接口直接转发所述ARP应答报文而不进行大二层网络协议封装。
17.如权利要求16所述的网络设备,其特征在于,所述网络设备还包括:
选举模块,用于在所述网络设备所属的VLAN内广播携带有所述网络设备自身端口IP地址、端口MAC地址、虚IP及虚MAC地址的邻居发现及主网关节点选举协议报文;接收所述VLAN内其他网关节点发送的所述协议报文,选举端口IP地址和/或端口MAC地址满足预设规则的网关节点,作为所述主网关节点。
18.如权利要求17所述的网络设备,其特征在于,
所述表项维护模块还用于,在非网关节点与所述网络设备之间的链路中断时,更新达到该非网关节点下所有主机的ARP表项的出接口;在非网关节点发生宕机down时,删除该非网关节点下的所有主机的ARP表项;
所述地址管理模块还用于,在所述网络设备发现外部路由器不可达时,禁用自身所有的三层接口,并通过所述广播树通告虚MAC地址的撤销消息,以使得非网关节点设备更新所述虚MAC地址对应的所述第一MAC地址转发表项的出接口;
所述选举模块还用于,在所述网络设备发现外部路由器不可达时,退出本网关节点所在VLAN的主网关节点的选举,以触发其他网关节点重新选举主网关节点。
CN201310357517.1A 2013-08-15 2013-08-15 一种报文转发方法及设备 Active CN104378297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310357517.1A CN104378297B (zh) 2013-08-15 2013-08-15 一种报文转发方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310357517.1A CN104378297B (zh) 2013-08-15 2013-08-15 一种报文转发方法及设备

Publications (2)

Publication Number Publication Date
CN104378297A true CN104378297A (zh) 2015-02-25
CN104378297B CN104378297B (zh) 2018-01-16

Family

ID=52556964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310357517.1A Active CN104378297B (zh) 2013-08-15 2013-08-15 一种报文转发方法及设备

Country Status (1)

Country Link
CN (1) CN104378297B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104869058A (zh) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 一种数据报文转发方法和装置
CN106059946A (zh) * 2016-05-23 2016-10-26 杭州华三通信技术有限公司 一种报文转发方法和装置
WO2016177321A1 (en) * 2015-05-04 2016-11-10 Hangzhou H3C Technologies Co., Ltd. Packet forwarding
CN106302264A (zh) * 2015-06-08 2017-01-04 杭州华三通信技术有限公司 Dune交换线卡板与灵活线卡板间的单播报文互通方法及装置
CN106341857A (zh) * 2015-07-17 2017-01-18 中兴通讯股份有限公司 通道确定方法及装置
CN106411835A (zh) * 2016-05-25 2017-02-15 海尔优家智能科技(北京)有限公司 一种基于AllJoyn Control Panel的传输方法和装置
CN106487677A (zh) * 2015-09-02 2017-03-08 华为技术有限公司 运营商边缘设备及数据转发方法
CN106506378A (zh) * 2016-11-10 2017-03-15 杭州迪普科技股份有限公司 Mac地址表的更新方法和装置
WO2017157206A1 (zh) * 2016-03-16 2017-09-21 中兴通讯股份有限公司 云数据中心互联方法及装置
WO2018090907A1 (zh) * 2016-11-17 2018-05-24 新华三技术有限公司 报文转发
CN108900406A (zh) * 2018-06-26 2018-11-27 新华三技术有限公司 一种流量转发方法及装置
CN110061922A (zh) * 2019-04-30 2019-07-26 新华三技术有限公司 报文转发方法和装置
CN110290078A (zh) * 2019-06-13 2019-09-27 杭州迪普科技股份有限公司 报文转发方法、装置、电子设备及机器可读存储介质
CN110891325A (zh) * 2019-12-10 2020-03-17 新华三大数据技术有限公司 隧道建立方法及装置
WO2020062268A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 在网络中的负载均衡和报文重排序方法及装置
CN111131435A (zh) * 2019-12-19 2020-05-08 浙江源创建筑智能科技有限公司 一种以太网链路层设备发现和配置的方法
CN111917624A (zh) * 2020-07-13 2020-11-10 烽火通信科技股份有限公司 一种在vxlan传输中控制信息的传送方法及***
CN112152899A (zh) * 2019-06-28 2020-12-29 中兴通讯股份有限公司 一种基于网络切片的数据处理方法及装置
CN113794615A (zh) * 2021-08-05 2021-12-14 新华三信息安全技术有限公司 一种报文转发方法及设备
CN114095420A (zh) * 2022-01-20 2022-02-25 苏州浪潮智能科技有限公司 链路聚合方法、装置、电子设备及存储介质
CN114143244A (zh) * 2021-11-24 2022-03-04 新华三大数据技术有限公司 一种报文处理方法、装置、存储介质及网关设备
CN115834287A (zh) * 2022-11-28 2023-03-21 北京神经元网络技术有限公司 宽带现场总线的多域数据交换设备、网络***及交换方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078969A (zh) * 2013-02-01 2013-05-01 杭州华三通信技术有限公司 一种mac地址信息通告方法和设备
US20130182604A1 (en) * 2012-01-12 2013-07-18 Cisco Technology, Inc. Connecting Layer-2 Domains Over Layer-3 Networks
CN103227843A (zh) * 2012-08-31 2013-07-31 杭州华三通信技术有限公司 一种物理链路地址管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130182604A1 (en) * 2012-01-12 2013-07-18 Cisco Technology, Inc. Connecting Layer-2 Domains Over Layer-3 Networks
CN103227843A (zh) * 2012-08-31 2013-07-31 杭州华三通信技术有限公司 一种物理链路地址管理方法及装置
CN103227757A (zh) * 2012-08-31 2013-07-31 杭州华三通信技术有限公司 一种报文转发方法及设备
CN103078969A (zh) * 2013-02-01 2013-05-01 杭州华三通信技术有限公司 一种mac地址信息通告方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
华为: "Technology White Paper-TRILL", 《HTTP://ENTERPRISE.HUAWEI.COM》 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10313154B2 (en) 2015-05-04 2019-06-04 New H3C Technologies Co., Ltd. Packet forwarding
WO2016177321A1 (en) * 2015-05-04 2016-11-10 Hangzhou H3C Technologies Co., Ltd. Packet forwarding
CN104869058A (zh) * 2015-06-04 2015-08-26 北京京东尚科信息技术有限公司 一种数据报文转发方法和装置
CN106302264A (zh) * 2015-06-08 2017-01-04 杭州华三通信技术有限公司 Dune交换线卡板与灵活线卡板间的单播报文互通方法及装置
CN106302264B (zh) * 2015-06-08 2019-06-14 新华三技术有限公司 Dune交换线卡板与灵活线卡板间的单播报文互通方法及装置
CN106341857A (zh) * 2015-07-17 2017-01-18 中兴通讯股份有限公司 通道确定方法及装置
CN106487677A (zh) * 2015-09-02 2017-03-08 华为技术有限公司 运营商边缘设备及数据转发方法
CN106487677B (zh) * 2015-09-02 2019-10-01 华为技术有限公司 运营商边缘设备及数据转发方法
CN107204907B (zh) * 2016-03-16 2021-03-26 中兴通讯股份有限公司 云数据中心互联方法及装置
WO2017157206A1 (zh) * 2016-03-16 2017-09-21 中兴通讯股份有限公司 云数据中心互联方法及装置
CN107204907A (zh) * 2016-03-16 2017-09-26 中兴通讯股份有限公司 云数据中心互联方法及装置
CN106059946B (zh) * 2016-05-23 2019-12-06 新华三技术有限公司 一种报文转发方法和装置
CN106059946A (zh) * 2016-05-23 2016-10-26 杭州华三通信技术有限公司 一种报文转发方法和装置
CN106411835B (zh) * 2016-05-25 2019-09-06 海尔优家智能科技(北京)有限公司 一种基于AllJoyn Control Panel的传输方法和装置
CN106411835A (zh) * 2016-05-25 2017-02-15 海尔优家智能科技(北京)有限公司 一种基于AllJoyn Control Panel的传输方法和装置
CN106506378A (zh) * 2016-11-10 2017-03-15 杭州迪普科技股份有限公司 Mac地址表的更新方法和装置
WO2018090907A1 (zh) * 2016-11-17 2018-05-24 新华三技术有限公司 报文转发
US11159341B2 (en) 2016-11-17 2021-10-26 New H3C Technologies Co., Ltd. Forwarding packet
CN108900406A (zh) * 2018-06-26 2018-11-27 新华三技术有限公司 一种流量转发方法及装置
CN108900406B (zh) * 2018-06-26 2021-05-28 新华三技术有限公司 一种流量转发方法及装置
US11736407B2 (en) 2018-09-30 2023-08-22 Huawei Technologies Co., Ltd. Method and apparatus for load balancing and packet re-sequencing on network
WO2020062268A1 (zh) * 2018-09-30 2020-04-02 华为技术有限公司 在网络中的负载均衡和报文重排序方法及装置
CN110061922A (zh) * 2019-04-30 2019-07-26 新华三技术有限公司 报文转发方法和装置
CN110290078A (zh) * 2019-06-13 2019-09-27 杭州迪普科技股份有限公司 报文转发方法、装置、电子设备及机器可读存储介质
WO2020259085A1 (zh) * 2019-06-28 2020-12-30 中兴通讯股份有限公司 一种基于网络切片的数据处理方法及装置
CN112152899A (zh) * 2019-06-28 2020-12-29 中兴通讯股份有限公司 一种基于网络切片的数据处理方法及装置
CN110891325B (zh) * 2019-12-10 2021-11-23 新华三大数据技术有限公司 隧道建立方法及装置
CN110891325A (zh) * 2019-12-10 2020-03-17 新华三大数据技术有限公司 隧道建立方法及装置
CN111131435A (zh) * 2019-12-19 2020-05-08 浙江源创建筑智能科技有限公司 一种以太网链路层设备发现和配置的方法
CN111917624A (zh) * 2020-07-13 2020-11-10 烽火通信科技股份有限公司 一种在vxlan传输中控制信息的传送方法及***
CN113794615A (zh) * 2021-08-05 2021-12-14 新华三信息安全技术有限公司 一种报文转发方法及设备
CN114143244A (zh) * 2021-11-24 2022-03-04 新华三大数据技术有限公司 一种报文处理方法、装置、存储介质及网关设备
CN114143244B (zh) * 2021-11-24 2024-01-30 新华三大数据技术有限公司 一种报文处理方法、装置、存储介质及网关设备
CN114095420A (zh) * 2022-01-20 2022-02-25 苏州浪潮智能科技有限公司 链路聚合方法、装置、电子设备及存储介质
CN114095420B (zh) * 2022-01-20 2022-05-31 苏州浪潮智能科技有限公司 链路聚合方法、装置、电子设备及存储介质
CN115834287A (zh) * 2022-11-28 2023-03-21 北京神经元网络技术有限公司 宽带现场总线的多域数据交换设备、网络***及交换方法
CN115834287B (zh) * 2022-11-28 2023-11-14 北京神经元网络技术有限公司 宽带现场总线的多域数据交换设备、网络***及交换方法

Also Published As

Publication number Publication date
CN104378297B (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
CN104378297B (zh) 一种报文转发方法及设备
US10305696B2 (en) Group bundling priority dissemination through link-state routing protocol in a network environment
CN104378296B (zh) 一种报文转发方法及设备
CN106992874B (zh) 用于通信的方法和网络设备
US8694664B2 (en) Active-active multi-homing support for overlay transport protocol
CN103873373B (zh) 一种组播数据报文转发方法及设备
US9071458B2 (en) Dual adjacency between edge devices at a network site
CN103685022B (zh) 报文转发方法及服务提供商网络边缘设备
CN102932254B (zh) 报文转发方法及装置
US20150023352A1 (en) Implement equal cost multiple path of trill network
CN102957589B (zh) 业务数据传输的方法、网络节点及***
CN102368727B (zh) 跨ip网络的trill网络通信方法、***和设备
CN107948041B (zh) 构建vxlan集中式多活网关的方法和设备
US9288067B2 (en) Adjacency server for virtual private networks
EP3528441B1 (en) Message forwarding
CN102971992A (zh) 跨过多个站点的二层
US8902794B2 (en) System and method for providing N-way link-state routing redundancy without peer links in a network environment
CN104471899A (zh) 通过ietf evpn的802.1aq支持
CN103546374A (zh) 一种边缘二层网络中转发报文的方法和装置
CN101800691A (zh) 一种建立网络中数据转发路径的方法、设备和***
CN104579981B (zh) 一种组播数据报文转发方法及设备
US20130279513A1 (en) Systems and methods for pseudo-link creation
CN113037883B (zh) 一种mac地址表项的更新方法及装置
CN104468139A (zh) 一种组播数据报文转发方法及设备
US9548887B2 (en) Proactive creation of multicast state in an overlay transport network to achieve fast convergence on failover

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant