前面我们已经学习了 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 相关参数:
tenant_network_types = vlan
指定普通用户创建的网络类型为 vlan。
然后指定 vlan 的范围:
上面配置定义了 label 为 “default” 的 vlan network,vlan id 的范围是 3001 - 4000。 这个范围是针对普通用户在自己的租户里创建 network 的范围。 因为普通用户创建 network 时并不能指定 vlan id,Neutron 会按顺序自动从这个范围中取值。
对于 admin 则没有 vlan id 的限制,admin 可以创建 id 范围为 1-4094 的 vlan network。
接着需要指明 vlan 网络与物理网络的对应关系:
如上所示: 在 [ml2_type_vlan] 中定义了 lable “default”,
[ovs] 中则通过 bridge_mappings 指明 default 对应的 Open vSwitch 网桥为 br-eth1。
这里 label 的作用与前面 flat network 中的 label 一样,只是一个标示,可以是任何字符串。
我们需要提前通过 ovs-ovctl 命令:
-
创建 br-eth1。
-
将物理网卡 eth1 桥接在 br-eth1 上。
配置完毕,下一节创建 OVS vlan network。