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

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

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

在 ML2 配置中 enable flat network

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

tenant_network_types = flat性能

指定普通用户建立的网络类型为 flat。 须要注意的是:由于 flat 网络与物理网卡一一对应,通常状况下租户网络不会采用 flat,这里只是示例。学习

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

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

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

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

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

[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。

相关文章
相关标签/搜索