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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值