一种公有云网络弹性IP实现方法及系统与流程

文档序号:17627551发布日期:2019-05-10 23:49阅读:943来源:国知局
一种公有云网络弹性IP实现方法及系统与流程

本发明涉及云计算技术领域,特别涉及一种公有云网络弹性ip实现方法及系统。



背景技术:

互联网的地址分为公网地址和私网地址两大类:公网地址一般通过bgp(bordergatewayprotocol,边界网关协议)协议在全互联网范围内进行通过,因此其在全互联网上可见;而私网地址(互联网私网ip地址段包括10.0.0.0/8、192.168.0.0/16、172.16.0.0/12)位于企业或组织内部,用于局部网络通信的目的,其地址段不会通告到互联网上,因此私网地址在互联网上不可见。

公有云用户购买的云服务器实例、负载均衡实例等位于公有云服务提供商的数据中心内,而公有云数据中心内的实例管理一般采用私网ip地址,即用户的云服务器实例、负载均衡实例等这些实例的网络接口上配置的都是私网地址。因此用户无法直接通过这些实例网络接口上的私网地址直接访问这些实例资源,而需要借助弹性ip的功能才能访问。

弹性ip是公有云的一个基础功能,它为公有云内的用户实例提供了访问的入口,弹性ip的实现思想是:公有云服务提供商从网络运营商处申请公网ip地址池,然后将公网ip地址映射到公有云数据中心内的虚拟化实例网络接口的私网地址上,用户可以通过映射的公网ip访问数据中心内的实例资源。此外,弹性ip还需要提供qos(qualityofservice)限速和acl(accesscontrollist)等功能。

目前来看,基于openstack的公有云平台在弹性ip的实现上一般采用的是浮动ip的方式(floatingip),即openstack的外部网络直接挂到运营商的接入线路上,这样浮动ip直接分配的就是从运营商申请的公网ip,由openstack的内部l3agent实现浮动ip(公网ip)与实例内网地址(私网ip)的映射。这种方式存在比较明显的缺陷:

1)直接用l3agen做公网-私网地址映射,难以进行流量的管控,也不容易支持acl(accesscontrollist,访问控制列表);

2)对于从运营商拿到的多段碎片化地址池,需要建立多个外部网络,而这些外部网络中的地址不能复用,可能会导致地址资源利用不充分,比如有些外部网络中的地址池已经用完而导致用户无法新购买eip((elasticip,弹性ip)服务,而另一些外部网络中的地址则大量空闲;

3)openstack的浮动ip的qos管理粒度只能支持到ip地址级别,难以支持更细粒度的qos限速;

4)openstack的l3agent直接暴露在公网上,存在安全风险。

基于上述情况,本发明设计了一种公有云网络弹性ip实现方法及系统。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的公有云网络弹性ip实现方法及系统。

本发明是通过如下技术方案实现的:

一种公有云网络弹性ip实现方法,其特征在于,包括以下步骤:

1)将openstack原生的内网地址与公网地址直接映射机制扩展为两级映射机制,即先由内网地址到中间地址,再从中间地址映射到公网地址;

2)构建弹性ip服务资源池,openstack原生的l3agent实现从内网地址到中间地址的映射,弹性ip服务服务资源池中的节点实现从中间地址到公网地址的映射;

3)弹性ip服务资源池中的节点上分布式部署sdn控制器,用于云管平台交互和管理本地ovs(openvswitch)流表;

4)弹性ip服务资源池中的节点上的sdn控制器通过下发流表的方式实现中间地址与公网地址的映射,acl访问控制和灵活且细粒度弹性ip的qos限速功能。

所述步骤(1)中,中间地址是私有地址段。

基于本发明公有云网络弹性ip实现方法的系统,其特征在于:包括eip北向接口,eip配置数据库,eip运行状态数据库,eip服务层,eip服务代理和eip执行器,所述eip北向接口通过eip配置数据库连接到eip服务层,所述eip运行状态数据库也连接到eip服务层,所述eip服务层通过eip服务代理连接到eip执行器。

所述eip北向接口为上层云管平台或第三方管理平台提供管理eip服务的restful接口。

所述eip北向接口包括eip地址映射类接口,acl访问控制类接口和qos限速类接口,每种类型的接口又包含添加,删除,修改和查询功能接口。

所述eip配置数据库负责记录eip相关的用户配置数据;所述用户配置数据包括用户虚拟实例内网地址到公网地址的映射,用户eip的qos限速配置和用户eip的acl访问控制列表配置。

所述eip运行状态数据库负责记录eip数据平面节点的运行状态和当前各eip的分布及运行状态,包括eip数据平面节点是否工作正常以及某个用户的某个eip服务当前位于哪个eip数据平面节点上。

所述eip服务层是整个弹性ip实现的核心,其功能组件包括弹性ip地址映射管理,弹性ip服务集群高可用管理,弹性ip的qos限速策略管理,弹性ip的acl访问控制列表管理,弹性ip服务节点调度管理和弹性ip服务节点状态监控管理;

所述弹性ip地址映射管理负责两级地址映射的管理,第一级是调用openstack的neutron原生实现接口实现从虚拟实例的内网地址到中间地址(浮动ip地址)的映射,第二级是通过eip服务代理和eip执行器来实现从中间地址到公网地址的映射;

所述弹性ip服务集群高可用管理负责实现对弹性ip服务节点的可用性管理,当有弹性ip服务节点故障时,能够及时将其上的弹性ip相关服务迁移到其它可用节点上;

弹性ip的qos限速策略管理负责弹性ip的qos限速策略的配置和下发,将用户的弹性ip的qos策略下发给弹性ip代理,由弹性ip代理将具体限速规则下发到弹性ip执行器实现限速;

弹性ip的acl访问控制列表管理负责弹性ip的acl规则管理和下发,将用户的acl配置请求下发到弹性ip代理上,由弹性ip代理控制弹性ip执行器执行具体的acl控制;

弹性ip服务节点调度管理负责为弹性ip服务请求调度一个合适的弹性ip服务节点,由该弹性ip服务节点提供具体的弹性ip服务,包括地址转换,qos限速和acl控制;

弹性ip服务节点状态监控管理负责监控弹性ip服务节点的运行状态是否正常,当检测到有弹性ip服务节点故障或离线时,需要通知弹性ip服务集群高可用管理模块实现业务的迁移。

所述eip服务代理是位于弹性ip服务节点上的一个本地轻量级sdn控制器,一方面负责接收来自eip服务层的配置信息并将其转换为openflow流表下发到弹性ip执行器上,另一方面还负责维持与eip服务层的状态心跳,以保证系统的高可用性。

所述eip执行器是位于弹性ip服务节点上的一个基于openvswitch的虚拟bridge(br-eip),负责通过openflow协议与本地eip服务代理连接,通过eip服务代理下发地址转换流表,qos限速流表和acl策略流表,实现数据平面的具体功能。

本发明的有益效果是:该公有云网络弹性ip实现方法及系统,l3agent位于eip服务资源池后面,不会直接暴露在公网上,不仅能够实现精确的和细粒度的eip流量acl控制,而且两级映射还能实现eip地址的零浪费,杜绝地址的碎片化,同时能够实现灵活且细粒度的qos限速策略。

附图说明

附图1为本发明公有云网络弹性ip实现系统示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图和实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该公有云网络弹性ip实现方法,包括以下步骤:

1)将openstack原生的内网地址与公网地址直接映射机制扩展为两级映射机制,即先由内网地址到中间地址,再从中间地址映射到公网地址;

2)构建弹性ip服务资源池,openstack原生的l3agent实现从内网地址到中间地址的映射,弹性ip服务服务资源池中的节点实现从中间地址到公网地址的映射;

3)弹性ip服务资源池中的节点上分布式部署sdn控制器,用于云管平台交互和管理本地ovs(openvswitch)流表;

4)弹性ip服务资源池中的节点上的sdn控制器通过下发流表的方式实现中间地址与公网地址的映射,acl访问控制和灵活且细粒度弹性ip的qos限速功能。

所述步骤(1)中,中间地址是私有地址段。

基于该公有云网络弹性ip实现方法的系统,包括eip北向接口,eip配置数据库,eip运行状态数据库,eip服务层,eip服务代理和eip执行器,所述eip北向接口通过eip配置数据库连接到eip服务层,所述eip运行状态数据库也连接到eip服务层,所述eip服务层通过eip服务代理连接到eip执行器。

所述eip北向接口为上层云管平台或第三方管理平台提供管理eip服务的restful接口。

所述eip北向接口包括eip地址映射类接口,acl访问控制类接口和qos限速类接口,每种类型的接口又包含添加,删除,修改和查询功能接口。

