一种用于配置虚拟机网络的方法和装置转让专利

申请号 : CN201910278426.6

文献号 : CN109981493B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏传程胡玉鹏

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请公开了一种用于配置虚拟机网络的方法和装置,该方法包括:当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息;由计算节点中的虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,以使得虚拟机内部的路由信息与虚拟交换机的流表信息匹配,使虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。上述方案能够在虚拟机运行之后,在不登陆虚拟机修改路由信息的情况下,对虚拟机的网络路由进行设置和更新,使用其他的网卡来路由数据。

权利要求 :

1.一种用于配置虚拟机网络的方法,其特征在于,所述方法包括:

当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由所述计算节点网络代理根据在所述Neutron服务器中保存的静态路由表来更新所述计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到所述虚拟交换机;

由计算节点中的虚拟机的云主机网络代理根据从所述Neutron服务器获取的路由信息来更新所述虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使所述虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。

2.根据权利要求1所述的方法,其中,如果所述网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则所述网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。

3.根据权利要求1所述的方法,其中,如果所述网络变更请求是将虚拟机的网卡切换至为所述虚拟机添加的网卡的请求的话,则所述网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。

4.根据权利要求1所述的方法,其中,在所述由所述计算节点网络代理根据在所述Neutron服务器中保存的静态路由表来更新所述计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个所述静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问所述多个网络中的一个网络。

5.一种用于配置虚拟机网络的装置,包括存储器和处理器,

所述存储器,用于存储计算机可读指令;

所述处理器,用于执行所述计算机可读指令,以执行如下操作:

当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由所述计算节点网络代理根据在所述Neutron服务器中保存的静态路由表来更新所述计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到所述虚拟交换机;

由计算节点中的虚拟机的云主机网络代理根据从所述Neutron服务器获取的路由信息来更新所述虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使所述虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关,其中,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。

6.根据权利要求5所述的装置,其中,如果所述网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则所述网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。

7.根据权利要求5所述的装置,其中,如果所述网络变更请求是将虚拟机的网卡切换至为所述虚拟机添加的网卡的请求的话,则所述网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。

8.根据权利要求5所述的装置,其中,在所述由所述计算节点网络代理根据在所述Neutron服务器中保存的静态路由表来更新所述计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个所述静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问所述多个网络中的一个网络。

说明书 :

一种用于配置虚拟机网络的方法和装置

技术领域

[0001] 本申请涉及虚拟机领域,尤指一种用于配置虚拟机网络的方法和装置。

背景技术

[0002] Openstack作为开源的云计算管理平台,能够非常方便的管理多种虚拟化平台资源,在对虚拟机的网络管理上,一般来说,虚拟机的IP地址是使用DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)的方式获取的,并记录在Neutron数据库中。虚拟机的IP获取方式通过cloud-init工具从Neutron服务器中获取虚拟机的IP地址的元数据,并在虚拟机初次创建和启动的时候注入虚拟机操作系统。但是这种方法只在虚拟机首次创建的时候发挥作用,当虚拟机已经运行之后,如果为虚拟机动态添加了网卡,则虚拟机无法正常获取新的地址,且虚拟机在其具有多个网卡的情况下无法自动设置静态路由及默认路由,会造成路由混乱。因此需要登录虚拟机后重新设置,这种处理方式在大规模云环境下并不适用。

发明内容

[0003] 为了解决上述技术问题,本申请提供了一种用于配置虚拟机网络的方法和装置,能够在虚拟机运行之后,在不登陆虚拟机修改路由信息的情况下,对虚拟机的网络路由进行设置和更新,使用其他的网卡来路由数据。
[0004] 为了达到本发明目的,本发明实施例提供了一种用于配置虚拟机网络的方法,该方法包括:
[0005] 当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到虚拟交换机;
[0006] 由计算节点中的虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。
[0007] 进一步地,在一个可选的实施例中,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。
[0008] 进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0009] 进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的网卡切换至为虚拟机添加的网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0010] 进一步地,在一个可选的实施例中,在由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问多个网络中的一个网络。
[0011] 为了达到本发明目的,本发明实施例提供了一种用于配置虚拟机网络的装置,该装置包括存储器和处理器,
[0012] 该存储器用于存储计算机可读指令;
[0013] 该处理器用于执行计算机可读指令,以执行如下操作:
[0014] 当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到虚拟交换机;
[0015] 由计算节点中的虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。
[0016] 进一步地,在一个可选的实施例中,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。
[0017] 进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0018] 进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的网卡切换至为虚拟机添加的网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0019] 进一步地,在一个可选的实施例中,在由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问多个网络中的一个网络。
[0020] 本发明实施例的有益效果在于,通过在计算节点网络代理接收到网络变更请求之后根据Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息,以及虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,使得在虚拟机运行之后,能够对虚拟机的网络路由进行设置和更新,从而能够使用其他的网卡来路由数据,而不需要登陆虚拟机修改路由信息,提高了OpenStack平台虚拟机网络的管理效率。同时,不需要登陆虚拟机即可对网络路由信息进行更新,提高了云主机的安全性。
[0021] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0022] 附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0023] 图1为本发明实施例提供的用于配置虚拟机网络的方法的流程图;
[0024] 图2为本发明实施例提供的用于配置虚拟机网络的装置的框图。

