前面讨论了 OVS local network,今天开始学习 flat network。

flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接,每个 flat network 都会占用一个物理网卡。

在 ML2 配置中 enable flat network

在控制节点 /etc/neutron/plugins/ml2/ml2_conf.ini 中设置 flat network 相关参数:

tenant_network_types = flat

指定普通用户创建的网络类型为 flat。
需要注意的是:因为 flat 网络与物理网卡一一对应,一般情况下租户网络不会采用 flat,这里只是示例。

接着需要指明 flat 网络与物理网络的对应关系:

如上所示:
在 [ml2_type_flat] 中通过 flat_networks 定义了一个 flat 网络,label 为 “default”。
在 [ovs] 中通过 bridge_mappings 指明 default 对应的 Open vSwitch 网桥为 br-eth1。

label 是 flat 网络的标识,在创建 flat 时会用到(后面演示),label 的名字可以是任意字符串,只要确保各个节点 ml2_conf.ini 中的 label 命名一致就可以了。

各个节点中 label 与物理网卡的对于关系可能不一样。这是因为每个节点可以使用不同的物理网卡将 instance 连接到 flat network。

与 linux bridge 实现的 flat 网络不同,ml2 中并不会直接指定 label 与物理网卡的对应关系,而是指定 label 与 ovs bridge 的对应关系。

[ovs]
bridge_mappings = default:br-eth1

这里的 ovs bridge 是 br-eth1,我们需要提前通过 ovs-ovctl 命令:

  1. 创建 br-eth1。

  2. 将物理网卡 eth1 桥接在 br-eth1 上。

如果要创建多个 flat 网络,需要定义多个 label,用逗号隔开,当然也需要用到多个 ovs bridge,如下所示:

[ml2_type_flat]
flat_networks = flat1,flat2

[ovs]

bridge_mappings = flat1:br-eth1,flat2:br-eth2

通过以上步骤控制节点的 flat 网络就准备好了。
计算节点也需要做相同的配置,然后重启所有节点的 Neutron 服务。

下面有必要通过 ovs-vsctl show 检视一下当前的网络结构。

对于 ovs bridge “br-eth1” 和其上桥接的 port “eth1” 我们应该不会感到意外,这是前面配置的结果。
然而除此之外,br-int 和 br-eth1 分别多了一个 port “int-br-eth1” 和 “phy-br-eth1”,而且这两个 port 都是 “patch” 类型,同时通过 “peer” 指向对方。

上面的配置描述了这样一个事实:br-int 与 br-eht1 这两个网桥通过 int-br-eth1 和 phy-br-eth1 连接在一起了。

目前控制节点网络结构如下:

veth pair VS patch port

在前面 local network 我们看到,br-int 与 linux bridge 之间可以通过 veth pair 连接。

而这里两个 ovs bridge 之间是用 patch port 连接的。

看来 veth pair 和 patch port 都可以连接网桥,使用的时候如何选择呢?

patch port 是 ovs bridge 自己特有的 port 类型,只能在 ovs 中使用。
如果是连接两个 ovs bridge,优先使用 patch port,因为性能更好。
所以:
1. 连接两个 ovs bridge,优先使用 patch port。技术上veth pair 也能实现,但性能不如 patch port。
2. 连接 ovs bridge 和 linux bridge,只能使用 veth pair。
3. 连接两个 linux bridge,只能使用 veth pair。

配置就绪,下一节将创建 OVS flat network。

在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)的更多相关文章

  1. 在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)

    前面我们已经学习了 OVS 的 local 网络 和 falt 网络,今天开始讨论 vlan 网络. vlan network 是带 tag 的网络. 在 Open vSwitch 实现方式下,不同 ...

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

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

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

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

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

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

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

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

  6. 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)

    上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...

  7. 详解 ML2 Core Plugin(II) - 每天5分钟玩转 OpenStack(72)

    上一节我们讨论了 ML2 Plugin 解决的问题,本节将继续研究 ML2 的架构. ML2 对二层网络进行抽象和建模,引入了 type driver 和 mechansim driver. 这两类 ...

  8. 创建 OVS vlan100 netwrok - 每天5分钟玩转 OpenStack(137)

    上一节完成了 OVS vlan network 的配置准备工作,今天我们创建 vlan100.打开菜单 Admin -> Networks,点击 "Create Network&quo ...

  9. 配置 linux-bridge mechanism driver - 每天5分钟玩转 OpenStack(77)

    本节开始我们将学习 Linux Bridge 如何实现 Neutron 的各种功能.首先需要配置 linux-bridge mechanism driver. Neutorn ML2 plugin 默 ...

随机推荐

  1. redux学习

    redux学习: 1.应用只有一个store,用于保存整个应用的所有的状态数据信息,即state,一个state对应一个页面的所需信息 注意:他只负责保存state,接收action, 从store. ...

  2. Power BI官方视频(3) Power BI Desktop 8月份更新功能概述

    Power BI Desktop 8月24日发布了更新版本.现将更新内容翻译整理如下,可以根据后面提供的链接下载最新版本使用. 1.主要功能更新 1.1 数据钻取支持在线版 以前的desktop中进行 ...

  3. 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~

    最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...

  4. js学习之函数的参数传递

    我们都知道在 ECMAScript 中,数据类型分为原始类型(又称值类型/基本类型)和引用类型(又称对象类型):这里我将按照这两种类型分别对函数进行传参,看一下到底发生了什么. 参数的理解 首先,我们 ...

  5. JavaScript学习笔记(四)——jQuery插件开发与发布

    jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...

  6. BPM始终服务于人,落脚于人

    数字经济时代下,云计算.大数据.移动互联已经成为当下企业必须采取的武装力量.随着互联网+.中国制造2025.工业4.0等国家战略的引导与支持,无数的企业在这场数字化浪潮中使尽浑身解数,想要抓住机遇奋力 ...

  7. java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE

    Android发出HTTP请求时出现了这个错误: java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INST ...

  8. JAVA 设计模式之策略模式

    定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换. 类型:行为类模式 策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换.在前面说过 ...

  9. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  10. 【转】ofbiz数据库表结构设计

    真心不错的文章,可以加深对企业信息化的设计理解:) http://blog.sina.com.cn/s/blog_a2ca5d8c01017fa0.html http://blog.sina.com. ...