虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)
上一节我们创建了虚拟路由器“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 中?
下一节我们将详细分析这个问题。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
创建 router 连通 subnet- 每天5分钟玩转 OpenStack(100)
上一节我们为 Neutron 虚拟路由器配置好了 L3 agent,今天将创建虚拟路由器“router_100_101”,打通 vlan100 和 vlan101。 打开操作菜单 Project -> Network -> Routers。 点击 “Create Router” 按钮 router 命名为 “router_100_101”,点击 “Create Router” 按钮确认。 router_100_101 创建成功。 接下来需要将 vlan100 和 vlan101 连接到 router_100_101。 点击 “router_100_101” 链接进入 router 的配置页面,在 “Interfaces” 标签中点击 “Add Interface” 按钮。 选择 vlan101 的 subnet_172_16_101_0,点击 “Add Interface” 确认。 用同样的方法添加 vlan100 的 subnet_172_16_100_0。 完成后,可以看到 router_100_101 有了两个 interface,其 IP 正好是 subnet 的 ...
- 下一篇
【Docker江湖】之hub上镜像的使用,Dockerfile语法解读和数据管理
打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处: http://blog.csdn.net/gamer_gyt 博主微博: http://weibo.com/234654758 Github: https://github.com/thinkgamer Docker江湖 【Docker江湖】之Docker部署与理解 【Docker江湖】之hub上镜像的使用,Dockerfile语法解读和数据管理 【Docker江湖】之创建带有SSH服务的镜像 写在前边的话 其实我很感谢我现在的工作,作为现阶段的我,能够与这样一群人一起工作,算是很幸运了吧,他们都很厉害,从他们身上我能学到很多东西,就比如说最近在研究的Docker。 Docker的方便之处,在于快捷的交付与启动,他告别了传统虚拟机的资源消耗和内存占用,同时在于强大的社区支持,不同的人把自己的需求融合到docker中,放到官方给定的Docker hub中,以便于更多的人使用。 当我们使用Docker的时候应该追求的是当我们启动docker的时候我们的所封装的应用也随着启动,而不是说进入容器再启动相应的应用,那样我们所使用...
相关文章
文章评论
共有0条评论来说两句吧...