具体实施方式

[0025] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0026] 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0027] Openstack作为开源的云计算管理平台,能够非常方便的管理多种虚拟化平台资源,在对虚拟机的网络管理上,一般来说,虚拟机的IP地址是使用DHCP的方式获取的,并记录在Neutron数据库中。虚拟机的IP获取方式通过cloud-init从Neutron服务器中获取虚拟机的IP地址的元数据,并在虚拟机初次创建和启动的时候注入虚拟机操作系统。但是这种方法只在虚拟机首次创建的时候发挥作用,当虚拟机已经运行之后,如果为虚拟机动态添加了网卡,则虚拟机无法正常获取新的地址,且虚拟机在其具有多个网卡的情况下无法自动设置静态路由及默认路由,会造成路由混乱。因此需要登录虚拟机后重新设置,这种处理方式在大规模云环境下并不适用。
[0028] 为了解决上述问题,一方面,本发明实施例提供了一种用于配置虚拟机网络的方法,如图1所示,该方法包括步骤S101-步骤S103。
[0029] 步骤S101,当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到虚拟交换机。
[0030] 步骤S103,由计算节点中的虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。
[0031] 本发明实施例的有益效果在于,通过在计算节点网络代理接收到网络变更请求之后根据Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息,以及虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,使得在虚拟机运行之后,能够对虚拟机的网络路由进行设置和更新,从而能够使用其他的网卡来路由数据,而不需要登陆虚拟机修改路由信息,提高了OpenStack平台虚拟机网络的管理效率。同时,不需要登陆虚拟机即可对网络路由信息进行更新,提高了云主机的安全性。
[0032] 进一步地,在一个可选的实施例中,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。
[0033] 基于上述可选的实施例,进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0034] 基于上述可选的实施例,进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的网卡切换至为虚拟机添加的网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0035] 进一步地,在一个可选的实施例中,在由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问多个网络中的一个网络。
[0036] 为了解决上述技术问题,本发明实施例提供了一种用于配置虚拟机网络的装置,如图2所示,该装置包括存储器10和处理器20。
[0037] 存储器10,用于存储计算机可读指令;
[0038] 处理器20,用于执行计算机可读指令,以执行如下操作:
[0039] 当计算节点中的计算节点网络代理接收到由Neutron服务器发出的网络变更请求的时候,由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息,以保证计算节点中的虚拟机将数据包正确地发送到虚拟交换机;
[0040] 由计算节点中的虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,以使得虚拟机内部的路由信息与Openvswitch的流表信息匹配,使虚拟机通过根据路由信息选定的网卡将数据包发送到规定的网关。
[0041] 本发明实施例的有益效果在于,通过在计算节点网络代理接收到网络变更请求之后根据Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机的流表信息,以及虚拟机的云主机网络代理根据从Neutron服务器获取的路由信息来更新虚拟机内部的路由表,使得在虚拟机运行之后,能够对虚拟机的网络路由进行设置和更新,从而能够使用其他的网卡来路由数据,而不需要登陆虚拟机修改路由信息,提高了OpenStack平台虚拟机网络的管理效率。同时,不需要登陆虚拟机即可对网络路由信息进行更新,提高了云主机的安全性。
[0042] 进一步地,在一个可选的实施例中,网络变更请求是将虚拟机的多个网卡之中的一个网卡切换至另一个网卡的请求,或者是将虚拟机的网卡切换至为虚拟机添加的网卡的请求。
[0043] 基于上述可选的实施例,进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的多个网卡之中的一个网卡切换到另一个网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息分别设置为切换到的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0044] 基于上述可选的实施例,进一步地,在一个可选的实施例中,如果网络变更请求是将虚拟机的网卡切换至为虚拟机添加的网卡的请求的话,则网络变更请求包括将虚拟机的网卡的IP地址、mac地址以及虚拟机的默认路由信息设置为所添加的网卡的IP地址、mac地址以及相应的路由信息的请求。
[0045] 进一步地,在一个可选的实施例中,在由计算节点网络代理根据在Neutron服务器中保存的静态路由表来更新计算节点的虚拟交换机Openvswitch的流表信息的步骤之前,在Neutron服务器中保存了多个静态路由表;其中的每个静态路由表针对一个相应的虚拟机网络设置了路由规则,以使得一个虚拟机通过虚拟机的一个网卡访问多个网络中的一个网络。
[0046] 虽然本发明所揭露的实施方式如上,但上述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。