CN113965521A - 数据包的传输方法、服务器及存储介质 - Google Patents
数据包的传输方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN113965521A CN113965521A CN202111215922.0A CN202111215922A CN113965521A CN 113965521 A CN113965521 A CN 113965521A CN 202111215922 A CN202111215922 A CN 202111215922A CN 113965521 A CN113965521 A CN 113965521A
- Authority
- CN
- China
- Prior art keywords
- data packet
- bridge
- network
- virtual
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- 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/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- 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/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]
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
本发明实施例涉及一种数据包的传输方法、服务器及存储介质,通过所述网卡接收数据包流中的当前数据包;若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;即本发明实施例在虚拟化环境的硬件卸载模式下,通过将虚拟机的接口配置为网卡的虚拟接口的透传接口,实现了非卸载流量直接通过网卡的透传接口发送给虚拟机,提高了非卸载流量的转发性能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据包的传输方法、服务器及存储介质。
背景技术
虚拟化环境,是指在物理服务器上运行多台虚拟机,这多台虚拟机会共享物理服务器的中央处理器(central processing unit,简称CPU)、网卡等资源。
虚拟化环境下的数据包转发,通常采用传统的纯软件转发方式,纯软件转发程序会部署在CPU上,在该方式下,CPU会对接收到的数据包进行转发等处理,并将处理后的数据包直接发送给虚拟机。但是,由于纯软件转发会占用CPU,因此又提出了一种虚拟化环境下的硬件卸载模式,即将部署在CPU上的一些转发逻辑、虚拟网络业务等卸载到硬件上,在硬件上完成对数据包的相应处理。
但是,由于虚拟机支持输入输出的半虚拟化卸载virtio技术,而网卡不支持virtio技术,因此,为了实现虚拟化环境下的硬件卸载功能,需要额外增加一层网桥来实现数据包从网卡到虚拟机之间的转发,这额外增加的一层网桥,会降低非卸载数据包的转发性能。
发明内容
本发明提供了一种数据包的传输方法、服务器及存储介质,以解决虚拟化环境硬件卸载模式下,额外增加的一层网桥会降低非卸载数据包的转发性能的技术问题。
第一方面,本发明提供了一种数据包的传输方法,应用于运行有虚拟机的服务器,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;所述方法包括:通过所述网卡接收数据包流中的当前数据包;若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
作为可选的实施例,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;则所述将当前数据包从所述网卡的物理网口进入所述第一网桥,包括:将当前数据包通过所述物理网口进入所述物理链路桥;所述通过所述第一网桥对所述当前数据包进行相应的业务规则处理,包括:通过所述物理链路桥对所述当前数据包进行解封装处理;通过所述虚拟网络逻辑业务桥对解封装后的当前数据包进行相应的业务逻辑处理。
作为可选的实施例,所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口之前,还包括:接收用户的配置指令,并根据所述配置指令将所述第三虚拟接口配置为所述第一虚拟接口的透传接口,以实现数据包从所述第一虚拟接口直接透传到所述第三虚拟接口。
作为可选的实施例,所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口之前,还包括:判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口;若是,则执行所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机的步骤;若否,则将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
作为可选的实施例,所述通过所述第一网桥对所述当前数据包进行相应的业务规则处理之后,还包括:判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上;若是,则将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上。
作为可选的实施例,所述判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上,包括:根据预设条件判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上。
作为可选的实施例,所述将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上之后,还包括:通过所述网卡接收数据包流中的当前数据包之后的数据包;将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
作为可选的实施例,所述方法还包括:若确定所述网卡中存在与所述数据包流匹配的业务规则,则将所述当前数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
第二方面,本发明提供一种服务器,所述服务器上运行虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;其中,所述网卡用于接收数据包流中的当前数据包;并在确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;所述处理器用于控制所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
作为可选的实施例,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;则所述网卡具体用于在确定所述网卡中不存在与所述数据包流匹配的业务规则时,将当前数据包从所述物理网口进入所述物理链路桥;所述物理链路桥用于对所述当前数据包进行解封装处理;所述虚拟网络逻辑业务桥用于对解封装后的当前数据包进行相应的业务逻辑处理
第三发明,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的数据包的传输方法的步骤。
本发明实施例提供的数据包的传输方法、服务器及存储介质,所述方法应用于运行有虚拟机的服务器,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;通过所述网卡接收数据包流中的当前数据包;若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;即本发明实施例在虚拟化环境的硬件卸载模式下,通过将虚拟机的接口配置为网卡的虚拟接口的透传接口,实现了非卸载流量(或者说非卸载数据包)直接通过网卡的透传接口发送给虚拟机,不再需要经过额外的网桥,提高了非卸载流量的转发性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为虚拟化环境下基于纯软件转发方式的数据包传输的结构示意图;
图2a为OvS-DPDK基于网卡支持硬件卸载模式下的卸载流量的转发拓扑图;
图2b为OvS-DPDK基于网卡支持硬件卸载模式下非卸载流量的转发拓扑图;
图3a为本发明实施例提供的一种服务器的架构图;
图3b为本发明实施例提供的另一种服务器的架构图;
图4为本发明实施例提供的一种数据包的传输方法的流程示意图;
图5为本发明实施例提供的另一种数据包的传输方法的流程示意图;
图6为本发明实施例提供的再一种数据包的传输方法的流程示意图;
图7为本发明实施例提供的又一种数据包的传输方法的流程框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
虚拟化是云计算网络架构的基础。所谓虚拟化就是在一台物理服务器(或称为物理机、宿主机等)上,运行多台“虚拟服务器”,这种虚拟服务器,也叫虚拟机(VirtualMachine,简称VM)。从表面上来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、网卡、内存、硬件等资源。
虚拟化环境下的数据包转发,通常采用传统的纯软件转发方式,纯软件转发程序会部署在CPU上,在该方式下,CPU会对接收到的数据包进行转发等处理,并将处理后的数据包直接发送给虚拟机。图1为虚拟化环境下基于纯软件转发方式的数据包传输的结构示意图,如图1所示,云计算网络架构中的每个计算节点,即物理服务器上会运行多个虚拟机(图1以运行两个虚拟机为例),每个虚拟机配置对应的虚拟接口vhost-user;每个计算节点上还包括两个虚拟机共享的CPU和网卡,CPU上部署有软件转发程序,或称为开源的虚拟交换机(Open vSwitch,简称OvS),OvS包括物理链路桥和虚拟网络逻辑业务桥。其数据包传输流程如下:外部网络发送过来的数据包通常是基于虚拟扩展局域网(virtual extensiblelocal area network,简称vxlan)技术封装的数据包,封装好的数据包通过网卡的物理网口进入到物理链路桥,进行vxlan解封,解封后的数据包进入到虚拟网络逻辑业务桥,进行相应的业务逻辑处理,然后业务逻辑处理后的数据包通过虚拟接口vhost-user传输给虚拟机,虚拟机再对接收到的数据包进行处理。
从图1可知,采用传统的纯软件转发方式,会占用CPU资源,数据包的转发效率也不高。因此,为了减少网络转发的CPU消耗,且提高数据包的转发效率,会将云计算网络架构中的网络转发逻辑、计算节点上部署的一些虚拟网络业务,如安全组、路由转发、等价多路径路由(Equal Cost Multi-path,简称ECMp)、网络地址转换(Network AddressTranslation,简称NAT)等有条件的卸载到硬件上,该硬件通常为网卡或其他硬件资源。
为了实现虚拟化环境下的硬件卸载功能,需要依赖网卡的单根I/O虚拟化(Single-root I/O virtualization,简称SRIOV)特性,使能此特性后可以在一个网卡上创建多对内部直连的虚拟接口,如vf口和vf-rep口,在硬件卸载的常用方案中,与虚拟机对接的一端是vf口,与软件定义网络(Software Defined Network,简称SDN)转发业务相连的是vf-rep口,亦称为vf-represent口。
除了依赖网卡SRIOV特性以外,网卡还需要支持输入输出的半虚拟化卸载virtio技术,因为虚拟机是支持卸载virtio技术的。但是,目前的网卡通常不支持virtio技术,因此,还需要额外增设一层网桥,如virtio-forwarder桥来实现数据包从网卡的vf口到虚拟机virtio间的转发。
以OvS-DPDK基于网卡支持硬件卸载的场景为例,会在OvS中增加一层virtio-fwd桥,用于实现将数据包从网卡的vf口转发到虚拟机,其中,虚拟机vhost-user口、vf口和vr-rep口为一组接口,虚拟机vhost-user口和vf口由OvS软件实现直连转发,vf口和vf-rep口由网卡实现直连转发。图2a为OvS-DPDK基于网卡支持硬件卸载模式下的卸载流量的转发拓扑图,如图2a所示,卸载流量(即业务规则已经卸载到硬件上的数据包流)被网卡接收后,直接在网卡上完成相应的业务规则处理,然后将处理后的数据包直接发送到vf口,经过virtio-fwd桥传输给虚拟机,可见,卸载流量不再经过CPU上的物理链路桥和虚拟网络逻辑业务桥,减少了CPU的消耗。图2b为OvS-DPDK基于网卡支持硬件卸载模式下非卸载流量的转发拓扑图,如图2b所示,非卸载流量(即没有将业务规则卸载到硬件上的数据包流)被网卡接收后,依次从物理链路桥、虚拟网桥逻辑业务桥和virtio-fwd桥传输给虚拟机。
对比图1、图2b可知,针对于非卸载流量,采用传统的纯软件处理的时候,没有virtio-fwd桥,流量只需要经过物理链路桥、虚拟网络逻辑桥,而后就直接发向虚拟机;而硬件卸载模式下,处理流程上增加了virtio-fwd桥、vf-rep口到vf口的处理流程,显然这些增加的处理流程是冗余的,低效率的,对网络延时和吞吐会造成影响。综上可知,虚拟化环境的硬件卸载模式下,增加的virtio-fwd桥、vf-rep口到vf口的处理流程,相对于传统的纯软件转发方式,会降低非卸载流量的转发性能。
针对上述技术问题,本发明的技术构思在于:虚拟化环境下硬件卸载模式下,将虚拟机的虚拟接口配置为网卡虚拟接口的透传接口,从而使非卸载流量可以直接从网卡虚拟接口直接透传到虚拟机的虚拟接口,不再需要经过virtio-fwd桥、vf-rep口到vf口的处理流程,从而减少了硬件卸载模式下的网络架构对非卸载流量的转发性能影响。
图3a为本发明实施例提供的一种服务器的架构图,如图3a所示,所述服务器上运行有虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥(纯软件转发路径)、第二网桥(virtio forwader),所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口(图3a未示出),所述虚拟机配置有第三虚拟接口(vhost-user),所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口,该透传接口可以使得数据包从第一虚拟接口直接切换到第三虚拟接口,可参看图3a中虚线部分。
图3b为本发明实施例提供的另一种服务器的架构图,图3b是在图3a的基础上,第一网桥包括物理链路桥和虚拟网络逻辑业务桥。如图3b所示,所述服务器上运行有虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有物理链路桥、虚拟网络逻辑业务桥和第二网桥(virtio-fwd桥),所述网卡通过物理链路桥、虚拟网络逻辑业务桥、virtio-fwd桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口(vf-rep口)和第二虚拟接口(vf口),所述虚拟机配置有第三虚拟接口(vhost-user),所述物理链路桥的一端接口为所述网卡的物理网口,另一端与虚拟网络逻辑业务桥的连接,虚拟网络逻辑业务桥的另一端接口为vf-rep口,所述virtio-fwd桥的一端接口为所述vf口,另一端接口为vhost-user口,所述vhost-user口为所述vf-rep口的透传接口,该透传接口可以使得数据包从vf-rep口直接切换到vhost-user口,可参看图3b中虚线部分。
图4为本发明实施例提供的一种数据包的传输方法的流程示意图,本发明实施例的执行主体为图3a或图3b所示的服务器。如图4所示,该数据包的传输方法包括:
步骤S101、通过所述网卡接收数据包流中的当前数据包。
具体来说,数据包流或者流量是由一个个有先后顺序的数据包构成的,来自外部网络的数据包流通过网卡进入到本服务器中。
步骤S102、若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥。
具体来说,网卡接收到数据包流中的当前数据包后,会判断网卡上是否存在与数据包流相匹配的业务规则,若不存在,说明该数据包流对应的业务规则不可以卸载到网卡上,是非卸载流量,或者说明该数据包流是第一次进入到该服务器中,服务器还没有对此数据包流是否可以卸载进行判断。无论是上述哪种情况,该数据包流的当前数据包均是不可卸载的数据包,此时该数据包流的当前数据包会通过物理网口,进入到第一网桥。
步骤S103、通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
具体来说,第一网桥是部署在中央处理器上的(CPU)的软件转发程序,可以对数据包进行相应业务规则的处理。当前数据包从物理网口进入到第一网桥后,在第一网桥上进行相应业务规则处理,然后处理后的当前数据包从第一网桥的第一虚拟接口发出。因为已经配置了第一虚拟接口的透传接口为虚拟机的第三虚拟接口,则处理后的数据包可以从第一虚拟接口直接透传到第三虚拟接口,然后通过第三虚拟接口发送给虚拟机。可见,在虚拟化环境的硬件卸载模式下,非卸载流量或者第一次进入该服务器的数据包流的当前数据包可以直接通过网卡的透传接口直接发送到虚拟机,不再需要经过第二网桥。
作为可选的实施例,所述方法还包括:若确定所述网卡中存在与所述数据包流匹配的业务规则,则将所述当前数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
具体来说,若网卡中存在与数据包流匹配的业务规则,说明该数据包流对应的业务规则已经卸载到网卡上,是卸载流量,则当前数据包和之后的数据包不需要再发送到CPU上进行业务规则处理,而是直接在网卡上完成对应的业务规则处理,然后处理后的数据包直接从第二虚拟端口进入到第二网桥,最后再通过第二网桥的第三虚拟接口发送给虚拟机。
现结合图3a对本发明的实施例进行进一步的详细说明,如图3a所示,网卡接收数据包流,若在网卡上没有查找到与数据包流匹配的业务规则,则将数据包流的当前数据包发送到第一网桥(即图3a中纯软件转发路径),进行相应业务规则处理,然后直接通过透传接口将处理后的当前数据包发送到虚拟机的第三虚拟接口vhost-user(参考图3a中的虚线部分),避免经过第二网桥virtio-forwarder。若在网卡上查找到与数据包流匹配的业务规则,则可以直接通过网卡(硬件路径)发送到网卡的第二虚拟接口,然后经过virtio-forwarder发送到虚拟机。
作为可选的实施例,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;步骤S102中的所述将当前数据包从所述网卡的物理网口进入所述第一网桥,包括:将当前数据包通过所述物理网口进入所述物理链路桥;步骤S103中的通过所述第一网桥对所述当前数据包进行相应的业务规则处理,包括:通过所述物理链路桥对所述当前数据包进行解封装处理;通过所述虚拟网络逻辑业务桥对解封装后的当前数据包进行相应的业务逻辑处理。
具体来说,第一网桥包括物理链路桥、虚拟网络逻辑业务桥,其均是部署在CPU上的软件转发程序,物理链路桥实现对封装的数据包进行解封装,虚拟网络逻辑业务桥中包括许多业务逻辑,可以对解封装后的数据包进行相应的业务逻辑处理,例如安全组,访问控制列表(ACcess-List,简称ACL),服务质量(Quality of Service,简称QoS),ECMp,NAT等,也就是说,物理链路桥和虚拟网络逻辑业务桥包含了数据包的业务规则。当网卡接收到数据包流后,并且确定网卡上没有对应的业务规则时,则将数据包通过物理网口先进入到物理链路桥,对数据包进行vxlan、通用路由封装(Generic Routing Encapsulation,简称GRE)、IP封装IP(IP Encapsulation within IP,简称IP in IP)等解封装,然后解封装后的数据包进入到虚拟网络逻辑业务桥,进行业务逻辑处理;然后经过业务逻辑处理的数据包从第一虚拟接口的透传给第三虚拟接口进行发送,发送给虚拟机。
现结合图3b对本发明的实施例进行进一步的详细说明,如图3b所示,网卡接收数据包流,若在网卡上没有查找到与数据包流匹配的业务规则,则将数据包流的当前数据包发送到物理链路桥,对当前数据包进行vxlan解封;然后解封后的数据包从第一虚拟接口vf-rep口透传至第三虚拟接口vhost-user口,然后发送给虚拟机。
作为可选的实施例,步骤S104之前,还包括:接收用户的配置指令,并根据所述配置指令将所述第三虚拟接口配置为所述第一虚拟接口的透传接口,以实现数据包从所述第一虚拟接口直接透传到所述第三虚拟接口。
以设计OVS-DPDK的接口透传为例。在OVS软件接口的属性中,增加pt-port属性,如下所示:
Bridge"br0"
Port"rep-j2jenju7lv"
Interface"rep-j2jenju7lv"
type:dpdk
options:{dpdk-devargs="0000:1a:00.1,representor=[0]",pt-port="port-j2jenju7lv"
Bridge br-fwd
Port"port-j2jenju7lv"
type:dpdkvhostuserclient
options:{peer="vf-j2jenju7lv",vhost-server-path="/var/lib/openvswitch/port-j2jenju7lv"}
Port"vf-j2jenju7lv"
type:dpdk
options:{dpdk-devargs="0000:1a:10.1",peer="port-j2jenju7lv",rxq_scheduling_role=slave}
上述配置中,网桥br0中的rep-j2jenju7lv就是vf-rep口,port-j2jenju7lv是虚拟机的vhost-user接口,vf-rep口的pt-port配置中指定的port-j2jenju7lv是vhost-user接口,表示要做流量的透传处理。vf-j2jenju7lv是vf网口,可以看到vf口和vhost-user口互为peer。
本发明实施例提供的数据包的传输方法,应用于运行有虚拟机的服务器,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;通过所述网卡接收数据包流中的当前数据包;若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;即本发明实施例在虚拟化环境的硬件卸载模式下,通过将虚拟机的接口配置为网卡的虚拟接口的透传接口,实现了非卸载流量(或者说非卸载数据包)直接通过网卡的透传接口发送给虚拟机,不再需要经过额外的网桥,提高了非卸载流量的转发性能。
在上述实施例的基础上,图5为本发明实施例提供的另一种数据包的传输方法的流程示意图,如图5所示,该数据包的传输方法包括:
步骤S201、通过所述网卡接收数据包流中的当前数据包。
步骤S202、若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥。
步骤S203、通过所述第一网桥对所述当前数据包进行相应的业务规则处理。
步骤S204、判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口。
若是,执行步骤205;若否,执行步骤206。
步骤S205、将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
步骤206、将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
本实施例中的步骤S201-步骤S203以及步骤S205的实现方式分别与上述实施例中的步骤S101-步骤S103的实现方式类似,此处不再赘述。
与上述实施例的区别在于,考虑到若未对网卡配置对应的透传接口时,数据包如何进行传输的情况。在本实施例中,通过判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口;若是,将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;若否,则将将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
具体来说,网卡接收到数据包流后,且网卡中不存在与数据包流匹配的业务规则时,当前数据包会进入到第一网桥,在第一网桥上进行相应的业务规则处理,并准备将处理后的当前数据包从第一虚拟接口发送;在发送之前,判断第一虚拟接口是否配置了第三虚拟接口为透传接口,如果配置了,则处理后的当前数据包直接通过透传接口传输给虚拟机;如果未配置,由于第一虚拟接口和第二虚拟接口的直连关系,处理后的数据包会由第二虚拟接口接收,进入到第二网桥,最终通过所述第二网桥的第三虚拟接口传输给虚拟机。综上可知,针对非卸载数据包,如果配置了透传接口,则非卸载数据包直接通过透传接口透传到虚拟机,如果未配置透传接口,则依然需要经过第二网桥传输给虚拟机。
本发明的实施例提供的数据包的传输方法,通过判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口;若是,则将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;若否,则将将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机;即本发明实施例通过判断是否配置透传接口,通过不同的转发路径,在实现数据包正常转发的前提下,尽可能通过配置的透传接口进行转发,以降低非卸载流量的网络延时,提高吞吐量。
在上述实施例的基础上,图6为本发明实施例提供的再一种数据包的传输方法的流程示意图,如图6所示,该数据包的传输方法包括:
步骤S301、通过所述网卡接收数据包流中的当前数据包。
步骤S302、若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥。
步骤S303、通过所述第一网桥对所述当前数据包进行相应的业务规则处理。
步骤S304、判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上。
若允许卸载,则执行步骤S305-步骤308;若不允许卸载,则直接执行步骤S306,并且之后的数据包也会采用与当前数据包的一样的转发路径,即网卡的物理网口接收到当前数据包之后的数据包后,会先进入到第一网桥,进行相关业务规则处理,然后将处理后的当前数据包从第一网桥的第一虚拟接口的透传接口发送出去,即第三虚拟接口发送给虚拟机。
步骤S305、将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上。
步骤S306、将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
可选的,还包括步骤S307、步骤S308。
步骤S307、通过所述网卡接收数据包流中的当前数据包之后的数据包。
步骤S308、将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
本实施例中的步骤S301-步骤303以及步骤S306的实现方式分别与上述实施例中的步骤S101-步骤S103的实现方式类似,此处不再赘述。
与上述实施例的区别在于,本实施例进一步限定了判断数据包流是否允许卸载的具体实现方式。在本实施例中,判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上;若是,则将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上;还通过所述网卡接收数据包流中的当前数据包之后的数据包;将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
具体来说,网卡接收到数据包流后,若网卡不存在与数据包流匹配的业务规则,则将当前数据包发送到第一网桥进行相关业务规则处理,并从第一虚拟接口发送;然后判断该数据包流对应的业务规则是否可以卸载到网卡上,若可以卸载,则数据包流之后的数据包直接通过网卡的第二虚拟接口进入到第二网桥,并通过第二网桥的第三虚拟接口进入到虚拟机,而当前数据包依然是从第一虚拟接口直接透传到第三虚拟接口,进入到虚拟机中。若数据包流对应的业务规则不允许卸载,即非卸载流量,则当前数据包、之后的数据包均经过第一网桥后,从第一网桥的第一虚拟接口直接透传到第三虚拟接口,进入到虚拟机中。
作为可选的实施例,步骤S304包括:根据预设条件判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上。
其中,所述预设条件包括以下至少一种:所述数据包流的热度值是否大于阈值。
具体来说,可以根据预设条件判断业务规则是否允许卸载到网卡上,预设条件可以为所述数据包流的热度值是否大于阈值,对于热度值比较大的数据包流,可以允许卸载到网卡上,对于热度值比较小的数据包流,不允许卸载到网卡上。比如说针对双方正在通话的场景,流量比较热,则可以将其业务规则卸载到硬件上,使得后续的数据包直接通过网卡(硬件路径)进行相应业务规则处理,然后通过第二网桥进入到虚拟机。通过该预设条件的判断,可以避免所有流量都卸载到硬件上或者均不能卸载到硬件上,而导致的硬件资源的浪费。另外,预设条件还可以为其他根据用户经验设置的判断条件,例如针对地址解析协议(Address Resolution Protocol,简称ARP)包、广播包、组播包,传输控制协议(Transmission Control Protocol,简称TCP)的同步序列编号(Synchronize SequenceNumbers,简称SYN)包或终止(fin)包不可以卸载;处理后出现多个发送接口的情况不可卸载;存在网卡能力不支持的match和action,不可卸载。
本发明的实施例提供的数据包的传输方法,通过判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上;若是,则将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上;还通过所述网卡接收数据包流中的当前数据包之后的数据包;将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口传输给虚拟机;即本发明实施例通过判断数据包流对应的业务规则是否允许下载到硬件上,避免了硬件资源的浪费。
为了更进一步了解本发明的实施例,图7为本发明实施例提供的又一种数据包的传输方法的流程框图,结合图3b和图7所示,该数据包的传输方法包括:首先通过网卡接收数据包流的当前数据包;然后进行硬件匹配,即确定网卡中是否存在与数据包流匹配的业务规则;若匹配命中,则当前数据包、之后的数据包会通过vf口、vhost-user口发送到虚拟机;若匹配未命中,则当前数据包会进入到物理网络层,即物理链路桥进行vxlan解封装;然后解封装后的当前数据包进入到虚拟网络层处理,即通过虚拟网络逻辑业务桥进行相关的业务逻辑处理;处理完成后,判断该数据包流对应的业务规则是否可以卸载,若可以卸载,则将业务规则卸载到网卡上,之后的数据包可以从命中路径进入到虚拟机中。但是,当前数据包仍会选定vf-rep口进行转发,此时查看,vf-rep口是否存在pt-port,即是否配置了透传接口,如果存在,就直接切换到vhost-user口并发送到虚拟机进行处理;如果没有配置ptport,就从vf-rep口发送出去,对应的vf口会马上收到此包,并在转发桥上从vhost-user口发送到虚拟机进行处理。
综上,本发明实施例将虚拟机的虚拟接口配置为网卡的虚拟接口的透传接口,实现了将非卸载的数据包通过透传接口直接传输给虚拟机,避免了virtio-fwd桥、vf-rep口到vf口的处理流程,降低了硬件卸载模式下的网络架构对非卸载流量的性能影响。
本发明实施例还提供的一种服务器。其结构示意图可参考图3a所示,如图3a所示,所述服务器上运行虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;其中,所述网卡用于接收数据包流中的当前数据包;并在确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;所述处理器用于控制所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
作为本发明的可选实施例,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;则所述网卡具体用于在确定所述网卡中不存在与所述数据包流匹配的业务规则时,将当前数据包从所述物理网口进入所述物理链路桥;所述物理链路桥用于对所述当前数据包进行解封装处理;所述虚拟网络逻辑业务桥用于对解封装后的当前数据包进行相应的业务逻辑处理,可参考图3b所示。
作为本发明的可选实施例,所述处理器还用于:接收用户的配置指令,并根据所述配置指令将所述第三虚拟接口配置为所述第一虚拟接口的透传接口,以实现数据包从所述第一虚拟接口直接透传到所述第三虚拟接口。
作为本发明的可选实施例,所述处理器还用于:判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口;则执行所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机的步骤;若否,则将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
作为本发明的可选实施例,所述处理器还用于:判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上;若是,则将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上。
作为本发明的可选实施例,所述处理器具体用于:根据预设条件判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上。
作为本发明的可选实施例,所述网卡还用于:在将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上之后,通过所述物理网口接收数据包流中的当前数据包之后的数据包;将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
作为本发明的可选实施例,所述网卡还用于:若确定所述网卡中存在与所述数据包流匹配的业务规则,则将所述当前数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
本实施例提供的服务器,其实现原理和技术效果与上述实施例类似,此处不再赘述。
本发明实施例提供的服务器,所述服务器上运行虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;其中,所述网卡用于接收数据包流中的当前数据包;并在确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;所述处理器用于控制所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机;即本发明实施例在虚拟化环境的硬件卸载模式下,通过将虚拟机的接口配置为网卡的虚拟接口的透传接口,实现了非卸载流量(或者说非卸载数据包)直接通过网卡的透传接口发送给虚拟机,不再需要经过额外的网桥,提高了非卸载流量的转发性能。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据包的传输方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种数据包的传输方法,其特征在于,应用于运行有虚拟机的服务器,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;所述方法包括:
通过所述网卡接收数据包流中的当前数据包;
若确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;
通过所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;
则所述将当前数据包从所述网卡的物理网口进入所述第一网桥,包括:
将当前数据包通过所述物理网口进入所述物理链路桥;
所述通过所述第一网桥对所述当前数据包进行相应的业务规则处理,包括:
通过所述物理链路桥对所述当前数据包进行解封装处理;
通过所述虚拟网络逻辑业务桥对解封装后的当前数据包进行相应的业务逻辑处理。
3.根据权利要求1或2所述的方法,其特征在于,所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口之前,还包括:
接收用户的配置指令,并根据所述配置指令将所述第三虚拟接口配置为所述第一虚拟接口的透传接口,以实现数据包从所述第一虚拟接口直接透传到所述第三虚拟接口。
4.根据权利要求3所述的方法,其特征在于,所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口之前,还包括:
判断所述第一虚拟接口是否配置所述第三虚拟接口为透传接口;
若是,则执行所述将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机的步骤;
若否,则将处理后的当前数据包从所述第一网桥的第一虚拟接口直连转发到所述第二虚拟接口,并通过所述第二虚拟接口进入到所述第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
5.根据权利要求1或2所述的方法,其特征在于,所述通过所述第一网桥对所述当前数据包进行相应的业务规则处理之后,还包括:
判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上;
若是,则将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上。
6.根据权利要求5所述的方法,其特征在于,所述判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上,包括:
根据预设条件判断所述第一网桥上的与所述当前数据包的数据包流相匹配的业务规则是否允许卸载到所述网卡上。
7.根据权利要求5所述的方法,其特征在于,所述将与所述当前数据包的数据包流相匹配的业务规则卸载到所述网卡上之后,还包括:
通过所述网卡接收数据包流中的当前数据包之后的数据包;
将所述当前数据包之后的数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
8.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若确定所述网卡中存在与所述数据包流匹配的业务规则,则将所述当前数据包直接通过所述网卡的第二虚拟端口传输到第二网桥,并通过所述第二网桥的第三虚拟接口发送给虚拟机。
9.一种服务器,其特征在于,所述服务器上运行虚拟机,所述服务器包括处理器和网卡,所述处理器上部署有第一网桥、第二网桥,所述网卡通过所述第一网桥和第二网桥与所述虚拟机连接;其中,所述网卡配置有至少一对直连的虚拟接口,所述一对直连的虚拟接口包括第一虚拟接口和第二虚拟接口,所述虚拟机配置有第三虚拟接口,所述第一网桥的一端接口为所述网卡的物理网口,另一端接口为所述第一虚拟接口,所述第二网桥的一端接口为所述第二虚拟接口,另一端接口为所述第三虚拟接口,所述第三虚拟接口为所述第一虚拟接口的透传接口;
其中,所述网卡用于接收数据包流中的当前数据包;并在确定所述网卡中不存在与所述数据包流匹配的业务规则,将当前数据包从所述网卡的物理网口进入所述第一网桥;
所述处理器用于控制所述第一网桥对所述当前数据包进行相应的业务规则处理,并将处理后的当前数据包从所述第一网桥的第一虚拟接口直接透传到所述第三虚拟接口,并通过所述第三虚拟接口发送给虚拟机。
10.根据权利要求9所述的服务器,其特征在于,所述第一网桥包括物理链路桥和虚拟网络逻辑业务桥;
则所述网卡具体用于在确定所述网卡中不存在与所述数据包流匹配的业务规则时,将当前数据包从所述物理网口进入所述物理链路桥;
所述物理链路桥用于对所述当前数据包进行解封装处理;所述虚拟网络逻辑业务桥用于对解封装后的当前数据包进行相应的业务逻辑处理。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的数据包的传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111215922.0A CN113965521B (zh) | 2021-10-19 | 2021-10-19 | 数据包的传输方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111215922.0A CN113965521B (zh) | 2021-10-19 | 2021-10-19 | 数据包的传输方法、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965521A true CN113965521A (zh) | 2022-01-21 |
CN113965521B CN113965521B (zh) | 2024-03-01 |
Family
ID=79465317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111215922.0A Active CN113965521B (zh) | 2021-10-19 | 2021-10-19 | 数据包的传输方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965521B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319323A (zh) * | 2023-05-22 | 2023-06-23 | 江苏博云科技股份有限公司 | 在Kubernetes环境下使用智能网卡加速容器网络的方法及系统 |
CN116723162A (zh) * | 2023-08-10 | 2023-09-08 | 浪潮电子信息产业股份有限公司 | 一种网络首包处理方法、系统、装置、介质及异构设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080031266A1 (en) * | 2006-08-04 | 2008-02-07 | Francois Edouard Tallet | Technique for sharing a physical port among a plurality of virtual bridges on a switch in a computer network |
WO2012039792A1 (en) * | 2010-09-23 | 2012-03-29 | Cisco Technology, Inc. | Network interface controller for virtual and distributed services |
US20150350081A1 (en) * | 2014-05-30 | 2015-12-03 | International Business Machines Corporation | Virtual network data control with network interface card |
CN106572047A (zh) * | 2015-10-09 | 2017-04-19 | 东软集团股份有限公司 | 物理网络安全设备及其控制方法 |
KR20170057770A (ko) * | 2015-11-17 | 2017-05-25 | 에스케이텔레콤 주식회사 | 가상 스위치의 패킷 전송 제어 방법 |
US20170180273A1 (en) * | 2015-12-22 | 2017-06-22 | Daniel Daly | Accelerated network packet processing |
CN107278359A (zh) * | 2016-11-09 | 2017-10-20 | 华为技术有限公司 | 云计算系统中报文处理的方法、主机和系统 |
US20170322828A1 (en) * | 2016-05-09 | 2017-11-09 | Cavium, Inc. | Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration |
CN110519147A (zh) * | 2018-05-22 | 2019-11-29 | 中兴通讯股份有限公司 | 数据帧传输方法、装置、设备和计算机可读存储介质 |
CN112631726A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机数据处理方法、系统、设备以及介质 |
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
-
2021
- 2021-10-19 CN CN202111215922.0A patent/CN113965521B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080031266A1 (en) * | 2006-08-04 | 2008-02-07 | Francois Edouard Tallet | Technique for sharing a physical port among a plurality of virtual bridges on a switch in a computer network |
WO2012039792A1 (en) * | 2010-09-23 | 2012-03-29 | Cisco Technology, Inc. | Network interface controller for virtual and distributed services |
US20150350081A1 (en) * | 2014-05-30 | 2015-12-03 | International Business Machines Corporation | Virtual network data control with network interface card |
CN106572047A (zh) * | 2015-10-09 | 2017-04-19 | 东软集团股份有限公司 | 物理网络安全设备及其控制方法 |
KR20170057770A (ko) * | 2015-11-17 | 2017-05-25 | 에스케이텔레콤 주식회사 | 가상 스위치의 패킷 전송 제어 방법 |
US20170180273A1 (en) * | 2015-12-22 | 2017-06-22 | Daniel Daly | Accelerated network packet processing |
US20170322828A1 (en) * | 2016-05-09 | 2017-11-09 | Cavium, Inc. | Systems and methods for virtio based optimization of data packet paths between a virtual machine and a network device for live virtual machine migration |
CN107278359A (zh) * | 2016-11-09 | 2017-10-20 | 华为技术有限公司 | 云计算系统中报文处理的方法、主机和系统 |
CN110519147A (zh) * | 2018-05-22 | 2019-11-29 | 中兴通讯股份有限公司 | 数据帧传输方法、装置、设备和计算机可读存储介质 |
CN112631726A (zh) * | 2020-12-25 | 2021-04-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机数据处理方法、系统、设备以及介质 |
CN113472624A (zh) * | 2021-06-21 | 2021-10-01 | 烽火通信科技股份有限公司 | 一种基于vDPA实现虚拟网络数据包转发的方法及应用 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319323A (zh) * | 2023-05-22 | 2023-06-23 | 江苏博云科技股份有限公司 | 在Kubernetes环境下使用智能网卡加速容器网络的方法及系统 |
CN116723162A (zh) * | 2023-08-10 | 2023-09-08 | 浪潮电子信息产业股份有限公司 | 一种网络首包处理方法、系统、装置、介质及异构设备 |
CN116723162B (zh) * | 2023-08-10 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种网络首包处理方法、系统、装置、介质及异构设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113965521B (zh) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9736278B1 (en) | Method and apparatus for connecting a gateway router to a set of scalable virtual IP network appliances in overlay networks | |
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
JP6663020B2 (ja) | パケット処理方法、関連装置、およびnvo3ネットワークシステム | |
CN110313163B (zh) | 分布式计算系统中的负载平衡 | |
US8913613B2 (en) | Method and system for classification and management of inter-blade network traffic in a blade server | |
US8739179B2 (en) | Method and system for low-overhead data transfer | |
US10375193B2 (en) | Source IP address transparency systems and methods | |
US20140029617A1 (en) | Packet processing approach to improve performance and energy efficiency for software routers | |
US11165693B2 (en) | Packet forwarding | |
US10348624B2 (en) | Virtual machine data flow management method and system | |
EP3588875B1 (en) | Web services across virtual routing and forwarding | |
CN113965521B (zh) | 数据包的传输方法、服务器及存储介质 | |
US11336570B1 (en) | Layer three multi-homing for virtual networks | |
US11669468B2 (en) | Interconnect module for smart I/O | |
WO2014023003A1 (zh) | 控制数据传输的方法、装置和系统 | |
JP2008293492A (ja) | ロードバランス型ネットワーク環境におけるインテリジェントフェイルバック | |
CN112929264B (zh) | 业务流量传输方法、系统及网络设备 | |
WO2022261881A1 (zh) | 一种网卡管理系统、报文处理方法及设备 | |
WO2019179161A1 (zh) | 一种数据流量处理方法、设备及系统 | |
US20230269164A1 (en) | Method and apparatus for sending route calculation information, device, and storage medium | |
US7742398B1 (en) | Information redirection | |
WO2023169364A1 (zh) | 路由生成方法、数据报文的转发方法及装置 | |
CN115134194A (zh) | 网络虚拟化的实现方法、系统、装置及程序产品 | |
CN117097818A (zh) | 一种报文处理的方法及相关设备 | |
JP2012147213A (ja) | スイッチ装置、ネットワーク及びそれらに用いるアドレス学習方法 |
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 |