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

时间:2022-01-28 20:45:33

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

前面我们已经学习了 OVS 的 local 网络 和 falt 网络,今天开始讨论 vlan 网络。

vlan network 是带 tag 的网络。

在 Open vSwitch 实现方式下,不同 vlan instance 的虚拟网卡都接到 br-int 上。
这一点与 linux bridge 非常不同,linux bridge 是不同 vlan 接到不同的网桥上。

在我们的实验环境中,收发 vlan 数据的物理网卡为 eth1,上面可以走多个 vlan,
所以物理交换机上与 eth1 相连的的 port 要设置成 trunk 模式,而不是 access 模式。

在 ML2 配置中 enable vlan network

在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 vlan network 相关参数:

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

tenant_network_types = vlan

指定普通用户创建的网络类型为 vlan。

然后指定 vlan 的范围:

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

上面配置定义了 label 为 “default” 的 vlan network,vlan id 的范围是 3001 - 4000。
这个范围是针对普通用户在自己的租户里创建 network 的范围。
因为普通用户创建 network 时并不能指定 vlan id,Neutron 会按顺序自动从这个范围中取值。

对于 admin 则没有 vlan id 的限制,admin 可以创建 id 范围为 1-4094 的 vlan network。

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

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

如上所示: 在 [ml2_type_vlan] 中定义了 lable “default”,
[ovs] 中则通过 bridge_mappings 指明 default 对应的 Open vSwitch 网桥为 br-eth1。

这里 label 的作用与前面 flat network 中的 label 一样,只是一个标示,可以是任何字符串。

我们需要提前通过 ovs-ovctl 命令:

  1. 创建 br-eth1。

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

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

配置完毕,下一节创建 OVS vlan network。

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