[Grizzly]how to config multiple l3 agent for quantum ? I wanna run multiple l3 agent on one network node, because I wanna multiple external network.
[Grizzly]how to config multiple l3 agent for quantum ? I wanna run multiple l3 agent on one network node, because I wanna multiple external network.
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- neutron Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- happyidea
- Solved:
- 2013-10-09
- Last query:
- 2013-10-09
- Last reply:
- 2013-09-29
ZhiQiang Fan (aji-zqfan) said : | #1 |
currently, you cannot run multiple l3-agent in a **same host**, and multi external network is not supported yet.
for i.e. l3-agent need to get_external_
def get_external_
nets = self.get_
if len(nets) > 1:
raise q_exc.TooManyEx
else:
return nets[0]['id'] if nets else None
so you can not directly run multiple external net in quantum, even you modify this part and all other related part, you still cannot support multiple external network, the l3-agent is designed to be unique in **single host**, there are many code based on this design. (you can see the init process of l3-agent, that will show you something, especially the ns destroy and create), so even multiple ext nets are created and multiple l3-agents are started (after some effort to modify), but they may still not work well (but you can try, nothing is impossible)
moreover, i think this feature will not be added to grizzly (even havana), since it is already in stable branch.
There already a few discussion about this topic in bugs comment and reviews, but sorry i cannot remember the links.
ZhiQiang Fan (aji-zqfan) said : | #2 |
and there is another similar question solved by yong sheng gong: https:/
happyidea (guolongcang-work) said : | #3 |
to ZhiQiang:
Thank you for your reply.
I have solved this problem, successfully run multiple l3 agent on one network node, and created 2 external networks, all of them are running normally. I don't know which version of openstack code you refer , I use Grizzly.
And my Configuration Steps:
1、 enable network namespace on quantum.conf, dhcp-agent.ini , l3-agent.ini
2、 create two external network, then refer to http://
3、 add an option named 'host' in each l3-agent.ini file, looks like
first l3-agent.ini:
host = first-l3
second l3-agent.ini:
host = second-l3
4、 change the network node and controller node's /etc/hosts file, supose your network node's ip address is 10.10.1.4, then add two lines to it:
5、 create two router through cli ,and all router's default l3-agent is the first one , change one router's l3 agent to the second one .
6、 set two external network as corresponding router's gateway.
7、 done.
happyidea (guolongcang-work) said : | #4 |
Problem Solved.
ZhiQiang Fan (aji-zqfan) said : | #5 |
i think maybe you can update this to the official manual, it's really useful
happyidea (guolongcang-work) said : | #6 |
to ZhiQiang:
Thanks for your advice . I will do that later.
david luis (lqhoa1207) said : | #7 |
hi happyidea,
Could you explain more at step 5? how to config all router's default l3-agent is the first one , change one router's l3 agent to the second one?
david luis (lqhoa1207) said : | #8 |
hi happyidea,
Could you explain more at step 5? how to config all router's default l3-agent is the first one , change one router's l3 agent to the second one?
Li Ma (nick-ma-z) said : | #9 |
hi happyidea,
How do you set these l3_agent.ini for different l3-agent on the same node? I'm doing the same experiment and find it difficult to set these l3-agents properly.
thanks.
Robert Kukura (rkukura) said : | #10 |
Just want to point out that since https:/
happyidea (guolongcang-work) said : | #11 |
to Robert Kukura:
Thank you for your infomation , it's really useful.
to Li Ma:
Please refer to Robert Kukura's reply.
Li Ma (nick-ma-z) said : | #12 |
I've tried the patch before. It doesn't work. I'm not sure how to set provider network in my environment. I'm using OVS+VxLAN tunneling. AFAIK, provider network is mainly designed for physical VLANs. Could you guys provide more details about it? Thanks a lot.
Asma (elhitmi-asma) said : | #13 |
would you please explain how could you install two L3-agent instances on the same host machine ?? because once i install the first instance and i want to install the second one, i get the message annoucing that the program already exists
Li Ma (nick-ma-z) said : | #14 |
1. install neutron-l3-agent package via rpm/deb/source code.
2. cp /etc/neutron/
/etc/neutron/
/etc/neutron/
3. modify each conf file to reflect different host
in l3-agent-1.ini: host=l3-agent-1
in l3-agent-2.ini: host=l3-agent-2
4. run the two l3-agent by hand
neutron-l3-agent --conf-file /etc/neutron/
neutron-l3-agent --conf-file /etc/neutron/
Note: I haven't tested it yet, but I think it gonna work.
Hua Zhang (zhhuabj) said : | #15 |
I agree with ZhiQiang Fan in #1 that we can't run multiple l3-agent in a same host because one l3-agent will delete the namespace of another l3-agent when it started due to following code. so I don't think the approach of #3 and #14 can work actually.
b/quantum/
class L3NATAgent(
root_ip = ip_lib.
for ns in root_ip.
if ns.startswith(
if only_router_id and not ns.endswith(
Asma (elhitmi-asma) said : | #16 |
from my side i can confirm what nick-ma-z has said, i have succefully run the two l3 agent instances