一种基于X86架构云平台的VXLAN报文的内核解封装方法技术

技术编号:26511295 阅读:29 留言:0更新日期:2020-11-27 15:40
本发明专利技术公开一种基于X86架构云平台的VXLAN报文的内核解封装方法包括通过X86系统的用户态程序创建流表项,将所述流表项存储于用户态的第一存储空间;将所述第一存储空间中的流表项同步到内核态的第二存储空间;将所述第二存储空间的流表项配置于内核态的第三存储空间的流表中;通过VTEP接收VXLAN报文,所述VTEP将所述VXLAN报文发送到内核态的第四存储空间;通过内核态程序从所述第四存储空间调取所述VXLAN报文并对所述VXLAN报文进行解析提取特征值;通过所述内核态程序调用所述第三存储空间中的流表并根据所述特征值匹配流表项对所述VXLAN报文进行处理。本发明专利技术公开一种基于X86架构云平台的VXLAN报文的内核解封装方法能够更加快速的解封装VXLAN报文,方便VM迁移高可用。

【技术实现步骤摘要】
一种基于X86架构云平台的VXLAN报文的内核解封装方法
本专利技术涉及VXLAN报文解封装
,尤其涉及一种基于X86架构云平台的VXLAN报文的内核解封装方法。
技术介绍
伴随着云计算的不断发展,云计算数据中心规模越来越大、虚拟机数量急剧扩张,伴随而来的就是传统的网络隔离技术VLAN不能满足日益扩张的网络规模,为了解决虚拟换环境中VLAN数量不满足业务网络的需求,人们提出了VXLAN的概念并大规模应用。现有技术中,VXLAN报文包括外层以太网头、外层网络互连协议、外层用户数据协议头和虚拟可扩展同域网头组成的封装头以及原始数据。在转发VXLAN报文的原始数据要将报文封装解封装,目前较主流和通用方式是利用VXLAN解封装功能的智能网卡,使用智能网卡作为VTEP,当网卡收到VXLAN报文后,直接通过智能网卡进行VXLAN报文的部分解封装,然后再将内层报文送往内核协议栈进行下一步解封装处理。直接通过智能网卡进行VXLAN报文的解封装,然后将报文直接送往虚拟机,提高了VXLAN报文的转发效率,但是硬件成本高,系统需要重构来匹配智能网卡的使用方式,又造成成本增加。而且虚拟机使用带VXLAN解封装功能的智能网卡时需要开启并管理智能网卡SRIOV功能,虚拟机使用智能网卡之后限制了虚拟机的迁移、HA等功能。一旦涉及到虚拟机的迁移、HA等功能这就需要对原有的网络方案需要重构,才能够实现对虚拟机的迁移以及HA。
技术实现思路
本专利技术提供基于X86架构云平台的VXLAN报文的内核解封装方法,旨在解决现有技术中智能网卡处理VXLAN报文成本高,以及现有的虚拟交换设备处理转发VXLAN报文效率低的问题。为实现上述目的,本专利技术提供的一种基于X86架构云平台的VXLAN报文的内核解封装方法,包括:通过X86系统的用户态程序创建流表项,将所述流表项存储于用户态的第一存储空间;将所述第一存储空间中的流表项同步到内核态的第二存储空间;将所述第二存储空间的流表项配置于内核态的第三存储空间的流表中;通过VTEP接收VXLAN报文,所述VTEP将所述VXLAN报文发送到内核态的第四存储空间;通过内核态程序从所述第四存储空间调取所述VXLAN报文并对所述VXLAN报文进行解析提取特征值;通过所述内核态程序调用所述第三存储空间中的流表并根据所述特征值匹配流表中的流表项对所述VXLAN报文进行处理。优选地,当所述VXLAN报文发送至所述第四存储空间,触发第一钩子使得所述内核态程序执行内核态的第一函数调取并检测所述VXLAN报文封装头的长度,如果所述VXLAN报文封装头的长度不符合规定的长度则执行报错动作,如果所述VXLAN报文封装头的长度符合规定的长度,则所述内核态程序执行内核态的第二函数。优选地,所述第二函数解析所述VXLAN报文的封装头并提取用于匹配流表项的特征值。优选地,所述内核态程序将所述特征值传递给第三函数,所述第三函数按照第三存储空间中流表的tableID依次调用所述流表,所述第三函数查询流表中是否有与所述特征值匹配的流表项,如果存在匹配的流表项则执行流表项的动作来解封装所述VXLAN报文的封装头。优选地,在匹配所述特征值的过程中,如果所述第三存储空间中的流表遍历完,仍有特征值未匹配到相应的流表项;则所述内核态程序执行第四函数,所述第四函数根据未匹配到相应的流表项的特征值匹配所述第二存储空间的流表项;如果第二存储空间中有流表项与特征值匹配,则执行匹配的流表项的动作来解封装所述VXLAN报文的封装头;如果第二存储空间中没有流表项与特征值匹配,则所述内核态程序通过netlink将所述VXLAN报文发送到用户态程序。优选地,如果所述第二存储空间中有流表项与特征值匹配,则通过第二钩子将匹配的流表项添加到所述第三存储空间的流表中,或者通过第二钩子在所述第三存储空间创建新的流表,并将匹配的流表项配置到新建的流表中。优选地,所述用户态程序调用所述第二函数解析VXLAN报文的封装头,并提取VXLAN报文的封装头的特征值,所述用户态程序获取特征值对应封装头的位域结构,所述用户态程序根据位域结构制定相应的流表项,通过TCFLOW将新的流表项同步到所述第二存储空间。优选地,所述第二存储空间接收到新的流表项时,通过第三钩子将新的流表项添加到所述第三存储空间的流表中,或者通过第三钩子在所述第三存储空间中创建新的流表,并将新的流表项添加到新建的流表中。优选地,在内核态的第五存储空间配置VNI与VM映射表。优选地,所述第二函数解析所述VXLAN报文的封装头时还提取VNI值,所述VXLAN报文的特征值匹配完流表项之后,所述内核态程序执行第五函数,所述第五函数获取所述VNI值,所述第五函数根据所述VNI值调用所述VNI与VM映射表确定所述VNI对应的VM,所述第五函数将解封装掉封装头的原始数据发送给所述VM。本申请提出的一种基于X86架构云平台的VXLAN报文的内核解封装方法具体有以下有益效果:本申请提出的一种基于X86架构云平台的VXLAN报文的内核解封装方法通过内核态程序调用内核态的第三存储空间中的流表来进行VXLAN报文的封装头的解封装,解封装过程全部在内核态进行,避免了解封装过程中用户态与内核态与用户态数据交互,加快了解封装速度,报文处理快;本专利技术主要是在X86上通过软件替代智能网卡进行VXLAN报文处理,无需智能网卡,成本低;采用由用户态程序和内核态程序的软件执行VXLAN报文处理,避免VM使用智能网卡对VM迁移以及高可用的限制。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1是本专利技术实施例中基于X86架构云平台的VXLAN报文的内核解封装方法中VXLAN报文解封装架构图;图2是本专利技术实施例中第一函数检测VXLAN报文流程图;图3是本专利技术实施例中第三存储空间中流表不能满足特征值匹配时,匹配第二存储空间流表项的流程图;图4是本专利技术实施例中一种第二存储空间中有匹配特征值的流表项时的流程图;图5是本专利技术实施例中另一种第二存储空间中有匹配特征值的流表项时的流程图;图6是本专利技术实施例中一种第二存储空间中没有匹配特征值的流表项时的流程图;图7是本专利技术实施例中另一种第二存储空间中没有匹配特征值的流表项时的流程图;图8是本专利技术实施例中VXLAN报文位域格式示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参阅图8所示,VXLAN报文包括封装头和原始数据两部分,所述封装头本文档来自技高网...

