Ask Your Question
0

Problem running multiple L3 instances

asked 2014-08-19 11:26:55 -0600

Diego Lima gravatar image

updated 2014-09-03 14:19:58 -0600

Hello,

I've got a setup where two different external networks are presented to openstack instances. Since the external networks are on different interfaces and have different purposes, I've set up two different L3 agents, each configured to handle a specific external network following these directions: http://docs.openstack.org/admin-guide...

With both agents running I can create routers (the namespaces do show correctly, including ip address assignment), but whenever I add a port to an internal subnet I get the following error on neutron-server.log:

2014-08-19 11:25:16.362 11934 WARNING neutron.plugins.ml2.managers [req-28d1ad31-8e08-4069-8804-98291964fb35 None] Failed to bind port 222d22d0-e4c6-4af4-a9e1-94be80d18213 on host sonic-agent2

2014-08-19 11:25:16.366 11934 WARNING neutron.plugins.ml2.plugin [req-28d1ad31-8e08-4069-8804-98291964fb35 None] In _notify_port_updated(), no bound segment for port 222d22d0-e4c6-4af4-a9e1-94be80d18213 on network cab446c7-d29f-462f-8a9d-e48604efc02c

2014-08-19 11:25:19.341 11934 WARNING neutron.plugins.ml2.rpc [req-8e138bb7-74fa-49d1-93a1-db1c72533a8a None] Device 222d22d0-e4c6-4af4-a9e1-94be80d18213 requested by agent ovsc81f66b95137 on network cab446c7-d29f-462f-8a9d-e48604efc02c not bound, vif_type: binding_failed

The result is that instances inside the networks cannot reach the router (nor can I ping instances from inside the router namespace). The router's public address, however, works just fine.

The configuration files for the agents are:

http://pastebin.com/0t6sQYPW - agent 1

http://pastebin.com/kHurF8FV - agent 2

My neutron.conf looks like this: http://pastebin.com/5Yinmfnz

L2 agent plugin settings (ml2 using GRE): http://pastebin.com/mBFPbSEb

UPDATE: I have given up on the "host" parameter on the L3 agents. With this I do not have port binding errors but the agents occasionally stop responding until they are restarted.

edit retag flag offensive close merge delete

Comments

Patch for multiple L3 agents merged Havana/stable. Please view https://ask.openstack.org/en/question...

dbaxps gravatar imagedbaxps ( 2014-08-19 12:12:43 -0600 )edit

3 answers

Sort by ยป oldest newest most voted
2

answered 2014-09-04 08:25:44 -0600

larsks gravatar image

updated 2014-09-04 08:27:16 -0600

Note that you do not need multiple L3 agents in order to support multiple external networks. There is some documentation on this available here.

There is another article on this topic here.

edit flag offensive delete link more

Comments

* Starting in Icehouse

SamYaple gravatar imageSamYaple ( 2014-09-04 09:39:44 -0600 )edit
0

answered 2015-02-20 08:13:18 -0600

faelrba gravatar image

Hi, have you found a solution for this problem? @Diego Lima I have the same problem with Juno + GRE and I don't know how to procede to solve it.

edit flag offensive delete link more
0

answered 2014-08-19 14:04:09 -0600

dbaxps gravatar image

updated 2014-08-21 08:04:27 -0600

Patch for multiple L3 agents merged stable/Havana
https://review.openstack.org/#/c/68601/
http://docs.openstack.org/havana/conf...

For the first agent, invoke it with the following l3_agent.ini where handle_internal_only_routers is True.

handle_internal_only_routers = True
gateway_external_network_id = 2118b11c-011e-4fa5-a6f1-2ca34d372c35
external_network_bridge = br-ex
python /opt/stack/neutron/bin/neutron-l3-agent
 --config-file /etc/neutron/neutron.conf
 --config-file=/etc/neutron/l3_agent.ini
For the second (or later) agent, invoke it with the following l3_agent.ini where handle_internal_only_routers is False.

handle_internal_only_routers = False
gateway_external_network_id = e828e54c-850a-4e74-80a8-8b79c6a285d8
external_network_bridge = br-ex-2
edit flag offensive delete link more

Comments

Hi,

Unfortunately I couldn't use the L3 agent without declaring a specific external network. My environment needs to use two different network interfaces, one handling each external network, and each L3 needs to know which interface it needs to bind to.

Diego Lima gravatar imageDiego Lima ( 2014-08-21 06:44:58 -0600 )edit

You wrote : I couldn't use the L3 agent without declaring a specific external network
I believe gateway_external_network_id is addressing this your requirement
br-ex && br-ex-2 have IP addresses belong to first and second external networks.
Corresponding L3 agent will work via corresponding OVS bridge having OVS port with device
which refers interface which would be chosen by you.

dbaxps gravatar imagedbaxps ( 2014-08-21 08:14:05 -0600 )edit

I tried leaving gateway_external_network_id and external_network_bridge empty on L3's configuration and starting a single agent. I have also added IP addresses from both external networks but L3 doesn't seem to add the ports to the correct one (it only adds ports on br-ex-2, not on br-ex)

Diego Lima gravatar imageDiego Lima ( 2014-08-21 11:23:41 -0600 )edit

An L3 agent can only be associated with one external network, not two. While you can run multiple agents, they must each only be associated with one external network.

SamYaple gravatar imageSamYaple ( 2014-09-03 16:16:51 -0600 )edit

@SamYaple: you can support multiple external networks with a single L3 agent; this has been true for some time now.

larsks gravatar imagelarsks ( 2014-09-04 08:23:54 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower

Stats

Asked: 2014-08-19 11:26:55 -0600

Seen: 587 times

Last updated: Sep 04 '14