虚拟?router原理分析-每天5分钟玩转openstack(101)

CloudMan CloudMan     2022-08-09     233

关键词:

技术分享

上一节我们创建了虚拟路由器“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:

  1. qr-e17162c5-00 上设置了 Gateway IP 172.16.101.1,与 root namespace 中的 tape17162c5-00 组成 veth pair。

  2. 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 中?

下一节我们将详细分析这个问题。

 

技术分享








外网访问原理分析-每天5分钟玩转openstack(105)

...们会分析隐藏在表象之下的原理。将外网连接到Neutron的虚拟路由器,这样instance才能访问外网。点击菜单Project->Network->Routers进入router列表。点击router_100_101的“SetGateway”按钮。在“ExternalNetwork”下拉列表中选择 查看详情

floatingip原理分析-每天5分钟玩转openstack(107)

...-vm3 分配了浮动IP,今天将分析其工作原理。首先查看router的interface配置:可以看到,floatingIP已经配置到router的外网interfaceqg-b8b32a88-03上。查看router的NAT规则:iptables增加了两条处理floatingIP的规则:1.当router接收到从外网发来... 查看详情

neutronrouter工作原理-每天5分钟玩转openstack(142)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170124-1485241323605058372.jpg"/>上一节我们创建了router连通了vlan100和vlan101,今天分析router是如何工作的。首先查看控制节点的网络结构发生了什么变化:650)this.w 查看详情

cpu和内存虚拟化原理-每天5分钟玩转openstack

...得了解一些KVM的实现机制,这对以后的工作会有帮助。CPU虚拟化KVM的虚拟化是需要CPU硬件支持的。还记得我们在前面的章节讲过用命令来查看CPU是否支持KVM虚拟化吗?[email protected]:~#egrep-o‘(vmx|svm)‘/proc/cpuinfovmx如果有输出vmx... 查看详情

理解neutronfwaas-每天5分钟玩转openstack(117)

...用来控制子网之间的访问。FWaaS的原理也一样,是在Neutron虚拟router上应用防火墙规则,控制进出租 查看详情

whynamespace?-每天5分钟玩转openstack(102)

上一节我们讨论了Neutron将虚拟router放置到namespace中实现了不同subnet之间的路由。今天探讨为什么要用namespace封装router?回顾一下前面的网络逻辑结构图:我们需要讨论一个深层次的问题:为什么不直接在tape17162c5-00和tapd568ba1a-74... 查看详情

serviceip原理-每天5分钟玩转docker容器技术(137)

ServiceClusterIP是一个虚拟IP,是由Kubernetes节点上的iptables规则管理的。可以通过 iptables-save 命令打印出当前节点的iptables规则,因为输出较多,这里只截取与 httpd-svc ClusterIP 10.99.229.179 相关的信息:这两条规... 查看详情

创建floatingip-每天5分钟玩转openstack(106)

...复习一下前面我们讨论的知识。当租户网络连接到Neutronrouter,通常将router作为默认网关。当router接收到instance的数据包,并将其转发到外网时:1.router会修改包的源地址为自己的外网地址,这样确保数据包转发到外网,并能够从外... 查看详情

实践neutronfwaas-每天5分钟玩转openstack(118)

...cirros-vm2分别位于网络vlan100和vlan101。vlan100和vlan101之间由虚拟路由器test_router连接。网络拓扑如下:在test_r 查看详情

创建floatingip-每天5分钟玩转openstack(106)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161030-1477803570604063398.jpg"/>先复习一下前面我们讨论的知识。当租户网络连接到Neutronrouter,通常将router作为默认网关。当router接收到instance的数据包,并将其转发 查看详情

虚拟化-每天5分钟玩转openstack

...OpenStack是云操作系统,要学习OpenStack,首先需要掌握一些虚拟化和云计算的相关知识。 虚拟化虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件... 查看详情

neutron默认安全组规则-每天5分钟玩转openstack(115)

...供了两种管理网络安全的方法:安全组(SecurityGroup)和虚拟防火墙。安全组的原理是通过iptables对instance所在计算节点的网络流量进行过滤。虚拟防火墙则由NeutronFirewallasaService(FWaaS)高级服务提供。其底层也是使用iptables,在Ne... 查看详情

学习—虚拟化-每天5分钟玩转openstack

关于虚拟化的知识:http://virtualman.blog.51cto.com/200540/53299/一:虚拟化的发展从1998年开始,VMware创造性的将虚拟化引入x86平台,通过二进制翻译(BT)和直接执行的模式,让x86芯片可以同时运行不同的几种操作系统,并且确保性能... 查看详情

ovsvxlanflow分析-每天5分钟玩转openstack(149)

...4.jpg"/>OVS的数据流向都是由Flow规则控制的,今天我们就来分析VxLAN的Flow规则。提个醒:这可能是本教程最烧脑的一节,let‘srockit!下面分析控制节点上 查看详情

如何部署calico网络?-每天5分钟玩转docker容器技术(67)

Calico是一个纯三层的虚拟网络方案,Calico为每个容器分配一个IP,每个host都是router,把不同host的容器连接起来。与VxLAN不同的是,Calico不对数据包做额外封装,不需要NAT和端口映射,扩展性和性能都很好。与其他容器网络方案相... 查看详情

neutron默认安全组规则-每天5分钟玩转openstack(115)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161119-1479556481949092972.jpg"/>Neutron为instance提供了两种管理网络安全的方法:安全组(SecurityGroup)和虚拟防火墙。安全组的原理是通过iptables对instanc 查看详情

获取dhcpip过程分析-每天5分钟玩转openstack(91)

650)this.width=650;"style="float:none;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160925-1474785607687031635.png"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-imag 查看详情

ovsvxlan底层结构分析-每天5分钟玩转openstack(148)

650)this.width=650;"src="https://mmbiz.qlogo.cn/mmbiz_png/Hia4HVYXRicqG9W3SoOWkxaUakqjaibOKIN49zbnZ96HUib7MRFzRAM5QX6JxProdzJV2iaBhyfJzKkNyIPSMKr1rRw/0?wx_fmt=png"/>上一节创建了vxlan100_net并部署instance,今天我们来 查看详情