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

上一节咱们经过 Web UI 建立为 cirros-vm3 分配了浮动 IP,今天将分析其工做原理。网络

首先查看 router 的 interface 配置:tcp

能够看到,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。 spa

可以 PING 通。 咱们经过 tcpdump 可用在 router 的 interface 上观察 floating IP 的行为。 orm

ext_net interface qg-b8b32a88-03 的 tcpdump 输出: router

可见,在外网接口 qg-b8b32a88-03 上,始终是经过 floating IP 10.10.10.3 与外网通讯。 接口

vlan101 interface qr-e17162c5-00 的 tcpdump 输出: ip

当数据转发到租户网络,地址已经变为 cirros-vm3 的租户 IP 172.16.101.3 了。 ci

小结一下:
1. floating IP 可以让外网直接访问租户网络中的 instance。这是经过在 router 上应用 iptalbes 的 NAT 规则实现的。
2. floating IP 是配置在 router 的外网 interface 上的,而非 instance,这一点须要特别注意。

至此,咱们已经完成了 Neutron L3 服务链接不一样 subnet,访问外网,以及 floating IP 的学习。
下节开始,咱们将学习 Neutron 如何支持 VxLAN 网络类型。

 

blob.png

相关文章
相关标签/搜索