CN107278362B - 云计算系统中报文处理的方法、主机和系统 - Google Patents

云计算系统中报文处理的方法、主机和系统 Download PDF

Info

Publication number
CN107278362B
CN107278362B CN201680009031.0A CN201680009031A CN107278362B CN 107278362 B CN107278362 B CN 107278362B CN 201680009031 A CN201680009031 A CN 201680009031A CN 107278362 B CN107278362 B CN 107278362B
Authority
CN
China
Prior art keywords
network interface
data packet
vlan
virtual machine
virtual
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
Application number
CN201680009031.0A
Other languages
English (en)
Other versions
CN107278362A (zh
Inventor
于洲
张磊强
庄毓新
罗浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910226607.4A priority Critical patent/CN110099014B/zh
Publication of CN107278362A publication Critical patent/CN107278362A/zh
Application granted granted Critical
Publication of CN107278362B publication Critical patent/CN107278362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本申请的实施例提供了一种云计算系统中报文处理的方法、主机和系统,至少一个网卡连接到该主机,所述至少一个网卡包含交换设备以及至少三个网口,主机上运行的第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口,第二网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口,所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块,由所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,将处理后的数据包发送到第二虚拟机。在网卡直通的场景中,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的虚拟网络功能,实现对数据包进行虚拟网络功能处理。

Description

云计算系统中报文处理的方法、主机和系统
技术领域
本发明涉及IT技术领域,尤其涉及云计算系统中报文处理的方法、主机和系统。
背景技术
虚拟化技术是云计算领域的关键技术之一,可将主机的物理资源抽象成共享资源池,供主机上运行的若干个虚拟机(Virtual Machine,VM)使用。主机上运行的若干个虚拟机可以共享使用主机的网卡,与主机外部网络进行通信。在现有技术中,可以通过网卡虚拟化的方式将网卡分配给虚拟机使用,网卡虚拟化可以采用单根输入输出虚拟化(Single-Root I/O Virtualization,SR-IOV)或多根输入输出虚拟化(Multi Root Input/OutputVirtualization,MR-IOV),上述网卡虚拟化又称为网卡直通。以SR-IOV直通为例,当网卡支持SR-IOV时,使用SR-IOV技术可以将主机上网卡共享给主机上运行的若干个虚拟机。
在主机上使用支持SR-IOV能力的网卡时,网卡的网口会虚拟出至少一个物理功能(Physical Function,PF)以及多个虚拟功能(Virtual Function,VF),主机上的虚拟机连接到至少一个VF。网卡内部包含具备交换机功能的交换设备。该交换设备按照介质访问控制(MediaAccessControl,MAC)表转发数据包,负责着PF、VF和物理网口之间的数据包转发,但由于该交换设备的处理和存储能力有限,因此无法为用户提供丰富的网络功能,例如安全组、服务质量(Quality of Service,QoS)、二层隧道封装以及分布式路由等等。
发明内容
本文描述了一种云计算系统中报文处理的方法、主机和系统以解决网卡直通场景下无法提供丰富的网络功能的问题。
第一方面,本发明实施例提供了一种主机,至少一个网卡连接到该主机,所述主机上运行有虚拟机监视器VMM,VMM上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个逻辑功能VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;所述第二网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块,由所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,将处理后的数据包发送到第二虚拟机。在网卡直通的场景中,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。
在一种可能的设计中,所述第一网口与所述第二网口的模式为虚拟以太网端口聚合VEPA模式。所述VEPA模式使得数据包可以在第一网口和第二网口之间进行强制转发。需要说明的是,VEPA模式仅是实现数据包强制转发其中一种方式,本领域技术人员可以采用其他的软件设置或者硬件设置以实现数据包强制转发,本发明实施例并不进行限定。
在一种可能的设计中,所述主机还包括设备管理模块,所述设备管理模块用于创建VLAN子接口。具体的:
所述设备管理模块,用于在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;
所述设备管理模块,还用于向VMM发送通知消息,用于通知所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
上述至少一个网卡包含至少三个网口,所述至少三个网口可以位于同一网卡或者不同网卡上。当第一网口和第二网口位于同一网卡上时,所述第一网口和所述第二网口可以共享网卡上的交换设备,也可以各自具备独立的交换设备。
在一种可能的设计中,数据包的源虚拟机(第一虚拟机)和目的虚拟机(第二虚拟机)位于同一主机上,所述虚拟网络功能模块将所述处理后的数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述处理后的数据包的VLAN子接口具备相同的VLAN标识;与所述第二虚拟机相连的VF对应的VLAN子接口为所述数据包添加自身的VLAN标识,将所述数据包发送到第二网口;所述第二网口的交换设备,通过所述网线将所述数据包强制转发到第一网口;所述第一网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到所述数据包中的VLAN标识所标识的VF,从而使得所述数据包传输到第二虚拟机。
在一种可能的设计中,数据包的源虚拟机(第一虚拟机)和目的虚拟机(第二虚拟机)位于不同主机上,所述虚拟网络功能模块,具体用于建立与所述第二虚拟机所在的主机上的另一虚拟网络功能模块之间的隧道,通过第三网口将所述处理后的数据包发送到外部的物理交换机,通过所述外部的物理交换机将所述处理后的数据包发送到第二虚拟机所在的主机,以使得所述另一虚拟网络功能模块将所述处理后的数据包发送到所述第二虚拟机。
第二方面,与第一方面的装置相对应,本发明实施例还提供了一种云计算系统中报文处理的方法,所述云计算系统中的至少一个主机包括虚拟机监视器VMM,以及至少一个网卡,所述主机上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,所述方法包括:
所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二网口的交换设备接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;
所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。
在一种可能的设计中,所述第一网口与所述第二网口的模式为VEPA模式。
在一种可能的设计中,所述方法还包括VLAN子接口创建流程,所述VLAN子接口创建流程包括:主机的设备管理模块在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;所述设备管理模块向VMM发送通知消息,以使得所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
第三方面,本发明实施例提供了一种云计算系统,所述云计算系统包括云管理平台以及第一方面所述的主机,其中,所述云管理平台,用于在所述主机上创建所述第一虚拟机,在所述第一虚拟机创建成功后,通知所述主机的VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
第四方面,与前述装置、方法以及系统相对应,本发明实施例提供了一种主机,该主机具有实现第一方面中定义的主机的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。具体的,所述主机包括第一处理器、第一存储器以及至少一个网卡,所述网卡包含第二处理器、第二存储器以及至少两个网口,其中,所述至少一个网卡中的第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一存储器和所述第二存储器中存储有指令,所述第一处理器执行所述第一存储器中的第一指令以实现第一虚拟机的功能,所述第一虚拟机连接到所述第一网口的至少一个VF,所述第一处理器执行所述第一存储器中的第二指令以实现VLAN子接口的功能,所述第一处理器执行所述第一存储器中的第三指令以实现虚拟网络功能模块的功能,所述第二处理器用于执行所述第二存储器中的指令以实现交换设备的功能,
所述第一虚拟机连接到所述第一网口的至少一个VF,所述主机中包含多个VLAN子接口,所述多个VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述第一处理器用于执行所述第一存储器中的第一指令以执行步骤:通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;
所述第一处理器用于执行所述第一存储器中的第二指令以执行步骤:接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述第一处理器用于执行所述第一存储器中的第三指令以执行步骤:对所述修改后的数据包进行网络功能处理后,根据所述第二虚拟机的地址将处理后的数据包发送到第二虚拟机。
在一个可能的设计中,所述主机和云管理平台由通用或专用的服务器实现,服务器的结构中包括处理器、存储器、系统总线以及输入输出接口,所述处理器被配置为支持所述系统中主机/云管理平台的相应的功能。所述输入输出接口用于与所述云计算系统中的其他部件进行通信,处理器执行所述存储器中存储的指令。
第五方面,本发明实施例提供了一种计算机存储介质,用于储存为上述主机所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第六方面,本发明实施例提供了另一种计算机存储介质,用于储存为上述网卡中的交换设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第七方面,本发明实施例提供了一种计算机程序,当物理服务器运行该计算机程序时,该物理服务器执行主机中虚拟机、VLAN子接口以及虚拟网络功能模块的功能。
第八方面,本发明实施例提供了一种计算机程序,当网卡中的处理器或可编程逻辑电路运行该计算机程序时,网卡执行前述方面中交换设备的功能。
综上,虚拟机将数据包从与虚拟机相连的VF发出,由第一网口的交换设备进行强制转发到第二网口,第二网口的交换设备根据数据包携带的VLAN标识将数据包发送给VMM上的VLAN子接口,通过该VLAN子接口将数据包传递到虚拟网络功能模块,由虚拟网络功能模块为该数据包提供丰富的网络功能处理。在网卡直通的基础上,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本发明的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本发明的其他实施方式。而所有这些实施例或实施方式都在本发明的保护范围之内。
图1A是本发明实施例提供的主机上的虚拟化结构示意图;
图1B是本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图;
图2是本发明实施提供的另一种主机上的虚拟化架构示意图;
图3是本发明实施例提供的虚拟机的创建流程示意图;
图4是本发明实施例提供的云计算系统中报文的处理方法流程示意图;
图5是本发明实施例提供的一种计算机设备硬件结构示意图;
图6是本发明实施例提供的一种云计算系统结构示意图。
具体实施方式
本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
如图1A所示,为本发明实施例提供的主机上的虚拟化结构示意图。主机为一台物理服务器,该物理服务器的底层为硬件层,硬件层主要包括中央处理器(CPU,CentralProcessing Unit)、内存、硬盘以及网卡等硬件资源。服务器虚拟化是在物理服务器上借助虚拟化软件(如VMWare ESX、Citrix XEN)实现多个虚拟机(Virtual Machine,VM)的虚拟化运行环境。安装在服务器上实现虚拟化环境的软件层被称为虚拟机监视器(VirtualMAChine Monitor,VMM)。运行在硬件层之上的VMM承担对硬件层中的硬件资源进行调度、分配和管理工作。VMM之上运行多个虚拟机VM,VMM为每个虚拟机提供虚拟化的CPU、内存、存储、IO设备(如网卡)以及以太网交换机等硬件环境,保证多个虚拟机相互隔离运行。
在虚拟化运行环境中,VMM为每个虚拟机创建虚拟网卡(Virtual NetworkInterface Card,vNIC),虚拟交换机VSwitch提供了虚拟机之间,以及虚拟机与外部网络之间的通讯能力。每个虚拟机的虚拟网卡对应到VSwitch的一个逻辑端口上,主机的物理网卡对应于VSwitch与外部物理交换机相连的端口。当虚拟机发送或接收的数据包经过VMM时,VMM中的虚拟网络功能模块对经过的数据进行网络功能处理,由于虚拟网络功能模块为软件模块,可以根据需要进行更新,因此,VMM中的虚拟网络功能模块可以为用户提供丰富的网络功能。
物理网卡的网口支持虚拟化能力可以通过单根输入输出虚拟化(Single RootInput/Output Virtualization,SR-IOV)或多根输入输出虚拟化(Multi Root Input/Output Virtualization,MR-IOV)来实现,本发明实施例以SR-IOV技术为例进行说明。SR-IOV技术是一种基于硬件的虚拟化解决方案,可以在虚拟机之间高效共享PCIe(PeripheralComponent Interconnect Express,快速外设组件互连)设备,并且由于SR-IOV技术是在硬件中实现的,因此可以能够获得高效的I/O性能。
标准化组织PCI-SIG(Peripheral Component Interconnect Special InterestGroup,外围设备互连专业组)定义了SR-IOV规范,SR-IOV规范可参阅http://www.pcisig.com。
通过使用SR-IOV技术,单个I/O资源可由主机上的多个虚拟机共享,这样,每个虚拟机都可访问同一个的硬件资源。因此,启用了SR-IOV的PCIe设备(例如物理网卡的网口)可以显示为多个单独的设备,显示出的每个单独的设备都具有独立的PCIe配置空间。以支持SR-IOV的物理网卡为例,该物理网卡上包含若干个网口,可以分别针对各个网口启用/禁用SR-IOV能力,启用了SR-IOV能力的网口对应于至少一个物理功能(Physical Function,PF)以及多个虚拟功能(Virtual Function,VF),根据现有的SR-IOV规范,每个PF最多可有64,000个与其关联的VF。创建VF后,可以直接将VF指定给主机上的虚拟机使用,从而使得多个虚拟机通过与其相连的至少一个VF共享PCIe设备。
如图1B所示,为本发明实施例提供的一种网卡直通场景下主机上的虚拟化结构示意图,与图1A不同的是,物理网卡支持单根IO虚拟化,物理网卡的一个网口对应于至少一个PF以及多个VF,各VF能共享物理网卡的物理资源(例如网卡端口)。
当主机上的虚拟机通过直通VF发送数据包时,虚拟机发出的数据包将会通过虚拟机上安装的VF驱动直接传递给网卡的VF,导致数据包无法经过VMM中的虚拟网络功能模块。由于网卡的交换设备中的MAC表容量有限,处理能力有限,且无法进行自由的功能扩展,因此网卡无法提供丰富的网络功能。在一种可能的场景中,交换设备为virtual ethernetbridge&classifier。
需要说明的是,本发明实施例针对网卡直通的场景,上述网卡直通的实现可以通过SR-IOV或者MR-IOV,本发明实施例对此并不进行限定。
如图2所示,为本发明实施提供的另一种主机上的虚拟化架构示意图,该主机包含VMM以及至少一个物理网卡,所述主机上运行有至少一个虚拟机。所述至少一个物理网卡包括至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,第三网口连接到主机外部的物理交换机,负责发送和接收跨主机的网络流量。第一网口虚拟出至少一个PF以及至少两个VF(图2中以两个VF为例进行说明),第一虚拟机和第二虚拟机上安装有VF驱动,第一虚拟机和第二虚拟机分别连接到至少一个VF,第一网口和第二网口通过网线直连,第二网口的PF连接到VMM上的VLAN子接口,因此,从虚拟机发出的流量,均会通过网线(networkingcable)迂回到第二网口,由第二网口将流量引导回VMM中的虚拟网络功能模块。所述网线具体可以为各种介质的线缆,包括双绞线、光纤以及同轴电缆等等。本发明实施例通过网线将第一网口和第二网口的直连,从而将与第一网口的VF相连的虚拟机发出的数据包强制转发到第二网口,使得数据包传输路径必然经过VMM上的虚拟网络功能模块,从而实现在网卡直通的基础上,由VMM中的虚拟网络功能模块提供丰富的虚拟网络功能。
本领域技术人员可以理解的是,图2中仅以两个VF以及两个VLAN子接口为例,在实际产品实现时,支持网卡虚拟化功能的网卡可以虚拟化为至少一个PF以及多个VF,并不限定为两个,相对应得到VLAN子接口的数量也并不限定为两个。
在本发明各实施例中,网卡虚拟化具体是指网卡硬件虚拟化。
在本发明各实施例中,将第一网口称为直通网口,第二网口称为迂回网口,第三网口称为业务网口。
直通网口使用标准的SR-IOV/MR-IOV技术将VF直通给虚拟机,对不同的VF设置不同的虚拟局域网(Virtual Local Area Network,VLAN)标识,避免使用本网口的VF的多个虚拟机之间直接通信,强制虚拟机的数据包从网线发出。具体的,由于一个VLAN标识代表一个广播域,当不同的VF设置为不同的VLAN标识时,各个虚拟机连接的VF处在不同的广播域中,由于广播报文只能发送到处于一个VLAN内的虚拟机,所以,通过为每个VF设置的不同的VLAN标识,虚拟机发出的广播报文只能被虚拟机自身和PF收到。在设置VF的VLAN标识时,需要保证主机范围内VLAN标识唯一即可,不同主机上的VLAN标识可以相同。
在VMM上创建VLAN子接口,VLAN子接口的数量和直通网口的VF数量一致,且VLAN子接口的VLAN标识与直通网口上的VF的VLAN标识一一对应。迂回网口上与直通网口相连的网口可以是PF,也可以是设置为混杂模式(promiscuous mode)的VF。所述VLAN子接口为虚拟网桥,具备二层转发的能力。
需要说明的是,图2所示的实施例中,第一虚拟机向第二虚拟机发送数据包是同一主机内部的两个虚拟机之间的通信。本领域技术人员可以理解的是,第二虚拟机与第一虚拟机也可以位于不同主机上,此时第一虚拟机和第二虚拟机为跨主机通信。
结合图2所示的主机的虚拟化结构,本发明实施例以第一虚拟机发送数据包到第二虚拟机为例对数据包的处理流程进行说明,所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;所述第二网口的交换设备根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块,由所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,将处理后的数据包发送到第二虚拟机。在网卡直通的场景中,虚拟机将数据包从直通的VF发出后,通过上述方式可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的虚拟网络功能,实现对数据包进行虚拟网络功能处理。
在上述第一虚拟机发送数据包到第二虚拟机的流程中,所述第一虚拟机连接的VF的VLAN标识与对应的VMM中的VLAN子接口的VLAN标识相同。如图3所示,为本发明实施例提供的一种虚拟机的创建流程示意图,用于创建具备直通VF的虚拟机以及创建与直通VF对应的VLAN子接口。
步骤301:计算管理模块接收虚拟机创建请求,所示虚拟机创建请求用于创建具备直通VF的虚拟机;
在一种场景中,虚拟机的创建流程可以由管理员或用户发起,管理员或者用户通过终端登录云管理平台对外呈现的界面,选择待创建的虚拟机的规格,向计算管理模块发起虚拟机创建请求,该虚拟机创建请求携带待创建的虚拟机的参数,所述参数包括待创建虚拟机具备直通VF的指示信息;
步骤302:计算管理模块向设备管理模块发送分配请求,请求为待创建的虚拟机分配VF;
步骤303:设备管理模块向计算管理模块返回空闲的VF的标识给所述计算管理模块,该空闲的VF即为主机上尚未分配给虚拟机的VF;
步骤304:计算管理模块为该VF分配VLAN标识;
步骤305:计算管理模块将所述VLAN标识发送给设备管理模块,设备管理模块将所述VLAN标识配置到分配的所述VF;
步骤306:设备管理模块将用于创建虚拟机的信息发送给VMM,所述用于创建虚拟机的信息包含VF标识;
步骤306:VMM创建虚拟机,将所述VF设置为虚拟机的直通网口;
步骤307:虚拟机创建成功后,计算管理模块向设备管理模块发送VLAN子接口创建请求,所述VLAN子接口创建请求携带所述VF的VLAN标识;
步骤308:设备管理模块接收所述VLAN子接口创建请求,在VMM上创建与所述VF对应的VLAN子接口,配置所述VLAN子接口的VLAN标识与所述VF相同。
需要说明的是,VLAN子接口是linux系统提供的一种虚拟网络设备,可以直接通过linux系统的ip命令创建。实例性的,创建VLAN标识是100的VLAN子接口命令如下:ip linkadd link eth0 name vlan100 type vlan id 100
步骤309:计算管理模块接收VLAN子接口创建响应消息,向网络管理模块发送通知消息,将创建出的VLAN子接口连接到虚拟网络管理模块对应的网桥上。
需要说明的是,一个虚拟机可以具有多个直通VF,具体的创建过程与上述步骤类似,但每个直通VF均会被设置不同的VLAN标识,且在VMM上创建与每个直通VF一一对应的VLAN子接口。
如图4所示,为本发明实施例提供的一种云计算系统中报文的处理方法流程示意图,本发明实施例以主机A上的第一虚拟机向主机B上的第二虚拟机通信为例进行说明。
步骤401:主机A上的第一虚拟机通过与自身相连的VF发出数据包,所述数据包的目的地址为第二虚拟机的地址,所述数据包携带与发出所述数据包的VF的VLAN标识;
步骤402:直通网口的交换设备(第一交换设备)接收所述数据包后广播接收到的数据包,由于直通网口上各VF的VLAN标识各不相同,各VF位于不同的虚拟局域网,因此,直通网口上的其他VF不会接收到广播的所述数据,该数据包通过网线强制发送到迂回网口;
需要说明的是,所述直通网口和迂回网口为虚拟以太网端口聚合(VirtualEthernet Port Aggregator,VEPA)模式,所述VEPA模式用于指示直通网口和迂回网口对接收到的数据包进行强制转发,该VEPA模式由IEEE802.1Qbg标准定义。
步骤403:迂回网口的交换设备(第二交换设备)接收来自直通网口的所述数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到VMM上具备相同VLAN标识的VLAN子接口;
步骤404:所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识后,将数据包发送到第一虚拟网络功能模块;
步骤405:所述第一虚拟网络功能模块对所述数据包进行网络功能处理后,将所述数据包发送到业务网口,主机A的业务网口将接收到的数据包发送到主机A外部的网络,所述数据包路由到第二虚拟机所在的主机B的业务网口,所述主机B的业务网口在接收到所述数据包后,将数据包发送到主机B的虚拟网络功能模块。
具体的,可以在主机A的第一虚拟网络功能模块与主机B的第二虚拟网络功能模块之间建立隧道,通过隧道技术使得数据包经过主机A与主机B之间的网络传递到主机B的虚拟网络功能模块。
步骤406:由主机B上的第二虚拟网络功能模块进行网络功能处理后,将数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述数据包的VLAN子接口具备相同的VLAN标识。
需要说明的是,在一种可能的场景中,VLAN子接口连接在软件实现的虚拟网桥上,由虚拟网桥提供二层转发能力,将数据包发送给VLAN子接口。由于VLAN子接口和对应的VF设置的是相同的VLAN标识,所以直通给第二虚拟机的VF可以接受到数据包。
步骤407:所述VLAN子接口为所述数据包添加VLAN标识,所述VLAN标识为所述VLAN子接口的VLAN标识,将所述数据包发送到迂回网口,由于迂回网口连接的各VLAN子接口具备不同的VLAN标识,因此,所述迂回网口的交换设备(第四交换设备)将该数据包经过网线强制转发到直通网口;
步骤408:所述直通网口的交换设备(第三交换设备)根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识标识的VF;
步骤409:所述VF去除所述数据包的VLAN标识,将所述数据包发送到第二虚拟机。
需要说明的是,在本发明实施例中,直通网口、迂回网口和业务网口可以处在同一网卡上,也可以单独位于不同的网卡上,本发明实施例对此并不进行限定。进一步的,当直通网口和迂回网口位于同一网卡上时,直通网卡和迂回网卡可以各自拥有独立的交换设备,或者,直通网口和迂回网口共享同一交换设备。
需要说明的是,在一种具体的实施场景中,本发明实施例中的VLAN子接口可以为OpenVswitch.
本发明实施例中,直通网口的各个VF具备不同的VLAN标识,VMM上设置有与直通网口的VF一一对应的VLAN子接口,每个VLAN子接口与对应的VF具备相同的VLAN标识,虚拟机将数据包从VF发出后,所述数据包携带VF的VLAN标识,由于直通网口与迂回网口直接通过网线相连,数据包会强制转发到迂回网口的交换设备,迂回网口的交换设备根据数据包携带的VLAN标识将数据包发送到具备相同VLAN标识的VLAN子接口,从而使得数据包发送到VMM,进而由VMM中的虚拟机网络功能模块进行网络功能处理,将经过处理后的数据包发送到第二虚拟机。通过上述方式,在网卡直通的场景下,将数据包发送到VMM中的虚拟网络功能模块,利用软件实现网络功能的灵活性,提供丰富的网络功能。
图4对应的实施例给出了两个主机上的两个虚拟机之间的数据包传输流程,本领域技术人员可以理解的是,数据包的源虚拟机和目的虚拟机可以位于同一主机上。此时,当主机上的虚拟网络功能模块针对所述数据包进行网络功能处理后,将处理后的数据包发送给与第二虚拟机相连的VF对应的VLAN子接口,通过该VLAN子接口将数据包发送到第二虚拟机。
主机、云管理平台可以采用通用的计算机设备,示例性的,
如图5所示,为本发明实施例提供的计算机设备硬件结构示意图。计算机设备500包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
处理器501可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线502可包括一通路,在上述组件之间传送信息。所述通信接口504,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器503用于存储执行本发明方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器503中存储的应用程序代码。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图5中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备500可以包括多个处理器,例如图5中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。例如,输出设备505可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接受用户的输入。例如,输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备500可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备500可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图5中类似结构的设备。本发明实施例不限定计算机设备500的类型。
云管理平台和图2中的主机可以为图5所示的设备,存储器中存储了一个或多个软件模块,用于实现主机和云管理平台的各项功能。主机和云管理平台可以通过处理器以及存储器中的程序代码来实现本发明实施例公开的报文处理的方法。
需要说明的是,图5所示的计算机设备仅仅是给出了云计算系统中各部分的可能的硬件实现方式,根据系统各部分功能的不同或者变化,可以对计算机设备的硬件组件进行增删,以使得与系统各部分的功能进行匹配。
进一步的,与图5所示的硬件装置类似,上述实施例中的网卡中包含处理器以及存储器,网卡中的处理器执行存储器中的指令以实现上述交换设备的功能。本发明实施例不再赘述。
更进一步的,如图6所示,为本发明实施例提供的一种云计算系统结构示意图,所述云计算系统包括至少一个主机601以及云管理平台602,所述主机601的结构如图2所示。
所述主机601包括虚拟机监视器VMM,以及至少一个网卡,所述主机601上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个PF和多个VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述云管理平台602,用于在所述主机上创建所述第一虚拟机,在所述第一虚拟机创建成功后,通知所述主机的VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识;
所述第一虚拟机,用于通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第一网口的交换设备,用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二网口的交换设备,用于接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;
所述VLAN子接口,用于接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述虚拟网络功能模块,用于对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。
本发明实施例还提供了一种计算机存储介质,用于储存为上述图2-6中的设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现云计算系统中报文处理的方法。
本发明实施例提供的云计算系统中报文处理的方法,主机和系统,应用于网卡直通的场景,虚拟机将数据包从直通的VF发出后,通过本发明实施例公开的报文处理流程,可以将数据包发送到VMM中的虚拟网络功能模块,利用该软件模块为用户提供丰富的网络功能,实现对数据包进行网络功能处理。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明实施例过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明实施例涉及到的计算机程序指令可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,通过执行计算机程序指令可以实现前述各实施例中各部件的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (20)

1.一种主机,其特征在于,所述主机包括虚拟机监视器VMM,以及至少一个网卡,所述主机上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个虚拟功能VF,所述多个VF配置有虚拟局域网VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述第一虚拟机,用于通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第一网口的交换设备,用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二网口的交换设备,用于接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;
所述VLAN子接口,用于接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述虚拟网络功能模块,用于对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。
2.如权利要求1所述的主机,其特征在于,所述第一网口与所述第二网口的模式为虚拟以太网端口聚合VEPA模式。
3.如权利要求1或2所述的主机,其特征在于,所述主机还包括设备管理模块,
所述设备管理模块,用于在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;
所述设备管理模块,还用于向VMM发送通知消息,用于通知所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
4.如权利要求1或2所述的主机,其特征在于,
所述第一网口、第二网口以及第三网口位于同一网卡上;或者,
所述第一网口、第二网口以及第三网口位于两个或三个网卡上;或者,
所述第一网口与所述第二网口位于同一网卡上,所述第一网口和所述第二网口共享所述同一网卡的交换设备;或者,
所述第一网口与所述第二网口位于同一网卡上,所述第一网口的交换设备与所述第二网口的交换设备相互独立。
5.如权利要求1或2所述的主机,其特征在于,所述第二虚拟机与所述第一虚拟机位于同一主机。
6.如权利要求5所述的主机,其特征在于,
所述虚拟网络功能模块,还用于将所述处理后的数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述处理后的数据包的VLAN子接口具备相同的VLAN标识;
与所述第二虚拟机相连的VF对应的VLAN子接口,用于为所述数据包添加自身的VLAN标识,将所述数据包发送到第二网口;
所述第二网口的交换设备,还用于通过所述网线将所述数据包强制转发到第一网口;
所述第一网口的交换设备,还用于根据所述数据包携带的VLAN标识,将所述数据包发送到所述数据包中的VLAN标识所标识的VF,从而使得所述数据包传输到第二虚拟机。
7.如权利要求1或2所述的主机,其特征在于,所述第二虚拟机与所述第一虚拟机位于不同主机,
所述虚拟网络功能模块,具体用于建立与所述第二虚拟机所在的主机上的另一虚拟网络功能模块之间的隧道,通过第三网口将所述处理后的数据包发送到外部的物理交换机,通过所述外部的物理交换机将所述处理后的数据包发送到第二虚拟机所在的主机,以使得所述另一虚拟网络功能模块将所述处理后的数据包发送到所述第二虚拟机。
8.一种云计算系统中报文处理的方法,其特征在于,所述云计算系统中的至少一个主机包括虚拟机监视器VMM,以及至少一个网卡,所述主机上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个虚拟功能VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,所述方法包括:
所述第一虚拟机通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第一网口的交换设备接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二网口的交换设备接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;
所述VLAN子接口接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述虚拟网络功能模块对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。
9.如权利要求8所述的方法,其特征在于,所述第一网口与所述第二网口的模式为虚拟以太网端口聚合VEPA模式。
10.如权利要求8或9所述的方法,其特征在于,所述主机还包括设备管理模块,所述方法还包括:
所述设备管理模块在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;
所述设备管理模块向VMM发送通知消息,以使得所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
11.如权利要求8或9所述的方法,其特征在于,
所述第一网口、第二网口以及第三网口位于同一网卡上;或者,
所述第一网口、第二网口以及第三网口位于两个或三个网卡上;或者,
所述第一网口与所述第二网口位于同一网卡上,所述第一网口和所述第二网口共享所述同一网卡的交换设备;或者,
所述第一网口与所述第二网口位于同一网卡上,所述第一网口的交换设备与所述第二网口的交换设备相互独立。
12.如权利要求8或9所述的方法,其特征在于,所述第二虚拟机与所述第一虚拟机位于同一主机。
13.如权利要求12所述的方法,其特征在于,所述将处理后的数据包发送到第二虚拟机包括:
所述虚拟网络功能模块将所述处理后的数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述处理后的数据包的VLAN子接口具备相同的VLAN标识;
与所述第二虚拟机相连的VF对应的VLAN子接口为所述处理后的数据包添加自身的VLAN标识,将所述处理后的数据包发送到第二网口;
所述第二网口的交换设备通过所述网线将所述处理后的数据包强制转发到第一网口;
所述第一网口的交换设备根据所述处理后的数据包携带的VLAN标识,将所述数据包发送到所述数据包中的VLAN标识所标识的VF,从而使得所述数据包传输到第二虚拟机。
14.如权利要求8或9所述的方法,其特征在于,所述虚拟网络功能模块发送处理后的数据包方法还包括:
所述虚拟网络功能模块建立与所述第二虚拟机所在的主机上的另一虚拟网络功能模块之间的隧道,通过第三网口将所述处理后的数据包发送到外部的物理交换机,通过所述外部的物理交换机将所述处理后的数据包发送到第二虚拟机所在的主机,以使得所述另一虚拟网络功能模块将所述处理后的数据包发送到所述第二虚拟机。
15.一种云计算系统,其特征在于,包括云管理平台和至少一个主机,所述主机包括虚拟机监视器VMM,以及至少一个网卡,所述主机上运行有第一虚拟机,所述VMM包含多个VLAN子接口以及虚拟网络功能模块,所述至少一个网卡包含交换设备以及至少三个网口,其中,第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个虚拟功能VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一虚拟机连接到所述第一网口的至少一个VF,所述VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述云管理平台,用于在所述主机上创建所述第一虚拟机,在所述第一虚拟机创建成功后,通知所述主机的VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识;
所述第一虚拟机,用于通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第一网口的交换设备,用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二网口的交换设备,用于接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到与所述数据包具备相同VLAN标识的VLAN子接口;
所述VLAN子接口,用于接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述虚拟网络功能模块,用于对所述修改后的数据包进行网络功能处理后,发送处理后的数据包,所述处理后的数据包的目的地址为所述第二虚拟机的地址。
16.如权利要求15所述的系统,其特征在于,所述第一网口与所述第二网口的模式为虚拟以太网端口聚合VEPA模式。
17.如权利要求15或16所述的系统,其特征在于,所述主机还包括设备管理模块,
所述设备管理模块,用于在第一虚拟机创建成功后,接收云管理平台发送的VLAN子接口创建请求,所述VLAN子接口创建请求携带分配给所述第一虚拟机的VF的VLAN标识;
所述设备管理模块,还用于向VMM发送通知消息,用于通知所述VMM创建与所述第一虚拟机的VF对应的VLAN子接口,所述第一虚拟机的VF对应的VLAN子接口与所述第一虚拟机的VF具备相同的VLAN标识。
18.如权利要求15或16所述的系统,其特征在于,所述第二虚拟机与所述第一虚拟机位于同一主机,
所述虚拟网络功能模块,还用于将所述处理后的数据包发送到与所述第二虚拟机相连的VF对应的VLAN子接口,其中,所述第二虚拟机相连的VF与接收所述处理后的数据包的VLAN子接口具备相同的VLAN标识;
与所述第二虚拟机相连的VF对应的VLAN子接口,用于为所述数据包添加自身的VLAN标识,将所述数据包发送到第二网口;
所述第二网口的交换设备,还用于通过所述网线将所述数据包强制转发到第一网口;
所述第一网口的交换设备,还用于根据所述数据包携带的VLAN标识,将所述数据包发送到所述数据包中的VLAN标识所标识的VF,从而使得所述数据包传输到第二虚拟机。
19.如权利要求15或16所述的系统,其特征在于,所述第二虚拟机与所述第一虚拟机位于不同主机,
所述虚拟网络功能模块,具体用于建立与所述第二虚拟机所在的主机上的另一虚拟网络功能模块之间的隧道,通过第三网口将所述处理后的数据包发送到外部的物理交换机,通过所述外部的物理交换机将所述处理后的数据包发送到第二虚拟机所在的主机,以使得所述另一虚拟网络功能模块将所述处理后的数据包发送到所述第二虚拟机。
20.一种主机,其特征在于,包括第一处理器、第一存储器以及至少一个网卡,所述网卡包含第二处理器、第二存储器以及至少两个网口,其中,所述至少一个网卡中的第一网口和第二网口支持网卡虚拟化能力,所述第一网口对应于至少一个物理功能PF和多个虚拟功能VF,所述多个VF配置有VLAN标识,且各VF的VLAN标识互不相同,所述第一存储器和所述第二存储器中存储有指令,所述第一处理器执行所述第一存储器中的第一指令以实现第一虚拟机的功能,所述第一虚拟机连接到所述第一网口的至少一个VF,所述第一处理器执行所述第一存储器中的第二指令以实现VLAN子接口的功能,所述第一处理器执行所述第一存储器中的第三指令以实现虚拟网络功能模块的功能,所述第二处理器用于执行所述第二存储器中的指令以实现交换设备的功能,
所述第一虚拟机连接到所述第一网口的至少一个VF,所述主机中包含多个VLAN子接口,所述多个VLAN子接口的数量与所述第一网口的VF的数量相同且一一对应,所述VLAN子接口与其对应的VF具备相同的VLAN标识,所述第一网口与所述第二网口通过网线相连,
所述第一处理器用于执行所述第一存储器中的第一指令以执行步骤:通过与自身相连的所述VF向第二虚拟机发送数据包,所述数据包携带发出所述数据包的VF的VLAN标识,以及所述第二虚拟机的地址;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:用于接收所述数据包,将所述数据包通过所述网线强制转发到所述第二网口;
所述第二处理器用于执行所述第二存储器中的指令以执行步骤:接收来自第一网口的数据包,根据所述数据包携带的VLAN标识,将所述数据包发送到所述VLAN标识所标识的VLAN子接口;
所述第一处理器用于执行所述第一存储器中的第二指令以执行步骤:接收所述数据包,去除所述数据包的VLAN标识,将所述数据包发送到所述虚拟网络功能模块;
所述第一处理器用于执行所述第一存储器中的第三指令以执行步骤:对所述修改后的数据包进行网络功能处理后,根据所述第二虚拟机的地址将处理后的数据包发送到第二虚拟机。
CN201680009031.0A 2016-11-09 2016-11-09 云计算系统中报文处理的方法、主机和系统 Active CN107278362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910226607.4A CN110099014B (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法和主机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/105227 WO2018086013A1 (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法、主机和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910226607.4A Division CN110099014B (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法和主机

Publications (2)

Publication Number Publication Date
CN107278362A CN107278362A (zh) 2017-10-20
CN107278362B true CN107278362B (zh) 2019-04-05

Family

ID=60052231

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680009031.0A Active CN107278362B (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法、主机和系统
CN201910226607.4A Active CN110099014B (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法和主机

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910226607.4A Active CN110099014B (zh) 2016-11-09 2016-11-09 云计算系统中报文处理的方法和主机

Country Status (9)

Country Link
US (1) US10491517B2 (zh)
EP (2) EP3343881B1 (zh)
JP (1) JP6513835B2 (zh)
CN (2) CN107278362B (zh)
AU (1) AU2016414391B2 (zh)
BR (1) BR112018000362A2 (zh)
CA (1) CA2991208C (zh)
SG (1) SG11201800101YA (zh)
WO (1) WO2018086013A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2991208C (en) 2016-11-09 2020-07-28 Zhou Yu Packet processing method in cloud computing system, host, and system
JP6605713B2 (ja) 2016-11-09 2019-11-13 華為技術有限公司 クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
WO2018112709A1 (zh) * 2016-12-19 2018-06-28 华为技术有限公司 一种数据包处理方法、主机和系统
CN110505110B (zh) * 2018-05-18 2021-07-20 杭州海康威视数字技术股份有限公司 网络接口的测试方法、装置及多网口主机
CN110519147A (zh) * 2018-05-22 2019-11-29 中兴通讯股份有限公司 数据帧传输方法、装置、设备和计算机可读存储介质
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
CN109525515B (zh) * 2018-10-23 2021-04-30 郑州云海信息技术有限公司 一种云平台中网卡的管理方法和装置
CN109617735B (zh) * 2018-12-26 2021-04-09 华为技术有限公司 云计算数据中心系统、网关、服务器及报文处理方法
CN109802855B (zh) * 2018-12-28 2020-08-07 华为技术有限公司 一种故障定位方法及装置
CN111698141B (zh) * 2019-03-13 2022-12-02 中兴通讯股份有限公司 报文的转发方法及装置
US11283732B2 (en) * 2019-03-29 2022-03-22 Juniper Networks, Inc. Network functions virtualization (NFV) backplane on forwarding microchip
CN112152899B (zh) * 2019-06-28 2023-04-07 中兴通讯股份有限公司 一种基于网络切片的数据处理方法及装置
CN112468308A (zh) * 2019-09-06 2021-03-09 中兴通讯股份有限公司 虚拟局域网业务管理方法、虚拟局域网全局管理设备
US11237761B2 (en) 2019-11-01 2022-02-01 Microsoft Technology Licensing, Llc Management of multiple physical function nonvolatile memory devices
CN110912836B (zh) * 2019-11-14 2023-05-30 优刻得科技股份有限公司 使转发设备转发数据的方法、控制设备、存储介质和系统
CN111092876B (zh) * 2019-12-12 2021-10-01 北京首都在线科技股份有限公司 多主机系统、电子设备、存储介质、用于多主机系统的信息处理方法及装置
CN111367620A (zh) * 2020-03-06 2020-07-03 联想(北京)有限公司 一种虚拟网络实现方法及电子设备
CN111786909B (zh) * 2020-05-19 2022-04-29 深圳震有科技股份有限公司 一种更新vrrp接口的协议状态的方法、交换机及存储介质
CN114338606B (zh) * 2020-09-25 2023-07-18 华为云计算技术有限公司 一种公有云的网络配置方法及相关设备
DE102021113670A1 (de) * 2021-05-27 2022-12-01 Dspace Gmbh Verfahren zur Datenübertragung in einem Netzwerksystem sowie Netzwerksystem
CN113904938B (zh) * 2021-09-28 2022-04-29 北京大禹智芯科技有限公司 一种动态配置PCIe终端设备的系统和方法
CN114553899A (zh) * 2022-01-30 2022-05-27 阿里巴巴(中国)有限公司 一种存储设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790777A (zh) * 2012-08-07 2012-11-21 华为技术有限公司 网络接口适配器注册方法及驱动设备、服务器
CN103621026A (zh) * 2013-04-01 2014-03-05 华为技术有限公司 虚拟机的数据交换方法、装置和系统
CN103873374A (zh) * 2014-03-27 2014-06-18 杭州华三通信技术有限公司 虚拟化系统中的报文处理方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309180B (zh) * 2008-06-21 2010-12-08 华中科技大学 一种适用于虚拟机环境的安全网络入侵检测系统
US8442048B2 (en) * 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
CN102457586B (zh) * 2010-10-18 2015-06-03 中兴通讯股份有限公司 一种实现二层网络的扩展方法及扩展的二层网络
US8533285B2 (en) * 2010-12-01 2013-09-10 Cisco Technology, Inc. Directing data flows in data centers with clustering services
US8935457B2 (en) * 2011-07-29 2015-01-13 International Business Machines Corporation Network filtering in a virtualized environment
CN102710432B (zh) * 2012-04-27 2015-04-15 北京云杉世纪网络科技有限公司 云计算数据中心中的虚拟网络管理系统及方法
US8964735B2 (en) 2012-05-18 2015-02-24 Rackspace Us, Inc. Translating media access control (MAC) addresses in a network hierarchy
US9059868B2 (en) * 2012-06-28 2015-06-16 Dell Products, Lp System and method for associating VLANs with virtual switch ports
WO2014065315A1 (ja) * 2012-10-24 2014-05-01 日本電気株式会社 通信システム、仮想マシンサーバ、仮想ネットワーク管理装置、ネットワーク制御方法及びプログラム
US10341263B2 (en) * 2012-12-10 2019-07-02 University Of Central Florida Research Foundation, Inc. System and method for routing network frames between virtual machines
CN103051529B (zh) * 2012-12-20 2016-03-30 华为技术有限公司 一种报文的处理方法和装置
JP6024474B2 (ja) 2013-01-23 2016-11-16 富士通株式会社 マルチテナントシステム、管理装置、管理プログラム、およびマルチテナントシステムの制御方法
US20150326524A1 (en) 2013-01-24 2015-11-12 Krishna Mouli TANKALA Address resolution in software-defined networks
CN103609077B (zh) 2013-06-18 2017-02-22 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
CN103346981B (zh) 2013-06-28 2016-08-10 华为技术有限公司 虚拟交换方法、相关装置和计算机系统
US9634948B2 (en) * 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
CN103916314A (zh) 2013-12-26 2014-07-09 杭州华为数字技术有限公司 报文转发控制方法和相关装置及物理主机
US9419897B2 (en) * 2014-06-30 2016-08-16 Nicira, Inc. Methods and systems for providing multi-tenancy support for Single Root I/O Virtualization
CN104125166B (zh) * 2014-07-31 2018-05-29 华为技术有限公司 一种队列调度方法及计算系统
CN105812340B (zh) 2014-12-31 2019-01-08 新华三技术有限公司 一种虚拟网络访问外网的方法和装置
US10812632B2 (en) * 2015-02-09 2020-10-20 Avago Technologies International Sales Pte. Limited Network interface controller with integrated network flow processing
CN105978828B (zh) * 2016-05-16 2019-07-23 锐捷网络股份有限公司 一种实现虚拟机报文转发的方法和交换机
JP6605713B2 (ja) 2016-11-09 2019-11-13 華為技術有限公司 クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
CA2991208C (en) 2016-11-09 2020-07-28 Zhou Yu Packet processing method in cloud computing system, host, and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102790777A (zh) * 2012-08-07 2012-11-21 华为技术有限公司 网络接口适配器注册方法及驱动设备、服务器
CN103621026A (zh) * 2013-04-01 2014-03-05 华为技术有限公司 虚拟机的数据交换方法、装置和系统
CN103873374A (zh) * 2014-03-27 2014-06-18 杭州华三通信技术有限公司 虚拟化系统中的报文处理方法及装置

Also Published As

Publication number Publication date
EP3343881A1 (en) 2018-07-04
AU2016414391B2 (en) 2019-01-17
BR112018000362A2 (pt) 2018-09-11
EP3343881A4 (en) 2018-09-05
CA2991208C (en) 2020-07-28
CN107278362A (zh) 2017-10-20
US20190280971A1 (en) 2019-09-12
JP2018537006A (ja) 2018-12-13
CN110099014B (zh) 2021-08-20
US10491517B2 (en) 2019-11-26
EP3654620B1 (en) 2022-03-09
AU2016414391A1 (en) 2018-05-24
EP3343881B1 (en) 2019-08-14
CA2991208A1 (en) 2018-05-09
CN110099014A (zh) 2019-08-06
SG11201800101YA (en) 2018-06-28
WO2018086013A1 (zh) 2018-05-17
JP6513835B2 (ja) 2019-05-15
EP3654620A1 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
CN107278362B (zh) 云计算系统中报文处理的方法、主机和系统
US11005755B2 (en) Packet processing method in cloud computing system, host, and system
CN104104620B (zh) 用于按优先级进行业务流处理的方法和系统
CN104320350B (zh) 用于提供基于信用的流控制的方法及系统
US9106529B2 (en) Virtual network configuration and management
CN108964959A (zh) 一种用于虚拟化平台的网卡直通系统及数据包监管方法
JP2015521779A (ja) 入力/出力仮想化のためのシステムおよび方法
US11586575B2 (en) System decoder for training accelerators
TW201209594A (en) Tenant isolation in a multi-tenant cloud system
US9507625B2 (en) Apparatus and method for generating software defined network(SDN)-based virtual network according to user demand
WO2012168872A1 (en) Virtual network configuration and management
CN108028806A (zh) 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置
CN109032754A (zh) 提高通信路径可靠性的方法和设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1250189

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant