CN110990123A - 构建虚拟机网络系统的方法及装置 - Google Patents

构建虚拟机网络系统的方法及装置 Download PDF

Info

Publication number
CN110990123A
CN110990123A CN201911233572.3A CN201911233572A CN110990123A CN 110990123 A CN110990123 A CN 110990123A CN 201911233572 A CN201911233572 A CN 201911233572A CN 110990123 A CN110990123 A CN 110990123A
Authority
CN
China
Prior art keywords
floating
network card
virtual machine
name space
network
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
Application number
CN201911233572.3A
Other languages
English (en)
Other versions
CN110990123B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201911233572.3A priority Critical patent/CN110990123B/zh
Publication of CN110990123A publication Critical patent/CN110990123A/zh
Application granted granted Critical
Publication of CN110990123B publication Critical patent/CN110990123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

Abstract

本公开涉及构建虚拟机网络系统的方法及装置、计算机可存储介质,涉及计算机技术领域。构建虚拟机网络系统的方法包括:响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应;为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应;为外网网卡分配对应的浮动IP。根据本公开,减少了外网IP的分配和占用,节约了外网IP。

Description

构建虚拟机网络系统的方法及装置
技术领域
本公开涉及计算机技术领域,特别涉及构建虚拟机网络系统的方法及装置、计算机可存储介质。
背景技术
在OpenStack传统的集中式路由环境下,南北流量和跨网络的东西流量都要经过网络节点,当计算节点规模越来越大的时候,网络节点很快会成为整个系统的瓶颈,为解决这个问题引入了DVR(Distribute Virtual Router,分布式虚拟路由)的概念。DVR是将路由分布到计算节点,南北流量和跨网段的东西流量由虚机所在计算节点上的虚拟路由进行路由。
相关技术中,对于同一计算节点的每个外网来说,每个虚拟机对应一个浮动IP,多个浮动IP对应一个浮动IP名称空间,且需要为该浮动IP名称空间的外网网卡分配一个外网IP。
发明内容
发明人认为:相关技术中,对于N个计算节点M个外网的系统来说,需要额外分配N×M个外网IP,随着计算节点数量的增多,额外分配的外网IP数量随之线性增多,导致大量的外网IP地址被占用,从而导致外网IP浪费。
针对上述技术问题,本公开提出了一种解决方案,减少了外网IP的分配和占用,节约了外网IP。
根据本公开的第一方面,提供了一种构建虚拟机网络系统的方法,包括:响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应;为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应;为外网网卡分配对应的浮动IP。
在一些实施例中,构建虚拟机网络系统的方法还包括:为浮动IP,创建第一网卡和第二网卡,第一网卡和第二网卡用于连接浮动IP名称空间和分布式路由名称空间;将第一网卡添加到浮动IP名称空间并为浮动IP名称空间添加第一静态路由,所述第一静态路由用于将第一数据包在浮动IP名称空间的路由出接口和路由下一跳分别设置为第一网卡和第二网卡,所述第一数据包为从外网经过外网网卡发送到虚拟机的数据包;将第二网卡添加到所述分布式路由名称空间,并为所述分布式路由名称空间添加第二静态路由,第二静态路由用于将第二数据包在所述分布式路由名称空间的路由出接口和路由下一跳分别设置为第二网卡和第一网卡,所述第二数据包为从虚拟机发送到外网的数据包。
在一些实施例中,构建虚拟机网络系统的方法还包括:为分布式路由名称空间添加策略路由,所述策略路由用于根据数据包的源IP选择浮动IP名称空间。
在一些实施例中,构建虚拟机网络系统的方法还包括:在创建浮动IP名称空间、第一网卡和第二网卡时,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。
在一些实施例中,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系包括:通过分别在浮动IP名称空间、第一网卡和第二网卡的命名中增加浮动IP的唯一标识,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。
在一些实施例中,在为外网网卡分配对应的浮动IP之后,构建虚拟机网络系统的方法还包括:配置浮动IP名称空间的数据包传输策略。
在一些实施例中,虚拟机具有固定IP,配置浮动IP名称空间的数据包传输策略包括:配置浮动IP名称空间的IPTABLES,所述IPTABLES用于利用源网络地址转换SNAT技术,将从虚拟机发送到外网的数据包的源IP中的固定IP转换为所述浮动IP,并利用目的网络地址转换DANT技术,将从外网发送到虚拟机的数据包的源IP中的浮动IP转换为固定IP。
在一些实施例中,在创建浮动IP名称空间之前,构建虚拟机网络系统的方法还包括:存储虚拟机和浮动IP的对应关系。
在一些实施例中,构建虚拟机网络系统的方法还包括:将外网网卡添加到集成网桥上。
根据本公开第二方面,提供了一种构建虚拟机网络系统的装置,包括:OpenStack接口层,被配置为响应用户对虚拟机和浮动IP的绑定;OpenStack代理层,被配置为:创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应,为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应,为外网网卡分配对应的浮动IP。
在一些实施例中,OpenStack接口层还被配置为:通过远程过程调用RPC发送路由器更新消息;OpenStack代理层还被配置为接收所述路由器更新消息。
根据本公开第三方面,提供了一种构建虚拟机网络系统的装置,包括:第一创建模块,被配置为响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应;第二创建模块,被配置为为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应;分配模块,被配置为为外网网卡分配对应的浮动IP。
根据本公开第四方面,提供了一种构建虚拟机网络系统的装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的构建虚拟机网络系统的方法。
根据本公开的第五方面,一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的构建虚拟机网络系统的方法。
在上述实施例中,减少了外网IP的分配和占用,节约了外网IP。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出相关技术中虚拟机网络系统的网络拓扑图;
图2示出根据本公开一些实施例的构建虚拟机网络系统的方法的流程图;
图3示出根据本公开一些实施例的虚拟机网络系统的网络拓扑图;
图4示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图;
图5示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图;
图6示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图;
图7示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出相关技术中虚拟机网络系统的网络拓扑图。
如图1所示,虚拟机网络系统1包括计算节点11和外网12。外网12包括交换机121。
计算节点11包括第一虚拟机111、第一Linux网桥112、第二虚拟机113、第二Linux网桥114、分布式路由名称空间115、浮动IP名称空间116、集成网桥117、外部网桥118。计算节点11具有网卡bond1。计算节点11的网卡bond1通过交换机121与外网12直接连接。
第一虚拟机111具有一个网卡eth0。第一虚拟机111在内网的固定IP(fixedIP)和浮动IP(floatingip)分别为100.0.0.5/24、172.1.1.5/24。
第一Linux网桥112具有网卡tap1和网卡qvr1。例如,第一Linux网桥112命名为qbr1。第一Linux网桥112的网卡tap1和第一虚拟机111的网卡eth0连接。
第二虚拟机113具有一个网卡eth0。第二虚拟机113在内网的固定IP(fixedIP)和浮动IP(floatingip)分别为100.0.0.6/24、172.1.1.6/24。
第二Linux网桥114具有网卡tap2和网卡qvr2。例如,第二Linux网桥114命名为qb2。第二Linux网桥114的网卡tap2和第二虚拟机113的网卡eth0连接。
分布式路由名称空间115具有网卡rfp和网卡qr。例如,分布式路由名称空间115命名为qrouter-netns。网卡rfp上分配有第一虚拟机111和第二虚拟机113的浮动IP。
浮动IP名称空间116具有网卡fpr和网卡fg。例如,浮动IP名称空间116命名为fip-netns。浮动IP名称空间116为计算节点上172.1.1.0/24网络的浮动IP名称空间。网卡fg上分配有一个额外的外网IP 172.1.1.3/24,作为浮动IP名称空间116的网关,用来连接外网。
网卡rfp和网卡fpr是一对虚拟设备网卡(veth-pair),负责连接分布式路由名称空间115和浮动IP名称空间116。
集成网桥117具有网卡qvo1、网卡qvo2、网卡qr和网卡fg。集成网桥117的网卡qvo1、网卡qvo2、网卡qr和网卡fg分别与第一Linux网桥112的网卡qvr1、第二Linux网桥114的网卡qvr2、分布式路由名称空间115的网卡qr和浮动IP名称空间116的网卡fg连接。集成网桥117还具有网卡int-br-ext。
外部网桥118具有网卡phy-br-ext和网卡bond1.102。外部网桥118的网卡phy-br-ext与集成网桥117的网卡int-br-ext连接。网卡bond1.102与计算节点11的网卡bond1连接。
相关技术构建的虚拟网络系统,两个虚拟机不仅需要分配两个浮动IP,而且需要额外分配一个外网IP。每一个计算节点、每一个外网都需要额外分配一个外网IP。对于n个计算节点m个外网的环境,需要额外分配n×m个外网IP,占用大量的宝贵资源外网IP,导致外网IP浪费。另外,一个计算节点只有一个浮动IP名称空间,在浮动IP名称空间出现故障的情况下,所有的浮动IP都不能正常工作,鲁棒性较差。
为解决上述技术问题,本公开提出了一种解决方案,减少了外网IP的分配和占用,节约了外网IP。另外,还提高了构建的虚拟机网络系统的鲁棒性。
图2示出根据本公开一些实施例的构建虚拟机网络系统的方法的流程图。
如图2所示,构建虚拟机网络系统的方法包括步骤S210-步骤S230。
在步骤S210中,响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间。虚拟机、浮动IP与浮动IP名称空间一一对应。这里的一一对应指的是每个虚拟机对应于一个浮动IP并对应于一个浮动IP名称空间。在用户对多组虚拟机和浮动IP进行绑定的情况下,对于每一组虚拟机和浮动IP,创建一个浮动IP名称空间。对于不同组的虚拟机和浮动IP,创建不同的浮动IP名称空间。每一组虚拟机和浮动IP为一一对应的一个虚拟机和一个浮动IP。
在步骤S220中,为浮动IP名称空间,创建外网网卡。外网网卡用于连接外网。浮动IP名称空间与外网网卡一一对应。
在步骤S230中,为外网网卡分配对应的浮动IP。
在一些实施例中,构建虚拟机网络系统的方法还包括如下步骤。
首先,为浮动IP,创建第一网卡和第二网卡。第一网卡和第二网卡用于连接浮动IP名称空间和分布式路由名称空间。应当理解,在存在多个浮动IP的情况下,为每个浮动IP创建一组第一网卡和第二网卡,并使用第一网卡和第二网卡连接分布式路由名称空间和与每个浮动IP对应的浮动IP名称空间。应当理解,在虚拟机网络系统的一个计算节点上,只有一个分布式路由名称空间。
例如,构建虚拟机网络系统的方法还包括为第一网卡分配第一IP和第一MAC,为第二网卡分配第二IP和第二MAC。
然后,将第一网卡添加到浮动IP名称空间并为浮动IP名称空间添加第一静态路由。第一静态路由用于将第一数据包在浮动IP名称空间的路由出接口和路由下一跳分别设置为第一网卡和第二网卡。第一数据包为从外网经过外网网卡发送到虚拟机的数据包。
最后,将第二网卡添加到分布式路由名称空间,并为所述分布式路由名称空间添加第二静态路由。第二静态路由用于将第二数据包在所述分布式路由名称空间的路由出接口和路由下一跳分别设置为第二网卡和第一网卡。第二数据包为从虚拟机发送到外网的数据包。
在一些实施例中,构建虚拟机网络系统的方法还包括如下步骤:为分布式路由名称空间添加策略路由。策略路由用于根据数据包的源IP选择浮动IP名称空间。例如,虚拟机具有固定IP,在虚拟机将数据包发送到外网的情况下,数据包的源IP即为虚拟机的固定IP。根据数据包的源IP可以选择对应的浮动IP名称空间。
在一些实施例中,构建虚拟机网络系统的方法还包括如下步骤:在创建浮动IP名称空间、第一网卡和第二网卡时,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。
例如,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系包括如下步骤:通过分别在浮动IP名称空间、第一网卡和第二网卡的命名中增加浮动IP的唯一标识,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。例如,浮动IP的唯一标识可自行设定。
在一些实施例中,在为外网网卡分配对应的浮动IP之后,构建虚拟机网络系统的方法还包括如下步骤:配置浮动IP名称空间的数据包传输策略。在浮动IP名称空间存在多个的情况下,为每个浮动IP名称空间配置数据包传输策略。
在一些实施例中,虚拟机具有固定IP,配置浮动IP名称空间的数据包传输策略包括如下步骤:配置浮动IP名称空间的IPTABLES。IPTABLES用于利用SNAT(Source NetworkAddress Translation,源网络地址转换)技术,将从虚拟机发送到外网的数据包的源IP中的固定IP转换为所述浮动IP,并利用DANT(Destination NetworkAddress Translation,目的网络地址转换)技术,将从外网发送到虚拟机的数据包的源IP中的浮动IP转换为固定IP。
在一些实施例中,在创建浮动IP名称空间之前,构建虚拟机网络系统的方法还包括如下步骤:存储虚拟机和浮动IP的对应关系。例如,存储虚拟机和浮动IP的对应关系到数据库。
在一些实施例中,构建虚拟机网络系统的方法还包括如下步骤:将外网网卡添加到集成网桥上。
本公开通过为每个浮动IP创建一个浮动IP名称空间,并将这个浮动IP分配给浮动IP名称空间的外网网卡,减少了外网IP的分配和占用,节约了外网IP。另外,通过为每个浮动IP创建一个浮动IP名称空间,提供了虚拟机网络系统的鲁棒性。
图3示出根据本公开一些实施例的虚拟机网络系统的网络拓扑图。
如图3所示,虚拟机网络系统3包括计算节点31和外网32。外网32包括交换机321。
在一些实施例中,计算节点31包括第一虚拟机311、第一Linux网桥312、第二虚拟机313、第二Linux网桥314、分布式路由名称空间315、第一浮动IP名称空间316、第二浮动IP名称空间317、集成网桥318、外部网桥319。计算节点31具有网卡bond1。计算节点31的网卡bond1通过交换机321与外网32直接连接。
第一虚拟机311具有一个网卡eth0。第一虚拟机311在内网的固定IP(fixedIP)和浮动IP(floatingIP)分别为100.0.0.5/24、172.1.1.5/24。
第一Linux网桥312具有网卡tap1和网卡qvr1。例如,第一Linux网桥312命名为qbr1。第一Linux网桥312的网卡tap1和第一虚拟机311的网卡eth0连接。
第二虚拟机313具有一个网卡eth0。第二虚拟机313在内网的固定IP和浮动IP分别为100.0.0.6/24、172.1.1.6/24。
第二Linux网桥314具有网卡tap2和网卡qvr2。例如,第二Linux网桥314命名为qb2。第二Linux网桥314的网卡tap2和第二虚拟机313的网卡eth0连接。分布式路由名称空间315具有网卡rfp1、网卡rfp2和网卡qr。例如,分布式路由名称空间315命名为qrouter-netns。
第一浮动IP名称空间316具有网卡fpr1和网卡fg1。例如,第一浮动IP名称空间316命名为fip-netns1。第一浮动IP名称空间316的网卡fg1上分配有浮动IP 172.1.1.5/24,作为浮动IP名称空间316的网关,用来连接外网。
第二浮动IP名称空间317具有网卡fpr2和网卡fg2。例如,第二浮动IP名称空间317命名为fip-netns2。第二浮动IP名称空间317的网卡fg2上分配有一个浮动IP 172.1.1.6/24,作为浮动IP名称空间317的网关,用来连接外网。
网卡rfp1和网卡fpr1、网卡rfp2和网卡fpr2是两对虚拟设备网卡(veth-pair),分别负责连接分布式路由名称空间315和第一浮动IP名称空间316、分布式路由名称空间315和第二浮动IP名称空间317。网卡fpr1、网卡rfp2均为第一网卡。网卡rfp1、网卡rfp2均为第二网卡。网卡fg1和网卡fg2均为外网网卡。
集成网桥318具有网卡qvo1、网卡qvo2、网卡qr、网卡fg1和网卡fg2。集成网桥318的网卡qvo1、网卡qvo2、网卡qr、网卡fg1和网卡fg2分别与第一Linux网桥312的网卡qvr1、第二Linux网桥314的网卡qvr2、分布式路由名称空间315的网卡qr、第一浮动IP名称空间316的网卡fg1和第二浮动IP名称空间317的网卡fg2连接。集成网桥318还具有网卡int-br-ext。
外部网桥319具有网卡phy-br-ext和网卡bond1.102。外部网桥319的网卡phy-br-ext与集成网桥318的网卡int-br-ext连接。网卡bond1.102与计算节点31的网卡bond1连接。
如图3所示,第一虚拟机和第二虚拟机的浮动IP直接落在浮动IP名称空间的网关上,每个浮动IP创建一个浮动IP名称空间,不需要额外的外网IP来进行数据包的转发,并且一个浮动IP名称空间故障不会影响到其他浮动IP名称空间的工作。
第一虚拟机311访问外网32的路径为:eth0→tap1→qvr1→qvo1→qr→rfp1→fpr1→fg1→int-br-ext→phy-br-ext→bond1.102→bond1→交换机321→外网32。
外网32访问第一虚拟机311的路径为:外网32→交换机321→bond1→bond1.102→phy-br-ext→int-br-ext→fg1→fpr1→rfp1→qr→qvo1→qvr1→tap1→eth0。
第二虚拟机313访问外网32的路径为:eth0→tap2→qvr2→qvo2→qr→rfp2→fpr2→fg2→int-br-ext→phy-br-ext→bond1.102→bond1→交换机321→外网32。
外网32访问第二虚拟机313的路径为:外网32→交换机321→bond1→bond1.102→phy-br-ext→int-br-ext→fg2→fpr2→rfp2→qr→qvo2→qvr2→tap2→eth0。
图4示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图。
如图4所示,构建虚拟机网络系统的装置4包括OpenStack接口层41和OpenStack代理层42。OpenStack接口层即为OpenStack API(Application Programming Interface,应用程序接口)层,OpenStack代理层即为OpenStack agent层。OpenStack接口层41是指接收用户操作消息的server(服务器)服务。OpenStack代理层42是指整整处理用户操作消息的代理服务。
OpenStack接口层41被配置为响应用户对虚拟机和浮动IP的绑定。在一些实施例中,OpenStack接口层还被配置为通过RPC(RemoteProcedure Call,远程过程调用)发送路由器更新消息。路由器更新消息用于触发OpenStack代理层42执行构建虚拟机网络系统的方法。
OpenStack代理层42被配置为执行如下步骤:首先,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应。然后,为浮动IP名称空间,创建外网网卡,外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应。最后,为外网网卡分配对应的浮动IP。
在一些实施例中,OpenStack代理层还被配置为接收路由器更新消息。
在一些实施例中,OpenStack代理层通过neutron-13-agent实现。neutron-13-agent服务接收路由器更新消息,直接调用Linux系统的命令执行本公开任意一些实施例中的构建虚拟机网络系统的方法在Linux驱动层4'构建虚拟机网络系统,虚拟机网络系统包括Linux名称空间、Linux IP规则、Linux IPTABLES和Linux IP路由。Linux驱动层是指操作Linux系统的驱动层。
在一些实施例中,构建虚拟机网络系统的装置4还包括用户层43。用户层43被配置为响应于用户对虚拟机和浮动IP进行绑定,生成绑定消息,并发送到OpenStack接口层41。用户层可以是命令行操作或者页面操作。
在一些实施例中,OpenStack接口层41包括neutron服务器(neutron-server)411和数据库412。neutron服务器411被配置为接收绑定消息,并存储虚拟机和浮动IP的对应关系到数据库412。neutron服务器411还被配置为通过远程过程调用RPC发送路由器更新消息。其中,neutron为OpenStack的网络组件。
图5示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图。
如图5所示,构建虚拟机网络系统的装置5包括第一创建模块51、第二创建模块52和分配模块53。
第一创建模块51被配置为响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应,例如执行如图2所示的步骤S210。
第二创建模块,被配置为为浮动IP名称空间,创建外网网卡,外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应,例如执行如图2所示的步骤S220。
分配模块,被配置为为外网网卡分配对应的浮动IP,例如执行如图2所示的步骤S230。
图6示出根据本公开一些实施例的构建虚拟机网络系统的装置的框图。
如图6所示,构建虚拟机网络系统的装置6包括存储器61;以及耦接至该存储器61的处理器62,存储器61用于存储执行构建虚拟机网络系统的方法对应实施例的指令。处理器62被配置为基于存储在存储器61中的指令,执行本公开中任意一些实施例中的构建虚拟机网络系统的方法。
图7示出用于实现本公开一些实施例的计算机系统的框图。
如图7所示,计算机系统70可以通用计算设备的形式表现。计算机系统70包括存储器710、处理器720和连接不同系统组件的总线700。
存储器710例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行构建虚拟机网络系统的方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器720可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线700可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统70还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间可以通过总线700连接。输入输出接口730可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的构建虚拟机网络系统的方法及装置、计算机可存储介质,减少了外网IP的分配和占用,节约了外网IP。
至此,已经详细描述了根据本公开的构建虚拟机网络系统的方法及装置、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

Claims (14)

1.一种构建虚拟机网络系统的方法,包括:
响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应;
为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应;
为外网网卡分配对应的浮动IP。
2.根据权利要求1所述的构建虚拟机网络系统的方法,还包括:
为浮动IP,创建第一网卡和第二网卡,第一网卡和第二网卡用于连接浮动IP名称空间和分布式路由名称空间;
将第一网卡添加到浮动IP名称空间并为浮动IP名称空间添加第一静态路由,所述第一静态路由用于将第一数据包在浮动IP名称空间的路由出接口和路由下一跳分别设置为第一网卡和第二网卡,所述第一数据包为从外网经过外网网卡发送到虚拟机的数据包;
将第二网卡添加到所述分布式路由名称空间,并为所述分布式路由名称空间添加第二静态路由,第二静态路由用于将第二数据包在所述分布式路由名称空间的路由出接口和路由下一跳分别设置为第二网卡和第一网卡,所述第二数据包为从虚拟机发送到外网的数据包。
3.根据权利要求2所述的构建虚拟机网络系统的方法,还包括:
为分布式路由名称空间添加策略路由,所述策略路由用于根据数据包的源IP选择浮动IP名称空间。
4.根据权利要求2所述的构建虚拟机网络系统的方法,还包括:
在创建浮动IP名称空间、第一网卡和第二网卡时,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。
5.根据权利要求4所述的构建虚拟机网络系统的方法,其中,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系包括:
通过分别在浮动IP名称空间、第一网卡和第二网卡的命名中增加浮动IP的唯一标识,建立浮动IP名称空间、第一网卡和第二网卡之间的对应关系。
6.根据权利要求1所述的构建虚拟机网络系统的方法,在为外网网卡分配对应的浮动IP之后,还包括:
配置浮动IP名称空间的数据包传输策略。
7.根据权利要求6所述的构建虚拟机网络系统的方法,其中,虚拟机具有固定IP,配置浮动IP名称空间的数据包传输策略包括:
配置浮动IP名称空间的IPTABLES,所述IPTABLES用于利用源网络地址转换SNAT技术,将从虚拟机发送到外网的数据包的源IP中的固定IP转换为所述浮动IP,并利用目的网络地址转换DANT技术,将从外网发送到虚拟机的数据包的源IP中的浮动IP转换为固定IP。
8.根据权利要求1所述的构建虚拟机网络系统的方法,在创建浮动IP名称空间之前,还包括:
存储虚拟机和浮动IP的对应关系。
9.根据权利要求1所述的构建虚拟机网络系统的方法,还包括:
将外网网卡添加到集成网桥上。
10.一种构建虚拟机网络系统的装置,包括:
OpenStack接口层,被配置为响应用户对虚拟机和浮动IP的绑定;
OpenStack代理层,被配置为:
创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应,
为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应,
为外网网卡分配对应的浮动IP。
11.根据权利要求10所述的构建虚拟机网络系统的装置,其中:
OpenStack接口层还被配置为通过远程过程调用RPC发送路由器更新消息;
OpenStack代理层还被配置为接收所述路由器更新消息。
12.一种构建虚拟机网络系统的装置,包括:
第一创建模块,被配置为响应于用户对虚拟机和浮动IP进行绑定,创建浮动IP名称空间,虚拟机、浮动IP与浮动IP名称空间一一对应;
第二创建模块,被配置为为浮动IP名称空间,创建外网网卡,所述外网网卡用于连接外网,浮动IP名称空间与外网网卡一一对应;
分配模块,被配置为为外网网卡分配对应的浮动IP。
13.一种构建虚拟机网络系统的装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至9任一项所述的构建虚拟机网络系统的方法。
14.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至9任一项所述的构建虚拟机网络系统的方法。
CN201911233572.3A 2019-12-05 2019-12-05 构建虚拟机网络系统的方法及装置 Active CN110990123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911233572.3A CN110990123B (zh) 2019-12-05 2019-12-05 构建虚拟机网络系统的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911233572.3A CN110990123B (zh) 2019-12-05 2019-12-05 构建虚拟机网络系统的方法及装置

Publications (2)

Publication Number Publication Date
CN110990123A true CN110990123A (zh) 2020-04-10
CN110990123B CN110990123B (zh) 2023-11-03

Family

ID=70090361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911233572.3A Active CN110990123B (zh) 2019-12-05 2019-12-05 构建虚拟机网络系统的方法及装置

Country Status (1)

Country Link
CN (1) CN110990123B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915545A (zh) * 2022-05-20 2022-08-16 深圳市证通电子股份有限公司 基于dhcp网络高可用集群的应用调度部署管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106059803A (zh) * 2016-05-26 2016-10-26 国云科技股份有限公司 一种在计算节点上实现虚拟机南北向通信的方法
US20170171150A1 (en) * 2015-12-14 2017-06-15 Le Holdings (Beijing) Co., Ltd. Method and apparatus for processing public ip
CN106878482A (zh) * 2017-01-03 2017-06-20 新华三技术有限公司 网络地址转换方法及装置
CN108471383A (zh) * 2018-02-08 2018-08-31 华为技术有限公司 报文转发方法、装置和系统
CN108810191A (zh) * 2018-07-18 2018-11-13 郑州云海信息技术有限公司 基于OpenStack的浮动IP检测方法及系统
CN109067931A (zh) * 2018-07-19 2018-12-21 郑州云海信息技术有限公司 一种云管理平台虚拟机浮动ip地址设置的方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170171150A1 (en) * 2015-12-14 2017-06-15 Le Holdings (Beijing) Co., Ltd. Method and apparatus for processing public ip
CN106059803A (zh) * 2016-05-26 2016-10-26 国云科技股份有限公司 一种在计算节点上实现虚拟机南北向通信的方法
CN106878482A (zh) * 2017-01-03 2017-06-20 新华三技术有限公司 网络地址转换方法及装置
CN108471383A (zh) * 2018-02-08 2018-08-31 华为技术有限公司 报文转发方法、装置和系统
CN108810191A (zh) * 2018-07-18 2018-11-13 郑州云海信息技术有限公司 基于OpenStack的浮动IP检测方法及系统
CN109067931A (zh) * 2018-07-19 2018-12-21 郑州云海信息技术有限公司 一种云管理平台虚拟机浮动ip地址设置的方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915545A (zh) * 2022-05-20 2022-08-16 深圳市证通电子股份有限公司 基于dhcp网络高可用集群的应用调度部署管理方法
CN114915545B (zh) * 2022-05-20 2024-01-26 深圳市证通电子股份有限公司 基于dhcp网络集群的应用调度部署管理方法

