CN112738293A - 一种虚机连通外网的方法 - Google Patents
一种虚机连通外网的方法 Download PDFInfo
- Publication number
- CN112738293A CN112738293A CN202011598094.9A CN202011598094A CN112738293A CN 112738293 A CN112738293 A CN 112738293A CN 202011598094 A CN202011598094 A CN 202011598094A CN 112738293 A CN112738293 A CN 112738293A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual machine
- address
- snat
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及云计算虚拟化领域,具体提供了一种虚机连通外网的方法,运用虚拟IP绑定Floating IP的方式,通过对SNAT和宿主机网桥的配置来对虚机访问外网的流量提供支持。与现有技术相比,本发明可以规避openstack在分布式路由模式中长期存在的问题,使VRRP协议在openstack虚机上可用。在数据上与以往的floating ip实现方式一致,无需修改openstack后端已有的数据库。
Description
技术领域
本发明涉及云计算虚拟化领域,具体提供一种虚机连通外网的方法。
背景技术
随着互联网的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的。一般来说,主机通过设置默认网关来与外部网络联系,正常情况下,主机可以完全信赖网关的工作,但是当网关坏掉时,主机与外部的通信就会中断,为了解决这个问题,网络开发者提出了VRRP,VRRP是一种路由容错协议,也可以叫做备份路由协议。一个局域网内的所有主机都设置缺省路由,当网内主机发出的目的地址不在本网段时,报文将被通过省路由发往外部路由器,从而实现了主机与外部网络的通信。可以有一个或者多个处于备份角色的路由器VRRP协议从路由器组中选出一台作为主控路由器,负责ARP解析和转发IP数据包,组中的其他路由器作为备份的角色并处于待命状态,当由于某种原因主控路由器发生故障时,其中的一台备份路由器能在瞬间的时延后升级为主控路由器。
Keepalived则是将前面所述概念转移到主机上,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中。
这种高可用技术的其中一个核心技术点是多个网络节点会共享一个虚拟IP地址,同时他们又有一个只属于自己的本地IP地址,这种技术方案在实体网络中高效可用,但是在使用分布式计算环境的时候却会遇到问题,其原因是采用分布式路由器的openstack网络由于在每个计算节点上都部署了分布式路由器,从而导致这些路由器发出的ARP请求报文有可能无法正常收到回复,openstack解决ARP的方式是直接将ARP邻接表写入路由器,从而使路由器无需询问邻接网络节点的地址。但是这会导致路由器会把访问虚拟IP的流量报文发往虚拟IP对应的端口的mac地址而非配置了这个虚拟IP的其他端口,最终导致网络连接不可达。
发明内容
本发明是针对上述现有技术的不足,提供一种设计合理,安全适用的。
本发明进一步的技术任务是提供一种实用性强、。
本发明解决其技术问题所采用的技术方案是:
一种虚机连通外网的方法,运用虚拟IP绑定Floating IP的方式,通过对SNAT和宿主机网桥的配置来对虚机访问外网的流量提供支持。
进一步的,具体分为:
S1、创建keepalived的虚机;
S2、将floating ip与虚拟IP关联;
S3、在网桥上配置规则;
S4、在iptable表上入网配置地址转换规则;
S5、虚拟机的返回包到达节点路由器;
S6、在iptable表上出网配置地址转换规则。
进一步的,在步骤S1中,在使用分布式路由的openstack环境中创建使用多台keepalived的虚机,且为多台keepalived虚机分配虚拟IP地址。
进一步的,在步骤S2中,从openstack的FIP地址池中取出一个floating ip将其与虚拟IP关联。
进一步的,在步骤S3中,在SNAT命名空间所在宿主机的外网网桥上配置规则,使其接受访问floating ip的流量。
进一步的,在步骤S4中,在SNAT命名空间中的iptable表上入网配置地址转换规则,将接收到的流量目的IP地址变换为虚拟IP地址。
进一步的,在步骤S5中,虚拟机的返回包会先到达自己所在节点的路由器,根据缺省规则发往SNAT命名空间。
进一步的,在步骤S6中,在SNAT命名空间中的iptable表上出网配置地址转换规则,将接收到的流量的源IP地址变换为floating IP地址,最后通过外网网桥出网。
本发明的一种虚机连通外网的方法和现有技术相比,具有以下突出的有益效果:
本发明可以规避openstack在分布式路由模式中长期存在的问题,使VRRP协议在openstack虚机上可用。在数据上与以往的floating ip实现方式一致,无需修改openstack后端已有的数据库。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种虚机连通外网的方法中Openstack环境物理架构;
附图2是一种虚机连通外网的方法中流量路径示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1、2所示,本实施例中的一种虚机连通外网的方法,具体的执行步骤为:
S1、在使用DVR模式路由器的Openstack环境中创建属于同一子网subnet1的两台虚拟机,使用keepalived为其保证高可用性,配置其虚拟IP为【VIP】。
S2、在Openstack环境中创建IP地址为【VIP】的端口,但不为其绑定虚拟机。
S3、从Openstack的FIP地址池中取出一个floating ip——【FIP】,将该【FIP】与【VIP】的对应关系按照已有的openstack数据库格式保存到数据库中,防止该floating ip被系统二次分配。
S4、在br-ex上配置规则,使其拥有【FIP】作为它的一个ip地址,使访问【FIP】网络报文能够到达br-ex。
S5、在br-ex上配置规则,使其在收到访问【FIP】的网络报文时将目的mac地址改为SNAT的mac地址,并发往br-int,然后由SNAT接收。
S6、在SNAT命名空间中的iptable表上入网配置地址转换规则,将接收到的流量的目的IP地址变换为虚拟IP地址:
iptables-t nat-A neutron-l3-agent-PREROUTING-i qg-f5803017-b4-d【FIP】-j DNAT--to-destination【VIP】。
S7、SNAT发出ARP广播包询问【VIP】对应的mac地址,当前配置了此【VIP】的虚拟机会做出响应,于是报文被发送到虚拟机上。
S8、虚拟机的返回包会先到达自己所在节点的路由器,根据缺省规则发往SNAT命名空间。
S9、在SNAT命名空间中的iptable表上出网配置地址转换规则,将接收到的流量的源IP地址变换为floating IP地址:
iptables-t nat-A neutron-l3-agent-float-snat-s【VIP】
-j SNAT--to-source【FIP】。
S10、SNAT将报文从出口发出后经br-int、br-ex,最终离开宿主机。
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种虚机连通外网的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种虚机连通外网的方法,其特征在于,运用虚拟IP绑定FloatingIP的方式,通过对SNAT和宿主机网桥的配置来对虚机访问外网的流量提供支持。
2.根据权利要求1所述的一种虚机连通外网的方法,其特征在于,具体分为:
S1、创建keepalived的虚机;
S2、将floating ip与虚拟IP关联;
S3、在网桥上配置规则;
S4、在iptable表上入网配置地址转换规则;
S5、虚拟机的返回包到达节点路由器;
S6、在iptable表上出网配置地址转换规则。
3.根据权利要求2所述的一种虚机连通外网的方法,其特征在于,在步骤S1中,在使用分布式路由的openstack环境中创建使用多台keepalived的虚机,且为多台keepalived虚机分配虚拟IP地址。
4.根据权利要求3所述的一种虚机连通外网的方法,其特征在于,在步骤S2中,从openstack的FIP地址池中取出一个floating ip将其与虚拟IP关联。
5.根据权利要求4所述的一种虚机连通外网的方法,其特征在于,在步骤S3中,在SNAT命名空间所在宿主机的外网网桥上配置规则,使其接受访问floating ip的流量。
6.根据权利要求5所述的一种虚机连通外网的方法,其特征在于,在步骤S4中,在SNAT命名空间中的iptable表上入网配置地址转换规则,将接收到的流量目的IP地址变换为虚拟IP地址。
7.根据权利要求6所述的一种虚机连通外网的方法,其特征在于,在步骤S5中,虚拟机的返回包会先到达自己所在节点的路由器,根据缺省规则发往SNAT命名空间。
8.根据权利要求7所述的一种虚机连通外网的方法,其特征在于,在步骤S6中,在SNAT命名空间中的iptable表上出网配置地址转换规则,将接收到的流量的源IP地址变换为floating IP地址,最后通过外网网桥出网。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598094.9A CN112738293B (zh) | 2020-12-29 | 2020-12-29 | 一种虚机连通外网的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598094.9A CN112738293B (zh) | 2020-12-29 | 2020-12-29 | 一种虚机连通外网的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112738293A true CN112738293A (zh) | 2021-04-30 |
CN112738293B CN112738293B (zh) | 2023-03-10 |
Family
ID=75611434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011598094.9A Active CN112738293B (zh) | 2020-12-29 | 2020-12-29 | 一种虚机连通外网的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112738293B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397260B1 (en) * | 1999-03-08 | 2002-05-28 | 3Com Corporation | Automatic load sharing for network routers |
CN107770062A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种数据包发送方法、装置及网络架构 |
CN109067931A (zh) * | 2018-07-19 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种云管理平台虚拟机浮动ip地址设置的方法和系统 |
CN111475283A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种基于OpenStack裸机的负载均衡方法及系统 |
CN112165432A (zh) * | 2020-09-07 | 2021-01-01 | 广州锦行网络科技有限公司 | 一种实现OpenStack虚拟机与外部通信的方法 |
-
2020
- 2020-12-29 CN CN202011598094.9A patent/CN112738293B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397260B1 (en) * | 1999-03-08 | 2002-05-28 | 3Com Corporation | Automatic load sharing for network routers |
CN107770062A (zh) * | 2016-08-16 | 2018-03-06 | 北京金山云网络技术有限公司 | 一种数据包发送方法、装置及网络架构 |
CN109067931A (zh) * | 2018-07-19 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种云管理平台虚拟机浮动ip地址设置的方法和系统 |
CN111475283A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种基于OpenStack裸机的负载均衡方法及系统 |
CN112165432A (zh) * | 2020-09-07 | 2021-01-01 | 广州锦行网络科技有限公司 | 一种实现OpenStack虚拟机与外部通信的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112738293B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9100350B2 (en) | Extended subnets | |
US8855117B2 (en) | Scalable media access control protocol synchronization techniques for fabric extender based emulated switch deployments | |
EP2108224B1 (en) | Multipath virtual router redundancy | |
TWI531908B (zh) | A method of supporting virtual machine migration with Software Defined Network (SDN) | |
US20150016462A1 (en) | Traffic forwarding in a layer 2 edge network | |
CN107948041B (zh) | 构建vxlan集中式多活网关的方法和设备 | |
US20050270986A1 (en) | Apparatus and method for topology discovery among network devices | |
JP2011210032A (ja) | 仮想マシンのマイグレーション方法およびシステム | |
CN111478852A (zh) | 受管理网关的路由通告 | |
CN108200225A (zh) | 不对称网络地址封装 | |
EP4183118A1 (en) | Multi-edge etherchannel (meec) creation and management | |
US11509581B2 (en) | Flow-based local egress in a multisite datacenter | |
CN111736958A (zh) | 虚拟机迁移方法、系统、计算机设备及存储介质 | |
CN111314196A (zh) | 一种数据中心网络混合overlay通信的方法 | |
CN111556110B (zh) | 一种用于私有云系统的不同物理业务网络自动化适配方法 | |
US11296997B2 (en) | SDN-based VPN traffic scheduling method and SDN-based VPN traffic scheduling system | |
JP2009049640A (ja) | 冗長化ゲートウェイシステムのためのネットワークスイッチ装置 | |
WO2020114017A1 (zh) | 数据中心流量互通方法、装置、设备及存储介质 | |
WO2014075527A1 (zh) | 网络虚拟边界设备间进行冗余备份的方法、设备及系统 | |
CN113381936A (zh) | 网络信息处理方法、装置及网络设备 | |
WO2013104279A1 (zh) | Trill网络中设置cvlan的方法和装置 | |
CN111371535B (zh) | 一种异地主备数据中心灾备系统及切换方法 | |
CN112738293B (zh) | 一种虚机连通外网的方法 | |
US10999151B2 (en) | Apparatus, system, and method for topology discovery across geographically redundant gateway devices | |
CN112994948A (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 |