CN116455704B - 基于vxlan的报文发送方法、接收方法及装置 - Google Patents
基于vxlan的报文发送方法、接收方法及装置 Download PDFInfo
- Publication number
- CN116455704B CN116455704B CN202310705438.9A CN202310705438A CN116455704B CN 116455704 B CN116455704 B CN 116455704B CN 202310705438 A CN202310705438 A CN 202310705438A CN 116455704 B CN116455704 B CN 116455704B
- Authority
- CN
- China
- Prior art keywords
- message
- vxlan
- cache
- information
- interface
- 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 52
- 238000012545 processing Methods 0.000 claims description 23
- 238000005538 encapsulation Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000000694 effects Effects 0.000 abstract description 3
- 238000004904 shortening Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
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
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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的报文发送方法、接收方法及装置,该发送方法包括:在创建VXLAN接口时,为VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在缓存中,并将缓存标记为未初始化和超时状态;该接收方法包括:在创建VXLAN接口时,为VXLAN接口分配缓存,将缓存标记为超时状态,当VXLAN接口接收到入方向的报文时,若所述缓存入方向未超时,则利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文;将封装好的链路层报文在出接口发出。通过本发明,解决了相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系统吞吐量的问题,实现了缩短报文发送和接收的耗时,节省CPU资源的技术效果。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种基于VXLAN的报文发送方法、接收方法及装置。
背景技术
VXLAN(Virtual Extensible Local Area Network)是虚拟扩展局域网,在RFC7348中实现,用于改进大型云计算在部署时的扩展问题,是对VLAN(Virtual LocalArea Network,虚拟局域网)的一种扩展。VXLAN可以穿透三层网络对二层进行扩展,它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。
VXLAN解决了现有VLAN技术无法满足大二层网络需求的问题。VXLAN技术是一种大二层的虚拟网络技术,主要原理是引入一个UDP格式的外层隧道作为数据链路层 ,而原有数据报文内容作为隧道净荷加以传输。由于外层采用了UDP作为传输手段,净荷数据可以轻松的在二三层网络中传送。
在如图1所示的网络架构下,两个主机(主机1和主机2)通过VXLAN通信,两个主机连接在各自的网关上(主机1连接在网关1上,主机2连接在网关2上),网关至少有两个接口(一个用于连接主机,一个用于以太网通信),创建VXLAN类型的网络接口,将这三个接口放到同一个网桥内。在创建一个VXLAN类型的网络接口时系统路由表会自动创建一条路由,即去往VXLAN接口网段的报文的网络出接口是vxlan100。
如图1所示,主机1发往主机2的报文的过程描述如下:
源MAC为主机1的MAC、源IP为主机1的IP,目的MAC为主机2的MAC、目的IP为主机2的IP。
网关1收到主机1的报文后,根据二层接口上的配置判断报文需要进入VXLAN隧道。确定报文所属的VNI。网关1更新主机1的MAC、VNI和报文入接口的对应关系,并记录在本地MAC表中。
网关1将报文转发到vxlan100接口,vxlan100接口根据接口配置信息对报文进行封装。这里封装的外层源IP地址为网关1的IP地址,外层目的IP地址为对端网关2的IP地址;外层源MAC地址为网关1的MAC地址,而外层目的MAC地址为去往外层目的IP的网络的下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在以太网络中进行传输,直至到达网关2。
网关2将报文转发到本机的vxlan100接口,vxlan100接口对报文进行解封装,得到主机1发送的原始报文。
网关2更新主机1的MAC地址、VNI和网关2的IP地址的对应关系,并记录在本地MAC表中。
网关2根据二层接口上的配置对报文进行相应的处理并在对应的二层域内转发。
主机2收到报文后,比较报文中的目的IP地址是本机的IP地址,并做出回应。
在主机1和主机2看起来对端是和自己在同一个二层环境里,就像是在网关上直接构建了一条VXLAN 隧道,把网络接口直接在二层打通。
VXLAN报文封装格式如图2所示,主机1发送的原始报文包括以太网头、IP头和负载。之后,VXLAN封装在原始报文的前面添加了VXLAN头部(16位的VXLAN标识、16位的组ID、24位的VNI、8位保留)用来专门保存VXLAN相关的内容,再在前面添加标准的UDP协议头部(UDP头、IP 头和MAC头)用来在以太网上传输报文。
基于如图1所示的网络架构,报文发送流程如图3所示,具体过程包括:
1、 主机向VXLAN隧道对端发送报文,目的MAC为对端主机的MAC,IP为对端主机的IP。
2、 报文经过交换机或者直接被发送到网关,网关的物理层接收主机发送的报文。
3、 在网关的链路层,由于接收主机发送报文的网关接口与vxlan接口在同一个网桥中,主机报文被桥接到vxlan接口。
4、 vxlan接口计算并封装vxlan头信息、UDP头信息、IP头信息,之后将报文交给网络层即IP层做转发。
5、 IP层查询转发报文的下一跳信息和出接口信息,并将报文转到出接口。
6、 在链路层使用ARP子系统查询出口接对应的下一跳MAC地址,用下一跳的MAC地址封装报文,并交给物理层。
7、 物理层添加必要的物理头并将报文发出。
报文接收流程如图4所示,具体过程包括:
1、 vxlan隧道对端的网口接口(通常为对端网关的网络接口)在物理层接收到对到对端的以太网报文。
2、 网络接口通过报文的目的MAC地址确认报文是发给自己的,之后交给IP层处理。
3、 IP层使用IP信息通过查询路由信息,发现目的地是本机的另一个接口,将报文转到目的接口(即vxlan接口)。因为是UDP报文,vxlan接口的IP层将报文上传到四层UDP协议处理。
4、 因为是vxlan报文,四层的UDP协议将报文转给vxlan协议处理。
5、 vxlan协议检测报文的vxlan信息是否正确。如果是合法报文,vxlan接口将对端vxlan接口封装的原始报文重新放入本机网络协议栈。
6、 由于修改后的报文的目的MAC地址是本端主机的MAC地址,所以报文在网桥中被转发到去往本端主机的出接口。
7、 该出接口在物理层将报文封装并发往本端主机。
上述报文发送流程存在的缺陷为:主机发往对端的每一个报文都需要计算并封装vxlan头信息、UDP头信息、IP头信息,都需要查询路由表、出接口,都需要查询ARP子系统获取对应的下一跳MAC信息,这些都是非常耗时的操作,严重降低了系统吞吐量。
报文接收流程存在的缺陷为:报文从物理层接收之后,先后经过二、三、四、二层网络协议处理,网络协议处理流程过长,比发送流程更严重的降低了系统吞吐量。
目前,针对相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系吞吐量的问题,尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种基于VXLAN的报文发送方法、接收方法及装置,以解决相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系吞吐量的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种基于VXLAN的报文发送方法,包括:
在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
将封装好的所述链路层报文在出接口发出。
进一步地,所述的基于VXLAN的报文发送方法,还包括:
当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
为了实现上述目的,根据本发明的一个方面,提供了一种基于VXLAN的报文接收方法,包括:
在创建VXLAN接口时,为所述VXLAN接口分配缓存,将所述缓存标记为超时状态;
在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文。
进一步地,所述的基于VXLAN的报文接收方法,还包括:
若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存入方向的时间戳。
为了实现上述目的,根据本发明的一个方面,提供了一种基于VXLAN的报文发送装置,包括:
第一创建单元,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
处理单元,用于当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
发送单元,用于将封装好的所述链路层报文在出接口发出。
进一步地,所述的基于VXLAN的报文发送装置,还包括:
第一判断单元,用于当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
获取单元,用于若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
第二判断单元,用于若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
查询单元,用于若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
为了实现上述目的,根据本发明的一个方面,提供了一种基于VXLAN的报文接收装置,包括:
第二创建单元,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,将所述缓存标记为超时状态;
第三判断单元,用于在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
第四判断单元,用于若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
移除单元,用于若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文。
进一步地,所述的基于VXLAN的报文接收装置,还包括:
解封装单元,用于若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
更新单元,用于在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存入方向的时间戳。
根据本发明的另一方面,提供了一种电子设备,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行本公开中的所述方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开中的所述方法。
应用本发明的技术方案,在创建VXLAN接口时,为所述VXLAN接口分配缓存。对于出方向,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,然后当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文;对于入方向,当所述VXLAN接口接收到报文时,若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文。本发明能够解决相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系吞吐量的问题,进而实现缩短报文发送和接收的耗时,节省CPU资源的技术效果。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据现有技术的VXLAN组网架构的示意图;
图2示出了根据现有技术的VXLAN报文封装格式的示意图;
图3示出了根据现有技术的报文发送流程的示意图;
图4示出了根据现有技术的报文接收流程的示意图;
图5示出了根据本发明一种可选实施例的基于VXLAN的报文发送方法的流程图;
图6示出了根据本发明令一种可选实施例的基于VXLAN的报文发送方法的流程图;
图7示出了根据本发明一种可选实施例的基于VXLAN的报文接收方法的流程图;
图8示出了根据本发明令一种可选实施例的基于VXLAN的报文接收方法的流程图;
图9示出了根据本发明一种可选实施例的基于VXLAN的报文发送装置的示意性框图;
图10示出了根据本发明一种可选实施例的基于VXLAN的报文接收装置的示意性框图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
为了解决相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系统吞吐量的问题,本发明提供了一种基于VXLAN的报文发送方法的实施例。
图5示出了根据本发明一种可选实施例的基于VXLAN的报文发送方法的流程图,如图5所示,具体包括以下步骤:
步骤S501,在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
步骤S502,当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
步骤S503,将封装好的所述链路层报文在出接口发出。
进一步地,所述的基于VXLAN的报文发送方法,还包括:
当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
作为一种可选的实施例,加速模式的发送流程体现在报文在vxlan接口、IP层、链路层的加速处理上。如图6所示,具体流程包括:
1、 发送报文进入vxlan接口后,判断缓存出方向是否已初始化。
2、 如果缓存出方向未初始化,将报文打上vxlan出方向特定的标识,进行普通的报文封装流程。
3、 如果报文设置了vxlan出方向特定的标识,将vxlan头信息(VXLAN标识、组ID、VNI、保留位)添加到缓存中。
4、 如果缓存出方向已经初始化,继续判断缓存出方向是否超时,默认有效期为5秒。
5、 如果缓存出方向已经超时,将报文打上vxlan出方向特定的标识,继续查询路由信息、出接口、ARP信息。
6、 如果报文设置了vxlan出方向特定的标识,将查询到的路由信息、出接口、ARP信息更新到缓存中,并更新缓存出方向的时间戳。7、普通封装流程使用已经封装的vxlan头信息,已经查询到的路由信息、出接口、ARP信息在链路层封装报文。
8、 如果缓存出方向未超时,则使用缓存中的vxlan头信息直接更新原始报文,使用缓存中路由信息、出接口、ARP信息直接封装链路层报文。
9、 将封装好的链路层报文在出接口发出。
针对发送流程说明如下:
首个报文会经过完整的普通封装流程,因为有修改缓存操作,所以时间会略多于普通发送流程。
超时后的首个报文会经过完整的普通报文的IP层处理(查询路由信息、出接口等信息)、链路层处理(ARP等信息),并与缓存中的对应信息比较,如果发生变化则更新到缓存对应项中。
其他报文会使用缓存中的信息直接更新报文,完成链路层报文封装。节省了vxlan报文外层封装信息(vxlan头信息、UDP头信息、IP头信息、以太网头信息)的计算,节省了查询路由表、出接口、ARP信息,大幅节省了CPU资源。
本发明实施例还提供了一种基于VXLAN的报文接收方法。图7示出了根据本发明一种可选实施例的基于VXLAN的报文接收方法的流程图,如图7所示,具体包括以下步骤:
步骤 S701,在创建VXLAN接口时,为所述VXLAN接口分配缓存,将所述缓存标记为超时状态;
步骤 S702,在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
步骤 S703,若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
步骤 S704,若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文,其中,所述UDP目的端口信息包括所述出接口和ARP信息。
进一步地,所述的基于VXLAN的报文接收方法,还包括:
若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存入方向的时间戳。
作为一种可选的实施例,加速模式的接收流程集中在报文进入IP层后的加速处理上。如图8所示,具体流程包括:
1、 接收方向的报文进入IP层后,解析报文头,可判断报文是否vxlan报文。
2、 如果是vxlan报文,继续判断缓存入方向是否超时(创建vxlan接口时将入方向时间戳默认设置为超时)。
3、 如果缓存入方向超时,将报文打上vxlan入方向特定的标识,进行普通报文解封装流程。
4、 当报文在桥接转发报文结束时,如果报文上设置了vxlan入方向特定的标识,将路由信息、出接口及ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新缓存入方向的时间戳。
5、 如果缓存入方向未超时,移除报文vxlan外层封装(vxlan头信息、UDP头信息、IP头信息、以太网头信息),使用缓存中的路由信息、出接口和ARP信息转发报文。
6、 如果不是vxlan报文,不进入vxlan加速模式。
需要说明的是,vxlan出/入方向特殊标识,用于根据设备配置是否启动加速vxlan模式。如果关闭vxlan加速模式,报文不会设置vxlan出/入方向特殊标识,系统工作在普通vxlan模式。
针对接收流程说明如下:
超时后的首个报文会经过完整的普通解封装流程,在桥接转发报文结束时有修改缓存操作,所以时间会略多于普通接收流程。
其他报文会使用缓存中的信息直接更新报文,只需在链路层将报文传递给物理层。节省了接收vxlan报文时IP层查找路由信息、出接口时间,节省了UDP层处理时间,节省了vxlan处理时间,节省了vxlan内层报文第二次在协议栈中处理时间,节省了内层报文在桥接中的转发处理时间。因此大幅节省了CPU资源。
从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:
1、由于vxlan头部信息、UDP目的端口信息在创建vxlan接口时就已经确定,减少计算次数将节省CPU资源。
2、发往同一个对端主机的vxlan报文,vxlan封装信息都是相同,减少计算次数将节省较多CPU资源。
3、在稳定的网络,路由信息和ARP信息通常变化较少,减少查询次数将节省较多CPU资源。
4、在vxlan隧道的对端,如果确定是vxlan报文,去掉vxlan封装信息,直接将报文转给出接口,由出接口将报文转出,报文将由4个协议层处理减为两个协议层处理,将节省较多CPU资源。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种基于VXLAN的报文发送装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图9示出了根据本发明一种可选实施例的基于VXLAN的报文发送装置的示意性框图,如图9所示,该装置包括:
第一创建单元91,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
处理单元92,用于当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
发送单元93,用于将封装好的所述链路层报文在出接口发出。
进一步地,所述的基于VXLAN的报文发送装置,还包括:
第一判断单元,用于当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
获取单元,用于若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
第二判断单元,用于若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
查询单元,用于若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新到缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
本发明实施例还提供了一种基于VXLAN的报文接收装置。图10示出了根据本发明一种可选实施例的基于VXLAN的报文接收装置的示意性框图,如图10所示,该装置包括:
第二创建单元1001,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,将所述缓存标记为超时状态;
第三判断单元1002,用于在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
第四判断单元1003,用于若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
移除单元1004,用于若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文。
进一步地,所述的基于VXLAN的报文接收装置,还包括:
解封装单元,用于若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
更新单元,用于在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息与缓存中的对应信息比较,如果发生变化则更新到缓存对应项中,并更新所述缓存入方向的时间戳。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的基于VXLAN的报文发送和接收方法。
本发明实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的基于VXLAN的报文发送和接收方法。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
在本发明的描述中,需要理解的是,方位词如“前、后、上、下、左、右”、“横向、竖向、垂直、水平”和“顶、底”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,在未作相反说明的情况下,这些方位词并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制;方位词“内、外”是指相对于各部件本身的轮廓的内外。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于VXLAN的报文发送方法,其特征在于,包括:
在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的出方向的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
将封装好的所述链路层报文在出接口发出。
2.根据权利要求1所述的基于VXLAN的报文发送方法,其特征在于,还包括:
当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新所述缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
3.一种基于VXLAN的报文接收方法,其特征在于,包括:
在创建VXLAN接口时,为所述VXLAN接口分配缓存,并将所述缓存标记为入方向超时状态;
在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文。
4.根据权利要求3所述的基于VXLAN的报文接收方法,其特征在于,还包括:
若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息更新到所述缓存中,并更新所述缓存入方向的时间戳为未超时。
5.一种基于VXLAN的报文发送装置,其特征在于,包括:
第一创建单元,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;
处理单元,用于当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文,其中,所述UDP目的端口信息包括所述路由信息、出接口、ARP信息;
发送单元,用于将封装好的所述链路层报文在出接口发出。
6.根据权利要求5所述的基于VXLAN的报文发送装置,其特征在于,还包括:
第一判断单元,用于当所述VXLAN接口接收到报文时,判断所述缓存出方向是否初始化;
获取单元,用于若所述缓存出方向未初始化,则将所述报文打上VXLAN出方向特定标识,获取并利用VXLAN头部信息进行VXLAN封装,并将获取到的所述VXLAN头部信息添加到所述缓存中;
第二判断单元,用于若所述缓存出方向已经初始化,判断所述缓存出方向是否超时;
查询单元,用于若所述缓存出方向超时,则将所述报文打上VXLAN出方向特定标识,查询路由信息、出接口、ARP信息,利用查询到的所述路由信息、出接口、ARP信息封装链路层报文,并将查询到的所述路由信息、出接口、ARP信息与缓存中的对应信息比较,如果发生变化则更新所述缓存对应项中,并更新所述缓存出方向的时间戳,标记所述缓存出方向已初始化。
7.一种基于VXLAN的报文接收装置,其特征在于,包括:
第二创建单元,用于在创建VXLAN接口时,为所述VXLAN接口分配缓存,并将所述缓存标记为超时状态;
第三判断单元,用于在接收方向上的报文进入IP层之后,解析所述报文,判断所述报文是否是VXLAN报文;
第四判断单元,用于若所述报文是VXLAN报文,判断所述缓存入方向是否超时;
移除单元,用于若所述缓存入方向未超时,则移除所述报文外层VXLAN封装信息,并使用缓存中存储的路由信息、出接口和ARP信息转发所述报文。
8.根据权利要求7所述的基于VXLAN的报文接收装置,其特征在于,还包括:
解封装单元,用于若所述缓存入方向超时,则将所述报文打上VXLAN入方向特定标识,对所述报文进行VXLAN解封装处理;
更新单元,用于在所述报文桥接转发处理结束之后,将查询到的路由信息、出接口和ARP信息与缓存中的对应信息比较,如果发生变化则更新到所述缓存对应项中,并更新所述缓存入方向的时间戳。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储程序的存储器,
其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310705438.9A CN116455704B (zh) | 2023-06-15 | 2023-06-15 | 基于vxlan的报文发送方法、接收方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310705438.9A CN116455704B (zh) | 2023-06-15 | 2023-06-15 | 基于vxlan的报文发送方法、接收方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116455704A CN116455704A (zh) | 2023-07-18 |
CN116455704B true CN116455704B (zh) | 2023-08-11 |
Family
ID=87135944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310705438.9A Active CN116455704B (zh) | 2023-06-15 | 2023-06-15 | 基于vxlan的报文发送方法、接收方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116455704B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577417A (zh) * | 2014-11-06 | 2016-05-11 | 杭州华三通信技术有限公司 | 基于vxlan网络的报文转发方法及装置 |
CN106603322A (zh) * | 2015-10-20 | 2017-04-26 | 华为技术有限公司 | 一种报文发送、接收方法及网络设备 |
CN112422393A (zh) * | 2015-12-31 | 2021-02-26 | 华为技术有限公司 | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 |
CN112787921A (zh) * | 2019-11-08 | 2021-05-11 | 华为技术有限公司 | 报文传输方法、代理节点及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858104B2 (en) * | 2014-09-24 | 2018-01-02 | Pluribus Networks, Inc. | Connecting fabrics via switch-to-switch tunneling transparent to network servers |
-
2023
- 2023-06-15 CN CN202310705438.9A patent/CN116455704B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105577417A (zh) * | 2014-11-06 | 2016-05-11 | 杭州华三通信技术有限公司 | 基于vxlan网络的报文转发方法及装置 |
CN106603322A (zh) * | 2015-10-20 | 2017-04-26 | 华为技术有限公司 | 一种报文发送、接收方法及网络设备 |
CN112422393A (zh) * | 2015-12-31 | 2021-02-26 | 华为技术有限公司 | 可扩展虚拟局域网报文发送方法、计算机设备和可读介质 |
CN112787921A (zh) * | 2019-11-08 | 2021-05-11 | 华为技术有限公司 | 报文传输方法、代理节点及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116455704A (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112165725B (zh) | 报文处理的方法及设备 | |
CN104935516B (zh) | 基于软件定义网络的通信系统及方法 | |
EP3282649B1 (en) | Data packet forwarding | |
US9154993B1 (en) | Mobile-IPv6 encapsulation for wireless networks | |
US11252129B2 (en) | Packet transmission method and apparatus | |
US10615997B2 (en) | In-vehicle gateway device | |
CN108429680B (zh) | 一种基于虚拟私有云的路由配置方法、系统、介质及设备 | |
CN103973574B (zh) | 位置与身份分离协议网络中的数据报文转发方法及装置 | |
US9654394B2 (en) | Multi-tenant system, switch, controller and packet transferring method | |
CN109639552B (zh) | 一种三层转发方法及装置 | |
TWI759571B (zh) | 基於流表的資料傳送方法 | |
CN111371666B (zh) | 一种处理报文的方法、设备及系统 | |
CN109547350B (zh) | 一种路由学习方法及网关设备 | |
WO2020108531A1 (zh) | 报文转发 | |
EP4366264A1 (en) | Communication method based on segment routing over internet protocol version 6 (srv6) | |
CN106992918B (zh) | 报文转发方法和装置 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN105933235B (zh) | 数据通信方法及装置 | |
CN101645895A (zh) | 一种实现隧道安全的方法和设备 | |
CN110752989A (zh) | 一种东西向流量转发方法与装置 | |
CN114679289B (zh) | 一种车载通信系统及车辆 | |
CN116455704B (zh) | 基于vxlan的报文发送方法、接收方法及装置 | |
CN112532563B (zh) | 报文的发送方法和装置 | |
CN110391984B (zh) | 一种报文转发方法及装置 | |
US20100238930A1 (en) | Router and method of forwarding ipv6 packets |
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 |