CN106254256B - 基于三层vxlan网关的数据报文转发方法和设备 - Google Patents
基于三层vxlan网关的数据报文转发方法和设备 Download PDFInfo
- Publication number
- CN106254256B CN106254256B CN201510304025.5A CN201510304025A CN106254256B CN 106254256 B CN106254256 B CN 106254256B CN 201510304025 A CN201510304025 A CN 201510304025A CN 106254256 B CN106254256 B CN 106254256B
- Authority
- CN
- China
- Prior art keywords
- port
- data message
- interface board
- layers
- vxlan
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了基于三层VXLAN网关的数据报文转发方法和设备。本发明中,ARP表项分开存放在三层VXLAN网关的网板,并且,三层VXLAN网关的网板除了存放数量不多的路由表项之外就只存放ARP表项,这样,即使ARP表项数量非常庞大,因为不再有其他过多的表项与ARP表项竞争硬件资源来维护,避免ARP表项没有过多硬件资源维护的缺陷,不影响基于三层VXLAN网关的数据报文转发方法。
Description
技术领域
本申请涉及网络通信技术,特别涉及基于三层虚拟可扩展局域网(VXLAN:VirtualeXtensible Local Access Network)网关的数据报文转发方法和设备。
背景技术
在数据中心应用中,如果要为VXLAN网络内的虚拟机(VM:Virtual Machine)提供三层业务,则需要在网络中部署三层VXLAN网关,三层VXLAN网关的三层网关功能,能够使VXLAN网络内的VM与外界其他网络的设备进行三层通信,以及使VXLAN网络内的VM与其他VXLAN网络内的VM进行三层通信。
为了实现三层VXLAN网关的三层网关功能,三层VXLAN网关的接口板、网板都全局存放地址解析协议(ARP)表项。一个ARP表项代表了一个VM,在大型的数据中心应用中,VM的数量非常庞大,这就导致ARP表项数量非常庞大,而三层VXLAN网关中接口板、网板的硬件资源有限,除了存放ARP表项之外,还会存放MAC表项、路由表项、VXLAN封装表项和VXLAN解封装表项,这会出现没有过多硬件资源维护非常庞大的ARP表项的缺陷,影响了基于三层VXLAN网关的数据报文转发。
发明内容
本申请提供了基于三层VXLAN网关的数据报文转发方法和设备,以实现三层VXLAN网关的数据报文转发。
本申请提供的技术方案包括:
一种基于三层VXLAN网关的数据报文转发方法,该方法应用于三层VXLAN网关,包括:
三层VXLAN网关的接口板接收数据报文;
三层VXLAN网关的接口板确定所述数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,与所述数值匹配的一类网板本地存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与所述数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址;
三层VXLAN网关的所述接口板将数据报文发送至目标网板;
三层VXLAN网关的所述目标网板接收到三层VXLAN网关的接口板发送的数据报文,确定所述数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
一种基于三层VXLAN网关的数据报文转发设备,该设备应用于三层VXLAN网关,包括:
接口板处理单元,处于三层VXLAN网关的接口板,用于接收数据报文,确定所述数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,将数据报文发送至目标网板,与所述数值匹配的一类网板本地都存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与所述数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址;以及,
在作为网板查找到的ARP表项中的出端口相关联的第一目标接口板时与网板合作转发数据报文;
网板处理单元,处于所述三层VXLAN网关的网板,用于接收到三层VXLAN网关的接口板发送的数据报文,确定数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
由以上技术方案可以看出,本发明中,ARP表项分开存放在三层VXLAN网关的网板,并且,三层VXLAN网关的网板除了存放数量不多的路由表项之外就只存放ARP表项,这样,即使ARP表项数量非常庞大,因为不再有其他过多的表项与ARP表项竞争硬件资源来维护,避免ARP表项没有过多硬件资源维护的缺陷,进而实现了基于三层VXLAN网关的数据报文转发方法。
附图说明
图1为本发明提供的方法流程图;
图2为本发明提供的实施例1示意图;
图3为本发明提供的实施例2示意图;
图4为本发明提供的实施例3示意图;
图5为本发明提供的设备结构图;
图6为本发明提供的图5所示设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明中,为了避免没有过多硬件资源维护ARP表项的缺陷,本发明中,对三层VXLAN网关的接口板、网板进行以下限定:
1),将三层VXLAN网关的网板分为N类,N大于1,同一类网板本地存放相同ARP表项,不同类网板本地存放不同ARP表项。
这里,各类网板上存放的ARP表项是三层VXLAN网关的主控板从接口板按照类似现有ARP表项学习方式学习的ARP表项中区分并下发至各类网板的。其中,ARP表项的不同主要体现在ARP表项中目的IP地址的设定比特位置处的数值不同。需要说明的是,为保证网板上ARP表项的冗余,每类网板中至少包含两块以上网板。
在本发明中,上述设定比特位置包含的比特(bit)位的数量M由上述的N决定,具体可通过以下公式限定:2M≥N。至于M个比特位的具体位置,本发明并不具体限定,完全可预先配置。
在本发明中,各类网板本地存放的ARP表项数量并不限定必须一致,可以允许各类网板本地存放的ARP表项数量不一致,比如下述例2中第一类网板存放的ARP表项比第二类网板、第三类网板存放的ARP表项多。
下面通过三个举例对上述将三层VXLAN网关的网板分为N类,N大于1,同一类网板本地存放相同ARP表项,不同类网板本地存放不同ARP表项进行描述:
例1:
在例1中,将三层VXLAN网关的网板分为两类,即上述的N取值为2,分成的两类网板称为第一类网板和第二类网板。
本例1中,在第一类网板本地存放第一类ARP表项,第二类网板本地存放第二类ARP表项,其中,第一类ARP表项为:表项中目的IP地址的设定比特位置处的数值为奇数;第二类ARP表项为:表项中目的IP地址的设定比特位置处的数值为偶数。
本例1中,为区分出两类ARP表项,按照上述公式,设定比特位置具体实现时以包含1个bit位为例,该1个bit位可以比如为任意一个bit位,比如开始的第一个bit位、或者最后一个bit位等。以设定比特位置为最后一个bit位为例,则将表项中目的IP地址的最后一个bit位的数值为奇数(即数值为1)的ARP表项作为第一类ARP表项,将表项中目的IP地址的最后一个bit位的数值为偶数(即数值为0)的ARP表项作为第二类ARP表项。
例2:
本例2中,将三层VXLAN网关的网板分为三类,即上述的N取值为3,分成的三类网板称为第一类网板、第二类网板、第三类网板。
本例2中,在第一类网板本地存放第一类ARP表项,第二类网板本地存放第二类ARP表项,在第三类网板本地存放第三类ARP表项。
在例2中,为区分出三类ARP表项,按照上述公式,设定比特位置具体实现时以包含2个bit位为例,该2个bit位可以为任意两个连续或者不连读的bit位,比如为开始前两个bit位、或者最后两个bit位、开始的第一个bit位和最后一个bit位等,以设定比特位置为最后两个bit位为例,则将表项中目的IP地址的最后两个bit位的数值为00、01的ARP表项作为第一类ARP表项,将表项中目的IP地址的最后两个bit位的数值为10的ARP表项作为第二类ARP表项、将表项中目的IP地址的最后两个bit位的数值为11的ARP表项作为第三类ARP表项。
例3:
本例3中,将三层VXLAN网关的网板分为2M类,即上述的N取值为2M,M大于2,分成的2M类网板称为第一类网板、第二类网板、直至第2M类网板。
本例3中,在第一类网板本地存放第一类ARP表项,第二类网板本地存放第二类ARP表项,依次类推,在第2M类网板本地存放第2M类ARP表项。
在例3中,为区分出2M类ARP表项,按照上述公式,设定比特位置具体实现时以包含M个bit位为例,该M个bit位可以为任意M个连续或者不连读的bit位,比如为开始前M个bit位、或者最后M个bit位、开始的前M/2个bit位和最后的M/2个bit位等,以设定比特位置为最后M个bit位为例,则将表项中目的IP地址的最后M个bit位均为00的ARP表项作为第一类ARP表项,将表项中目的IP地址的最后M个bit位中只有最后一个bit位为1,其余为0的ARP表项作为第二类ARP表项,依次类推,将表项中目的IP地址的最后M个bit位的数值均为1的ARP表项作为第2M类ARP表项。
2),三层VXLAN网关的各类网板本地存有相同的路由表项。
在实际应用中,路由表项数量不多,不需要分开下发至各类网板,各类网板上都可存放完整且相同的路由表项。
在目前的应用中,对于依赖路由表项转发的报文,其目前还没有加封装处理的需求,因此,本发明中,作为一个优选实施例,可顺应当前需求,对三层VXLAN网关中各类网板本地存有的路由表项进行限定,限定三层VXLAN网关中各类网板本地存有的路由表项只是一些出端口为主机接入端口的路由表项。
3),三层VXLAN网关的接口板本地存有MAC表项、VXLAN封装表项和VXLAN解封装表项,不再存有ARP表项和路由表项。
通过以上限定可以看出,本发明中,ARP表项分开存放在三层VXLAN网关的网板,并且,三层VXLAN网关的网板除了存放数量不多的路由表项之外就只存放ARP表项,这样即使ARP表项数量非常庞大,因为不再有其他过多的表项与ARP表项竞争硬件资源来维护,就不会出现ARP表项没有过多硬件资源维护的缺陷。
基于上述限定,下面对本发明提供的方法进行描述:
参见图1,图1为本发明提供的方法流程图。该流程应用于上述的三层VXLAN网关,包括以下步骤:
步骤101,三层VXLAN网关的接口板接收数据报文。
本步骤101中,三层VXLAN网关的接口板接收数据报文具体包含以下两种情况:
情况1,三层VXLAN网关的接口板接收未带VXLAN封装的数据报文。
情况2,三层VXLAN网关的接口板接收带VXLAN封装的数据报文,此种情况下,三层VXLAN网关的接口板对接收的带VXLAN封装的数据报文进行VXLAN解封装,VXLAN解封装后的数据报文就是下文所指的数据报文。
如上对三层VXLAN网关的接口板限定的表项,三层VXLAN网关的接口板是存有VXLAN解封装表项,基于此,上述情况2下对接收的带VXLAN封装的数据报文进行VXLAN解封装就由三层VXLAN网关的接口板依赖于本地存有的VXLAN解封装表项实现。
步骤102,三层VXLAN网关的接口板确定数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板。
这里,三层VXLAN网关的接口板确定数据报文进行三层转发具体为:判断数据报文的目的MAC是否为本网关的网关MAC,如果是,确定数据报文进行三层转发,否则,确定数据报文不进行三层转发。
如上所述的各类网板存放的ARP表项,这里与数值匹配的一类网板是指本地都存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址。以上述的例1为例,则在数据报文的目的IP地址中设定比特位置处的数值是奇数(即数值为1)时,选择第一类网板中的一个网板为目标网板,在数据报文的目的IP地址中设定比特位置处的数值是偶数(即数值为0)时,选择第二类网板中的一个网板为目标网板。例2、例3原理类似,不再赘述。
作为本发明的一个优选实施例,本发明中,可通过在接口板设置ACL表项实现步骤102中依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,其中,ACL表项的匹配条件为:目的IP地址中设定位置处的数值,ACL表项的动作为:选择哪一类网板,依据设定算法比如负载均衡从该类网板中选择一个网板。
步骤103,三层VXLAN网关的接口板将数据报文发送至目标网板。
作为本发明的一个实施例,步骤103中,为了保证三层VXLAN网关的接口板顺利发送数据报文至三层VXLAN网关上的目标网板,一种较佳的实现方式是对数据报文进行用于转发至目标网板的内部封装,为便于描述,这里将该内部封装简称为网板代理封装。如此,步骤103中,接口板将数据报文发送至三层VXLAN网关上的目标网板可包括:
步骤a1,将数据报文进行网板代理封装。
这里,网板代理封装包含:目的代理芯片标识(mod)和目的代理端口标识(port),目的代理mod为网板代理芯片标识,目的代理port为网板代理端口标识;
优选地,作为本发明一个实例,网板代理芯片标识可为预先配置的用于指示网板可继续执行查表进行报文转发的芯片标识,网板代理端口标识可为预先配置的用于指示网板可继续执行查表进行报文转发的端口标识。当三层VXLAN网关存在多个网板时,所有网板都会配置上述的网板代理芯片标识和网板代理端口标识。
步骤a2,通过本接口板连接目标网板的互连口发送网板代理封装的数据报文至三层VXLAN网关上的目标网板。
通过上述步骤a1和步骤a2,三层VXLAN网关的接口板最终会将数据报文顺利发送至三层VXLAN网关的目标网板。
步骤104,三层VXLAN网关的所述目标网板接收到三层VXLAN网关的接口板发送的数据报文,确定数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
基于上面步骤103描述的网板代理封装,则较佳地,步骤104中,三层VXLAN网关上的目标网板接收到的数据报文是经由网板代理封装的数据报文,基于此,本步骤104中,三层VXLAN网关上的目标网板确定数据报文进行三层转发包括:
从接收的数据报文的网板代理封装头中确定出目的代理mod和目的代理port;如果确定出的目的代理mod为上述的网板代理芯片标识,目的代理port为上述的网板代理端口标识,则确定数据报文进行三层转发,对数据报文的网板代理封装进行解封装,否则,直接按照网板代理封装的目的代理port继续转发接收的数据报文即可,这类似现有网板转发报文的方式,不再展开描述。
这里,作为一个实施例,ARP表项具体实现时可包含目的IP地址、VLAN标识、目的MAC地址、源MAC地址、出端口等。基于ARP表项包含的内容,本步骤104中与数据报文的目的IP地址匹配的ARP表项就为包含数据报文的目的IP地址的ARP表项。
作为一个优选实施例,步骤104中,三层VXLAN网关上的目标网板与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文包括步骤b1和步骤b2:
步骤b1,三层VXLAN网关上的目标网板将数据报文的源MAC地址修改为本三层VXLAN网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的ARP表项中的目的MAC地址,根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装,将带有内部封装的数据报文发送至三层VXLAN网关上与查找到的ARP表项中的出端口相关联的第一目标接口板;
作为本发明的一个实施例,在步骤b1中,根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装可包括:
步骤c1,识别该查找到的ARP表项中的出端口是主机接入端口还是网络侧端口,如果是主机接入端口,执行步骤c2,如果是网络侧端口,则执行步骤c3。
步骤c2,确定三层VXLAN网关上该主机接入端口所处的接口板为第一目标接口板,对修改后的数据报文进行第一内部封装,将第一内部封装的数据报文发送至三层VXLAN网关上的第一目标接口板。
这里,第一内部封装包含:第一目的mod和第一目的port,其中,第一目的mod为第一目标接口板上用于转发报文的芯片的标识,第一目的port为该查找到的ARP表项中的出端口;
步骤c3,在网络侧端口为单一的物理端口时,确定该单一的物理端口为目标出端口,在网络侧端口为至少两个物理端口聚合形成的聚合端口时,选择聚合端口中一个物理端口为目标出端口,确定三层VXLAN网关上目标出端口所在的接口板为第一目标接口板,对修改后的数据报文进行第二内部封装,将第二内部封装的报文发送至三层VXLAN网关上的所述目标接口板。
这里,第二内部封装包含:第二目的mod、第二目的port、以及查找到的ARP表项中的VLAN标识(ID);第二目的mod为:接口板代理芯片标识,第二目的port为接口板代理端口标识。三层VXLAN网关上所有接口板都会配置上述的接口板代理芯片标识和接口板代理端口标识。
作为一个优选实施例,步骤c3中,从聚合端口中选择一个物理端口的方式可有多种方式,比如随机选择一个,或者按照设定的选择方式比如哈希算法等选择,本发明并不具体限定。
步骤b2,三层VXLAN网关上的第一目标接口板接收三层VXLAN网关上的所述目标网板发送的带有内部封装的数据报文,根据内部封装转发解内部封装后的数据报文。
基于上面步骤b1限定的三层VXLAN网关上的目标网板如何发送数据报文至三层VXLAN网关上的第一目标接口板,则本步骤b2中,三层VXLAN网关上的第一目标接口板根据内部封装转发解内部封装后的数据报文可包括步骤d1至步骤d3:
步骤d1,在接收的数据报文带有第一内部封装时,执行步骤d2,在接收的数据报文带有第二内部封装时,执行步骤d3。
步骤d2,从第一内部封装头中确定出第一目的mod和第一目的port;如果第一目的mod为本接口板上用于转发报文的芯片的标识且第一目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第一内部封装进行解封装并通过第一目的port对应的主机接入端口转发。
步骤d3,从第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识、确定出的第二目的port为接口板代理端口标识,则从数据报文的第二内部封装头中确定出VLAN ID并对数据报文的第二内部封装进行解封装,从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLAN ID具有映射关系的VNID,在本接口板本地的MAC表项中查找到与解封装后的数据报文的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID对解封装后的数据报文进行VXLAN封装并通过该找到的VXLAN封装表项中的出端口发送。
这里,MAC表项中的出端口实质为网络侧端口(具体为VXLAN隧道口),当MAC表项中的出端口为VXLAN隧道口时,该VXLAN隧道口是一个虚拟的概念,作为本发明一个实施例,该VXLAN隧道口可通过VXLAN隧道封装索引表示,比如VXLAN隧道口为Tunnel1(Tunnel1为VXLAN封装索引)。基于此,上述的依据查找到的MAC表项中的出端口从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项实质就是依据VXLAN封装索引从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项,这很容易实现。
这里,利用VXLAN封装表项和VNID对解封装后的数据报文进行VXLAN封装具体可为:利用找到的VXLAN封装表项中的VXLAN封装信息对解封装后的数据报文进行VXLAN外层头封装,利用找到的VNID对解封装后的数据报文进行VXLAN字段(实质为VNID字段)的封装。这里VXLAN外层头至少包含外层以太(ETH)封装,其中,外层以太(ETH)封装至少包含外层源MAC地址、外层目的MAC地址、外层源IP地址、外层目的IP地址等。
作为本发明的一个实施例,这里,通过该找到的VXLAN封装表项中的出端口发送可为:识别该找到的VXLAN封装表项中的出端口,如果该出端口为单一的物理端口,则直接通过该单一的物理端口发送,而如果该出端口为至少两个物理端口聚合形成的聚合端口,则就需要从聚合端口中选择一个物理端口,通过该选择的物理端口发送。需要说明的是,这里从聚合端口中选择一个物理端口的方式不再随机,其必须最终保证选择的物理端口与上述目标网板在确定第一目标接口板时选择的物理端口一致。至于具体实现时如何保证接口板最终选择的物理端口与上述目标网板在确定第一目标接口板时选择的物理端口一致,本发明并不具体限定,其可有多种实现方式,比如目标网板按照哈希方式选择物理端口,第一目标接口板也同样按照哈希方式选择物理端口等。
至此,完成图1所示的流程。
通过图1所示的流程可以看出,本发明中,ARP表项分开存放在三层VXLAN网关的网板,并且,三层VXLAN网关的网板除了存放数量不多的路由表项之外就只存放ARP表项,这样,即使ARP表项数量非常庞大,因为不再有其他过多的表项与ARP表项竞争硬件资源来维护,避免ARP表项没有过多硬件资源维护的缺陷,并且,本发明中,三层VXLAN网关的接口板不管是接收到未带VXLAN封装的数据报文,还是接收到带有VXLAN封装的数据报文,其统一依据数据报文的目的IP地址中设定位置处的数值从三层VXLAN网关中确定目标网板,将数据报文发送至三层VXLAN网关上的目标网板,由目标网板通过ARP表项查找执行三层代理转发,这优化了三层VXLAN网关的三层访问功能,且整个过程只是在三层VXLAN网关内部执行,没有浪费任何带宽资源,做到了报文线速转发的目的。
需要说明的是,在上述步骤103中,三层VXLAN网关上的目标网板如果未查找到与数据报文的目的IP地址匹配的ARP表项,则进一步执行以下步骤e1至步骤e3:
步骤e1,在本地路由表项中查找到与数据报文的目的IP地址匹配的路由表项;
如上限定的三层VXLAN网关中网板上的路由表项,这里查找到的路由表项中的出端口为三层VXLAN网关本地的主机接入端口;
步骤e2,确定该查找到的路由表项中的出端口(三层VXLAN网关本地的主机接入端口)所处的接口板为第二目标接口板,将数据报文的源MAC地址修改为本网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的路由表项中的目的MAC地址,对修改后的数据报文进行第三内部封装并发送至三层VXLAN网关上的第二目标接口板;
这里,第三内部封装包含:第三目的mod和第三目的port,第三目的mod为所述第二目标接口板上用于转发报文的芯片的标识,第三目的port为该查找到的路由表项中的出端口(三层VXLAN网关本地的主机接入端口)。
步骤e3,三层VXLAN网关上的第二目标接口板接收三层VXLAN网关上的所述目标网板发送的数据报文,从数据报文的第三内部封装头中确定出第三目的mod和第三目的port;如果所述第三目的mod为本接口板上用于转发报文的芯片的标识且所述第三目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第三内部封装进行解封装并通过第三目的port对应的主机接入端口转发。
通过步骤e1至步骤e3实现了基于路由表项的数据报文转发。
下面以例1描述的将三层VXLAN网关的网板分为两类为例并通过三个实施例对图1所示流程进行描述,将三层VXLAN网关的网板分为三类以上的实现原理类似,不再一一赘述:
实施例1:
以图2所示的组网为例,在图2中,物理机(PM:Physical Machine)1至PM5为VLAN中的设备,在图2中,三层VXLAN网关包含主控板、接口板和网板。主控板在本申请中不重点涉及,图2未示出。图2仅示出三层VXLAN网关的两个接口板(接口板1、接口板2)、四个网板(网板1至网板4)为例。
其中,接口板1、接口板2本地存有MAC表项、VXLAN封装表项和VXLAN解封装表项;
网板1、网板2为第一类网板,其本地存有第一类ARP表项,网板3、网板4为第二类网板,其本地存有第二类ARP表项,网板1至网板4本地还存有路由表项。
以PM1访问PM2为例,则,
三层VXLAN网关的接口板1通过端口10收到来自VLAN中PM1发送的报文。为便于描述,这里将接收的报文称为报文0。接口板1收到的报文0未带有VXLAN封装。
接口板1发现报文0为数据报文,且目的MAC地址为本三层VXLAN网关的MAC地址,则识别报文0的目的IP地址中设定位置处的数值是奇数还是偶数,假如是偶数,则选择网板3或者网板4为目标网板,这里假如接口板1选择网板3为目标网板。
接口板1对报文1进行网板代理封装,网板代理封装中的目的代理mod为网板代理芯片标识(图2以chip01为例),网板代理封装中的目的代理port为网板代理端口标识(图2以Port1为例)。为便于描述,这里将网板代理封装后的报文0称为报文1。
接口板1通过连接网板3的互连口将报文1发送至网板3。
网板3接收到报文1,从报文1的网板代理封装头中识别出目的代理mod和目的代理port分别为chip01和Port1,正好依次是网板代理芯片标识和网板代理端口标识,则对报文1的网板代理封装进行解封装(即恢复了上述的报文0)。
网板3在本地的ARP表项中查找到与报文0的目的IP地址匹配的ARP表项,将报文0的源MAC地址修改为三层VXLAN网关的网关MAC地址、将报文0的目的MAC地址修改为查找到的ARP表项中的目的MAC地址(图2以查找到的ARP表项中的目的MAC地址实质为PM2的MAC地址);为便于描述,这里将源MAC地址、目的MAC地址修改后的报文0称为报文2。
网板3发现查找到的ARP表项中的出端口为主机接入端口,确定三层VXLAN网关上该主机接入端口所处的接口板为第一目标接口板,为便于描述,这里假设第一目标接口板为接口板2。
网板3对报文2进行第一内部封装,为便于描述,这里将第一内部封装的报文2称为报文3。第一内部封装包含第一目的mod和第一目的port,其中,第一目的mod为接口板2上用于转发报文的芯片的标识,这里以Chip02为例描述,第一目的port为主机接入端口的标识,这里以Port2为例;
网板1通过本网板1连接接口板2的互连口将报文3发送至接口板2。
接口板2接收网板发送的报文3,从报文3的第一内部封装头中确定出第一目的mod和第一目的port;如果确定出的第一目的mod为本接口板上用于转发报文的芯片的标识Chip02、且确定出的第一目的port为本接口板上的主机接入端口Port2,则对报文3的第一内部封装进行解封装(即恢复了上述的报文2)。
接口板2通过Port2发送报文2。
最终,PM2会收到PM1发送的报文。即通过三层VXLAN网关实现了从VLAN至VLAN的数据报文转发。
至此,完成实施例1的描述。
实施例2:
以图3所示的组网为例,在图3中,VM01至VM05为VXLAN中的设备,VXLAN的VNID为100,PM1至PM5为VLAN中的设备,在图3中,三层VXLAN网关包含主控板、接口板和网板。主控板在本申请中不重点涉及,图3未示出。图3仅示出三层VXLAN网关的两个接口板(接口板1、接口板2)、四个网板(网板1至网板4)为例。
其中,接口板1、接口板2本地存有MAC表项、VXLAN封装表项和VXLAN解封装表项;
网板1、网板2为第一类网板,其本地存有第一类ARP表项,网板3、网板4为第二类网板,其本地存有第二类ARP表项,网板1至网板4本地还存有路由表项。
以PM1访问VM01为例,则,
三层VXLAN网关的接口板1通过端口10收到来自VLAN中PM1发送的报文。为便于描述,这里将接收的报文称为报文0。接口板1收到的报文0未带有VXLAN封装。
接口板1发现报文0为数据报文,且目的MAC地址为本三层VXLAN网关的MAC地址,则识别报文0的目的IP地址中设定位置处的数值是奇数还是偶数,假如是偶数,则选择网板3或者网板4为目标网板,这里假如接口板1选择网板3为目标网板。
接口板1对报文1进行网板代理封装,网板代理封装中的目的代理mod为网板代理芯片标识(图2以chip01为例),网板代理封装中的目的代理port为网板代理端口标识(图2以Port1为例)。为便于描述,这里将网板代理封装后的报文0称为报文1。
接口板1通过连接网板3的互连口将报文1发送至网板3。
网板3接收到报文1,从报文1的网板代理封装头中识别出目的代理mod和目的代理port分别为chip01和Port1,正好依次是网板代理芯片标识和网板代理端口标识,则对报文1的网板代理封装进行解封装(即恢复了上述的报文0)。
网板3在本地的ARP表项中查找到与报文0的目的IP地址匹配的ARP表项,将报文0的源MAC地址修改为三层VXLAN网关的网关MAC地址、将报文0的目的MAC地址修改为查找到的ARP表项中的目的MAC地址(图2以查找到的ARP表项中的目的MAC地址实质为PM2的MAC地址);为便于描述,这里将源MAC地址、目的MAC地址修改后的报文0称为报文2。
网板3发现查找到的ARP表项中的出端口为网络侧端口,假如该网络侧端口为单一物理端口,则网板1选择该单一物理端口为目标出端口,这里假如选择的物理端口为端口20。
网板3确定三层VXLAN网关上端口20所处的接口板为第一目标接口板。为便于描述,这里假设第一目标接口板为接口板2。
网板3对报文2进行第二内部封装,为便于描述,这里将第二内部封装的报文2称为报文3。第二内部封装包含第二目的mod、第二目的port、以及查找到的ARP表项中的VLAN标识。第二目的mod为:接口板代理芯片标识(图3以接口板代理芯片标识为Chip12为例描述)。第二目的port为接口板代理端口标识(图3以接口板代理端口标识为Port12为例描述)。
网板3通过本网板3连接接口板2的互连口将报文3发送至接口板2。
接口板2接收网板3发送的报文3,从报文3的第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识Chip12、且确定出的第二目的port为接口板代理端口标识Port12,则从报文34的第二内部封装头中确定出报文3封装的VLAN ID,并对报文3的第二内部封装进行解封装(即恢复了上述的报文2)。
接口板2从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLANID具有映射关系的VNID(实质为VXLAN的VNID100),在本接口板2本地的MAC表项中找到与报文2的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板2本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID(实质为VXLAN的VNID100)对报文2进行VXLAN封装。为便于描述,这里将VXLAN封装的报文2称为报文4。这里,接口板2利用找到的VXLAN封装表项和找到的VNID对报文2进行VXLAN封装具体为:利用找到的VXLAN封装表项中的VXLAN封装信息对报文2进行VXLAN外层头的封装,利用找到的VNID(图3以VXLAN的VNID100为例)对报文2进行VXLAN字段(实质为VNID字段)的封装。图3所示的报文2的VXLAN封装中以VXLAN外层头的外层ETH封装包含外层源MAC地址、外层目的MAC地址、外层源IP地址、外层目的IP地址为例。
接口板2依据找到的VXLAN封装表项中的出端口发送报文4。这里,具体实现时,接口板2依据找到的VXLAN封装表项中的出端口发送报文4具体为:识别该找到的VXLAN封装表项中的出端口,该识别的出端口实质是网板3找到的ARP表项中的出端口,如上所述,网板3找到的ARP表项中的出端口为单一的物理端口,基于此,这里识别出的VXLAN封装表项中的出端口就为单一的物理端口,如此,接口板2直接通过该单一的物理端口发送报文4。
最终VXLAN的VM01会收到PM1发送的报文。即通过三层VXLAN网关实现了从VLAN至VXLAN的数据报文转发。
至此,完成实施例2的描述。
实施例3:
以图4所示的组网为例,在图4中,VM01至VM05为第一VXLAN中的设备,第一VXLAN的VNID为100,VM11至VM15为第二VXLAN中的设备,第二VXLAN的VNID为200。在图4中,三层VXLAN网关连接在第一VXLAN和第二VXLAN之间,其包含主控板、接口板和网板。主控板在本申请中不重点涉及,图4未示出。图4仅示出三层VXLAN网关的两个接口板(接口板1、接口板2)、四个网板(网板1至网板4)为例。
其中,接口板1、接口板2本地存有MAC表项、VXLAN封装表项和VXLAN解封装表项;
网板1、网板2为第一类网板,其本地存有第一类ARP表项,网板3、网板4为第二类网板,其本地存有第二类ARP表项,网板1至网板4本地还存有路由表项。
以VM01访问VM11为例,则,
三层VXLAN网关的接口板1通过端口10收到来自第一VXLAN中VM01发送的报文。为便于描述,这里将接收的报文称为报文0。接口板1收到的报文0带有对应第一VXLAN的VXLAN封装,VXLAN封装至少包含第一VXLAN的VNID100以及第一VXLAN对应的VXLAN外层头(图4所示的报文0的VXLAN外层头包含外层ETH封装,外层ETH封装以包含外层源MAC地址、外层目的MAC地址、外层源IP地址、外层目的IP地址封装为例),图4简单示出了带有VXLAN封装的报文0结构。
接口板1从VXLAN封装头中确定外层目的MAC地址和VLAN标识,如果三层VXLAN网关配置了该VLAN标识对应的VLAN、外层目的MAC地址为三层VXLAN网关本地与该VLAN对应的三层接口MAC地址,则确定对报文0进行VXLAN解封装,依据报文0的VXLAN封装头的VNID100找到对应的VXLAN解封装表项,根据找到的VXLAN解封装表项对报文0进行VXLAN解封装,为便于描述,这里将VXLAN解封装后的报文0记为报文1。
接口板1发现报文1为数据报文,且目的MAC地址为本三层VXLAN网关的MAC地址,则识别报文1的目的IP地址中设定位置处的数值是奇数还是偶数,假如是奇数,则选择网板1或者网板2为目标网板,这里假如接口板1选择网板1为目标网板。
接口板1对报文1进行网板代理封装,网板代理封装中的目的代理mod为网板代理芯片标识(图4以chip01为例),网板代理封装中的目的代理port为网板代理端口标识(图4以Port1为例)。为便于描述,这里将网板代理封装后的报文1称为报文2。
接口板1通过连接网板1的互连口将报文2发送至网板1。
网板1接收到报文2,从报文2的网板代理封装头中识别出目的代理mod和目的代理port分别为chip01和Port1,正好依次是网板代理芯片标识和网板代理端口标识,则对报文2的网板代理封装进行解封装(即恢复了上述的报文1)。
网板1在本地的ARP表项中查找到与报文1的目的IP地址匹配的ARP表项,将报文1的源MAC地址修改为三层VXLAN网关的网关MAC地址、将报文1的目的MAC地址修改为查找到的ARP表项中的目的MAC地址(图4以查找到的ARP表项中的目的MAC地址实质为VM11的MAC地址);为便于描述,这里将源MAC地址、目的MAC地址修改后的报文1称为报文3。
网板1发现查找到的ARP表项中的出端口为网络侧端口,假如该网络侧端口为至少两个物理端口聚合形成的聚合端口,则网板1选择聚合端口中一个物理端口为目标出端口,这里假如选择的物理端口为端口30。
网板1确定三层VXLAN网关上端口30所处的接口板为第一目标接口板。为便于描述,这里假设第一目标接口板为接口板2。
网板1对报文3进行第二内部封装,为便于描述,这里将第二内部封装的报文3称为报文4。第二内部封装包含第二目的mod、第二目的port、以及查找到的ARP表项中的VLAN标识。第二目的mod为:接口板代理芯片标识(图4以芯片标识为Chip12为例描述)。第二目的port为接口板代理端口标识(图4以虚拟端口标识为Port12为例描述)。
网板1通过本网板1连接接口板2的互连口将报文4发送至接口板2。
接口板2接收网板1发送的报文4,从报文4的第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识Chip12、且确定出的第二目的port为接口板代理端口标识Port12,则从报文4的第二内部封装头中确定出报文4封装的VLAN ID,并对报文4的第二内部封装进行解封装(即恢复了上述的报文3)。
接口板2从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLANID具有映射关系的VNID(实质为第二VXLAN的VNID200),在本接口板2本地的MAC表项中找到与报文3的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板2本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID(实质为第二VXLAN的VNID200)对报文3进行VXLAN封装。为便于描述,这里将VXLAN封装的报文3称为报文5。这里,接口板2利用找到的VXLAN封装表项和找到的VNID对报文3进行VXLAN封装具体为:利用找到的VXLAN封装表项中的VXLAN封装信息对报文3进行VXLAN外层头的封装,利用找到的VNID(图4以第二VXLAN的VNID200)对报文3进行VXLAN字段(实质为VNID字段)的封装。图4所示的报文3的VXLAN封装中以VXLAN外层头的外层ETH封装包含外层源MAC地址、外层目的MAC地址、外层源IP地址、外层目的IP地址为例。
接口板2依据找到的VXLAN封装表项中的出端口发送报文5。这里,具体实现时,接口板2依据找到的VXLAN封装表项中的出端口发送报文5具体为:识别该找到的VXLAN封装表项中的出端口,该识别的出端口实质是网板1找到的ARP表项中的出端口,如上所述,网板1找到的ARP表项中的出端口为至少两个物理端口聚合形成的聚合端口,基于此,这里识别出的VXLAN封装表项中的出端口就为聚合端口,如此,接口板2按照网板确定目标端口的方式从识别出的出端口中选择一个物理端口,最终保证接口板2发送报文5的物理端口与网板选择的物理端口一致。
最终第二VXLAN的VM11会收到VM01发送的报文。即通过三层VXLAN网关实现了从第一VXLAN至第二VXLAN的报文转发。
至此,完成实施例3的描述。以上对本发明提供的方法进行了描述。
下面对本发明提供的设备进行描述:
参见图5,图5为本发明提供的设备结构图。该设备应用于三层VXLAN网关,如图5所示,可包括:
接口板处理单元,处于三层VXLAN网关的接口板,用于接收数据报文,确定所述数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,将数据报文发送至目标网板,与所述数值匹配的一类网板本地都存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与所述数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址;以及,
在作为网板查找到的ARP表项中的出端口相关联的第一目标接口板时与网板合作转发数据报文;
网板处理单元,处于所述三层VXLAN网关的网板,用于接收到三层VXLAN网关的接口板发送的数据报文,确定数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
优选地,所述网板处理单元与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文包括:将数据报文的源MAC地址修改为本三层VXLAN网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的ARP表项中的目的MAC地址,根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装,将带有内部封装的数据报文发送至三层VXLAN网关上与查找到的ARP表项中的出端口相关联的第一目标接口板;
所述接口板处理单元在作为网板查找到的ARP表项中的出端口相关联的第一目标接口板时与网板合作转发数据报文包括:接收三层VXLAN网关上的所述目标网板发送的数据报文,依据所述网板处理单元查找到的ARP表项中的出端口转发数据报文。
优选地,所述网板处理单元根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装包括:
识别该查找到的ARP表项中的出端口是主机接入端口还是网络侧端口,
如果是主机接入端口,则确定三层VXLAN网关上所述主机接入端口所处的接口板为所述第一目标接口板,对修改后的数据报文进行第一内部封装,将第一内部封装的数据报文发送至三层VXLAN网关上的所述第一目标接口板;第一内部封装包含:第一目的芯片标识mod和第一目的端口标识port,第一目的mod为所述第一目标接口板上用于转发报文的芯片的标识,第一目的port为该查找到的ARP表项中的出端口;
如果是网络侧端口,在所述网络侧端口为单一的物理端口时,确定所述物理端口为目标出端口,在所述网络侧端口为至少两个物理端口聚合形成的聚合端口时,选择所述聚合端口中一个物理端口为目标出端口,确定三层VXLAN网关上目标出端口所在的接口板为所述第一目标接口板,对修改后的数据报文进行第二内部封装,将第二内部封装的数据报文发送至三层VXLAN网关上的所述目标接口板,第二内部封装包含:第二目的mod、第二目的port、以及查找到的ARP表项中的虚拟局域网络VLAN标识ID;第二目的mod为:接口板代理芯片标识,第二目的port为接口板代理端口标识。
优选地,所述接口板处理单元根据内部封装转发解内部封装后的数据报文包括:
在接收的数据报文带有第一内部封装时,从第一内部封装头中确定出第一目的mod和第一目的port;如果第一目的mod为本接口板上用于转发报文的芯片的标识且第一目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第一内部封装进行解封装并通过第一目的port对应的主机接入端口转发;
在接收的数据报文带有第二内部封装时,从第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识、确定出的第二目的port为接口板代理端口标识,则从数据报文的第二内部封装头中确定出VLAN ID并对数据报文的第二内部封装进行解封装,从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLAN ID具有映射关系的VNID,在本接口板本地的MAC表项中查找到与解封装后的数据报文的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID对解封装后的数据报文进行VXLAN封装并通过该找到的VXLAN封装表项中的出端口发送。
优选地,所述网板处理单元在本地ARP表项中未查找到与数据报文的目的IP地址匹配的ARP表项,进一步执行以下步骤:
在本地路由表项中查找到与数据报文的目的IP地址匹配的路由表项;查找到的路由表项中的出端口为主机接入端口;
确定三层VXLAN网关上该查找到的路由表项中的出端口所处的接口板为第二目标接口板,将数据报文的源MAC地址修改为本网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的路由表项中的目的MAC地址,对修改后的数据报文进行第三内部封装并发送至三层VXLAN网关上的所述第二目标接口板;第三内部封装包含:第三目的mod和第三目的port,第三目的mod为所述第二目标接口板上用于转发报文的芯片的标识,第三目的port为查找到的路由表项中的出端口;
基于此,所述接口板处理单元在所处接口板为所述第二目标接口板时,进一步接收三层VXLAN网关上的所述目标网板发送的数据报文,从数据报文的第三内部封装头中确定出第三目的mod和第三目的port;如果所述第三目的mod为本接口板上用于转发报文的芯片的标识且所述第三目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第三内部封装进行解封装并通过所述第三目的port对应的主机接入端口转发。
至此,完成图5所示的设备结构图。
作为本发明的一个实施例,本发明还提供了图5所示设备的硬件结构图。如图6所示,该设备硬件结构可包括:
接口板和网板。
其中,接口板上可包括:第一CPU和第一存储器。
第一存储器,用于存放接口板处理单元;
第一CPU,用于存放接口板处理单元运行的控制程序,以控制所述第一存储器中的接口板处理单元执行如上所述的操作。至于所述第一存储器中的接口板处理单元执行的操作,其如上述接口板处理单元执行的操作,这里不再赘述。
网板上可包括:第二CPU和第二存储器。
第二存储器,用于存放网板处理单元;
第二CPU,用于存放网板处理单元运行的控制程序,以控制所述第二存储器中的网板处理单元执行操作。至于所述第二存储器中的网板处理单元执行的操作,其如上述网板处理单元执行的操作,这里不再赘述。
至此,完成图6所示的设备硬件结构图。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于三层虚拟可扩展局域网VXLAN网关的数据报文转发方法,其特征在于,该方法应用于三层VXLAN网关,包括:
三层VXLAN网关的接口板接收数据报文;
三层VXLAN网关的接口板确定所述数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,与所述数值匹配的一类网板本地存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与所述数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址;
三层VXLAN网关的所述接口板将数据报文发送至目标网板;
三层VXLAN网关的所述目标网板接收到三层VXLAN网关的接口板发送的数据报文,确定所述数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
2.根据权利要求1所述的方法,其特征在于,所述与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文包括:
三层VXLAN网关上的所述目标网板将数据报文的源MAC地址修改为本三层VXLAN网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的ARP表项中的目的MAC地址,根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装,将带有内部封装的数据报文发送至三层VXLAN网关上与查找到的ARP表项中的出端口相关联的第一目标接口板;
三层VXLAN网关上的所述第一目标接口板接收三层VXLAN网关上的所述目标网板发送的带有内部封装的数据报文,根据内部封装转发解内部封装后的数据报文。
3.根据权利要求2所述的方法,其特征在于,所述根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装包括:
识别该查找到的ARP表项中的出端口是主机接入端口还是网络侧端口,
如果是主机接入端口,则确定三层VXLAN网关上所述主机接入端口所处的接口板为所述第一目标接口板,对修改后的数据报文进行第一内部封装,将第一内部封装的数据报文发送至三层VXLAN网关上的所述第一目标接口板;第一内部封装包含:第一目的芯片标识mod和第一目的端口标识port,第一目的mod为所述第一目标接口板上用于转发报文的芯片的标识,第一目的port为该查找到的ARP表项中的出端口;
如果是网络侧端口,在所述网络侧端口为单一的物理端口时,确定所述物理端口为目标出端口,在所述网络侧端口为至少两个物理端口聚合形成的聚合端口时,选择所述聚合端口中一个物理端口为目标出端口,确定三层VXLAN网关上目标出端口所在的接口板为所述第一目标接口板,对修改后的数据报文进行第二内部封装,将第二内部封装的数据报文发送至三层VXLAN网关上的所述目标接口板,第二内部封装包含:第二目的mod、第二目的port、以及查找到的ARP表项中的虚拟局域网络VLAN标识ID;第二目的mod为:接口板代理芯片标识,第二目的port为接口板代理端口标识。
4.根据权利要求2所述的方法,其特征在于,所述根据内部封装转发解内部封装后的数据报文包括:
在接收的数据报文带有第一内部封装时,从第一内部封装头中确定出第一目的mod和第一目的port;如果第一目的mod为本接口板上用于转发报文的芯片的标识且第一目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第一内部封装进行解封装并通过第一目的port对应的主机接入端口转发;
在接收的数据报文带有第二内部封装时,从第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识、确定出的第二目的port为接口板代理端口标识,则从数据报文的第二内部封装头中确定出VLAN ID并对数据报文的第二内部封装进行解封装,从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLAN ID具有映射关系的VNID,在本接口板本地的MAC表项中查找到与解封装后的数据报文的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID对解封装后的数据报文进行VXLAN封装并通过该找到的VXLAN封装表项中的出端口发送。
5.根据权利要求1所述的方法,其特征在于,三层VXLAN网关上的所述目标网板在本地ARP表项中未查找到与数据报文的目的IP地址匹配的ARP表项,则进一步执行以下步骤:
在本地路由表项中查找到与数据报文的目的IP地址匹配的路由表项;查找到的路由表项中的出端口为主机接入端口;
确定三层VXLAN网关上该查找到的路由表项中的出端口所处的接口板为第二目标接口板,将数据报文的源MAC地址修改为本网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的路由表项中的目的MAC地址,对修改后的数据报文进行第三内部封装并发送至三层VXLAN网关上的所述第二目标接口板;第三内部封装包含:第三目的mod和第三目的port,第三目的mod为所述第二目标接口板上用于转发报文的芯片的标识,第三目的port为查找到的路由表项中的出端口;
三层VXLAN网关上的所述第二目标接口板接收三层VXLAN网关上的所述目标网板发送的数据报文,从数据报文的第三内部封装头中确定出第三目的mod和第三目的port;如果所述第三目的mod为本接口板上用于转发报文的芯片的标识且所述第三目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第三内部封装进行解封装并通过所述第三目的port对应的主机接入端口转发。
6.一种基于三层虚拟可扩展局域网VXLAN网关的数据报文转发设备,其特征在于,该设备应用于三层VXLAN网关,包括:
接口板处理单元,处于三层VXLAN网关的接口板,用于接收数据报文,确定所述数据报文进行三层转发,则依据数据报文的目的IP地址中设定比特位置处的数值选择与所述数值匹配的一类网板中的一个网板为目标网板,将数据报文发送至目标网板,与所述数值匹配的一类网板本地都存放了满足以下条件的ARP表项:表项中有设定比特位置处的数值与所述数据报文的目的IP地址中设定比特位置处的数值相同的目的IP地址;以及,
在作为网板查找到的ARP表项中的出端口相关联的第一目标接口板时与网板合作转发数据报文;
网板处理单元,处于所述三层VXLAN网关的网板,用于接收到三层VXLAN网关的接口板发送的数据报文,确定数据报文进行三层转发,则在本地ARP表项中查找到与数据报文的目的IP地址匹配的ARP表项,与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文。
7.根据权利要求6所述的设备,其特征在于,所述网板处理单元与查找到的ARP表项中的出端口相关联的第一目标接口板合作转发数据报文包括:将数据报文的源MAC地址修改为本三层VXLAN网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的ARP表项中的目的MAC地址,根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装,将带有内部封装的数据报文发送至三层VXLAN网关上与查找到的ARP表项中的出端口相关联的第一目标接口板;
所述接口板处理单元在作为网板查找到的ARP表项中的出端口相关联的第一目标接口板时与网板合作转发数据报文包括:接收三层VXLAN网关上的所述目标网板发送的数据报文,依据所述网板处理单元查找到的ARP表项中的出端口转发数据报文。
8.根据权利要求7所述的设备,其特征在于,所述网板处理单元根据查找到的ARP表项中的出端口的类型对修改后的数据报文进行内部封装包括:
识别该查找到的ARP表项中的出端口是主机接入端口还是网络侧端口,
如果是主机接入端口,则确定三层VXLAN网关上所述主机接入端口所处的接口板为所述第一目标接口板,对修改后的数据报文进行第一内部封装,将第一内部封装的数据报文发送至三层VXLAN网关上的所述第一目标接口板;第一内部封装包含:第一目的芯片标识mod和第一目的端口标识port,第一目的mod为所述第一目标接口板上用于转发报文的芯片的标识,第一目的port为该查找到的ARP表项中的出端口;
如果是网络侧端口,在所述网络侧端口为单一的物理端口时,确定所述物理端口为目标出端口,在所述网络侧端口为至少两个物理端口聚合形成的聚合端口时,选择所述聚合端口中一个物理端口为目标出端口,确定三层VXLAN网关上目标出端口所在的接口板为所述第一目标接口板,对修改后的数据报文进行第二内部封装,将第二内部封装的数据报文发送至三层VXLAN网关上的所述目标接口板,第二内部封装包含:第二目的mod、第二目的port、以及查找到的ARP表项中的虚拟局域网络VLAN标识ID;第二目的mod为:接口板代理芯片标识,第二目的port为接口板代理端口标识。
9.根据权利要求7所述的设备,其特征在于,所述接口板处理单元根据内部封装转发解内部封装后的数据报文包括:
在接收的数据报文带有第一内部封装时,从第一内部封装头中确定出第一目的mod和第一目的port;如果第一目的mod为本接口板上用于转发报文的芯片的标识且第一目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第一内部封装进行解封装并通过第一目的port对应的主机接入端口转发;
在接收的数据报文带有第二内部封装时,从第二内部封装头中确定出第二目的mod和第二目的port;如果确定出的第二目的mod为接口板代理芯片标识、确定出的第二目的port为接口板代理端口标识,则从数据报文的第二内部封装头中确定出VLAN ID并对数据报文的第二内部封装进行解封装,从预先设置的VLAN ID和VNID之间的映射关系中找到与该确定出的VLAN ID具有映射关系的VNID,在本接口板本地的MAC表项中查找到与解封装后的数据报文的目的MAC地址和该找到的VNID匹配的MAC表项,依据查找到的MAC表项中的出端口从本接口板本地的VXLAN封装表项中找到对应的VXLAN封装表项,利用找到的VXLAN封装表项和找到的VNID对解封装后的数据报文进行VXLAN封装并通过该找到的VXLAN封装表项中的出端口发送。
10.根据权利要求6所述的设备,其特征在于,所述网板处理单元在本地ARP表项中未查找到与数据报文的目的IP地址匹配的ARP表项,进一步执行以下步骤:
在本地路由表项中查找到与数据报文的目的IP地址匹配的路由表项;查找到的路由表项中的出端口为主机接入端口;
确定三层VXLAN网关上该查找到的路由表项中的出端口所处的接口板为第二目标接口板,将数据报文的源MAC地址修改为本网关的网关MAC地址,将数据报文的目的MAC地址修改为查找到的路由表项中的目的MAC地址,对修改后的数据报文进行第三内部封装并发送至三层VXLAN网关上的所述第二目标接口板;第三内部封装包含:第三目的mod和第三目的port,第三目的mod为所述第二目标接口板上用于转发报文的芯片的标识,第三目的port为查找到的路由表项中的出端口;
所述接口板处理单元在所处接口板为所述第二目标接口板时,进一步接收三层VXLAN网关上的所述目标网板发送的数据报文,从数据报文的第三内部封装头中确定出第三目的mod和第三目的port;如果所述第三目的mod为本接口板上用于转发报文的芯片的标识且所述第三目的port为本接口板上主机接入端口的标识,则对接收的数据报文的第三内部封装进行解封装并通过所述第三目的port对应的主机接入端口转发。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510304025.5A CN106254256B (zh) | 2015-06-04 | 2015-06-04 | 基于三层vxlan网关的数据报文转发方法和设备 |
PCT/CN2016/084884 WO2016192686A1 (zh) | 2015-06-04 | 2016-06-06 | 数据报文转发 |
EP16802609.4A EP3282649B1 (en) | 2015-06-04 | 2016-06-06 | Data packet forwarding |
JP2018515343A JP6426879B2 (ja) | 2015-06-04 | 2016-06-06 | データパケット転送 |
US15/570,919 US10333845B2 (en) | 2015-06-04 | 2016-06-06 | Forwarding data packets |
JP2018200541A JP6581277B2 (ja) | 2015-06-04 | 2018-10-25 | データパケット転送 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510304025.5A CN106254256B (zh) | 2015-06-04 | 2015-06-04 | 基于三层vxlan网关的数据报文转发方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106254256A CN106254256A (zh) | 2016-12-21 |
CN106254256B true CN106254256B (zh) | 2019-08-16 |
Family
ID=57440094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510304025.5A Active CN106254256B (zh) | 2015-06-04 | 2015-06-04 | 基于三层vxlan网关的数据报文转发方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10333845B2 (zh) |
EP (1) | EP3282649B1 (zh) |
JP (2) | JP6426879B2 (zh) |
CN (1) | CN106254256B (zh) |
WO (1) | WO2016192686A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10931629B2 (en) * | 2016-05-27 | 2021-02-23 | Cisco Technology, Inc. | Techniques for managing software defined networking controller in-band communications in a data center network |
CN108259633B (zh) | 2017-05-31 | 2020-05-12 | 新华三技术有限公司 | 实现管理报文三层通信的方法、系统及装置 |
CN108259453B (zh) | 2017-05-31 | 2020-03-06 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN107547395B (zh) * | 2017-06-27 | 2020-12-04 | 新华三技术有限公司 | 一种报文传输方法、装置及机器可读存储介质 |
CN107547691B (zh) * | 2017-09-29 | 2021-02-23 | 新华三技术有限公司 | 地址解析协议报文代理方法和装置 |
CN108092922B (zh) * | 2017-12-19 | 2020-12-04 | 杭州迪普科技股份有限公司 | 一种接口板传输报文的方法和装置 |
CN109995659B (zh) * | 2017-12-29 | 2022-03-01 | 阿里巴巴集团控股有限公司 | 一种网络通信方法及装置 |
CN110401726B (zh) * | 2018-04-24 | 2022-04-15 | 中兴通讯股份有限公司 | 地址解析协议报文的处理方法、装置及设备、存储介质 |
CN109617779B (zh) * | 2018-12-19 | 2020-12-18 | 锐捷网络股份有限公司 | 基于vtep的路由表维护方法及装置 |
CN110768908B (zh) * | 2019-10-21 | 2021-09-21 | 新华三信息安全技术有限公司 | 网络设备、主控板、报文传输方法及机器可读存储介质 |
JP2021141399A (ja) | 2020-03-04 | 2021-09-16 | 富士通株式会社 | ネットワーク管理システム、ネットワーク管理装置、及びネットワーク管理プログラム |
CN113630300B (zh) * | 2020-05-09 | 2023-08-08 | 华为技术有限公司 | 用于报文传输的方法和节点 |
CN113794615B (zh) * | 2021-08-05 | 2023-04-25 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
CN114827077A (zh) * | 2022-03-31 | 2022-07-29 | 中国电信股份有限公司 | 报文处理方法、装置、计算机可读存储介质及电子设备 |
CN115766063B (zh) * | 2022-09-26 | 2024-09-27 | 中国电子科技集团公司第三十研究所 | 数据传输方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267399A (zh) * | 2008-04-24 | 2008-09-17 | 杭州华三通信技术有限公司 | 报文转发方法、报文转发设备及其上行接口板 |
CN101827038A (zh) * | 2010-05-24 | 2010-09-08 | 杭州华三通信技术有限公司 | 分布式设备和分布式设备中报文转发的方法 |
WO2014028094A1 (en) * | 2012-08-14 | 2014-02-20 | Vmware, Inc. | Method and system for virtual and physical network integration |
CN104283980A (zh) * | 2014-10-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种地址解析协议代答方法和装置 |
CN104350714A (zh) * | 2014-05-29 | 2015-02-11 | 华为技术有限公司 | 一种报文转发方法和VxLAN网关 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571587B (zh) | 2012-01-13 | 2014-11-12 | 大唐移动通信设备有限公司 | 报文转发方法和设备 |
JP2013164707A (ja) * | 2012-02-10 | 2013-08-22 | Eiji Suga | 消耗品購入管理システム |
US8923149B2 (en) | 2012-04-09 | 2014-12-30 | Futurewei Technologies, Inc. | L3 gateway for VXLAN |
US9106508B2 (en) * | 2012-04-30 | 2015-08-11 | International Business Machines Corporation | Providing services to virtual overlay network traffic |
CN104272668B (zh) * | 2012-05-23 | 2018-05-22 | 博科通讯系统有限公司 | 层3覆盖网关 |
JP6207046B2 (ja) * | 2013-08-07 | 2017-10-04 | 菊地 秀雄 | 無線電力伝送システム |
CA2924469A1 (en) * | 2013-10-10 | 2015-04-16 | AdaptiveApps, Inc. | Adaptive overlay networking |
WO2015066840A1 (zh) | 2013-11-05 | 2015-05-14 | 华为技术有限公司 | 一种网络地址转换设备及方法 |
CN103825976B (zh) | 2014-03-04 | 2017-05-10 | 新华三技术有限公司 | 分布式系统架构中的nat处理方法及装置 |
CN104639440B (zh) | 2015-02-02 | 2017-11-14 | 新华三技术有限公司 | 一种在网络中实现三层转发并封装协议信息的方法和装置 |
CN106209636B (zh) * | 2015-05-04 | 2019-08-02 | 新华三技术有限公司 | 从vlan至vxlan的组播数据报文转发方法和设备 |
-
2015
- 2015-06-04 CN CN201510304025.5A patent/CN106254256B/zh active Active
-
2016
- 2016-06-06 JP JP2018515343A patent/JP6426879B2/ja active Active
- 2016-06-06 EP EP16802609.4A patent/EP3282649B1/en active Active
- 2016-06-06 US US15/570,919 patent/US10333845B2/en active Active
- 2016-06-06 WO PCT/CN2016/084884 patent/WO2016192686A1/zh active Application Filing
-
2018
- 2018-10-25 JP JP2018200541A patent/JP6581277B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101267399A (zh) * | 2008-04-24 | 2008-09-17 | 杭州华三通信技术有限公司 | 报文转发方法、报文转发设备及其上行接口板 |
CN101827038A (zh) * | 2010-05-24 | 2010-09-08 | 杭州华三通信技术有限公司 | 分布式设备和分布式设备中报文转发的方法 |
WO2014028094A1 (en) * | 2012-08-14 | 2014-02-20 | Vmware, Inc. | Method and system for virtual and physical network integration |
CN104350714A (zh) * | 2014-05-29 | 2015-02-11 | 华为技术有限公司 | 一种报文转发方法和VxLAN网关 |
CN104283980A (zh) * | 2014-10-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 一种地址解析协议代答方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20180287942A1 (en) | 2018-10-04 |
WO2016192686A1 (zh) | 2016-12-08 |
EP3282649B1 (en) | 2019-08-07 |
EP3282649A1 (en) | 2018-02-14 |
JP6426879B2 (ja) | 2018-11-21 |
CN106254256A (zh) | 2016-12-21 |
JP2019033534A (ja) | 2019-02-28 |
US10333845B2 (en) | 2019-06-25 |
JP6581277B2 (ja) | 2019-09-25 |
JP2018516520A (ja) | 2018-06-21 |
EP3282649A4 (en) | 2018-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106254256B (zh) | 基于三层vxlan网关的数据报文转发方法和设备 | |
CN106998286B (zh) | 一种vxlan报文转发方法及装置 | |
CN105519080B (zh) | 用于在网络层2对等方之间交换ip分组的方法和装置 | |
US9306837B1 (en) | Source IP-based pruning of traffic toward dually-connected overlay hosts in a data communications environment | |
CN105827495B (zh) | Vxlan网关的报文转发方法和设备 | |
US9590820B1 (en) | Methods and apparatus for improving load balancing in overlay networks | |
CN105706043B (zh) | 推进式链接的列表吞吐量 | |
US8761152B2 (en) | Method and system for scalable ethernet | |
CN111092801B (zh) | 数据传输方法及装置 | |
CN106209648B (zh) | 跨虚拟可扩展局域网的组播数据报文转发方法和设备 | |
CN106936939A (zh) | 一种报文处理方法、相关装置及nvo3网络系统 | |
CN106209638B (zh) | 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备 | |
CN103200069A (zh) | 一种报文处理的方法和设备 | |
CN107920023A (zh) | 一种安全资源池的实现方法及系统 | |
CN108259291A (zh) | Vxlan报文处理方法、设备及系统 | |
CN105991387A (zh) | 虚拟扩展局域网的报文传输方法和装置 | |
CN106059923B (zh) | 一种报文转发方法及装置 | |
WO2015113410A1 (zh) | 数据包的处理方法与装置 | |
CN107547349A (zh) | 一种虚拟机迁移的方法及装置 | |
JP2019521619A (ja) | パケット転送 | |
CN106209689B (zh) | 从vxlan至vlan的组播数据报文转发方法和设备 | |
CN110034993A (zh) | 传输数据的方法、设备和网络系统 | |
CN108600074A (zh) | 组播数据报文的转发方法及装置 | |
CN106209637B (zh) | 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备 | |
CN114389905B (zh) | 网络流量统计方法、相关装置和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
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: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |