天天看点

OpenStack floating IP

1.弹性公网IP、私有IP、浮动IP、虚拟IP之间区别

弹性公网IP是可以直接访问Internet的IP地址。一个弹性公网IP只能给一个ECS使用。

私有IP是公有云内网所使用的IP地址,用于内网通信,私有IP不能访问Internet。

浮动IP与弹性公网IP功能类似,都是公网IP,用于连接公网,主要不同点在于浮动IP接口无法配置带宽参数。

虚拟IP(即VIP)是一个未分配给真实弹性云服务器网卡的IP地址。主要用在弹性云服务器的主备切换,达到高可用性HA(High Availability)的目的。当主服务器发生故障无法对外提供服务时,动态将虚拟IP切换到备服务器,继续对外提供服务。

2. 浮动IP定义

缺省情况下实例会被赋予固定ip,这时并不能保证实例会马上可以从外面访问到,一般来说需要配置防火墙来允许公共ip,然后建立一条NAT规则从公共ip到私有ip的映射。

OpenStack引入了一个叫浮动ip的概念,浮动ip是一些可以从外部访问的ip列表,通常从isp哪里买来的。

浮动ip缺省不会自动赋给实例,用户需要手动从地址池里抓取然后赋给实例。一旦用户抓去后,他就变成这个ip的所有者,可以随意赋给自己拥有的其他实例。如果实例死掉了的话,用户也不会失去这个浮动ip,可以随时赋给其他实例。暂时不支持为了负载均衡多实例共享一个浮动ip。

而对于固定ip来说,实例启动后获得的ip也是自动的,不能指定某一个。所以当一个VM歇菜了,再启动也许固定ip就换了一个。

系统管理员可以配置多个浮动ip池,这个ip池不能指定租户,每个用户都可以去抓取。多浮动ip池是为了考虑不同的isp服务提供商,免得某一个isp出故障带来麻烦。

如果运行的是企业云,浮动ip池就是那些openstack外的数据中心都能访问到的ip。

浮动ip机制给云用户提供了很多灵活性,也给系统管理员减少了安全风险,尽量只让OpenStack软件去改防火墙会安全些。

注意:

floating IP 能够让外网直接访问租户网络中的 instance。这是通过在 router 上应用 iptalbes 的 NAT 规则实现的。

floating IP 是配置在 router 的外网 interface 上的,而非 instance,这一点需要特别注意。

  1. 浮动IP是由外部网络进行创建
创建浮动IP
 {
    "floating_network_id": "f9a11240-e182-4e3b-b8dd-e2ed94f4c499",    //外部网络
    "port_id": "",				
    "subnet_id": "1fac35c1-a7e9-4203-a87a-65aad05a70fe",  //外部子网
    "fixed_ip_address": "",
    "floating_ip_address": "",
    "description": "create the floating ip for iaas testing...",
    "dns_domain": "",
    "dns_name": ""
}
           
修改浮动IP
port 为null 时,解绑接口
{
    "floatingip_device_id":"755221d4-814f-4cc8-8808-e4d9e9cbcc20",        //   浮动IP
    "port_id": "98408ba8-06dd-49ca-ae51-9935204e4e63",              // 绑定的内网port_id ,
    "fixed_ip_address": "10.1.17.167",                  //内网端口固定的IP
    "description": "test...."
}
//前提是新建的路由router种,有该内部网络的接口
           

浮动IP与网卡建立好映射

OpenStack floating IP

必须有外部网络的路由

OpenStack floating IP

路由中增加内部网络的内部接口。

OpenStack floating IP

现在可以用内部网络的接口了,通过浮动IP去绑定内部网络的接口

OpenStack floating IP

继续阅读