The application embodiment provides a message forwarding method and a VXLAN gateway, which relate to the network technical field. In the VXLAN processing module, the VXLAN processing module is a module set in the gateway node, which includes: obtaining the first message sent by the first virtual machine VM from the data link layer, and the first packet processing of the outer layer Ethernet head, the outer layer IP head and the outer UDP head in the first message header of the first message. To get the UDP payload, the VXLAN header that stripped the payload of UDP gets the inner message, and the inner message is repackaged and the second message is repackaged. The three message heads can be packaged and processed through the VXLAN processing module to shorten the time of understanding the time of the package processing, thus the performance of the VXL AN gateway is improved when the message is forwarded. .
【技术实现步骤摘要】
报文转发方法及VXLAN网关
本申请涉及网络
,特别涉及一种报文转发方法及虚拟可扩展局域网(VirtualExtensibleLocalAreaNetwork,VXLAN)网关。
技术介绍
VXLAN技术是用于扩展网络虚拟化,以得到足够数量的虚拟网络来满足用户使用的技术。相关技术中,用于VXLAN网关的报文转发方法包括:VXLAN网关接收第一计算节点发送的数据报文,通过内核协议栈剥离该数据报文的第一VXLAN封装,并获取数据报文的内层报文中的目的地址,根据映射表以及目的地址确定数据报文的下一跳地址,为数据报文添加第二VXLAN封装,第二VXLAN封装中的目的地址为下一跳地址,VXLAN网关向第二计算节点发送添加了第二VXLAN封装的数据报文。其中,第一VXLAN封装包括外层以太网头(英文:OuterEthernetheader)、外层网络之间互连的协议(OuterInternetProtocol,OuterIP)、外层用户数据报协议头(OuterUserDatagramProtocolheader,OuterUDPheader)和虚拟可扩展同域网头(英文:VXLANheader)这四个报文头。通常,VXLAN网关通过内核协议栈剥离第一VXLAN封装,包括通过内核协议栈中的各层进行逐层依次剥离,即每层剥离第一VXLAN封装中的一个报文头。其中,内核协议栈中的各层剥离第一VXLAN封装的过程中涉及通过socket接口收发报文,而通过socket接口收发报文时会存在用户态数据与内核态数据的切换,导致数据切换时的开销问题,从而大大降低了VXLAN网关转发报文 ...
【技术保护点】
1.一种报文转发方法,其特征在于,用于VXLAN处理模块中,所述VXLAN处理模块是设置在网关节点中的模块,所述方法包括:从数据链路层获取第一虚拟机VM发送的第一报文;将所述第一报文的第一报文头中的外层以太头、外层网络之间互连的协议IP头和外层用户数据报协议UDP头进行一次解封装处理,得到UDP有效载荷;剥离所述UDP有效载荷的VXLAN头,得到内层报文;对所述内层报文进行重新封装得到第二报文;将所述第二报文发送至第二VM所在的第二计算节点。
【技术特征摘要】
1.一种报文转发方法,其特征在于,用于VXLAN处理模块中,所述VXLAN处理模块是设置在网关节点中的模块,所述方法包括:从数据链路层获取第一虚拟机VM发送的第一报文;将所述第一报文的第一报文头中的外层以太头、外层网络之间互连的协议IP头和外层用户数据报协议UDP头进行一次解封装处理,得到UDP有效载荷;剥离所述UDP有效载荷的VXLAN头,得到内层报文;对所述内层报文进行重新封装得到第二报文;将所述第二报文发送至第二VM所在的第二计算节点。2.根据权利要求1所述的方法,其特征在于,所述将所述第一报文的第一报文头中的外层以太头、外层网络之间互连的协议IP头和外层用户数据报协议UDP头进行一次解封装处理,得到UDP有效载荷,包括:将所述第一报文的第一报文头中的所述外层以太头、所述外层IP头和所述外层UDP头通过一次所述解封装处理进行全内核态的剥离,得到所述UDP有效载荷。3.根据权利要求1所述的方法,其特征在于,所述对所述内层报文进行重新封装得到第二报文,包括:根据所述内层报文中的目的MAC地址,生成与所述目的MAC地址对应的第二报文头,所述目的MAC地址是所述第二VM的MAC地址;根据所述第二报文头对所述内层报文进行封装,得到所述第二报文。4.根据权利要求3所述的方法,其特征在于,所述根据所述内层报文中的目的MAC地址,生成与所述目的MAC地址对应的第二报文头,包括:根据所述内层报文中的目的MAC地址和流表,获取与所述目的MAC地址对应的隧道IP地址,所述隧道IP地址是所述第二VM所在的第二计算节点的IP地址;根据所述隧道IP地址,从本地缓存表中确定与所述隧道IP地址对应的下一跳MAC地址,所述本地缓存表中存储有所述隧道IP地址和所述下一跳MAC地址之间的对应关系;根据所述隧道IP地址和所述下一跳MAC地址生成所述第二报文头,所述第二报文头中的外层目的MAC地址为所述下一跳MAC地址,所述第二报文头中的外层目的IP地址为所述隧道IP地址。5.根据权利要求4所述的方法,其特征在于,所述根据所述隧道IP地址,从本地缓存表中确定与所述隧道IP地址对应的下一跳MAC地址,包括:当尚未满足缓存表更新条件时,将查找次数加一;根据所述隧道IP地址,从所述本地缓存表中查找到与所述隧道IP地址对应的所述下一跳MAC地址;其中,所述缓存表更新条件包括所述查找次数小于预设查找次数,和/或,第一时刻与第二时刻的差值小于预设时间间隔,所述查找次数为当前累计的查找所述本地缓存表的次数,所述第一时刻为当前时刻,所述第二时刻为上一次查找路由表和ARP表的时刻。6.根据权利要求5所述的方法,其特征在于,所述方法,还包括:当从所述本地缓存表中未查找到与所述隧道IP地址对应的所述下一跳MAC地址时,从所述路由表查找到与所述隧道IP地址对应的下一跳IP地址;根据所述下一跳IP地址,从所述ARP表中查找到与所述下一跳IP地址对应的所述下一跳MAC地址;根据所述路由表和所述ARP表,对所述本地缓存表进行更新;将所述第二时刻重置为所述当前时刻。7.根据权利要求5所述的方法,其特征在于,所述方法,还包括:当满足所述缓存表更新条件时,将所述查找次数重置为零;根据所述隧道IP地址,从所述路由表查找到与所述隧道IP地址对应的下一跳IP地址;根据所述下一跳IP地址,从所述ARP表中查找到与所述下一跳IP地址对应的所述下一跳MAC地址;根据所述路由表和所述ARP表,对所述本地缓存表进行更新;将所述第二时刻重置为所述当前时刻。8.根据权利要求4所述的方法,其特征在于,所述方法,还包括:根据所述隧道IP地址,从所述本地缓存表中确定与所述隧道IP地址对应的输出接口,所述本地缓存表中还存储有所述隧道IP地址和所述输出接口之间的对应关系;所述将所述第二报文发送至所述第二VM所在的所述第二计算节点,包括:将所述第二报文通过所述输出接口发送至所述第二计算节点。9.根据权利要求1至8任一所述的方法,其特征在于,所述将所述第二报文发送至第二VM所在的第二计算节点,包括:获取所述第二报文对应的开始指针和指针数组,所述开始指针用于指向第一内存区域,所述指针数组包括n+1个指针,所述指针数组中的第i个指针用于指向第i个第二内存区域,所述n为正整数,所述i小于n的非负整数;当所述第一内存区域小于所述第二报文的第二报文头所需的内存区域时,将所述指针数组中的第0个指针重新指向所述第一内存区域,并将所述指针数组中的第j个指针重新指向第j-1个所述第二内存区域,所述j为小于或者等于n的正整数;为所述第二报文的第二报文头重新分配第三内存区域,所述第三内存区域是不同于所述第一内存区域和所述第二内存区域的区域;将所述第二报文的第二报文头中的外层以太头、外层IP头和外层UDP头拷贝至所述第三内存区域;将所述开始指针重新指向所述第三内存区域;将所述第二报文发送至所述第二计算节点。10.根据权利要求1至8任一所述的方法,其特征在于,所述剥离所述UDP有效载荷的VXLAN头,得到内层报文,包括:当所述UDP有效载荷中包括虚拟可扩展局域网网络标识VNI时,确定所述第一报文为VXLAN报文;当检测到存在与所述VXLAN报文对应的VXLAN端口时,剥离所述UDP有效载荷的VXLAN头,得到所述内层报文。11.一种VXLAN网关,其特征在于,包括VXLAN处理模块的网关节点,接收模块,用于从数据链路层获取第一虚拟机VM发送的第一报文,将所述第一报文发送至所述VXLAN处理模块;所述VXLAN处理模块,还用于将所述第一报文的第一报文...
【专利技术属性】
技术研发人员:梁亦历,高晓秋,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。