前面已经创建了两个 OVS local network,今天详细分析它们之间的连通性。

launch 新的 instance “cirros-vm3”,网络选择 second_local_net

cirros-vm3 分配到的 IP 为 172.16.1.102

cirros-vm3 被 schedule 到控制节点,其虚拟网卡也连接到 br-int。

当前的控制节点上的网络结构如下:

下面我们讨论一个有趣的问题:cirros-vm3 能否 Ping 到 cirros-vm1 呢?

根据我们在 linux bridge 中学到的知识,既然 cirros-vm3 和 cirros-vm1 都连接到同一个网桥 br-int,那么它们之间应该是可以 Ping 通的。
但另一方面,根据 Neutron 的设计,不同 local 网络之间是无法通信的。那么事实到底是如何呢?

实验证明 cirros-vm3 无法 Ping 到 cirros-vm1。
下面我们需要解释同一个网桥上的 port 为什么不能通信。

让我们重新审视一下 br-int 上各个 port 的配置。

这次我们注意到,虚拟网卡和 DHCP 对应的 port 都有一个特殊的 tag 属性。
first_local_net 相关 port 其 tag 为 1;
second_local_net 相关 port 其 tag 为 2。

玄机就在这里了: Open vSwitch 的每个网桥都可以看作一个真正的交换机,可以支持 VLAN,这里的 tag 就是 VLAN ID。

br-int 中标记 tag 1 的 port 和 标记 tag 2 的 port 分别属于不同的 VLAN,它们之间是隔离的。

需要特别说明的是: Open vSwitch 中的 tag 是内部 VLAN,用于隔离网桥中的 port,与物理网络中的 VLAN 没有关系。

我们将 tag 信息添加到网络结构图中,如下所示:



到这里,OVS local network 的内容已经讨论完了,下节开始学习 flat network。

OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)的更多相关文章

  1. OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)

    上一节我们启用了 Open vSwitch,本节将查看当前的网络状态并介绍 Open vSwitch 涉及的各种网络设备 初始网络状态 查看一下当前的网络状态. 控制节点 ifconfig 显示控制节 ...

  2. OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)

    OVS 的数据流向都是由 Flow 规则控制的,今天我们就来分析 VxLAN 的 Flow 规则.提个醒:这可能是本教程最烧脑的一节,let's rock it ! 下面分析控制节点上的 flow r ...

  3. 分析 OVS 如何实现 vlan 隔离 - 每天5分钟玩转 OpenStack(140)

    上一节我们完成了 OVS vlan 环境的搭建,当前拓扑结构如下: cirros-vm1 位于控制节点,属于 vlan100. cirros-vm2 位于计算节点,属于 vlan100. cirros ...

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

    本节我们会将上节创建的 ext_net 连接到 router,并验证内外网的连通性. 更重要的,我们会分析隐藏在表象之下的原理. 将外网连接到 Neutron 的虚拟路由器,这样 instance 才 ...

  5. 创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)

    前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron ...

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

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

  7. 虚拟 ​router 原理分析- 每天5分钟玩转 OpenStack(101)

    上一节我们创建了虚拟路由器"router_100_101",并通过 ping 验证了 vlan100 和 vlan101 已经连通. 本节将重点分析其中的原理. 首先我们查看控制节 ...

  8. 每天5分钟 玩转OpenStack 目录列表

    最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...

  9. 创建 OVS Local Network - 每天5分钟玩转 OpenStack(129)

    上一节我们完成了 OVS 的准备工作,本节从最基础的 local network 开始学习.local network 不会与宿主机的任何物理网卡连接,流量只被限制在宿主机内,同时也不关联任何的 VL ...

随机推荐

  1. Online Judge(OJ)搭建(第一版)

    搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...

  2. Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记

    以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...

  3. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  4. ExtJS 4.2 组件的查找方式

    组件创建了,就有方法找到这些组件.在DOM.Jquery都有各自的方法查找元素/组件,ExtJS也有自己独特的方式查找组件.元素.本次从全局查找.容器内查找.form表单查找.通用组件等4个方面介绍组 ...

  5. Android公共title的应用

    我们在开发Android应用中,写每一个页面的时候都会建一个title,不是写一个LinearLayout就是写一个RelativeLayout,久而久之就会觉得这样繁琐,尤其几个页面是只是标题不一样 ...

  6. PHP-----文件系统的交互

    本文讲解php中于文件交互中所使用的函数 代码示例 <html> <head> <title> File Detail </title> </he ...

  7. angular 源码分析 1 - angularInit()

    angularjs 是个神奇的框架,由于我的好奇,想了解她的内部工作原理,只能一步一步的走进她,靠近她,和她深入的交流. angularjs 的入口是什么样子的呢?一起掀起她的盖头吧. 在这里我只讲方 ...

  8. Jquery(1)

    鼠标点击事件: <input type="button" value="测试" onclick="test()" /> < ...

  9. C#制作简易屏保

    前言:前段时间,有个网友问我C#制作屏保的问题,我瞬间懵逼了(C#还可以制作屏保!).于是我去查阅相关资料,下面把C#如何制作屏保的过程及我学习过程的心得也记录下来,希望对需要的人能有帮助. 基本思路 ...

  10. git 命令总结

    1 删除分支 git push origin :branch name(Task_******) //删除远程分支 git branch -D branch name(Task_******)     ...