Also Published As

Publication number Publication date
CN110990123B (zh) 2023-11-03

Similar Documents

Publication Publication Date Title
CN110313163B (zh) 分布式计算系统中的负载平衡
US10484515B2 (en) Implementing logical metadata proxy servers in logical networks
CN107278359B (zh) 云计算系统中报文处理的方法、主机和系统
CN107896195B (zh) 服务链编排方法、装置及服务链拓扑结构系统
US20190222440A1 (en) Inter-Cloud Communication Method and Related Device, and Inter-Cloud Communication Configuration Method and Related Device
CN111917649B (zh) 虚拟私有云通信及配置方法以及相关装置
US8199675B2 (en) Packet processing device by multiple processor cores and packet processing method by the same
CN105657081A (zh) 提供dhcp服务的方法、装置及系统
CN111556110B (zh) 一种用于私有云系统的不同物理业务网络自动化适配方法
CN112637105B (zh) 切换防火墙的方法、系统、装置及计算机可读存储介质
CN112311669B (zh) 网络业务切换方法、装置、系统和存储介质
CN111030932B (zh) 一种数据报文锚定的方法、装置及系统
WO2015043679A1 (en) Moving stateful applications
CN111371608A (zh) 一种部署sfc业务链的方法、装置和介质
CN110990123B (zh) 构建虚拟机网络系统的方法及装置
WO2021083375A1 (zh) 检测链路状态的方法及装置
CN110311861B (zh) 一种引导数据流量的方法和装置
WO2016173196A1 (zh) 地址映射关系的学习方法及装置
CN114979128A (zh) 跨区域通信方法、装置及电子设备
US20190391856A1 (en) Synchronization of multiple queues
CN116016320B (zh) 数据传输方法、装置及计算机可读存储介质
CN114629844B (zh) 一种报文转发的方法、装置及电子设备
CN115412527B (zh) 虚拟私有网络之间单向通信的方法及通信装置
CN114448667B (zh) 一种数据传输方法、装置及设备
CN110581807B (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
GR01 Patent grant
GR01 Patent grant