虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
来源:互联网 发布:sql随机生成昵称 编辑:程序博客网 时间:2024/05/17 02:57
上一节我们创建了虚拟路由器“router_100_101”,并通过 ping 验证了 vlan100 和 vlan101 已经连通。
本节将重点分析其中的原理。
首先查看控制节点的 linux bridge 结构发生了什么变化。
vlan101 的 bridge 上多了一个 tape17162c5-00,从命名上可以推断该 TAP 设备对应 router_100_101 的 interface (e17162c5-00fa)。
vlan100 的 bridge 上多了一个 tapd568ba1a-74,从命名上可以推断该 TAP 设备对应 router_100_101 的 interface (d568ba1a-740e)。
当前网络结构如图所示:
但发现一个问题:两个 TAP 设备上并没有配置相应的 Gateway IP。
如果没有 Gateway IP,router_100_101 是如何完成路由的呢?
答案是:
l3 agent 会为每个 router 创建了一个 namespace,通过 veth pair 与 TAP 相连,然后将 Gateway IP 配置在位于 namespace 里面的 veth interface 上,这样就能提供路由了。
通过 ip netns 查看 namespace:
router 对应的 namespace 命名为 qrouter-< router id>。
通过 ip netns exec < namespace name> ip a 命令查看 router_100_101 namespace 中的 veth interface 配置。
namespace 中有两个 interface:
- qr-e17162c5-00 上设置了 Gateway IP 172.16.101.1,与 root namespace 中的 tape17162c5-00 组成 veth pair。
- qr-d568ba1a-74 上设置了 Gateway IP 172.16.100.1,与 root namespace 中的 tapd568ba1a-74 组成 veth pair。
网络结构如图所示:
namespace 中的路由表也保证了 subnet_172_16_100_0 和 subnet_172_16_101_0 之间是可以路由的。
分析到这里,我们已经搞清楚 router_100_101 是如何打通 vlan100 和 vlan 101 了。
但这里有一个关键问题需要进一步分析:
为什么要把 router_100_101 放到 namespace 中?
下一节我们将详细分析这个问题。
- 虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
- 用虚拟 router 连通 subnet - 每天5分钟玩转 OpenStack(141)
- Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
- 虚拟化 - 每天5分钟玩转 OpenStack(2)
- CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)
- 外网访问原理分析 - 每天5分钟玩转 OpenStack(105)
- floating IP 原理分析 - 每天5分钟玩转 OpenStack(107)
- 创建 router 连通 subnet- 每天5分钟玩转 OpenStack(100)
- 将 ext_net 连接到 router - 每天5分钟玩转 OpenStack(145)
- KVM 存储虚拟化 - 每天5分钟玩转 OpenStack(7)
- KVM 网络虚拟化基础 - 每天5分钟玩转 OpenStack(9)
- 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)
- OpenStack 架构 - 每天5分钟玩转 OpenStack(15)
- flat network 原理与配置 - 每天5分钟玩转 OpenStack(86)
- Neutron Vlan Network 原理- 每天5分钟玩转 OpenStack(92)
- L2 Population 原理 - 每天5分钟玩转 OpenStack(113)
- 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)
- OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
- DB2数据库补丁升级 FixPacks
- HDU 2209翻纸牌游戏 解题报告
- Android中加载大图片放置OOM异常
- 抓取斗鱼直播弹幕
- HTML笔记之特殊符号加a标签
- 虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
- 【bzoj 1237】[SCOI2008]配对 dp
- 动态规划HDU题集
- 堆与栈的比较分析
- Android dumpsys 使用之分析网络使用情况
- 博客前记
- btrace实际案例分析
- c++/easyx之烟花
- DB2数据库 版本升级