问题

linux bridge不支持vlan, openvswitch支持. 在虚拟机环境中测试neutron的vlan功能时需要宿主机的虚拟网支持vlan.

安装openvswitch

  1. 启用rdo源
  2. 安装openvswitch

    yum install -y openvswitch
    
  3. 开启openvswitch服务

    systemctl enable openvswitch
    systemctl start openvswitch
    

配置openvswitch和libvirt

  1. 建立openvswitch桥

    ovs-vsctl add-br testbr0
    
  2. 更改libvirt配置

这里演示了一个虚拟网络允许通过vlan 47, 将vlan 42的摘掉vlan tag.
network部分:

$ virsh net-edit test_net
<network>
<name>test_net</name>
<forward mode='bridge'/>
<bridge name='testbr0' />
<vlan trunk='yes'>
    <tag id='47'/>
    <tag id='42' nativeMode='untagged'/>
</vlan>
<virtualport type='openvswitch'/>
</network>

虚拟机interface部分:

$ virsh edit test_vm
    ... ...
<interface type='network'>
    <source network='test_net'/>
    <model type='virtio'/>
</interface>
    ... ...