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. 第一册:lesson 105.

    原文: Full of mistakes. Where's Sandra,Bob? I want her. Do you want to speak to her? Yes I do. I want ...

  2. My操作小技巧

    1.当我们新增一条数据之后想要获取其自增长的id,可以紧随新增语句后调用 SELECT last_insert_id();即可获得,一般搭配变量一起使用 SELECT @newUserId:=last ...

  3. 程序员50题(JS版本)(五)

    程序21:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和. var arr=[]; var count=20; for(var i=0;i<= ...

  4. 基本数据类型 列表 list

    今日内容一.列表======================================基本使用======================================1.用途:用来记录同种属 ...

  5. PhpStorm代码编辑区竖线的用途以及如何去掉

    相信经常用PhpStorm的童鞋都知道代码区有这么一条竖线,但是知道这个竖线究竟是干嘛的么? 相传是古时代的编辑器是没有自动折行的功能的,而且终端分辨率的问题,一行只能显示80个字符,因此很多上古时代 ...

  6. 【代码笔记】Web-CSS-CSS Padding(填充)

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  7. 【Dojo 1.x】笔记2 使用服务器环境及使用模块

    又开坑了.上次静态html页面完成本地module的引用,算是成功了,但是并不知道是怎么运作的,没关系慢慢来. 我用的环境是VSCode,这次因为官方说要在服务器环境下运行,所以就用上了VSCode的 ...

  8. 总结:当静态路由和BGP同时存在时路由优选BGP的两种方法

    结论: 方法一.配置BGP协议的外部优先级比静态路由的优先级高,优选BGP. 优点:配置简单. 缺点:全局生效,如果用户有针对某个静态路由想提高优先级,不受动态路由影响,则针对每个静态路由都需要人为提 ...

  9. getDimension与getDimensionPixelOffset与getDimensionPixelSize的区别

    getDimension()                       返回float型px值     精确  getDimensionPixelOffset()     返回int型px值     ...

  10. 版本控制工具(SVN/Git)介绍

    文章大纲 一.SVN介绍二.Git介绍三.IDEA使用SVN和Git四.总结五.参考文章   一.SVN介绍 1. SVN服务器搭建和使用 首先来下载和搭建SVN服务器,下载地址如下: http:// ...