floating IP 原理分析 - 每天5分钟玩转 OpenStack(107)

简介:

上一节我们通过 Web UI 创建为 cirros-vm3 分配了浮动 IP,今天将分析其工作原理。

首先查看 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 L3 服务连接不同 subnet,访问外网,以及 floating IP 的学习。
下节开始,我们将学习 Neutron 如何支持 VxLAN 网络类型。


blob.png

本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1868301

相关文章
ip route 实战案例《openstack 网络》
ip route 实战案例《openstack 网络》
130 0
openstack nova-network 创建绑定浮动ip地址
运行命令大家可以发现现在创建的虚拟机只有一个私网地址,如需直接访问的话需要绑定一个公网地址(不一定必须是外网地址,只要能上网就可以) [root@openstack ~]# nova-manage  network list id      IPv4               ...
2066 0
|
网络协议 Linux 网络安全
openstack 云平台一体化部署(超详细)
openstack 云平台一体化部署(超详细)
828 0
openstack 云平台一体化部署(超详细)
|
消息中间件 Kubernetes 关系型数据库
教程get | K8S部署OpenStack容器云(下)
如何借助OpenStack Kolla-K8S项目,通过K8S对OpenStack进行容器化部署?并最终部署一套All-In-One类型的OpenStack容器云?让我们继续部署: 部署kolla-kubernetes ■  覆盖默认的RBAC设置 通过kubectl replace命令进行默.
4437 0
|
8月前
|
存储 弹性计算 资源调度
openstack组件部署 3
openstack组件部署
|
4月前
|
存储 Ubuntu KVM
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
92 0
Ubuntu部署OpenStack踩坑指南:还要看系统版本?
|
4月前
|
存储 安全 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
285 0