CN111224898A - 一种报文转发方法、装置、交换机设备及智能网卡 - Google Patents
一种报文转发方法、装置、交换机设备及智能网卡 Download PDFInfo
- Publication number
- CN111224898A CN111224898A CN201811410296.9A CN201811410296A CN111224898A CN 111224898 A CN111224898 A CN 111224898A CN 201811410296 A CN201811410296 A CN 201811410296A CN 111224898 A CN111224898 A CN 111224898A
- Authority
- CN
- China
- Prior art keywords
- message
- virtual machine
- packet
- virtual
- machine
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种报文处理方法、装置、交换机设备及智能网卡,该方法应用于虚拟交换机,虚拟交换机安装在智能网卡中,该方法包括:接收待转发的第一报文;如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机;如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。可见,本发明实施例提供的技术方案中,虚拟交换机位于智能网卡中,可以提高宿主机的性能。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种报文转发方法、装置、交换机设备及智能网卡。
背景技术
虚拟交换机工作在二层数据网络,通过软件方式实现物理交换机的二层(或部分三层)网络功能。
现有技术中,虚拟交换机运行于宿主机中,用于实现不同虚拟机间的数据传输,其中,进行数据传输的不同虚拟机可以位于同一宿主机中,也可以位于不同的宿主机中。
例如,第一虚拟机和第二虚拟机位于不同的宿主机,第一虚拟机位于虚拟交换机所在的宿主机中。这种情况下,第一虚拟机和第二虚拟机之间的数据传输的过程为:虚拟交换机对从第一虚拟机发出的报文进行封装等处理,并将经处理后的报文从宿主机的物理网卡转发至第二虚拟机。
再例如,第一虚拟机和第二虚拟机位于同一宿主机,第一虚拟机位于虚拟交换机所在的宿主机中。这种情况下,第一虚拟机和第二虚拟机之间的数据传输的过程为:虚拟交换机对从第一虚拟机发出的报文进行封装等处理,并将经处理后的报文发送至第二虚拟机。
但是,由于现有技术中的虚拟交换机运行于宿主机中,因此,虚拟交换机在处理及转发报文的过程中,会占用宿主机的CPU和内存,从而导致宿主机的性能下降。
发明内容
本发明实施例的目的在于提供一种报文转发方法、装置、交换机设备及智能网卡,以使得在报文转发过程中,能够提高宿主机的性能。具体技术方案如下:
第一方面,本发明实施例提供了一种报文转发方法,所述方法应用于虚拟交换机,所述虚拟交换机安装在智能网卡中,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述方法包括:
接收待转发的第一报文;
如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,将所述第一报文转发至所述第一报文的目的虚拟机对应的网络接口,以通过所述第一报文的目的虚拟机对应的网络接口,将所述第一报文经由所述第一报文的目的虚拟机对应的虚拟接口转发至所述第一报文的目的虚拟机;
如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,将所述第一报文转发至所述智能网卡的网络控制器,以使得所述网络控制器将所述第一报文转发至所述第一报文的目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述待转发的第一报文为所述第一虚拟机发送的报文;所述第一虚拟机对应的网络接口为第一网络接口,所述第一虚拟机对应的虚拟接口为第一虚拟接口;
所述接收待转发的第一报文的步骤,包括:
接收所述第一虚拟机通过所述第一虚拟接口发送至所述第一网络接口的第一报文。
可选的,所述方法还包括:
接收所述智能网卡的网络控制器转发的第二报文,其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文;
将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口,以通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机。
可选的,所述待转发的第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述接收待转发的第一报文的步骤,包括:
接收所述智能网卡的网络控制器转发的第一报文。
可选的,所述方法还包括:
接收所述智能网卡的网络控制器转发的第三报文,其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口,以通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机。
可选的,所述方法还包括:
向所述智能网卡的网络控制器下发ASAP2规则。第二方面,本发明实施例提供了一种报文转发方法,所述方法应用于智能网卡,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡中安装有虚拟交换机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述方法包括:将第一报文转发至所述虚拟交换机;
如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,通过所述第一报文的目的虚拟机对应的网络接口接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述第一报文的目的虚拟机对应的虚拟接口;如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,通过网络控制器接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述第一报文为所述第一虚拟机发送的报文,所述第一虚拟机对应的网络接口为第一网络接口;
所述将第一报文转发至所述虚拟交换机的步骤,包括:
将所述第一报文通过所述第一网络接口转发至所述虚拟交换机。
可选的,所述方法还包括:
通过网络控制器向所述虚拟交换机转发第二报文,以使所述虚拟交换机将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口;
通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机;
其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
可选的,所述宿主机中设置有与所述智能网卡通信的至少一个物理接口,所述方法还包括:
通过所述网络控制器经由所述物理接口向所述宿主机转发第四报文,其中,所述第四报文为所述网络控制器通过所述智能网卡的物理接口接收的报文中,除用户数据报协议端口为预设用户数据报协议端口的报文之外的报文。
可选的,所述第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述将第一报文转发至所述虚拟交换机的步骤,包括:
通过所述网络控制器向所述虚拟交换机转发所述第一报文。
可选的,所述方法还包括:
通过网络控制器向所述虚拟交换机转发第三报文,以使所述虚拟交换机将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口;
通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机;
其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
可选的,所述方法还包括:
通过网络控制器接收所述虚拟交换机下发的ASAP2规则。
第三方面,本发明实施例提供了一种报文转发装置,所述装置应用于虚拟交换机,所述虚拟交换机安装在智能网卡中,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述装置包括:
第一报文接收模块,用于接收待转发的第一报文;
第一报文转发模块,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,将所述第一报文转发至所述第一报文的目的虚拟机对应的网络接口,以通过所述第一报文的目的虚拟机对应的网络接口,将所述第一报文经由所述第一报文的目的虚拟机对应的虚拟接口转发至所述第一报文的目的虚拟机;
第二报文转发模块,如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,将所述第一报文转发至所述智能网卡的网络控制器,以使得所述网络控制器将所述第一报文转发至所述第一报文的目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述待转发的第一报文为所述第一虚拟机发送的报文;所述第一虚拟机对应的网络接口为第一网络接口,所述第一虚拟机对应的虚拟接口为第一虚拟接口;
所述第一报文接口模块,具体用于:
接收所述第一虚拟机通过所述第一虚拟接口发送至所述第一网络接口的第一报文。
可选的,所述装置还包括:
第四报文接收模块,用于接收所述智能网卡的网络控制器转发的第二报文,其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文;
第四报文转发模块,用于将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口,以通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机。
可选的,所述待转发的第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述第一报文接收模块,具体用于:
接收所述智能网卡的网络控制器转发的第一报文。
可选的,所述装置还包括:
第五报文转发模块,用于接收所述智能网卡的网络控制器转发的第三报文,其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
第六报文转发模块,用于将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口,以通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机。
可选的,所述装置还包括:
ASAP2规则发送模块,用于向所述智能网卡的网络控制器下发ASAP2规则。
第四方面,本发明实施例还提供了一种报文转发装置,所述装置应用于智能网卡,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡中安装有虚拟交换机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述装置包括:第三报文转发模块,用于将第一报文转发至所述虚拟交换机;
第二报文接收模块,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,通过所述第一报文的目的虚拟机对应的网络接口接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述第一报文的目的虚拟机对应的虚拟接口;第三报文接收模块,用于如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,通过网络控制器接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述第一报文为所述第一虚拟机发送的报文,所述第一虚拟机对应的网络接口为第一网络接口;
所述将第三报文转发模块,具体用于:
将所述第一报文通过所述第一网络接口转发至所述虚拟交换机。
可选的,所述装置还包括:
第七报文转发模块,用于通过网络控制器向所述虚拟交换机转发第二报文,以使所述虚拟交换机将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口;
第八报文转发模块,用于通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机;
其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
可选的,所述宿主机中设置有与所述智能网卡通信的至少一个物理接口,所述装置还包括:
第九报文转发模块,用于通过所述网络控制器经由所述物理接口向所述宿主机转发第四报文,其中,所述第四报文为所述网络控制器通过所述智能网卡的物理接口接收的报文中,除用户数据报协议端口为预设用户数据报协议端口的报文之外的报文。
可选的,所述第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述将第三报文转发模块,具体用于:
通过所述网络控制器向所述虚拟交换机转发所述第一报文。
可选的,所述装置还包括:
第十报文转发模块,用于通过网络控制器向所述虚拟交换机转发第三报文,以使所述虚拟交换机将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口;
第十一报文转发模块,用于通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机;
其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
可选的,所述装置还包括:
ASAP2规则接收模块,通过网络控制器接收所述虚拟交换机下发的ASAP2规则。
第五方面,本发明实施例提供了一种交换机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的报文转发方法。
第六方面,本发明实施例还提供了一种智能网卡,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第二方面所述的报文转发方法。
第七方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的报文转发方法。
第八方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述的报文转发方法。
本发明实施例提供的技术方案,虚拟交换机安装在智能网卡中,智能网卡设置在宿主机中,宿主机中设置有至少一台虚拟机,智能网卡上设置有与至少一台虚拟机对应的网络接口,宿主机中设置有与至少一台虚拟机对应的虚拟接口。虚拟交换机接收待转发的第一报文,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机;如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。可见,本发明实施例提供的技术方案中,虚拟交换机位于智能网卡中,因此,虚拟交换机在转发报文的过程中,不会占用宿主机的CPU和内存,从而提高了宿主机的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种报文转发方法的流程图;
图2为本发明实施例所提供的一种第一虚拟机与第一报文的目的虚拟机位于同一宿主机时,第一报文转发过程的示意图;
图3为本发明实施例所提供的一种第一虚拟机与第一报文的目的虚拟机不位于同一宿主机时,第一报文转发过程的示意图;
图4为本发明实施例所提供的第一报文转发过程的示意图;
图5为本发明实施例所提供的报文的用户数据报协议端口不为预设用户数据报协议端口时,报文转发过程的示意图;
图6为本发明实施例所提供的另一种报文转发方法的流程图;
图7为本发明实施例所提供的另一种第一虚拟机与第一报文的目的虚拟机位于同一宿主机时,第一报文转发过程的示意图;
图8为本发明实施例所提供的另一种报文转发方法的流程图;
图9为本发明实施例所提供的一种报文转发装置的示意图;
图10为本发明实施例所提供的另一种报文转发装置的示意图;
图11为本发明实施例所提供的一种交换机设备的示意图;
图12为本发明实施例所提供的一种智能网卡的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术存在的虚拟交换机在转发报文的过程中,宿主机的性能下降的技术问题,本发明实施例提供了一种报文转发方法、装置、交换机设备及智能网卡,以使得在报文转发过程中,能够提高宿主机的性能。
第一方面,下面首先对本发明实施例所提供的应用于虚拟交换机的报文转发方法进行介绍。
需要说明的是,本发明实施例所提供的报文转发方法应用于虚拟交换机,特别的,本发明实施例中,该虚拟交换机安装在智能网卡中,智能网卡设置在宿主机中,宿主机中设置有至少一台虚拟机,智能网卡上设置有与至少一台虚拟机对应的网络接口,宿主机中设置有与至少一台虚拟机对应的虚拟接口。
具体的,该智能网卡可以为MLNX(Mellanox,迈络思)智能网卡,该虚拟交换机为dpdk-vswitch(virtual switch,虚拟交换机),其中,dpdk为Data Plane DevelopmentKit,数据平面开发套件。
具体的,该智能网卡中还设置有网络控制器,该网络控制器可以为ConnectX-5网络控制器。
可以理解的是,宿主机中可以设置一台虚拟机,也可以设置多台虚拟机;
当宿主机中设置一台虚拟机时,宿主机中可以设置一个虚拟接口,该虚拟接口是与该台虚拟机对应的虚拟接口,此时,智能网卡上可以设置一个网络接口,具体的,可虚拟出一个网络接口,该网络接口是与该台虚拟机对应的网络接口。
当宿主机中设置多台虚拟机时,宿主机中可以设置多个虚拟接口,虚拟接口的数量与虚拟机的数量相同,且虚拟接口与虚拟机具有一一对应关系。此时,智能网卡上可以设置多个网络接口,网络接口的数量与虚拟机的数量相同,且网络接口与虚拟机也具有一一对应关系,也就是说,网络接口与虚拟接口也具有一一对应关系。
具体的,宿主机上的虚拟接口可以为VF(Virtual Function,虚拟函数)口,而智能网卡可虚拟出上述网络接口,该网络接口可以为Rep(Representor)接口。
举例而言,宿主机中设置了两台虚拟机,分别为虚拟机1和虚拟机2,宿主机中设置两个虚拟接口,分别为虚拟接口1和第二虚拟接口2。其中,虚拟接口1为与虚拟机1对应的虚拟接口,虚拟接口2为与虚拟机2对应的虚拟接口。智能网卡上设置有两个网络接口,分别为网络接口1和网络接口2,其中,网络接口1为与虚拟机1对应的网络接口,网络接口2为与虚拟机2对应的网络接口。由此可见,虚拟机1、虚拟接口1及网络接口1具有对应关系;虚拟机2、虚拟接口2及网络接口2具有对应关系。
需要说明的是,宿主机中设置的虚拟接口与智能网卡上设置的网络接口可以使用SR-IOV(Single-root I/O virtualization,单根I/O虚拟化)技术进行交互,本领域技术人员应该可以理解SR-IOV技术,在此不再赘述。
需要强调的是,智能网卡中的网络接口可以由虚拟交换机来设置。具体的,虚拟交换机可以监测宿主机中虚拟机的数量或者宿主机中虚拟接口的数量,并设置相同数量个网络接口,建立网络接口与虚拟接口的对应关系。当然,虚拟交换机中的网络接口也可以由智能网卡中的辅助程序设置,网络接口与虚拟接口的对应关系也可以由智能网卡中的辅助程序建立,这都是合理的。
下面将对本发明实施例所提供的一种报文转发方法进行详细介绍,如图1所示,本发明实施例所提供的报文转发方法可以包括如下步骤:
S110,接收待转发的第一报文。
第一报文可以是设置在宿主机中的虚拟机发送的报文。
在一种实施方式中,宿主机中设置的至少一台虚拟机包括第一虚拟机,待转发的第一报文为第一虚拟机发送的报文;第一虚拟机对应的网络接口为第一网络接口,第一虚拟机对应的虚拟接口为第一虚拟接口;其中,第一虚拟机可以是至少一台虚拟机中的任一台虚拟机。
此时,接收待转发的第一报文的步骤,可以包括:
接收第一虚拟机通过第一虚拟接口发送至第一网络接口的第一报文。
在该实施方式中,由于第一虚拟机对应的虚拟接口为第一虚拟接口,因此,第一虚拟机在发送第一报文时,可以通过第一虚拟接口将第一报文发送至智能网卡。并且,由于第一虚拟机对应的网络接口为第一网络接口,因此,智能网卡接收到第一报文后,通过第一网络接口将第一报文发送至虚拟交换机。也就是说,虚拟交换机可以接收第一虚拟机通过第一虚拟接口发送至第一网络接口的第一报文。
S120,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机。
可以理解的是,第一报文的目标虚拟机可以为宿主机中设置的虚拟机,也可以不为宿主机中设置的虚拟机。
在第一报文的目的虚拟机为宿主机中设置的虚拟机时,虚拟交换机可以将第一报文转发至第一报文的目的虚拟机对应的网络接口,智能网卡可以将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机。
举例而言,第一虚拟机和第一报文的目的虚拟机均为宿主机中设置的虚拟机;第一报文的目的虚拟机对应的网络接口为目的网络接口,第一报文的目的虚拟机对应的虚拟接口为目的虚拟接口。这种情况下,虚拟交换机可以将第一报文转发至目的网络接口,并将第一报文经由目的虚拟接口转发至第一报文的目的虚拟机。
可以理解的是,虚拟交换机在接收到第一报文后,可以直接将第一报文转发至第一报文的目的虚拟机对应的网络接口;还可以对第一报文进行报文处理后,再将第一报文转发至第一报文的目的虚拟机对应的网络接口,这都是合理的。其中,对第一报文进行报文处理可以为对第一报文进行封装、流量控制等处理。
S130,如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。
在第一报文的目的虚拟机不为宿主机中设置的虚拟机时,虚拟交换机可以将第一报文转发至智能网卡的网络控制器,智能网卡的网络控制器接收到第一报文后,可以通过智能网卡的物理接口将第一报文转发至第一报文的目的虚拟机。
举例而言,第一虚拟机为宿主机中设置的虚拟机,第一报文的目的虚拟机不为宿主机中设置的虚拟机。这种情况下,虚拟交换机可以将第一报文转发至网络控制器,网络控制器接收到第一报文后,将第一报文通过智能网卡的物理接口将第一报文转发至第一报文的目的虚拟机。
同样地,虚拟交换机在接收到第一报文后,可以直接将第一报文转发至智能网卡的网络控制器;还可以对第一报文进行报文处理后,再将第一报文转发至智能网卡的网络控制器,这都是合理的。其中,对第一报文进行报文处理可以为对第一报文进行封装、流量控制等处理。
本发明实施例提供的技术方案,虚拟交换机安装在智能网卡中,智能网卡设置在宿主机中,宿主机中设置有至少一台虚拟机,智能网卡上设置有与至少一台虚拟机对应的网络接口,宿主机中设置有与至少一台虚拟机对应的虚拟接口。虚拟交换机接收待转发的第一报文,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机;如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。可见,本发明实施例提供的技术方案中,虚拟交换机位于智能网卡中,因此,虚拟交换机在转发报文的过程中,不会占用宿主机的CPU和内存,从而提高了宿主机的性能。
为了方案描述清楚,下面将以具体实例对本发明实施例提供应用于虚拟交换机的报文转发方法进行详细描述。
如图2所示,图2为第一虚拟机与第一报文的目的虚拟机位于同一宿主机时,第一虚拟机向第一报文的目的虚拟机转发第一报文的示意图。具体的,第一虚拟机通过第一虚拟接口将第一报文发送至智能网卡;智能网卡接收到第一报文后,通过第一网络接口将第一报文转发至虚拟交换机;虚拟交换机接收到第一报文后,将第一报文转发至目的网络接口,并经由目的虚拟接口将第一报文转发至第一报文的目的虚拟机。
如图3所示,图3为第一虚拟机与第一报文的目的虚拟机位于不同的宿主机时,第一虚拟机向第一报文的目的虚拟机转发第一报文的示意图。具体的,第一虚拟机通过第一虚拟接口将第一报文发送至智能网卡;智能网卡接收到第一报文后,通过第一网络接口将第一报文转发至虚拟交换机;虚拟交换机接收到第一报文后,将第一报文转发至网络控制器,网络控制器将第一报文经由智能网卡的物理接口转发至第一报文的目的虚拟机。
可以理解的是,虚拟交换机不仅可以接收由宿主机中的虚拟机发送的第一报文,还可以接收到来自宿主机外部的报文,这里称为第二报文。第二报文会首先发送至智能网卡的网络控制器,由网络控制器转发至虚拟交换机,即虚拟交换机接收由其自身所位于的智能网卡的网络控制器转发的第二报文。
下面将对虚拟交换机对第二报文的转发过程进行详细阐述,虚拟交换机对第二报文的处理过程可以包括如下两个步骤,分别为步骤A1和步骤A2:
步骤A1,接收智能网卡的网络控制器转发的第二报文,其中,第二报文为:网络控制器通过智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
其中,第二报文可以为设置于另一宿主机的虚拟机所发送的报文。
通过智能网卡的物理接口所接收的报文中,一部分报文(第二报文)的用户数据报协议端口为预设用户数据报协议端口,另一部分报文的用户数据报协议端口不为预设用户数据报协议端口。
网络控制器可以对外部发送至智能网卡的物理接口的报文进行筛选,其中一部分报文直接发送至宿主机的物理接口,该物理接口可以为PF(Physical Function,物理函数)口,另一部分报文转发至虚拟交换机,由虚拟交换机进行转发。
对于用户数据报协议端口为预设用户数据报协议端口的第二报文而言,该第二报文需要虚拟交换机的转发,因此,智能网卡的网络控制器可以将第二报文转发至虚拟交换机。
对于用户数据报协议端口不为预设用户数据报协议端口的报文而言,智能网卡的网络控制器可以直接将该报文通过宿主机的物理接口发送至宿主机,以使得宿主机对该部分报文进行处理。可以理解的是,智能网卡的网络控制器直接将报文通过宿主机的物理接口发送至宿主机,可以提高数据的转发效率。
其中,上述预设用户数据报协议端口可以为4789。虚拟交换机可以根据实际情况设置预设用户数据报协议端口,本发明实施例对预设用户数据报协议端口不作具体限定。
需要说明的是,预设用户数据报协议端口可以是虚拟交换机设定的,因此,智能网卡的网络控制器将第二报文转发至虚拟交换机,虚拟交换机可以对第二报文进行报文处理和报文转发。其中,报文处理可以是对第二报文进行封装或者流量控制等。
步骤A2,将第二报文转发至第二报文的目的虚拟机对应的第二网络接口,以通过第二网络接口将第二报文经由第二报文的目的虚拟机对应的第二虚拟接口发送至第二报文的目的虚拟机。
为了方案描述清楚,下面将以具体实例对从智能网卡的物理接口接收到的报文的转发过程进行阐述。
如图4所示,第二报文为:网络控制器通过智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。虚拟交换机接收到智能网卡的网络控制器转发的第二报文后,将第二报文转发至第二报文的目的虚拟机对应的第二网络接口;并且,第二报文经由第二报文的目的虚拟机对应的第二虚拟接口发送至第二报文的目的虚拟机。
如图5所示,对于网络控制器通过智能网卡的物理接口接收的报文中,用户数据报协议端口不为预设用户数据报协议端口的报文而言,该报文经由宿主机的物理接口转发宿主机。
在实际应用中,智能网卡可以开启ASAP2(Accelerated Switching and PacketProcessing,加速交换和分组处理)加速功能,在这种情况下,结合SR-IOV技术,宿主机中设置的与至少一台虚拟机对应的虚拟接口可以直接与智能网卡的网络控制器进行通信。也就是说,设置于宿主机中的虚拟机可以通过与其对应的虚拟接口,向智能网卡的网络控制器直接发送报文。
并且,在一种实施方式中,虚拟交换机可以向所述智能网卡的网络控制器下发ASAP2规则。
网络控制器可以对虚拟机发送的报文进行筛选,一部分报文,例如,宿主机中的虚拟机发送至智能网卡的网络控制器的报文中,未命中ASAP2规则的报文,网络控制器将该报文转发至虚拟交换机进行处理。另一部分报文,即,命中ASAP2规则的报文,网络控制器直接依据命中的ASAP2规则进行报文的转发,不需要虚拟交换机进行转发。
如图6所示,本发明实施例提供的报文转发方法,可以包括如下步骤:
S610,接收智能网卡的网络控制器转发的第一报文。
由于待转发的第一报文为宿主机中的虚拟机发送至智能网卡的网络控制器的报文中,未命中ASAP2规则的报文。说明第一报文是需要经过虚拟交换机转发的报文,因此,智能网卡的网络控制器将第一报文转发至虚拟交换机,从而虚拟交换机接收到智能网卡的网络控制器转发的第一报文。
S620,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机;
S630,如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。
由于图6所示实施例中的S620-S630与图1所示实施例中的S120-S130相同,在此不再赘述。
下面将以具体实例对图6所示的报文转发方法进行详细阐述。
如图7所示,图7为智能网卡ASAP2(Accelerated Switching and PacketProcessing,加速交换和分组处理)加速功能,第一虚拟机与第二虚拟机位于同一宿主机时,第一虚拟机向第二虚拟机转发第一报文的示意图。具体的,第一虚拟机通过第一虚拟接口将第一报文发送至智能网卡的网络控制器,且第一报文未命中ASAP2规则的报文;网络控制器接收到第一报文后,将第一报文转发至虚拟交换机;虚拟交换机接收到第一报文后,将第一报文转发至目的网络接口,并经由目的虚拟接口将第一报文转发至第一报文的目的虚拟机。
可以理解的是,网络控制器不仅可以接收宿主机中的虚拟机发送的第一报文,还可以接收到来自智能网卡的物理接口的报文,即来自宿主机外部网络的报文。并且,网络控制器会对外部报文进行筛选,其中一部分报文直接发送至宿主机的物理接口,另一部分报文,这里称为第三报文,会被转发至虚拟交换机,由虚拟交换机进行转发。
智能网卡在接收到第三报文时,将第三报文转发至虚拟交换机,其中,第三报文为网络控制器通过智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文。
在一种实施方式中,应用于虚拟交换机的报文转发方法,还可以包括如下两个步骤,分别为步骤B1和步骤B2:
步骤B1,接收智能网卡的网络控制器转发的第三报文,其中,第三报文为:网络控制器通过智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
步骤B2,将第三报文转发至第三报文的目的虚拟机对应的第三网络接口,以通过第三网络接口将第三报文经由第三报文的目的虚拟机对应的第三虚拟接口发送至第三报文的目的虚拟机。
第二方面,本发明实施例提供了一种应用于智能网卡的报文转发方法,智能网卡设置在宿主机中,宿主机中设置有至少一台虚拟机,智能网卡中安装有虚拟交换机,智能网卡上设置有与至少一台虚拟机对应的网络接口,宿主机中设置有与至少一台虚拟机对应的虚拟接口,如图8所示,该报文转发方法可以包括:
S810,将第一报文转发至虚拟交换机;
第一报文可以是设置在宿主机中的虚拟机发送的报文。
在一种实施方式中,宿主机中设置的至少一台虚拟机包括第一虚拟机,第一报文为第一虚拟机发送的报文,第一虚拟机对应的网络接口为第一网络接口;
将第一报文转发至虚拟交换机的步骤,可以包括:
将第一报文通过第一网络接口转发至虚拟交换机。
在该实施方式中,由于第一虚拟机对应的虚拟接口为第一虚拟接口,因此,第一虚拟机在发送第一报文时,可以通过第一虚拟接口将第一报文发送至智能网卡。并且,由于第一虚拟机对应的网络接口为第一网络接口,因此,智能网卡接收到第一报文后,通过第一网络接口将第一报文发送至虚拟交换机。
S820,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,通过第一报文的目的虚拟机对应的网络接口接收虚拟交换机转发的第一报文,并将第一报文转发至第一报文的目的虚拟机对应的虚拟接口。
可以理解的是,第一报文的目标虚拟机可以为宿主机中设置的虚拟机,也可以不为宿主机中设置的虚拟机。
在第一报文的目的虚拟机为宿主机中设置的虚拟机时,虚拟交换机可以将第一报文转发至第一报文的目的虚拟机对应的网络接口,即智能网卡通过第一报文的目的虚拟机对应的网络接口接收虚拟交换机转发的第一报文,并将第一报文转发至第一报文的目的虚拟机对应的虚拟接口。
S830,如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,通过网络控制器接收虚拟交换机转发的第一报文,并将第一报文转发至目的虚拟机。
在第一报文的目的虚拟机不为宿主机中设置的虚拟机时,虚拟交换机可以将第一报文转发至智能网卡的网络控制器,网络控制器接收到第一报文后,可以通过智能网卡的物理接口将第一报文转发至第一报文的目的虚拟机。
本发明实施例提供的技术方案,虚拟交换机安装在智能网卡中,智能网卡设置在宿主机中,宿主机中设置有至少一台虚拟机,智能网卡上设置有与至少一台虚拟机对应的网络接口,宿主机中设置有与至少一台虚拟机对应的虚拟接口。虚拟交换机接收待转发的第一报文,如果第一报文的目的虚拟机为宿主机中设置的虚拟机,将第一报文转发至第一报文的目的虚拟机对应的网络接口,以通过第一报文的目的虚拟机对应的网络接口,将第一报文经由第一报文的目的虚拟机对应的虚拟接口转发至第一报文的目的虚拟机;如果第一报文的目的虚拟机不为宿主机中设置的虚拟机,将第一报文转发至智能网卡的网络控制器,以使得网络控制器将第一报文转发至第一报文的目的虚拟机。可见,本发明实施例提供的技术方案中,虚拟交换机位于智能网卡中,因此,虚拟交换机在转发报文的过程中,不会占用宿主机的CPU和内存,从而提高了宿主机的性能。
可以理解的是,智能网卡不仅可以接收第一报文,还可以通过其自身的物理网口接收报文,即接收来自宿主机外部的报文,其网络控制器可以对外部发送至智能网卡的物理接口的报文进行筛选,其中一部分报文直接发送至宿主机的物理接口,另一部分报文,即第二报文,转发至虚拟交换机,由虚拟交换机进行转发。
在一种实施方式中,应用于智能网卡的报文转发方法还可以包括如下步骤C1和步骤C2:
步骤C1,通过网络控制器向虚拟交换机转发第二报文,以使虚拟交换机将第二报文转发至第二报文的目的虚拟机对应的第二网络接口;
步骤C2,通过第二网络接口将第二报文经由第二报文的目的虚拟机对应的第二虚拟接口发送至第二报文的目的虚拟机;
其中,第二报文为:网络控制器通过智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
其中,第二报文可以为设置于另一宿主机的虚拟机所发送的报文。
通过智能网卡的物理接口所接收的报文中,一部分报文(第二报文)的用户数据报协议端口为预设用户数据报协议端口,另一部分报文的用户数据报协议端口不为预设用户数据报协议端口。
对于用户数据报协议端口为预设用户数据报协议端口的第二报文而言,该第二报文需要虚拟交换机的转发,因此,智能网卡的网络控制器可以将第二报文转发至虚拟交换机。虚拟交换机接收到第二报文后,将第二报文转发至第二报文的目的虚拟机对应的第二网络接口;并且通过第二网络接口将第二报文经由第二报文的目的虚拟机对应的第二虚拟接口发送至第二报文的目的虚拟机。
在一种实施方式中,所述宿主机中设置有与所述智能网卡通信的至少一个物理接口,所述方法还包括:
通过网络控制器经由物理接口向宿主机转发第四报文,其中,第四报文为网络控制器通过智能网卡的物理接口接收的报文中,除用户数据报协议端口为预设用户数据报协议端口的报文之外的报文。
在该实施方式中,对于用户数据报协议端口不为预设用户数据报协议端口的报文而言,智能网卡的网络控制器可以直接将该报文通过宿主机的物理接口发送至宿主机,以使得宿主机对该部分报文进行处理。
在实际应用中,智能网卡可以开启ASAP2(Accelerated Switching and PacketProcessing,加速交换和分组处理)加速功能,在这种情况下,结合SR-IOV技术,宿主机中设置的与至少一台虚拟机对应的虚拟接口可以直接与智能网卡的网络控制器进行通信。也就是说,设置于宿主机中的虚拟机可以通过与其对应的虚拟接口,向智能网卡的网络控制器发送报文。
并且,在一种实施方式中,智能网卡可以通过网络控制器接收所述虚拟交换机下发的ASAP2规则。
在一种实施方式中,第一报文为宿主机中的虚拟机发送至智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
将第一报文转发至虚拟交换机的步骤,可以包括:
通过网络控制器向虚拟交换机转发第一报文。
由于待转发的第一报文为宿主机中的虚拟机发送至智能网卡的网络控制器的报文中,未命中ASAP2规则的报文。说明第一报文是需要经过虚拟交换机转发的报文,因此,智能网卡的网络控制器将第一报文转发至虚拟交换机,从而虚拟交换机接收到智能网卡的网络控制器转发的第一报文。
作为本发明实施例的另一种实现方式,在第一报文为宿主机中的虚拟机发送至智能网卡的网络控制器的报文中,命中ASAP2规则的报文,可以直接通过报文快速通道将第一报文发送至第一报文的目的虚拟机,提高了报文的转发效率。
在一种实施方式中,应用于智能网卡的报文转发方法,还可以包括如下步骤,分别为步骤D1和步骤D2:
步骤D1,通过网络控制器向虚拟交换机转发第三报文,以使虚拟交换机将第三报文转发至第三报文的目的虚拟机对应的第三网络接口;
步骤D2,通过第三网络接口将第三报文经由第三报文的目的虚拟机对应的第三虚拟接口发送至第三报文的目的虚拟机;
其中,第三报文为:网络控制器通过智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
第三方面,本发明实施例提供了一种报文转发装置,所述装置应用于虚拟交换机,所述虚拟交换机安装在智能网卡中,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,如图9所示,所述装置包括:
第一报文接收模块910,用于接收待转发的第一报文;
第一报文转发模块920,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,将所述第一报文转发至所述第一报文的目的虚拟机对应的网络接口,以通过所述第一报文的目的虚拟机对应的网络接口,将所述第一报文经由所述第一报文的目的虚拟机对应的虚拟接口转发至所述第一报文的目的虚拟机;
第二报文转发模块930,如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,将所述第一报文转发至所述智能网卡的网络控制器,以使得所述网络控制器将所述第一报文转发至所述第一报文的目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述待转发的第一报文为所述第一虚拟机发送的报文;所述第一虚拟机对应的网络接口为第一网络接口,所述第一虚拟机对应的虚拟接口为第一虚拟接口;
所述第一报文接口模块,具体用于:
接收所述第一虚拟机通过所述第一虚拟接口发送至所述第一网络接口的第一报文。
可选的,所述装置还包括:
第四报文接收模块,用于接收所述智能网卡的网络控制器转发的第二报文,其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文;
第四报文转发模块,用于将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口,以通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机。
可选的,所述待转发的第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述第一报文接收模块,具体用于:
接收所述智能网卡的网络控制器转发的第一报文。
可选的,所述装置还包括:
第五报文转发模块,用于接收所述智能网卡的网络控制器转发的第三报文,其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
第六报文转发模块,用于将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口,以通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机。
可选的,所述装置还包括:
ASAP2规则发送模块,用于向所述智能网卡的网络控制器下发ASAP2规则。
第四方面,本发明实施例还提供了一种报文转发装置,所述装置应用于智能网卡,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡中安装有虚拟交换机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,如图10所示,所述装置包括:
第三报文转发模块1010,用于将第一报文转发至所述虚拟交换机;
第二报文接收模块1020,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,通过所述第一报文的目的虚拟机对应的网络接口接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述第一报文的目的虚拟机对应的虚拟接口;
第三报文接收模块1030,用于如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,通过网络控制器接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述目的虚拟机。
可选的,所述至少一台虚拟机包括第一虚拟机,所述第一报文为所述第一虚拟机发送的报文,所述第一虚拟机对应的网络接口为第一网络接口;
所述将第三报文转发模块,具体用于:
将所述第一报文通过所述第一网络接口转发至所述虚拟交换机。
可选的,所述装置还包括:
第七报文转发模块,用于通过网络控制器向所述虚拟交换机转发第二报文,以使所述虚拟交换机将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口;
第八报文转发模块,用于通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机;
其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
可选的,所述宿主机中设置有与所述智能网卡通信的至少一个物理接口,所述装置还包括:
第九报文转发模块,用于通过所述网络控制器经由所述物理接口向所述宿主机转发第四报文,其中,所述第四报文为所述网络控制器通过所述智能网卡的物理接口接收的报文中,除用户数据报协议端口为预设用户数据报协议端口的报文之外的报文。
可选的,所述第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述将第三报文转发模块,具体用于:
通过所述网络控制器向所述虚拟交换机转发所述第一报文。
可选的,所述装置还包括:
第十报文转发模块,用于通过网络控制器向所述虚拟交换机转发第三报文,以使所述虚拟交换机将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口;
第十一报文转发模块,用于通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机;
其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
可选的,所述装置还包括:
ASAP2规则接收模块,通过网络控制器接收所述虚拟交换机下发的ASAP2规则。
第五方面,本发明实施例还提供了一种交换机设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现第一方面所述的报文转发方法。
由上述描述可知,上述交换机设备可以实现本发明实施例所述的虚拟交换机的功能。
上述交换机设备提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述交换机设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
第六方面,本发明实施例还提供了一种智能网卡,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,
存储器1203,用于存放计算机程序;
处理器1201,用于执行存储器1203上所存放的程序时,实现第二方面所述的报文转发方法。
上述智能网卡提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述智能网卡与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
第七方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的报文转发方法。
第八方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面所述的报文转发方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、宿主机、存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (17)
1.一种报文转发方法,其特征在于,所述方法应用于虚拟交换机,所述虚拟交换机安装在智能网卡中,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述方法包括:
接收待转发的第一报文;
如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,将所述第一报文转发至所述第一报文的目的虚拟机对应的网络接口,以通过所述第一报文的目的虚拟机对应的网络接口,将所述第一报文经由所述第一报文的目的虚拟机对应的虚拟接口转发至所述第一报文的目的虚拟机;
如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,将所述第一报文转发至所述智能网卡的网络控制器,以使得所述网络控制器将所述第一报文转发至所述第一报文的目的虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述至少一台虚拟机包括第一虚拟机,所述待转发的第一报文为所述第一虚拟机发送的报文;所述第一虚拟机对应的网络接口为第一网络接口,所述第一虚拟机对应的虚拟接口为第一虚拟接口;
所述接收待转发的第一报文的步骤,包括:
接收所述第一虚拟机通过所述第一虚拟接口发送至所述第一网络接口的第一报文。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述智能网卡的网络控制器转发的第二报文,其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文;
将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口,以通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机。
4.根据权利要求1所述的方法,其特征在于,所述待转发的第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述接收待转发的第一报文的步骤,包括:
接收所述智能网卡的网络控制器转发的第一报文。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述智能网卡的网络控制器转发的第三报文,其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文;
将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口,以通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
向所述智能网卡的网络控制器下发ASAP2规则。
7.一种报文转发方法,其特征在于,所述方法应用于智能网卡,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡中安装有虚拟交换机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述方法包括:将第一报文转发至所述虚拟交换机;
如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,通过所述第一报文的目的虚拟机对应的网络接口接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述第一报文的目的虚拟机对应的虚拟接口;
如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,通过网络控制器接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述目的虚拟机。
8.根据权利要求7所述的方法,其特征在于,所述至少一台虚拟机包括第一虚拟机,所述第一报文为所述第一虚拟机发送的报文,所述第一虚拟机对应的网络接口为第一网络接口;
所述将第一报文转发至所述虚拟交换机的步骤,包括:
将所述第一报文通过所述第一网络接口转发至所述虚拟交换机。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
通过网络控制器向所述虚拟交换机转发第二报文,以使所述虚拟交换机将所述第二报文转发至所述第二报文的目的虚拟机对应的第二网络接口;
通过所述第二网络接口将所述第二报文经由所述第二报文的目的虚拟机对应的第二虚拟接口发送至所述第二报文的目的虚拟机;
其中,所述第二报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,用户数据报协议端口为预设用户数据报协议端口的报文。
10.根据权利要求8所述的方法,其特征在于,所述宿主机中设置有与所述智能网卡通信的至少一个物理接口,所述方法还包括:
通过所述网络控制器经由所述物理接口向所述宿主机转发第四报文,其中,所述第四报文为所述网络控制器通过所述智能网卡的物理接口接收的报文中,除用户数据报协议端口为预设用户数据报协议端口的报文之外的报文。
11.根据权利要求7所述的方法,其特征在于,所述第一报文为所述宿主机中的虚拟机发送至所述智能网卡的网络控制器的报文中,未命中ASAP2规则的报文;
所述将第一报文转发至所述虚拟交换机的步骤,包括:
通过所述网络控制器向所述虚拟交换机转发所述第一报文。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
通过网络控制器向所述虚拟交换机转发第三报文,以使所述虚拟交换机将所述第三报文转发至所述第三报文的目的虚拟机对应的第三网络接口;
通过所述第三网络接口将所述第三报文经由所述第三报文的目的虚拟机对应的第三虚拟接口发送至所述第三报文的目的虚拟机;
其中,所述第三报文为:所述网络控制器通过所述智能网卡的物理接口接收的报文中,未命中ASAP2规则且用户数据报协议端口为预设用户数据报协议端口的报文。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
通过网络控制器接收所述虚拟交换机下发的ASAP2规则。
14.一种报文转发装置,其特征在于,所述装置应用于虚拟交换机,所述虚拟交换机安装在智能网卡中,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述装置包括:
第一报文接收模块,用于接收待转发的第一报文;
第一报文转发模块,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,将所述第一报文转发至所述第一报文的目的虚拟机对应的网络接口,以通过所述第一报文的目的虚拟机对应的网络接口,将所述第一报文经由所述第一报文的目的虚拟机对应的虚拟接口转发至所述第一报文的目的虚拟机;
第二报文转发模块,如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,将所述第一报文转发至所述智能网卡的网络控制器,以使得所述网络控制器将所述第一报文转发至所述第一报文的目的虚拟机。
15.一种报文转发装置,其特征在于,所述装置应用于智能网卡,所述智能网卡设置在宿主机中,所述宿主机中设置有至少一台虚拟机,所述智能网卡中安装有虚拟交换机,所述智能网卡上设置有与所述至少一台虚拟机对应的网络接口,所述宿主机中设置有与所述至少一台虚拟机对应的虚拟接口,所述装置包括:第三报文转发模块,用于将第一报文转发至所述虚拟交换机;
第二报文接收模块,用于如果所述第一报文的目的虚拟机为所述宿主机中设置的虚拟机,通过所述第一报文的目的虚拟机对应的网络接口接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述第一报文的目的虚拟机对应的虚拟接口;
第三报文接收模块,用于如果所述第一报文的目的虚拟机不为所述宿主机中设置的虚拟机,通过网络控制器接收所述虚拟交换机转发的第一报文,并将所述第一报文转发至所述目的虚拟机。
16.一种交换机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
17.一种智能网卡,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求7-13任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410296.9A CN111224898A (zh) | 2018-11-23 | 2018-11-23 | 一种报文转发方法、装置、交换机设备及智能网卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811410296.9A CN111224898A (zh) | 2018-11-23 | 2018-11-23 | 一种报文转发方法、装置、交换机设备及智能网卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111224898A true CN111224898A (zh) | 2020-06-02 |
Family
ID=70831979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811410296.9A Pending CN111224898A (zh) | 2018-11-23 | 2018-11-23 | 一种报文转发方法、装置、交换机设备及智能网卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224898A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679349A (zh) * | 2022-03-29 | 2022-06-28 | 新华三技术有限公司 | 一种数据通信方法及装置 |
CN114793217A (zh) * | 2022-03-24 | 2022-07-26 | 阿里云计算有限公司 | 智能网卡、数据转发方法、装置及电子设备 |
CN114793217B (zh) * | 2022-03-24 | 2024-06-04 | 阿里云计算有限公司 | 智能网卡、数据转发方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110032944A1 (en) * | 2009-08-06 | 2011-02-10 | Uri Elzur | Method and System for Switching in a Virtualized Platform |
CN103873374A (zh) * | 2014-03-27 | 2014-06-18 | 杭州华三通信技术有限公司 | 虚拟化系统中的报文处理方法及装置 |
US20150271244A1 (en) * | 2014-03-24 | 2015-09-24 | Mellanox Technologies Ltd. | Nic with switching functionality between network ports |
CN105207873A (zh) * | 2015-08-31 | 2015-12-30 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN105245456A (zh) * | 2015-10-20 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种云服务器内卸载sdn虚拟网络功能的方法和系统 |
-
2018
- 2018-11-23 CN CN201811410296.9A patent/CN111224898A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110032944A1 (en) * | 2009-08-06 | 2011-02-10 | Uri Elzur | Method and System for Switching in a Virtualized Platform |
US20150271244A1 (en) * | 2014-03-24 | 2015-09-24 | Mellanox Technologies Ltd. | Nic with switching functionality between network ports |
CN103873374A (zh) * | 2014-03-27 | 2014-06-18 | 杭州华三通信技术有限公司 | 虚拟化系统中的报文处理方法及装置 |
CN105207873A (zh) * | 2015-08-31 | 2015-12-30 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN105245456A (zh) * | 2015-10-20 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种云服务器内卸载sdn虚拟网络功能的方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114793217A (zh) * | 2022-03-24 | 2022-07-26 | 阿里云计算有限公司 | 智能网卡、数据转发方法、装置及电子设备 |
CN114793217B (zh) * | 2022-03-24 | 2024-06-04 | 阿里云计算有限公司 | 智能网卡、数据转发方法、装置及电子设备 |
CN114679349A (zh) * | 2022-03-29 | 2022-06-28 | 新华三技术有限公司 | 一种数据通信方法及装置 |
CN114679349B (zh) * | 2022-03-29 | 2023-07-21 | 新华三技术有限公司 | 一种数据通信方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111224897A (zh) | 一种流量转发方法、装置、交换机设备及智能网卡 | |
CN108964959B (zh) | 一种用于虚拟化平台的网卡直通系统及数据包监管方法 | |
US10411953B2 (en) | Virtual machine fault tolerance method, apparatus, and system | |
TWI712295B (zh) | 使用者終端和設備的綁定方法、裝置和系統 | |
CN106301859B (zh) | 一种管理网卡的方法、装置及系统 | |
WO2019042294A1 (zh) | 资源配置方法及相关产品 | |
KR101649819B1 (ko) | 네트워크 가상화를 가속화하는 기술 | |
EP2911342A1 (en) | Home gateway and intelligent terminal integrated system and communication method therefor | |
CN104702560A (zh) | 一种防止报文攻击方法及装置 | |
CN112152940B (zh) | 报文处理方法、装置以及系统 | |
CN111181850B (zh) | 数据包泛洪抑制方法、装置和设备及计算机存储介质 | |
US9621633B2 (en) | Flow director-based low latency networking | |
CN111294416A (zh) | Ip地址获取的方法及相关产品 | |
CN110912836A (zh) | 使转发设备转发数据的方法、控制设备、存储介质和系统 | |
CN104683428A (zh) | 网络业务处理方法与装置 | |
CN107995326B (zh) | 一种容器网络的管理方法及装置 | |
CN104468311A (zh) | 一种物理网卡虚拟成多个虚拟网卡的方法及系统 | |
CN111224898A (zh) | 一种报文转发方法、装置、交换机设备及智能网卡 | |
CN108881069A (zh) | 多播流量的转发方法、装置和服务器 | |
CN104123188A (zh) | 一种资源分配方法及相关装置 | |
CN109495404B (zh) | 一种报文处理方法、装置、交换机设备及存储介质 | |
CN115277410B (zh) | 网关调整方法、装置、电子设备及存储介质 | |
US9229761B2 (en) | Generating, at least in part, at least one packet indicating, at least in part, at least one command and/or issuing, at least in part, at least one result of execution, at least in part, of the at least one command | |
CN110808909A (zh) | 跨虚拟系统的报文处理方法和装置 | |
CN108965169B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200602 |
|
RJ01 | Rejection of invention patent application after publication |