Neutron

Distributed Virtual Routing (DVR)

It is technically possible to use Distributed Virtual Routing (DVR) with OSISM.

However, this is not officially supported by us, not tested and not recommended.

Multiple provider networks

  • inventory/host_vars/<hostname>.yml

network_interfaces:
[...]
 - device: eth3
   auto: true
   family: inet
   method: manual
   mtu: 1500

 - device: eth4
   auto: true
   family: inet
   method: manual
   mtu: 1500
  • environments/kolla/configuration.yml or inventory/host_vars/<hostname>.yml

enable_neutron_provider_networks: "yes"
  • environments/kolla/configuration.yml or inventory/host_vars/<hostname>.yml

neutron_bridge_name: br-eth3,br-eth4
neutron_external_interface: eth3,eth4

VLAN interfaces as flat provider networks

  • inventory/host_vars/<hostname>.yml

network_interfaces:
[...]
 - device: vlan100
   auto: true
   family: inet
   method: manual
   vlan:
     raw-device: bond0
   mtu: 1500

 - device: vlan100
   auto: true
   family: inet
   method: manual
   vlan:
     raw-device: bond0
   mtu: 1500
  • environments/kolla/configuration.yml or inventory/host_vars/<hostname>.yml

enable_neutron_provider_networks: "yes"
  • environments/kolla/configuration.yml or inventory/host_vars/<hostname>.yml

neutron_bridge_name: [...],br-vlan100,br-vlan200
neutron_external_interface: [...],vlan100,vlan200

Warning

After adding the bridges and before deploying/reconfiguring Neutron, a manual step is needed.

$ docker exec -it openvswitch_vswitchd ovs-vsctl get Bridge br-vlan100 datapath-id
$ docker exec -it openvswitch_vswitchd ovs-vsctl get Bridge br-vlan200 datapath-id
  • Eleminate duplicate datapath ids

$ echo 0000$(uuidgen | awk -F- '{ print $5}')
0000a046f5209e3f
$ docker exec -it openvswitch_vswitchd ovs-vsctl set bridge br-vlan200 other-config:datapath-id=0000a046f5209e3f
  • Double check the new datapath ids

$ docker exec -it openvswitch_vswitchd ovs-vsctl get Bridge br-vlan200 datapath-id
"0000a046f5209e3f"

Neutron Availability Zones

  • configure availability zone in dhcp_agent.ini and l3_agent.ini.

[agent]
availability_zone = zone-1
  • configure neutron.conf

[DEFAULT]
default_availability_zones = zone-1(,zone-2)
network_scheduler_driver = neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler
dhcp_load_type = networks
router_scheduler_driver = neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler