Primeiro de tudo, você não precisa criar mapeamentos de pontes individuais ou redes físicas para cada VLAN. Use um nome de rede física mapeado para a ponte que possui as VLANs.
[ovs]
bridge_mappings = physnet:br-vlan
Em segundo lugar, como esta é uma rede de provedor com VLANs específicas que devem ser usadas e não uma rede de locatário, você não precisa especificar um intervalo de VLAN utilizável. Um intervalo é normalmente especificado para que as VLANs possam ser entregues a redes de locatários de um pool por nêutron sem intervenção do administrador.
[ml2_type_vlan]
network_vlan_ranges = physnet
Para que um único agente L3 possa lidar com várias redes externas em seu l3_agent.ini, especifique:
[DEFAULT]
external_network_bridge =
Note que você não pode simplesmente omitir a linha de configuração, você deve especificá-la como vazia, pois o valor padrão é "br-ex".
Finalmente, seus comandos de nêutrons serão:
neutron net-create vlan10 --shared --provider:network_type vlan --provider:segmentation_id 10 --provider:physical_network physnet --router:external
neutron net-create vlan20 --shared --provider:network_type vlan --provider:segmentation_id 20 --provider:physical_network physnet --router:external
neutron net-create vlan30 --shared --provider:network_type vlan --provider:segmentation_id 30 --provider:physical_network physnet --router:external