基于VXLAN的报文发送方法、接收方法及装置制造方法及图纸

技术编号:38246083 阅读:16 留言:0更新日期:2023-07-25 18:06
本发明专利技术提供了一种基于VXLAN的报文发送方法、接收方法及装置,该发送方法包括:在创建VXLAN接口时,为VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在缓存中,并将缓存标记为未初始化和超时状态;该接收方法包括:在创建VXLAN接口时,为VXLAN接口分配缓存,将缓存标记为超时状态,当VXLAN接口接收到入方向的报文时,若所述缓存入方向未超时,则利用所述缓存中存储的路由信息、出接口、ARP信息封装链路层报文;将封装好的链路层报文在出接口发出。通过本发明专利技术,解决了相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系统吞吐量的问题,实现了缩短报文发送和接收的耗时,节省CPU资源的技术效果。节省CPU资源的技术效果。节省CPU资源的技术效果。

【技术实现步骤摘要】
基于VXLAN的报文发送方法、接收方法及装置


[0001]本专利技术涉及通信
,具体而言,涉及一种基于VXLAN的报文发送方法、接收方法及装置。

技术介绍

[0002]VXLAN(Virtual Extensible Local Area Network)是虚拟扩展局域网,在RFC7348中实现,用于改进大型云计算在部署时的扩展问题,是对VLAN(Virtual Local Area Network,虚拟局域网)的一种扩展。VXLAN可以穿透三层网络对二层进行扩展,它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。
[0003]VXLAN解决了现有VLAN技术无法满足大二层网络需求的问题。VXLAN技术是一种大二层的虚拟网络技术,主要原理是引入一个UDP格式的外层隧道作为数据链路层 ,而原有数据报文内容作为隧道净荷加以传输。由于外层采用了UDP作为传输手段,净荷数据可以轻松的在二三层网络中传送。
[0004]在如图1所示的网络架构下,两个主机(主机1和主机2)通过VXLAN通信,两个主机连接在各自的网关上(主机1连接在网关1上,主机2连接在网关2上),网关至少有两个接口(一个用于连接主机,一个用于以太网通信),创建VXLAN类型的网络接口,将这三个接口放到同一个网桥内。在创建一个VXLAN类型的网络接口时系统路由表会自动创建一条路由,即去往VXLAN接口网段的报文的网络出接口是vxlan100。
[0005]如图1所示,主机1发往主机2的报文的过程描述如下:源MAC为主机1的MAC、源IP为主机1的IP,目的MAC为主机2的MAC、目的IP为主机2的IP。
[0006]网关1收到主机1的报文后,根据二层接口上的配置判断报文需要进入VXLAN隧道。确定报文所属的VNI。网关1更新主机1的MAC、VNI和报文入接口的对应关系,并记录在本地MAC表中。
[0007]网关1将报文转发到vxlan100接口,vxlan100接口根据接口配置信息对报文进行封装。这里封装的外层源IP地址为网关1的IP地址,外层目的IP地址为对端网关2的IP地址;外层源MAC地址为网关1的MAC地址,而外层目的MAC地址为去往外层目的IP的网络的下一跳设备的MAC地址。封装后的报文,根据外层MAC和IP信息,在以太网络中进行传输,直至到达网关2。
[0008]网关2将报文转发到本机的vxlan100接口,vxlan100接口对报文进行解封装,得到主机1发送的原始报文。
[0009]网关2更新主机1的MAC地址、VNI和网关2的IP地址的对应关系,并记录在本地MAC表中。
[0010]网关2根据二层接口上的配置对报文进行相应的处理并在对应的二层域内转发。
[0011]主机2收到报文后,比较报文中的目的IP地址是本机的IP地址,并做出回应。
[0012]在主机1和主机2看起来对端是和自己在同一个二层环境里,就像是在网关上直接构建了一条VXLAN 隧道,把网络接口直接在二层打通。
[0013]VXLAN报文封装格式如图2所示,主机1发送的原始报文包括以太网头、IP头和负载。之后,VXLAN封装在原始报文的前面添加了VXLAN头部(16位的VXLAN标识、16位的组ID、24位的VNI、8位保留)用来专门保存VXLAN相关的内容,再在前面添加标准的UDP协议头部(UDP头、IP 头和MAC头)用来在以太网上传输报文。
[0014]基于如图1所示的网络架构,报文发送流程如图3所示,具体过程包括:1、 主机向VXLAN隧道对端发送报文,目的MAC为对端主机的MAC,IP为对端主机的IP。
[0015]2、 报文经过交换机或者直接被发送到网关,网关的物理层接收主机发送的报文。
[0016]3、 在网关的链路层,由于接收主机发送报文的网关接口与vxlan接口在同一个网桥中,主机报文被桥接到vxlan接口。
[0017]4、 vxlan接口计算并封装vxlan头信息、UDP头信息、IP头信息,之后将报文交给网络层即IP层做转发。
[0018]5、 IP层查询转发报文的下一跳信息和出接口信息,并将报文转到出接口。
[0019]6、 在链路层使用ARP子系统查询出口接对应的下一跳MAC地址,用下一跳的MAC地址封装报文,并交给物理层。
[0020]7、 物理层添加必要的物理头并将报文发出。
[0021]报文接收流程如图4所示,具体过程包括:1、 vxlan隧道对端的网口接口(通常为对端网关的网络接口)在物理层接收到对到对端的以太网报文。
[0022]2、 网络接口通过报文的目的MAC地址确认报文是发给自己的,之后交给IP层处理。
[0023]3、 IP层使用IP信息通过查询路由信息,发现目的地是本机的另一个接口,将报文转到目的接口(即vxlan接口)。因为是UDP报文,vxlan接口的IP层将报文上传到四层UDP协议处理。
[0024]4、 因为是vxlan报文,四层的UDP协议将报文转给vxlan协议处理。
[0025]5、 vxlan协议检测报文的vxlan信息是否正确。如果是合法报文,vxlan接口将对端vxlan接口封装的原始报文重新放入本机网络协议栈。
[0026]6、 由于修改后的报文的目的MAC地址是本端主机的MAC地址,所以报文在网桥中被转发到去往本端主机的出接口。
[0027]7、 该出接口在物理层将报文封装并发往本端主机。
[0028]上述报文发送流程存在的缺陷为:主机发往对端的每一个报文都需要计算并封装vxlan头信息、UDP头信息、IP头信息,都需要查询路由表、出接口,都需要查询ARP子系统获取对应的下一跳MAC信息,这些都是非常耗时的操作,严重降低了系统吞吐量。
[0029]报文接收流程存在的缺陷为:报文从物理层接收之后,先后经过二、三、四、二层网络协议处理,网络协议处理流程过长,比发送流程更严重的降低了系统吞吐量。
[0030]目前,针对相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系吞吐量的问题,尚未提出有效的解决方案。

技术实现思路

[0031]本专利技术的主要目的在于提供一种基于VXLAN的报文发送方法、接收方法及装置,以解决相关技术中利用VXLAN进行报文发送和接收的流程耗时长、降低系吞吐量的问题。
[0032]为了实现上述目的,根据本专利技术的一个方面,提供了一种基于VXLAN的报文发送方法,包括:在创建VXLAN接口时,为所述VXLAN接口分配缓存,将VXLAN头部信息、UDP目的端口信息存储在所述缓存中,并将所述缓存标记为未初始化和超时状态;当所述VXLAN接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方向未超时,则利用所述缓存中存储的所述VXLAN头部信息更新所述报文,并利用所述缓存中存储的路由信息、出接口、ARP信息封装本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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接口接收到报文时,若所述缓存出方向已经初始化且所述缓存出方...

【专利技术属性】
技术研发人员:吴正中张辉汤小梁邓能文汪永刚姜子旺张东东
申请(专利权)人:北京城建智控科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1