Neutron flat network 学习

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 的结构如下:
 
测试两个实例的连通性,发现是可以相互通信的

猜你喜欢

转载自www.cnblogs.com/lsw-blogs/p/10782226.html