1
votes

I have 3 network nodes running neutron-server ..

Only one of these nodes is attached to the external network

I use ml2 with openvswitch

in the bridge mapping of the node connected to the external network - VIA FLOATING IPS - , i have external_net mapped to the correct bridge ..

On the other nodes i do not have this mapping defined and i do not have interfaces

The issue i have is the following

When i try to start a virtual machine that is connected to the external network , i have this error in the logs :

neutron-server: 2016-09-07 12:33:00.975 57352 ERROR neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] Failed to bind port 035a58e1-f18f-428b-b78e-e8c0aaba7d14 on host node002 for vnic_type normal using segments [{'segmentation_id': None, 'phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]

neutron-server: 2016-09-07 12:33:00.975 57352 ERROR neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] Failed to bind port 035a58e1-f18f-428b-b78e-e8c0aaba7d14 on host node003 for vnic_type normal using segments [{'segmentation_id': None, 'phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]

on both nodes( node002 and node003 ) , because they DO NOT have this network defined ! so is this a bug or such a setup is not valid ?

Thank you

3

3 Answers

0
votes

In a typical OpenStack deployment you do not bind Nova instances directly to the external network. As you have already surmised, this won't work because that network isn't provisioned on the compute hosts.

Instead, you attach your instances to an internal network, and then you assign floating ip addresses from the external network using,e.g., nova floating-ip-create and nova floating-ip-associate.

An alternative solution is to use "provider external networks", an arrangement in which your nova instances are attached directly to L2 networks with external connectivity, rather than relying on the floating-ip NAT solution described in the previous paragraphs.

0
votes

the reason behind the error was bad configuration on nodes that DOES NOT host a provider network

mainly the ml2 core file ml2_conf.ini

parameter :

flat_network should be set to the appropriate value on each node

like on the node which is connected to all flat networks ( including the internal network ) it should be set to

flat_networks = *

and on the node that does not host all flat networks ( the provider network for instance )

flat_networks = physical_internal

0
votes

I believe it won't work. You need to have binded ports to all your 3 network nodes.

A quick test would be to stop neutron-server, neutron-dhcp-agent, neutron-l3-agent and neutron-metadata-agent services from the 2 network nodes that are not bined to external ports... and test again.