CN113595849B - 报文转发方法、发送端vtep及网关vtep - Google Patents
报文转发方法、发送端vtep及网关vtep Download PDFInfo
- Publication number
- CN113595849B CN113595849B CN202110941777.8A CN202110941777A CN113595849B CN 113595849 B CN113595849 B CN 113595849B CN 202110941777 A CN202110941777 A CN 202110941777A CN 113595849 B CN113595849 B CN 113595849B
- Authority
- CN
- China
- Prior art keywords
- message
- vtep
- data message
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000005538 encapsulation Methods 0.000 claims abstract description 34
- 239000000284 extract Substances 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- 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/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/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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本公开提供一种报文转发方法,发送端VTEP、网关VTEP、电子设备及存储介质,所述方法包括:发送端VTEP接收发送端VM学习了网关VTEP的MAC地址后发送的其要发送到不同子网接收端VM的数据报文,其中,目的IP地址为接收端VM的地址,目的MAC地址是网关VTEP的地址;发送端VTEP判断报文是跨网段数据报文后,对其进行封装,在封装时将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将二层报文头去掉,直接添加三层报文头;并发送给网关VTEP,以使其根据所述预留的预设字段的值判断是跨网段的数据报文,并直接提取出IP层报文进行数据转发。本公开技术方案可以提高带宽资源的使用效率。
Description
技术领域
本公开涉及通信技术领域,具体涉及一种报文转发方法,一种发送端VTEP,一种网关VTEP,一种电子设备,以及一种计算机可读存储介质。
背景技术
VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是基于IP网络、采用“MAC(Media Access Control Address,媒体存取控制位址)in UDP(User Datagram Protocol,用户数据报协议)”封装形式的二层VPN(Virtual Private Network,虚拟专用网络)技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN主要应用于数据中心网络。
在VXLAN网络中,不同网段的VM(Virtual Machine,虚拟机)之间通信时,必须先获取网关的MAC地址,把数据包发送给上联的VTEP(VXLAN Tunnel End Point,VXLAN隧道端点),VTEP根据目的MAC地址进行VXLAN报文封装,发送给网关,网关接收到数据包后先根据外层目的MAC地址和IP地址判断是发送给自己的数据包,并根据端口号判断是VXLAN报文,查找VXLAN表项,提取出内层报文,根据目的IP地址确定需要进行三层转发,则再查找路由表项,根据路由表项查找到目的IP地址的下一跳地址,把下一跳地址作为数据报文的源MAC地址,继续查找目的IP地址的ARP(Address Resolution Protocol,地址解析协议)表项,把目的IP地址的MAC地址作为数据报文的目的MAC地址,进行VXLAN报文封装并转发数据包。这样在不同子网之间的数据包转发过程中源报文是整个封装在VXLAN内,而源报文中的源MAC地址和目的MAC地址在网关报文转发过程中没有发挥作用,增加了封装报文的无效字节数,浪费网络带宽。
发明内容
本公开提供一种报文转发方法、发送端VTEP、网关VTEP、电子设备及计算机可读存储介质能够利用VXLAN报文头中的预留字段标识跨网段报文,去掉VXLAN封装中的无用的二层报文头,提高带宽资源的使用效率。
第一方面,本公开提供一种报文转发方法,应用于发送端VTEP,所述方法包括:
发送端VTEP接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,发送端VTEP对所述数据报文进行可扩展虚拟局域网络VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
发送端VTEP将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
进一步的,所述方法还包括:
当发送端VM要向不同子网的接收端VM发送数据报文时,发送端VTEP接收发送端VM发送的针对网关VTEP的地址解析协议ARP请求报文;
发送端VTEP根据头端复制列表对所述ARP请求报文进行复制,并对所述ARP请求报文进行封装,将封装后的ARP请求报文在IP网络中传输,直至到达网关VTEP,以使网关VTEP反馈ARP响应到发送端VM,并使发送端VM学习网关VTEP的MAC地址。
进一步的,所述在封装时将VXLAN报文头中预留的预设字段设置为预设值,包括:
在封装时将VXLAN报文头中预留的8个比特bits全部设置为1。
第二方面,本公开提供一种报文转发方法,应用于网关可扩展虚拟局域网络隧道端点VTEP,所述方法包括:
网关VTEP接收发送端VTEP发送的可扩展虚拟局域网络VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端虚拟机VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的媒体存取控制位址MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
网关VTEP根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
进一步的,所述VXLAN报文头中预留的预设字段为预设值具体为:VXLAN报文头中预留的8个比特bits全部为1;
所述网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文,包括:
判断VXLAN报文头中预留的8个bits是否全部为1;
若是,则确定经过VXLAN封装后的所述数据报文是跨网段数据报文。
进一步的,所述直接从内层报文中提取出IP层报文进行数据转发,包括:
网关VTEP根据其提取出的IP层报文中的目的IP地址从路由表项中查找到目的IP地址的下一跳地址,并将下一跳地址作为所述数据报文的源MAC地址;以及,
查找目的IP地址的ARP表项,将目的IP地址的MAC地址作为所述数据报文的目的MAC地址,根据查找到的源MAC地址和目的MAC地址对提取的IP层报文进行VXLAN报文封装并转发数据包。
第三方面,本公开提供一种发送端可扩展虚拟局域网络隧道端点VTEP,包括:
第一接收模块,其设置为接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
判断及封装模块,其设置为在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行可扩展虚拟局域网络VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
第一发送模块,其设置为将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
第四方面,本公开提供一种网关可扩展虚拟局域网络隧道端点VTEP,包括:
第二接收模块,其设置为接收发送端VTEP发送的可扩展虚拟局域网络VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端虚拟机VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的媒体存取控制位址MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
判断及转发模块,其设置为根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
第五方面,本公开还提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行如第一和第二方面中任一所述的报文转发方法。
第四方面,本公开还提供一种计算机可读存储介质,包括:计算机程序,当其在计算机上运行时,使得计算机执行如第一和第二方面中任一所述的报文转发方法。
有益效果:
本公开提供的报文转发方法、发送端VTEP、网关VTEP、电子设备及计算机可读存储介质,发送端VTEP接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,发送端VTEP对所述数据报文进行VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC
层报文头去掉,直接添加IP层报文头;发送端VTEP将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。本公开的技术方案能够利用VXLAN报文头中的预留字段标识跨网段报文,去掉VXLAN封装中的无用的二层报文头,提高带宽资源的使用效率。
附图说明
图1为本公开实施例一提供的一种报文转发方法的流程示意图;
图2为本公开实施例二提供的一种报文转发方法的流程示意图;
图3为本公开实施例三提供的一种发送端VTEP的架构图;
图4为本公开实施例四提供的一种网关VTEP的架构图;
图5为本公开实施例五提供的一种电子设备的架构图。
具体实施方式
为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和实施例对本公开作进一步详细描述。
其中,在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚的表示其他含义。
不同网段的VM之间通信时,将数据包发送给上联的VTEP,VTEP根据目的MAC地址进行VXLAN报文封装,发送给网关,网关判断是VXLAN报文,查找VXLAN表项,提取出内层报文,进行VXLAN报文封装并转发数据包。这样在不同子网之间的数据包转发过程中源报文是整个封装在VXLAN内,而源报文中的源MAC地址和目的MAC地址在网关报文转发过程中没有发挥作用,增加了封装报文的无效字节数,浪费网络带宽。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本公开实施例一提供的一种报文转发方法的流程示意图,应用于发送端VTEP,如图1所示,所述方法包括:
步骤S101:发送端VTEP接收发送端VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
步骤S102:在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,发送端VTEP对所述数据报文进行VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
步骤S103:发送端VTEP将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
VXLAN技术将已有的三层物理网络作为Underlay网络,在其上构建出虚拟的二层网络,即Overlay网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。
VXLAN的典型网络模型包括如下几部分:
1、VM:在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的VXLAN。属于相同VXLAN的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。VXLAN通过VXLAN ID来标识,VXLAN ID又称VNI(VXLANNetwork Identifier,VXLAN网络标识符),其长度为24比特。
2、VTEP:VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器。
3、VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。
4、核心设备:IP核心网络中的设备。核心设备不参与VXLAN处理,仅需要根据封装后报文的目的IP地址对报文进行三层转发。
5、VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看作是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。
6、AC(Attachment Circuit,接入电路):VTEP连接本地站点的物理电路或虚拟电路。在VTEP上,与VSI关联的三层接口或以太网服务实例(service instance)称为AC。其中,以太网服务实例在二层以太网接口上创建,它定义了一系列匹配规则,用来匹配从该二层以太网接口上接收到的数据帧。1个二层物理口下面配置了服务实例AC。
VXLAN具有如下特点:
a、支持大量的租户:使用24位的标识符,最多可支持2的24次方(16777216)个VXLAN,使支持的租户数目大规模增加,解决了传统二层网络VLAN资源不足的问题。
b、易于维护:基于IP网络组建大二层网络,使得网络部署和维护更加容易,并且可以充分地利用现有的IP网络技术,例如利用等价路由进行负载分担等;只有IP核心网络的边缘设备需要进行VXLAN处理,网络中间设备只需根据IP头转发报文,降低了网络部署的难度和费用。
在正常的数据转发过程中,交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的,如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧,源IP地址和MAC地址是主机A的IP地址和MAC地址,交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去,由主机B接收到广播帧后进行应答,而主机A在接收到对应的ARP应答后,会在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。
而在VXLAN网络中,不同网段的VM之间通信时,当发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文时,根据接收端VM的IP地址判断是跨网段地址,由于其不知道对端的MAC地址,必须通过网关进行跨网段转发,必须先获取网关的MAC地址,发送端VM首先发送针对网关的ARP请求到上联的发送端VTEP,以得到网关的ARP响应,学习网关VTEP的MAC地址。
发送端VM接收到网关的ARP响应后,会将发送给接收端VM的数据报文发送到上联的发送端VTEP,其中目的IP地址是接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址。
发送端VTEP接收到数据报文后,根据目的IP地址和目的MAC地址判断是跨网段数据报文。对所述数据报文进行VXLAN封装以得到VXLAN报文,在封装时将VXLAN报文头中预留的预设字段设置为预设值,即利用VXLAN报文头中的预留字段标识跨网段报文,在内层报文中把源报文中的二层报文头去掉,直接添加三层报文头,这里二层报文头是MAC层报文头部,三层报文头是IP层报文头。讲封装后得到的VXLAN报文发送到网关VTEP,网关VTEP根据VXLAN报文头中预留的预设字段的值判断是跨网段的数据报文后,直接从内层报文中提取出三层报文(IP层报文)。网关VTEP查找其预存的路由表项,根据路由表项查找到目的IP地址(接收端VM的IP地址)的下一跳地址,把下一跳地址作为数据报文的源MAC地址。然后继续查找目的IP地址的ARP表项(网关中预先存储的ARP表项),把目的IP地址的MAC地址作为数据报文的目的MAC地址,进行VXLAN报文封装并转发数据包。在此过程中,发送端VTEP通过预留的预设字段的值,进行跨网段的数据报文标识,去掉VXLAN封装中的无用的二层报文头,提高带宽资源的使用效率。
进一步的,所述方法还包括:
当发送端VM要向不同子网的接收端VM发送数据报文时,发送端VTEP接收发送端VM发送的针对网关VTEP的地址解析协议ARP请求报文;
发送端VTEP根据头端复制列表对所述ARP请求报文进行复制,并对所述ARP请求报文进行封装,将封装后的ARP请求报文在IP网络中传输,直至到达网关VTEP,以使网关VTEP反馈ARP响应到发送端VM,并使发送端VM学习网关VTEP的MAC地址。
发送端VTEP接收到针对网关VTEP的ARP请求报文后按现有流程会根据头端复制列表对报文进行复制,并分别进行封装。这里封装的外层源IP地址为本地VTEP(发送端VTEP)的IP地址,外层目的IP地址为所有对端VTEP的IP地址;外层源MAC地址为本地VTEP的MAC地址,而外层目的MAC地址为去往目的IP的网络中下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在IP网络中进行传输,直至到达对端VTEP。报文到达对端VTEP如网关VTEP后,网关VTEP根据ARP报文中的目的IP地址与源IP地址不在同一个网段上,确定ARP报文是发送给自己的,对报文进行解封装,得到发送端VM发送的原始ARP报文。网关VTEP反馈ARP响应。使发送端VM和发送端VTEP学习网关VTEP的MAC地址和IP地址。
进一步的,所述在封装时将VXLAN报文头中预留的预设字段设置为预设值,包括:
在封装时将VXLAN报文头中预留的8个bits全部设置为1。
在设置跨网段的数据报文标识时,VXLAN报文头中预留的8个bits可以设置为特定的值,如全部为1,当然这里也可以设定为其他有特定规则的数值,如10101010等,方便对跨网段的数据报文进行识别。
本公开实施例可以利用VXLAN报文头中的预留字段标识跨网段报文,并去掉VXLAN封装中的无用的二层报文头,提高带宽资源的使用效率。
图2为本公开实施例二提供的一种报文转发方法的流程示意图,应用于网关VTEP,如图2所示,所述方法包括:
步骤S201:网关VTEP接收发送端VTEP发送的VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
步骤S202:网关VTEP根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
网关VTEP接收到数据报文后,根据VXLAN报文头中预留的预设字段的数值判断是跨网段的数据报文,直接从内层报文中提取出三层报文进行封装并将封装后的报文转发到下一跳地址。
进一步的,所述VXLAN报文头中预留的预设字段设置为预设值具体为:VXLAN报文头中预留的8个bits全部为1;
所述网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文,包括:
判断VXLAN报文头中预留的8个bits是否全部为1;
若是,则确定经过VXLAN封装后的所述数据报文是跨网段数据报文。
VXLAN报文头中预留的8个bits可以设置为特定的值,如全部为1,当然这里也可以设定为其他有特定规则的数值,方便对跨网段的数据报文进行识别。
进一步的,所述直接从内层报文中提取出IP层报文进行数据转发,包括:
网关VTEP根据其提取出的IP层报文中的目的IP地址从路由表项中查找到目的IP地址的下一跳地址,并将下一跳地址作为所述数据报文的源MAC地址;以及,
查找目的IP地址的ARP表项,将目的IP地址的MAC地址作为所述数据报文的目的MAC地址,根据查找到的源MAC地址和目的MAC地址对提取的IP层报文进行VXLAN报文封装并转发数据包。
本公开实施例的发送端VTEP接收到跨网段的数据报文,在进行VXLAN封装时,将VXLAN报文头中预留的8个bits设置为1(或其他特定值),在内层报文中把源报文中的二层报文头去掉,直接添加三层报文头。集中式网关VTEP接收到数据报文后,根据VXLAN报文头中预留的8个bits数值判断是跨网段的数据报文,直接从内层报文中提取出三层报文,查找路由表项,根据路由表项查找到目的IP地址的下一跳地址,把下一跳地址作为数据报文的源MAC地址。再继续查找目的IP地址的ARP表项,把目的IP地址的MAC地址作为数据报文的目的MAC地址,进行VXLAN报文封装并转发数据包。提高了带宽资源的使用效率。
图3为本公开实施例三提供一种发送端VTEP的架构图,如图3所示,包括:
第一接收模块11,其设置为接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
判断及封装模块12,其设置为在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
第一发送模块13,其设置为将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
进一步的,所述第一接收模块还设置为当发送端VM要向不同子网的接收端VM发送数据报文时,接收发送端VM发送的针对网关VTEP的ARP请求报文;
所述判断及封装模块12还设置为根据头端复制列表对所述ARP请求报文进行复制,并对所述ARP请求报文进行封装,将封装后的ARP请求报文在IP网络中传输,直至到达网关VTEP,以使网关VTEP反馈ARP响应到发送端VM,并使发送端VM学习网关VTEP的MAC地址。
进一步的,所述在封装时将VXLAN报文头中预留的预设字段设置为预设值包括:
在封装时将VXLAN报文头中预留的8个bits全部设置为1。
图4为本公开实施例四提供一种网关VTEP的架构图,如图4所示,包括:
第二接收模块21,其设置为接收发送端VTEP发送的可扩展虚拟局域网络VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端虚拟机VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的媒体存取控制位址MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,直接添加IP层报文头;
判断及转发模块22,其设置为根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
进一步的,所述VXLAN报文头中预留的预设字段为预设值具体为:VXLAN报文头中预留的8个bits全部为1;
所述判断及转发模块22具体设置为判断VXLAN报文头中预留的8个bits是否全部为1;以及,
若是,则确定经过VXLAN封装后的所述数据报文是跨网段数据报文。
进一步的,所述判断及转发模块22具体还设置为:
根据其提取出的IP层报文中的目的IP地址从路由表项中查找到目的IP地址的下一跳地址,并将下一跳地址作为所述数据报文的源MAC地址;以及,
查找目的IP地址的ARP表项,将目的IP地址的MAC地址作为所述数据报文的目的MAC地址,根据查找到的源MAC地址和目的MAC地址对提取的IP层报文进行VXLAN报文封装并转发数据包。
本公开实施例的发送端VTEP和网关VTEP用于实施方法实施例一和实施例二中的报文转发方法,所以描述的较为简单,具体可以参见前面方法实施例一和实施例二中的相关描述,此处不再赘述。
此外,如图5所示,本公开实施例五还提供一种电子设备,包括存储器10和处理器20,所述存储器10中存储有计算机程序,当所述处理器20运行所述存储器10存储的计算机程序时,所述处理器20执行上述各种可能的报文转发方法。
其中,存储器10与处理器20连接,存储器10可采用闪存或只读存储器或其他存储器,处理器20可采用中央处理器或单片机。
此外,本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC(Application Specific Integrated Circuit,专用集成电路)中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。
Claims (10)
1.一种报文转发方法,其特征在于,应用于发送端可扩展虚拟局域网络隧道端点VTEP,所述方法包括:
发送端VTEP接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,发送端VTEP对所述数据报文进行可扩展虚拟局域网络VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,只保留所述数据报文中的IP层报文头;
发送端VTEP将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当发送端VM要向不同子网的接收端VM发送数据报文时,发送端VTEP接收发送端VM发送的针对网关VTEP的地址解析协议ARP请求报文;
发送端VTEP根据头端复制列表对所述ARP请求报文进行复制,并对所述ARP请求报文进行封装,将封装后的ARP请求报文在IP网络中传输,直至到达网关VTEP,以使网关VTEP反馈ARP响应到发送端VM,并使发送端VM学习网关VTEP的MAC 地址。
3.根据权利要求1所述的方法,其特征在于,所述在封装时将VXLAN报文头中预留的预设字段设置为预设值,包括:
在封装时将VXLAN报文头中预留的8个比特bits全部设置为1。
4.一种报文转发方法,其特征在于,应用于网关可扩展虚拟局域网络隧道端点VTEP,所述方法包括:
网关VTEP接收发送端VTEP发送的可扩展虚拟局域网络VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端虚拟机VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的媒体存取控制位址MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,只保留所述数据报文中的IP层报文头;
网关VTEP根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
5.根据权利要求4所述的方法,其特征在于,所述VXLAN报文头中预留的预设字段为预设值具体为:VXLAN报文头中预留的8个比特bits全部为1;
所述网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文,包括:
判断VXLAN报文头中预留的8个bits是否全部为1;
若是,则确定经过VXLAN封装后的所述数据报文是跨网段数据报文。
6.根据权利要求4所述的方法,其特征在于,所述直接从内层报文中提取出IP层报文进行数据转发,包括:
网关VTEP根据其提取出的IP层报文中的目的IP地址从路由表项中查找到目的IP地址的下一跳地址,并将下一跳地址作为所述数据报文的源MAC地址;以及,
查找目的IP地址的ARP表项,将目的IP地址的MAC地址作为所述数据报文的目的MAC地址,根据查找到的源MAC地址和目的MAC地址对提取的IP层报文进行VXLAN报文封装并转发数据包。
7.一种发送端可扩展虚拟局域网络隧道端点VTEP,其特征在于,包括:
第一接收模块,其设置为接收发送端虚拟机VM发送的其要发送到接收端VM的数据报文,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的媒体存取控制位址MAC地址后发出,其中,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址;
判断及封装模块,其设置为在根据所述数据报文的目的IP地址和目的MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行可扩展虚拟局域网络VXLAN封装以得到VXLAN报文,并在封装时将VXLAN报文头中预留的预设字段设置为预设值,以及在内层报文中将所述数据报文中的MAC层报文头去掉,只保留所述数据报文中的IP层报文头;
第一发送模块,其设置为将VXLAN报文发送给网关VTEP,以使网关VTEP根据VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
8.一种网关可扩展虚拟局域网络隧道端点VTEP,其特征在于,包括:
第二接收模块,其设置为接收发送端VTEP发送的可扩展虚拟局域网络VXLAN报文,所述VXLAN报文由发送端VTEP接收到发送端虚拟机VM发送的其要发送到接收端VM的数据报文,并根据所述数据报文的目的IP地址和目的媒体存取控制位址MAC地址判断所述数据报文是跨网段数据报文后,对所述数据报文进行VXLAN封装后得到,其中,所述数据报文由发送端VM要向与发送端VM处于不同子网的接收端VM发送数据报文,并在学习了网关VTEP的MAC地址后发送到发送端VTEP,所述数据报文的目的IP地址为接收端VM的IP地址、目的MAC地址是网关VTEP的MAC地址,并且所述VXLAN报文在封装时由发送端VTEP将VXLAN报文头中预留的预设字段设置为预设值,并在内层报文中将所述数据报文中的MAC层报文头去掉,只保留所述数据报文中的IP层报文头;
判断及转发模块,其设置为根据所述VXLAN报文头中预留的预设字段的值判断所述数据报文是跨网段数据报文后,直接从内层报文中提取出IP层报文进行数据转发。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行如权利要求1-3以及权利要求4-6中任一项所述的报文转发方法。
10.一种计算机可读存储介质,包括:计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-3以及权利要求4-6中任一项所述的报文转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110941777.8A CN113595849B (zh) | 2021-08-17 | 2021-08-17 | 报文转发方法、发送端vtep及网关vtep |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110941777.8A CN113595849B (zh) | 2021-08-17 | 2021-08-17 | 报文转发方法、发送端vtep及网关vtep |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113595849A CN113595849A (zh) | 2021-11-02 |
CN113595849B true CN113595849B (zh) | 2022-05-20 |
Family
ID=78258270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110941777.8A Active CN113595849B (zh) | 2021-08-17 | 2021-08-17 | 报文转发方法、发送端vtep及网关vtep |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113595849B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190100A (zh) * | 2022-07-04 | 2022-10-14 | 中国联合网络通信集团有限公司 | 数据转发方法、vtep网关、电子设备及可读存储介质 |
CN115665043A (zh) * | 2022-09-09 | 2023-01-31 | 中国联合网络通信集团有限公司 | 数据报文转发方法、vtep、装置、介质及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243630A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN105591907A (zh) * | 2015-07-28 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种路由获取方法和装置 |
CN105656789A (zh) * | 2015-12-31 | 2016-06-08 | 迈普通信技术股份有限公司 | 一种mac地址通告方法及核心节点 |
CN105721359A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置 |
CN106412142A (zh) * | 2016-08-30 | 2017-02-15 | 浙江宇视科技有限公司 | 一种资源设备地址获取方法及装置 |
CN107426077A (zh) * | 2016-03-31 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 用于实现物理网络和虚拟网络互通的方法和设备 |
CN107770072A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种发送和接收报文的方法和设备 |
CN108600074A (zh) * | 2018-04-20 | 2018-09-28 | 新华三技术有限公司 | 组播数据报文的转发方法及装置 |
CN109246016A (zh) * | 2018-11-27 | 2019-01-18 | 杭州迪普科技股份有限公司 | 跨vxlan的报文处理方法和装置 |
-
2021
- 2021-08-17 CN CN202110941777.8A patent/CN113595849B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243630A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN105721359A (zh) * | 2014-12-04 | 2016-06-29 | 中兴通讯股份有限公司 | Vxlan报文传输方法及装置 |
CN105591907A (zh) * | 2015-07-28 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种路由获取方法和装置 |
CN105656789A (zh) * | 2015-12-31 | 2016-06-08 | 迈普通信技术股份有限公司 | 一种mac地址通告方法及核心节点 |
CN107426077A (zh) * | 2016-03-31 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 用于实现物理网络和虚拟网络互通的方法和设备 |
CN107770072A (zh) * | 2016-08-18 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 一种发送和接收报文的方法和设备 |
CN106412142A (zh) * | 2016-08-30 | 2017-02-15 | 浙江宇视科技有限公司 | 一种资源设备地址获取方法及装置 |
CN108600074A (zh) * | 2018-04-20 | 2018-09-28 | 新华三技术有限公司 | 组播数据报文的转发方法及装置 |
CN109246016A (zh) * | 2018-11-27 | 2019-01-18 | 杭州迪普科技股份有限公司 | 跨vxlan的报文处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
Cross layer awareness optimization between physical layer and MAC layer of wireless infrastructure based network using bio inspired algorithm;Vinay Verma;《2013 Fourth International Conference on Computing, Communications and Networking Technologies (ICCCNT)》;20140130;全文 * |
跨网段MAC地址的获取;熊刚;《油气田地面工程》;20030630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113595849A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547402B (zh) | 一种转发表生成方法和装置 | |
CN107612808B (zh) | 隧道建立方法和装置 | |
EP3240250B1 (en) | Virtual router terminating an overlay tunnel in a storage area network | |
US10193707B2 (en) | Packet transmission method and apparatus | |
EP2224645B1 (en) | A method and equipment for transmitting a message based on the layer-2 tunnel protocol | |
CN108199963B (zh) | 报文转发方法和装置 | |
CN107566263A (zh) | 用于evpn链路故障的层3会聚的方法及网络设备 | |
US10673737B2 (en) | Multi-VRF universal device internet protocol address for fabric edge devices | |
WO2014032598A1 (en) | Forward packet with edge device | |
CN113595849B (zh) | 报文转发方法、发送端vtep及网关vtep | |
EP4231597A1 (en) | Method for forwarding bier message, and device and system | |
CN104869042A (zh) | 报文转发方法和装置 | |
EP2891287A1 (en) | Configuring virtual media access control addresses for virtual machines | |
CN108200225A (zh) | 不对称网络地址封装 | |
CN107317752B (zh) | 一种转发数据报文的方法及装置 | |
CN106878136B (zh) | 一种报文转发方法及装置 | |
CN108092890B (zh) | 路由建立方法和装置 | |
JP2002247089A (ja) | パケットルーティング方法および装置 | |
CN108306825B (zh) | 一种等价转发表项生成方法和vtep设备 | |
JP2023532737A (ja) | パケット処理方法およびネットワークデバイス | |
WO2017036384A1 (zh) | 运营商边缘设备及数据转发方法 | |
CN107995110B (zh) | 流量转发方法和装置 | |
CN113472912B (zh) | 一种arp缓存表项的更新方法、vtep、vm及装置 | |
CN111800327B (zh) | Vxlan网络的流量分担方法、设备 | |
CN114520762B (zh) | BIERv6报文的发送方法以及第一网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |