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

原创 2017年01月04日 06:51:26

前面讨论了 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。

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

flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着: 每个 flat network 都会独占一个物理网卡。 ...
  • tmchongye
  • tmchongye
  • 2017年03月27日 20:00
  • 1617

OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)

上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构。
  • CloudMan6
  • CloudMan6
  • 2017年02月08日 06:27
  • 958

理解 Nova 架构 - 每天5分钟玩转 OpenStack(23)

Nova 是 OpenStack 最核心的组件,学习 Nova 首先要理解其架构。 本节详细讨论 Nova 的各个组件以及它们之间的关系。...
  • CloudMan6
  • CloudMan6
  • 2016年04月20日 07:03
  • 4646

写在最前面 - 每天5分钟玩转 OpenStack(1)

OpenStack 实践系列教程 第1篇 - 写在最前面
  • CloudMan6
  • CloudMan6
  • 2016年02月28日 15:02
  • 5848

OpenStack 通用设计思路 - 每天5分钟玩转 OpenStack(25)

本节讨论 OpenStack 组件设计的通用思路,对理解和使用 OpenStack 非常重要。
  • CloudMan6
  • CloudMan6
  • 2016年04月25日 07:25
  • 10105

Neutron 功能概述 - 每天5分钟玩转 OpenStack(65)

从今天开始,我们将学习 OpenStack 的 Networking Service,Neutron。 本节首先讨论 Neutron 提供了哪些功能?...
  • CloudMan6
  • CloudMan6
  • 2016年07月27日 06:51
  • 2166

为 Neutron 准备物理基础设施(I) - 每天5分钟玩转 OpenStack(75)

实践 Neutron 第一步就是准备实验用的物理环境。 需要先解决如下几个问题: 1. 需要几个节点? 2. 如何分配节点的角色? 3. 节点上部署哪些服务? 4. 配几个网卡? 5. 物理网络如何...
  • CloudMan6
  • CloudMan6
  • 2016年08月19日 06:22
  • 1367

创建 Image - 每天5分钟玩转 OpenStack(21)

本节演示如何通过 Web GUI 和 CLI 两种方法创建 Image。
  • CloudMan6
  • CloudMan6
  • 2016年04月14日 22:09
  • 1630

Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)

VLAN 是网络中的重要概念,本节讨论 Linux 如何支持 VLAN
  • CloudMan6
  • CloudMan6
  • 2016年03月24日 08:25
  • 2193

创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)

上一节我们完成了 OVS VxLAN 的配置工作,今天创建 vxlan100_net 并部署 instance。
  • CloudMan6
  • CloudMan6
  • 2017年02月06日 06:45
  • 798
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)
举报原因:
原因补充:

(最多只允许输入30个字)