floating ip allocation and multiple external networks [closed]

asked 2014-09-12 08:05:12 -0600

capsali gravatar image

updated 2014-09-15 06:33:06 -0600


I'm a little confused about how l3 agent works. I have 4 physical eth for the external network bonded in 802.3ad mode so the system sees it as one adapter. They are connected to my external router.

I have 2 public subnets available. I want to be able to choose which subnet to use when allocating floating ip to project.

From what i understand from the documentation i cannot create multiple exxternal networks in neutron if i don't have multiple l3 agents running. But to have multiple l3 agents running i need multiple physical eth adapters, where i have only one(the bond interface). Can i create Vlans on that bond and create bridges for l3 agents on that vlans?

The other only way is to add both subnets to the ssame external network. The problem with this is i have no control on the floating ip allocation; i can not choose from what subnet to allocate from.

PS: i;m running ovs+gre

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by capsali
close date 2014-12-04 06:12:12.640450


So i guess no one knows? I couldn't find anything on the web!

capsali gravatar imagecapsali ( 2014-09-15 06:31:20 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2014-09-15 10:03:34 -0600

larsks gravatar image

From what i understand from the documentation i cannot create multiple exxternal networks in neutron if i don't have multiple l3 agents running.

You can support multiple external networks with a single L3 agent, see, for example this. However, I don't think that is going to solve your problem, because each network needs to be mapped to a bridge device, and you external interface can only be a member of a single bridge device.

You could probably hack something together with some veth devices, like this:

image description

That is, create one bridge for each external network and configure those in Neutron, then create another bridge that will be used to connect both of those bridges to your external interface.

edit flag offensive delete link more


This is what i am trying to do. I stumbled upon that blog too. I created two vlans on top of th bonding and added bridges to both. I created two external flat networks and left tenant networks with gre. The problem that i am facing now is that i dont get dhcp to instances anymore.

capsali gravatar imagecapsali ( 2014-09-15 13:28:38 -0600 )edit

Because of that the instance won't boot and stays stuck at spawning or building. I nova and neutron logs and i don't get any errors!

capsali gravatar imagecapsali ( 2014-09-15 13:29:42 -0600 )edit

Note that at least in this example I was not suggesting the use of vlans anywhere in the configuration. If you are having network problems, that often means you need to boot your instances into single-user mode and make judicious use of tcpdump at various points in your openstack deployment.

larsks gravatar imagelarsks ( 2014-09-15 13:49:32 -0600 )edit

To be clear, a veth pair is what you get when you run ip link add portA type veth peer name portB. This gives you two interfaces (portA and portB) that are linked together. In the example above, you use this connected pair to connect a set of bridges.

larsks gravatar imagelarsks ( 2014-09-15 13:50:45 -0600 )edit

problem is i can not boot any instance...it doesnt get any ip...so it doesnt boot at all...it gets stuck in building with no errors in logs

capsali gravatar imagecapsali ( 2014-09-15 14:01:32 -0600 )edit

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2014-09-12 08:05:12 -0600

Seen: 1,200 times

Last updated: Sep 15 '14