如果需要从外网直接访问 instance,则可以利用 floating IP。
 
下面是关于 floating IP 必须知道的事实:
1. floating IP 提供静态 NAT 功能,建立外网 IP 与 instance 租户网络 IP 的一对一映射。 
2. floating IP 是配置在 router 提供网关的外网 interface 上的,而非 instance 中。 
3. router 会根据通信的方向修改数据包的源或者目的地址。
 
下面我们通过实验深入学习 floating IP。
点击 Project -> Compute -> Access & Security 菜单,打开 Floating IPs 标签页。
点击 “Allocate IP To Project” 按钮。
 
floating IP Pool 为 ext_net,点击 “Allocate IP” 按钮。
 
 
从 Pool 中成功分配了一个 IP 10.10.10.3。 下面我们将它分配给 cirror-vm3,点击 “Associate” 按钮。
 
 
在下拉列表中选择 cirror-vm3,点击 “Associate” 按钮。
 
 
分配成功,floating IP 10.10.10.3 已经对应到 cirros-vm3 的租户 IP 172.16.101.3。
 
首先查看 router 的 interface 配置:
可以看到,floating IP 已经配置到 router 的外网 interface qg-b8b32a88-03 上。 
 
查看 router 的 NAT 规则:
iptables 增加了两条处理 floating IP 的规则: 
1. 当 router 接收到从外网发来的包,如果目的地址是 floating IP 10.10.10.3,将目的地址修改为 cirros-vm3 的 IP 172.16.101.3。这样外网的包就能送达到 cirros-vm3。 
2. 当 cirros-vm3 发送数据到外网,源地址 172.16.101.3 将被修改为 floating IP 10.10.10.3。
 
 
下面我们通过 PING 测试一下。 在我的实验环境中,10.10.10.1 是外网中的物理交换机,现在让它 PING cirros-vm3。
能够 PING 通。 
 
我们通过 tcpdump 可用在 router 的 interface 上观察 floating IP 的行为。
ext_net interface qg-b8b32a88-03 的 tcpdump 输出:
可见,在外网接口 qg-b8b32a88-03 上,始终是通过 floating IP 10.10.10.3 与外网通信。
 
vlan101 interface qr-e17162c5-00 的 tcpdump 输出:
当数据转发到租户网络,地址已经变为 cirros-vm3 的租户 IP 172.16.101.3 了。
 
 
小结一下: 
1. floating IP 能够让外网直接访问租户网络中的 instance。这是通过在 router 上应用 iptalbes 的 NAT 规则实现的。 
2. floating IP 是配置在 router 的外网 interface 上的,而非 instance,这一点需要特别注意。
 

Neutron:浮动ip的更多相关文章

  1. OpenStack neutron 环境云主机使用keepalived vip + 给vip绑定浮动IP 步骤及注意事项

    在openstack环境创建的多台云主机配置keepalived作主备,默认情况下无法生效,直接对云主机一张网卡配置两个IP进行测试也是同样结果,因为: 可以看到,port所在的宿主机上iptable ...

  2. neutron floating ip 限速

    查看浮动ip的id [root@10e131e69e14 oz]# openstack floating ip show 36.111.0.197 +---------------------+--- ...

  3. 浮动ip

    浮动ip 其实就是动态ip, 静态IP是固定不变的,不管你用不用这个IP上网,这个IP都是属于你的动态IP则是在使用的时候由DHCP服务器临时分配给你的,不用则不分配在网络中如果设置了一部分静态IP地 ...

  4. OpenStack里的浮动ip

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

  5. Linux配置浮动IP实现WEB高可用

    在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP) 本篇文章主要讲实际操作步 ...

  6. 排查OPENSTACK浮动IP被占用记录

    在openstack上新建机器时,发现用户无法登陆. 检查该机器的22端口,返回 Connection refused.   ping该IP,发现可以ping通.   释放该浮动ip,然后去ping该 ...

  7. 浮动IP(Floating IPs):开始构建你的高可用性的应用

    高可用性是所有生产环境的关键.开发者因此可以高枕无忧因为他们知道他们的应用被设计为可以承受住故障. 今天,我们非常激动的宣布我们应用了浮动IP技术.浮动IP指的是一个IP地址可以立即从一个Drople ...

  8. Linux配置浮动IP

    在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:https://blog.csdn.net/readi ...

  9. 浮动IP(FLOAT IP)

    主要谈一谈关于浮动IP的东西,介绍下浮动IP是什么 1.为什么要有浮动IP这个东西       现在有一个场景,在一台Linux上部署一个web应用,应用跑在tomcat里面,linux网卡上的ip是 ...

  10. openstack环境下的虚拟机通过浮动IP访问后能ping通外网IP不能ping通域名

    1.环境简介 openstack环境下构造Ubuntu系统的VM,VM配置受管子网和自管子网,同时绑定浮动IP 2.通过浮动IP访问VM后,ping www.baidu.com失败,但是通过IP地址p ...

随机推荐

  1. 吴恩达机器学习笔记60-大规模机器学习(Large Scale Machine Learning)

    一.随机梯度下降算法 之前了解的梯度下降是指批量梯度下降:如果我们一定需要一个大规模的训练集,我们可以尝试使用随机梯度下降法(SGD)来代替批量梯度下降法. 在随机梯度下降法中,我们定义代价函数为一个 ...

  2. ASP.NET Core中使用GraphQL - 第六章 使用EF Core作为持久化仓储

    ASP.NET Core中使用GraphQL ASP.NET Core中使用GraphQL - 第一章 Hello World ASP.NET Core中使用GraphQL - 第二章 中间件 ASP ...

  3. 异常 - 虚拟机初始化错误 - Error occurred during initialization of VM

    目录 1 环境配置信息 1.1 服务器配置信息 1.2 Tomcat启动参数 2 问题描述 3 问题解决 4 关于vm.overcommit_memory参数 4.1 vm.overcommit_me ...

  4. SpringBoot进阶教程(二十二)集成RabbitMQ---MQ实战演练

    RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统.他遵循Mozilla Public License开源协议.RabbitMQ是流行的开源消息队列系统,用erlang语言开发.Rab ...

  5. Redis缓存你必须了解的!

    不管你是从事Python.Java.Go.PHP.Ruby等等… Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了set value.get value两 ...

  6. 微信公众号开发C#系列-4、获取接口调用凭证

    概述 获取接口调用凭证实质就是获取access_token.在微信接口开发中,许多服务的使用都离不开Access Token,Access Token相当于打开这些服务的钥匙,正常情况下会在7200秒 ...

  7. springcloud情操陶冶-springcloud config server(一)

    承接前文springcloud情操陶冶-springcloud context(二),本文将在前文基础上浅析下ConfigServer的工作原理 前话 根据前文得知,bootstrapContext引 ...

  8. .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置

    新建控制台应用(.Net Core)程序 添加json文件,命名为appsettings.json,设置文件属性 如果较新则复制.添加内容如下 { "MyWords" : &quo ...

  9. php禁用函数设置及查看方法详解

    这篇文章主要介绍了php禁用函数设置及查看方法,结合实例形式分析了php禁用函数的方法及使用php探针查看禁用函数信息的相关实现技巧,需要的朋友可以参考下 本文实例讲述了php禁用函数设置及查看方法. ...

  10. 关于elementui表单数字校验踩坑记

    需求:1.输入类型是数字.2.数字大小有限制.3.非必填 做法: <el-form-item label="熟悉程度" prop="averageCaseRunTi ...