【技术保护点】
1.一种基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,包括:/n通过X86系统的用户态程序创建流表项,将所述流表项存储于用户态的第一存储空间;/n将所述第一存储空间中的流表项同步到内核态的第二存储空间;/n将所述第二存储空间的流表项配置于内核态的第三存储空间的流表中;/n通过VTEP接收VXLAN报文,所述VTEP将所述VXLAN报文发送到内核态的第四存储空间;/n通过内核态程序从所述第四存储空间调取所述VXLAN报文并对所述VXLAN报文进行解析提取特征值;/n通过所述内核态程序调用所述第三存储空间中的流表并根据所述特征值匹配流表中的流表项对所述VXLAN报文进行处理。/n

【技术特征摘要】
1.一种基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,包括:
通过X86系统的用户态程序创建流表项,将所述流表项存储于用户态的第一存储空间;
将所述第一存储空间中的流表项同步到内核态的第二存储空间;
将所述第二存储空间的流表项配置于内核态的第三存储空间的流表中;
通过VTEP接收VXLAN报文,所述VTEP将所述VXLAN报文发送到内核态的第四存储空间;
通过内核态程序从所述第四存储空间调取所述VXLAN报文并对所述VXLAN报文进行解析提取特征值;
通过所述内核态程序调用所述第三存储空间中的流表并根据所述特征值匹配流表中的流表项对所述VXLAN报文进行处理。


2.根据权利要求1所述的基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,当所述VXLAN报文发送至所述第四存储空间,触发第一钩子使得所述内核态程序执行内核态的第一函数调取并检测所述VXLAN报文封装头的长度,如果所述VXLAN报文封装头的长度不符合规定的长度则执行报错动作,如果所述VXLAN报文封装头的长度符合规定的长度,则所述内核态程序执行内核态的第二函数。


3.根据权利要求2所述的基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,所述第二函数解析所述VXLAN报文的封装头并提取用于匹配流表项的特征值。


4.根据权利要求3所述的基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,所述内核态程序将所述特征值传递给第三函数,所述第三函数按照第三存储空间中流表的tableID依次调用所述流表,所述第三函数查询流表中是否有与所述特征值匹配的流表项,如果存在匹配的流表项则执行流表项的动作来解封装所述VXLAN报文的封装头。


5.根据权利要求4所述的基于X86架构云平台的VXLAN报文的内核解封装方法,其特征在于,在匹配所述特征值的过程中,如果所述第三存储空间中的流表遍历完,仍有特征值未匹配到相应的流表项;
则所述内核态程序执行第四函数,所述第四函数...

【专利技术属性】
技术研发人员:李丰启
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1