flat network 是不带 tag 的网络,要求宿主机的物理网卡直接与 linux bridge 连接,这意味着:
每个 flat network 都会独占一个物理网卡。
上图中 eth1 桥接到 brqXXX,为 instance 提供 flat 网络。 如果需要创建多个 flat network,就得准备多个物理网卡,如下图所示。
接下来讨论如何配置 flat 网络。
在 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
准备就绪,下一节将创建 flat 网络。