所述eip配置数据库负责记录eip相关的用户配置数据;所述用户配置数据包括用户虚拟实例内网地址到公网地址的映射,用户eip的qos限速配置和用户eip的acl访问控制列表配置。

所述eip运行状态数据库负责记录eip数据平面节点的运行状态和当前各eip的分布及运行状态,包括eip数据平面节点是否工作正常以及某个用户的某个eip服务当前位于哪个eip数据平面节点上。

所述eip服务层是整个弹性ip实现的核心,其功能组件包括弹性ip地址映射管理,弹性ip服务集群高可用管理,弹性ip的qos限速策略管理,弹性ip的acl访问控制列表管理,弹性ip服务节点调度管理和弹性ip服务节点状态监控管理;

所述弹性ip地址映射管理负责两级地址映射的管理,第一级是调用openstack的neutron原生实现接口实现从虚拟实例的内网地址到中间地址(浮动ip地址)的映射,第二级是通过eip服务代理和eip执行器来实现从中间地址到公网地址的映射;

所述弹性ip服务集群高可用管理负责实现对弹性ip服务节点的可用性管理,当有弹性ip服务节点故障时,能够及时将其上的弹性ip相关服务迁移到其它可用节点上;

弹性ip的qos限速策略管理负责弹性ip的qos限速策略的配置和下发,将用户的弹性ip的qos策略下发给弹性ip代理,由弹性ip代理将具体限速规则下发到弹性ip执行器实现限速;

弹性ip的acl访问控制列表管理负责弹性ip的acl规则管理和下发,将用户的acl配置请求下发到弹性ip代理上,由弹性ip代理控制弹性ip执行器执行具体的acl控制;

弹性ip服务节点调度管理负责为弹性ip服务请求调度一个合适的弹性ip服务节点,由该弹性ip服务节点提供具体的弹性ip服务,包括地址转换,qos限速和acl控制;

弹性ip服务节点状态监控管理负责监控弹性ip服务节点的运行状态是否正常,当检测到有弹性ip服务节点故障或离线时,需要通知弹性ip服务集群高可用管理模块实现业务的迁移。

所述eip服务代理是位于弹性ip服务节点上的一个本地轻量级sdn控制器,一方面负责接收来自eip服务层的配置信息并将其转换为openflow流表下发到弹性ip执行器上,另一方面还负责维持与eip服务层的状态心跳,以保证系统的高可用性。

所述eip执行器是位于弹性ip服务节点上的一个基于openvswitch的虚拟bridge(br-eip),负责通过openflow协议与本地eip服务代理连接,通过eip服务代理下发地址转换流表,qos限速流表和acl策略流表,实现数据平面的具体功能。

下面以用户从公有云平台绑定公网ip到其虚机内网地址为实施例进行说明。

1、用户从云管平台操作绑定eip到其虚拟实例vm1。

2、云管平台调用eip北向接口将eip公网地址(117.0.0.2)与虚拟实例vm1的私网地址(192.168.1.2)映射请求发送给eip服务。

3、eip北向接口收到映射请求后,将公网地址到私网地址的映射请求记入eip配置数据库,并通知eip服务插件进行后续处理。

4、eip服务插件收到通知后,判断是地址映射类请求,则由地址映射管理模块调用openstack的neutron接口创建一个浮动ip地址(100.64.0.2),并将该浮动ip地址绑定到虚拟实例vm1上。

5、eip服务插件通过eip服务节点调度管理模块从当前可用的eip服务节点资源池中调度一个可用的eip服务节点node1,具体调度算法可灵活选择,比如roundrobin、dht(一致性哈希)、eip地址哈希等等。

6、eip服务插件的地址映射管理模块将浮动ip地址100.64.0.2到117.0.0.2的映射请求发送到node1上的eip代理。

7、node1上的eip代理收到映射请求后,将其转化为openflow的流表,并通过openflow协议下发到br-eip桥上,从而实现从浮动ip到公网ip的映射,至此,eip的地址映射流程完成。

8、当node1节点发生故障时(node1节点与eip服务插件的心跳中断超过一定周期),eip服务插件将启用eip集群高可用服务管理,从当前可用的eip服务资源池中重新调度一个可用的节点node2,并将之前在node1上配置的从100.64.0.2到117.0.0.2的映射重新下发给node2,实现eip服务的高可用。

上述过程描述了用户添加弹性ip地址映射的场景,删除的过程与此类似,acl和qos的创建和删除亦与地址映射的流程类似,只是无需向openstack发起floatingip的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1