一种虚机连通外网的方法与流程

文档序号:24887583发布日期:2021-04-30 13:11阅读:172来源:国知局
本发明涉及云计算虚拟化领域,具体提供一种虚机连通外网的方法。
背景技术
::随着互联网的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的。一般来说,主机通过设置默认网关来与外部网络联系,正常情况下,主机可以完全信赖网关的工作,但是当网关坏掉时,主机与外部的通信就会中断,为了解决这个问题,网络开发者提出了vrrp,vrrp是一种路由容错协议,也可以叫做备份路由协议。一个局域网内的所有主机都设置缺省路由,当网内主机发出的目的地址不在本网段时,报文将被通过省路由发往外部路由器,从而实现了主机与外部网络的通信。可以有一个或者多个处于备份角色的路由器vrrp协议从路由器组中选出一台作为主控路由器,负责arp解析和转发ip数据包,组中的其他路由器作为备份的角色并处于待命状态,当由于某种原因主控路由器发生故障时,其中的一台备份路由器能在瞬间的时延后升级为主控路由器。keepalived则是将前面所述概念转移到主机上,如果有一台web服务器宕机,或工作出现故障,keepalived将检测到并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后keepalived自动将服务器加入到服务器群中。这种高可用技术的其中一个核心技术点是多个网络节点会共享一个虚拟ip地址,同时他们又有一个只属于自己的本地ip地址,这种技术方案在实体网络中高效可用,但是在使用分布式计算环境的时候却会遇到问题,其原因是采用分布式路由器的openstack网络由于在每个计算节点上都部署了分布式路由器,从而导致这些路由器发出的arp请求报文有可能无法正常收到回复,openstack解决arp的方式是直接将arp邻接表写入路由器,从而使路由器无需询问邻接网络节点的地址。但是这会导致路由器会把访问虚拟ip的流量报文发往虚拟ip对应的端口的mac地址而非配置了这个虚拟ip的其他端口,最终导致网络连接不可达。技术实现要素:本发明是针对上述现有技术的不足,提供一种设计合理,安全适用的。本发明进一步的技术任务是提供一种实用性强、。本发明解决其技术问题所采用的技术方案是:一种虚机连通外网的方法,运用虚拟ip绑定floatingip的方式,通过对snat和宿主机网桥的配置来对虚机访问外网的流量提供支持。进一步的,具体分为:s1、创建keepalived的虚机;s2、将floatingip与虚拟ip关联;s3、在网桥上配置规则;s4、在iptable表上入网配置地址转换规则;s5、虚拟机的返回包到达节点路由器;s6、在iptable表上出网配置地址转换规则。进一步的,在步骤s1中,在使用分布式路由的openstack环境中创建使用多台keepalived的虚机,且为多台keepalived虚机分配虚拟ip地址。进一步的,在步骤s2中,从openstack的fip地址池中取出一个floatingip将其与虚拟ip关联。进一步的,在步骤s3中,在snat命名空间所在宿主机的外网网桥上配置规则,使其接受访问floatingip的流量。进一步的,在步骤s4中,在snat命名空间中的iptable表上入网配置地址转换规则,将接收到的流量目的ip地址变换为虚拟ip地址。进一步的,在步骤s5中,虚拟机的返回包会先到达自己所在节点的路由器,根据缺省规则发往snat命名空间。进一步的,在步骤s6中,在snat命名空间中的iptable表上出网配置地址转换规则,将接收到的流量的源ip地址变换为floatingip地址,最后通过外网网桥出网。本发明的一种虚机连通外网的方法和现有技术相比,具有以下突出的有益效果:本发明可以规避openstack在分布式路由模式中长期存在的问题,使vrrp协议在openstack虚机上可用。在数据上与以往的floatingip实现方式一致,无需修改openstack后端已有的数据库。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图1是一种虚机连通外网的方法中openstack环境物理架构;附图2是一种虚机连通外网的方法中流量路径示意图。具体实施方式为了使本
技术领域
:的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。下面给出一个最佳实施例:如图1、2所示,本实施例中的一种虚机连通外网的方法,具体的执行步骤为:s1、在使用dvr模式路由器的openstack环境中创建属于同一子网subnet1的两台虚拟机,使用keepalived为其保证高可用性,配置其虚拟ip为【vip】。s2、在openstack环境中创建ip地址为【vip】的端口,但不为其绑定虚拟机。s3、从openstack的fip地址池中取出一个floatingip——【fip】,将该【fip】与【vip】的对应关系按照已有的openstack数据库格式保存到数据库中,防止该floatingip被系统二次分配。s4、在br-ex上配置规则,使其拥有【fip】作为它的一个ip地址,使访问【fip】网络报文能够到达br-ex。s5、在br-ex上配置规则,使其在收到访问【fip】的网络报文时将目的mac地址改为snat的mac地址,并发往br-int,然后由snat接收。s6、在snat命名空间中的iptable表上入网配置地址转换规则,将接收到的流量的目的ip地址变换为虚拟ip地址:iptables-tnat-aneutron-l3-agent-prerouting-iqg-f5803017-b4-d【fip】-jdnat--to-destination【vip】。s7、snat发出arp广播包询问【vip】对应的mac地址,当前配置了此【vip】的虚拟机会做出响应,于是报文被发送到虚拟机上。s8、虚拟机的返回包会先到达自己所在节点的路由器,根据缺省规则发往snat命名空间。s9、在snat命名空间中的iptable表上出网配置地址转换规则,将接收到的流量的源ip地址变换为floatingip地址:iptables-tnat-aneutron-l3-agent-float-snat-s【vip】-jsnat--to-source【fip】。s10、snat将报文从出口发出后经br-int、br-ex,最终离开宿主机。上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种虚机连通外网的方法权利要求书的且任何所述
技术领域
:普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1