Search code examples
openstack

Openstack: how to make this bridge mapping?


I had a running openstack server, works fine but only with external-net(extnet, mapped to br-ex) I want to use the internal net(intnet) but is not mapped to br-int. How to map it? I have tried to edit the packstack conf

CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS=extnet:br-ex,intnet:br-int
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eno1,br-int:eno2

but when apply with

packstack --answer-file `date +"%d.%m.%y"`.conf

it correct the answer file and my modify is removed

# Comma-separated list of bridge mappings for the OpenStack
# Networking Open Virtual Network plugin. Each tuple in the list must
# be in the format <physical_network>:<ovs_bridge>. Example: physnet1
# :br-eth1,physnet2:br-eth2,physnet3:br-eth3
CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS=extnet:br-ex

# Comma-separated list of colon-separated Open vSwitch
# <bridge>:<interface> pairs. The interface will be added to the
# associated bridge. If you desire the bridge to be persistent a value
# must be added to this directive, also
# CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS must be set in order to create
# the proper port. This can be achieved from the command line by
# issuing the following command: packstack --allinone --os-neutron-
# ovn-bridge-mappings=ext-net:br-ex --os-neutron-ovn-bridge-interfaces
# =br-ex:eth0
CONFIG_NEUTRON_OVN_BRIDGE_IFACES=

and my syntax seems to be correct. My question is: how to manually add the mapping? I tried this way

vim /etc/neutron/plugins/ml2/ml2_conf.ini
bridge_mappings = extnet:br-ex,intnet:br-int

and after restart neutron, the istances configured to use intnet failed with message

 ERROR neutron.plugins.ml2.managers [req-707b1004-ee7c-4449-b9f7-6465862bb8a8 2d88a48b96004d47bba6af01ef0fbd2c 9daaa34268c846c5aad322a7765602ce - default default] Failed to bind port eb533bc8-75b4-4852-8f85-de57a84c64a4 on host virtuale.myhost.priv for vnic_type normal using segments [{'network_id': 'ba05def0-580e-4019-97e7-1a8779be2184', 'segmentation_id': None, 'physical_network': u'intnet', 'id': 'c28bc550-afb5-49d0-bf82-c9310ae42c2e', 'network_type': u'flat'}]

So I think the mapping is not working, of course if I use extnet the istance start.

Thanks


Solution

  • Solution found, using the new OVN as a mechanism, instead of OVS. I set those variables on answer file.

    CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=ovn
    CONFIG_NEUTRON_L2_AGENT=ovn
    CONFIG_NEUTRON_OVN_BRIDGE_MAPPINGS=extnet:br-ex,intnet:br-int
    CONFIG_NEUTRON_OVN_BRIDGE_IFACES=br-ex:eno1,br-int:eno2
    CONFIG_NEUTRON_OVN_BRIDGES_COMPUTE=br-ex
    CONFIG_NEUTRON_OVN_EXTERNAL_PHYSNET=extnet
    CONFIG_NEUTRON_OVN_TUNNEL_IF=
    CONFIG_NEUTRON_OVN_TUNNEL_SUBNETS=
    CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat,geneve
    CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan,geneve
    

    All ok.