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

简介: 上一节我们通过 Web UI 创建为 cirros-vm3 分配了浮动 IP,今天将分析其工作原理。首先查看 router 的 interface 配置:可以看到,floating IP 已经配置到 router 的外网 interface qg-b8b32a88-03 上。

上一节我们通过 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

目录
相关文章
|
安全 网络安全
Neutron 默认安全组规则 - 每天5分钟玩转 OpenStack(115)
Neutron 为 instance 提供了两种管理网络安全的方法: 安全组(Security Group)和虚拟防火墙。 安全组的原理是通过 iptables 对 instance 所在计算节点的网络流量进行过滤。
1255 0
|
Linux 网络虚拟化 网络架构
虚拟 ​router 原理分析- 每天5分钟玩转 OpenStack(101)
上一节我们创建了虚拟路由器“router_100_101”,并通过 ping 验证了 vlan100 和 vlan101 已经连通。 本节将重点分析其中的原理。 首先我们查看控制节点的 linux bridge 结构发生了什么变化。
1450 0
|
Linux API 数据库
Neutron 如何支持多种 network provider - 每天5分钟玩转 OpenStack(70)
Neutron 的架构是非常开放的,可以支持多种 network provider,只要遵循一定的设计原则和规范。本节我们将开始讨论这个主题。先讨论一个简单的场景:在 Neutorn 中使用 linux bridge 这一种 network provider。
1331 0
|
API 数据库 安全
理解 Neutron Server 分层模型 - 每天5分钟玩转 OpenStack(69)
本节开始讨论 Neutron 的各个服务组件,首先学习 Neutron Server 。 上图是 Neutron Server 的分层结构,至上而下依次为: Core API对外提供管理 network, subnet 和 port 的 RESTful API。
1223 0
|
API
Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)
前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件。 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack 由控制节点和计算节点组成。
1276 0
|
网络虚拟化 网络架构 网络协议
Neutron 网络基本概念 - 每天5分钟玩转 OpenStack(66)
上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念。 Neutron 管理的网络资源包括 Network,subnet 和 port,下面依次介绍。 network network 是一个隔离的二层广播域。
1505 0
|
Linux 网络架构
VXLAN 概念(Part II)- 每天5分钟玩转 OpenStack(109)
上一节我们介绍了 VXLAN 的封装格式以及 VTEP。今天我们将通过例子讨论 VXLAN 封装和转发包的过程,以及 Linux 对 VXLAN 的原生支持。 VXLAN 包转发流程 VXLAN 在 VTEP 间建立隧道,通过 Layer 3 网络传输封装后的 Layer 2 数据。
1329 0
|
网络虚拟化 Linux 数据中心
VXLAN 概念(Part I) - 每天5分钟玩转 OpenStack(108)
除了前面讨论的 local, flat, vlan 这几类网络,OpenStack 还支持 vxlan 和 gre 这两种 overlay network。 overlay network 是指建立在其他网络上的网络。
1793 0
|
Linux
用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)
Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 如何独立的为每个 network 服务呢? 答案是通过 Linux Network Namespace 隔离,本节将详细讨论。
1124 0
|
安全 网络安全 网络协议
应用新安全组 - 每天5分钟玩转 OpenStack(116)
Neutron 默认的安全组规则会禁止掉所有从外面访问 instance 的流量。 本节我们会修改安全组的配置,允许 ping 和 ssh instance。有两种方法可以达到这个目的: 1. 修改 “default” 安全组。
1345 0