flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着:
每个 flat network 都会独占一个物理网卡。
 

在 ML2 配置中 enable flat network

在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 flat network 相关参数。
tenant_network_types = flat
指定普通用户创建的网络类型为 flat。 需要注意的是:因为 flat 网络与物理网卡一 一对应,一般情况下租户网络不会采用 flat,这里只是示例。
 
接着需要指明 flat 网络与物理网卡的对应关系。
 
如上所示:
1. 在 [ml2_type_flat] 中通过 flat_networks 定义了一个 flat 网络,label 为 “default”。
2. 在 [linux_bridge] 中通过 physical_interface_mappings 指明 default 对应的物理网卡为 eth1。
 

理解 label 与 ethX 的关系

label 是 flat 网络的标识,在创建 flat 时需要指定 label(后面演示)。label 的名字可以是任意字符串,只要确保各个节点 ml2_conf.ini 中的 label 命名一致就可以了。
各个节点中 label 与物理网卡的对应关系可能不一样。这是因为每个节点可以使用不同的物理网卡将 instance 连接到 flat network。
 
例如对于 label 为 “default” 的 flat network,节点 A 可能使用 eth1,配置为:
physical_interface_mappings = default:eth1
而节点 B 则可能使用 eth2,配置为:
physical_interface_mappings = default:eth2
 

支持多个 flat

如果要创建多个 flat 网络,需要定义多个 label,用逗号隔开,当然也需要用到多个物理网卡,如下所示:
[ml2_type_flat]
flat_networks = flat1,flat2
[linux_bridge]
physical_interface_mappings = flat1:eth1,flat2:eth2
 

 
在dashoard创建flat network
 
执行 brctl show,查看控制节点当前的网络结构。
Neutron 自动新建了 flat_net 对应的网桥 brqf153b42f-c3,以及 dhcp 的 tap 设备 tap19a0ed3d-fe。 另外,tap19a0ed3d-fe 和物理网卡 eth1 都已经连接到 bridge。
 
此时 flat_net 结构如图所示:
 
 
创建实例连接flat network,并创建在控制节点
 
当前 flat_net 的结构如下:
 
 
创建第二个实例:
cirros-vm2 被 schedule 到计算节点,对应的 tap 设备为 tapfb3fb197-24,并且连接到 bridge。
这里有两点需要提醒:
  1. 因为计算节点上没有 hdcp 服务,所以 brctl show 中没有 dhcp 对应的 tap 设备。
  2. 计算节点上 bridge 的名称与控制节点上一致,都是 brqf153b42f-c3,表明是同一个 network。
当前 flat_net 的结构如下:
 
测试两个实例的连通性,发现是可以相互通信的

Neutron flat network 学习的更多相关文章

  1. Neutron Vlan Network 学习

    vlan network 是带 tag 的网络,是实际应用最广泛的网络类型.    下图是 vlan100 网络的示例.   1. 三个 instance 通过 TAP 设备连接到名为 brqXXXX ...

  2. Neutron local network 学习

    local network 的特点是不会与宿主机的任何物理网卡相连,也不关联任何的 VLAN ID.   对于每个 local netwrok,ML2 linux-bridge 会创建一个 bridg ...

  3. 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)

    前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...

  4. Neutron Vlan Network 原理- 每天5分钟玩转 OpenStack(92)

    前面我们陆续学习了 Neutron local network,flat network 和 DHCP 服务,从本节将开始讨论 vlan network. vlan network 是带 tag 的网 ...

  5. Neutron 理解 (1): Neutron 所实现的网络虚拟化 [How Neutron Virtualizes Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的网络虚拟化 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  6. 创建 OVS flat network - 每天5分钟玩转 OpenStack(134)

    上一节完成了 flat 的配置工作,今天创建 OVS flat network.Admin -> Networks,点击 "Create Network" 按钮. 显示创建页 ...

  7. 创建 flat network - 每天5分钟玩转 OpenStack(87)

    上一节我们讨论了 flat network 的原理,今天就来创建 "flat_net" 并分析底层网络的实现. 打开菜单 Admin -> Networks,点击 “Crea ...

  8. flat network 原理与配置 - 每天5分钟玩转 OpenStack(86)

    flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡. 上图中 eth1 桥接 ...

  9. 部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)

    上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性. launch 新的 instance "cirros-vm1",网 ...

随机推荐

  1. c#源码的执行过程

    我想也许要写些东西,记录我做程序员的日子吧 ================================================ 要讲到C#源码的执行过程 首先要提下程序集,因为Clr并不 ...

  2. [android]android项目的目录结构

    /**************2016年4月23更新*********************/ 相关技术: 知乎:用eclipse做Android开发,新建工程时应如何选择Android的版本? 肥 ...

  3. 此博客停更,转至lustforlife.cn

    新博客地址:lustforlife.cn

  4. sql server去掉某个字段前后空格问题

    数据通过页面表单保存到数据库,由于有个选项是一个树形的下拉框,导致保存的这个字段的数据前面有空格,在sql server中可以使用 SELECT LTRIM(RTRIM(BelongPartyCode ...

  5. html的标签分类————可以上传的数据篇

    html的标签可以分为: 块级标签:div(白板),H系列(加大加粗,H1—H7,字体一般逐渐变小,一般用作标题),p标签(段落之间有间距) 行内标签:span(白板) 此外,标签之间是可以嵌套的.为 ...

  6. Vue2.5笔记:Vue的实例与生命周期

    理解与认识 Vue 的实例是我们学习 Vue 非常重要的一步,也是非常必须的,因为实例是它的一个起点,也是它的一个入口,只有我们创建一个 Vue 实例之后,我们才行利用它进行一些列的操作. 首先 Vu ...

  7. ASP.NET Core 入门教程 9、ASP.NET Core 中间件(Middleware)入门

    一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...

  8. iOS transform属性的使用

    1.transform属性 在iOS开发中,通过transform属性可以修改UIView对象的平移.缩放比例和旋转角度,常用的创建transform结构体方法分两大类 (1) 创建“基于控件初始位置 ...

  9. Cs231n-assignment 2作业笔记

    assignment 2 assignment2讲解参见: https://blog.csdn.net/BigDataDigest/article/details/79286510 http://ww ...

  10. 使用superlance插件增强supervisor的监控能力

    supervisor与superlance简介 supervisor是一款用python编写的进程监控.进程守护和进程管理的工具,可以工作在各种UNIX-like的操作系统上,通过简单的配置就可以启动 ...