openstack安装过程参考:http://www.chenshake.com/how-node-installation-centos-6-4-openstack-havana-ovsgre/。
安装完之后一切正常,但是当配置多个外部网络(external networks)的时候发现只有第一个正常。查看/var/log/neutron/l3-agent.log,
发现如下报错信息:
2014-02-04 14:14:56 ERROR [neutron.
Traceback (most recent call last):
File “/usr/lib/
self.
File “/usr/lib/
target
File “/usr/lib/
raise Exception(“must configure ‘gateway
Exception: must configure ‘gateway
大概意思是:如果有多个外部网络的时候,需要在l3agent.ini中配置gateway
具体操作步骤:
一 增加一个桥接网络
1. 配置eth2网卡,并启动(和eth0在同一网段)
2. 增加网桥
ovs-vsctl add-br br-ex-2
ovs-vsctl add-port br-ex-2 eth2
3. 配置br-ex-2和eth2
cat /etc/sysconfig/network-scripts/ifcfg-br-ex-2
DEVICE=br-ex-2
IPADDR=10.40.10.11
PREFIX=24
GATEWAY=10.40.10.250
ONBOOT=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
HWADDR=74:86:7A:D8:F9:32
4. 重启网络
service network restart
5. 查看
ovs-vsctl list-br
ovs-vsctl show
二 创建l3_agent进程
在neutron网络里,l3-agent负责外网地址的连通性,一个l3-agent对应一个external网络,默认会有一个l3-agent进程,如果我们想增加一个external网络,就需要增加一个l3-agent。
1. 修改第一个l3_agent的配置文件,添加:
host = network.test.com
gateway_external_network_id = 0f40030c-3cb3-4121-b405-c13c82eaf24d
2. 修改第二个l3_agent的配置文件,添加:
host = network1.test.com
gateway_external_network_id =15d5f08e-31df-4b51-946c-c3a2b2d4cad7
修改handle_internal_only_routers = True
为handle_internal_only_routers = False
3. 修改/etc/hosts文件,添加如下内容:
10.40.10.66 network.test.com #br-ex的IP
10.40.10.11 network1.test.com #br-ex-2的IP
4. 启动两个l3_agent进程
第一个:/etc/init.d/neutron-l3-agent restart
第二个: nohup /usr/bin/python /usr/bin/neutron-l3-agent –log-file /var/log/neutron/l3-agent-2.log –config-file /etc/neutron/neutron.conf –config-file /etc/neutron/l3_agent-2.ini &
5. 查看l3_agent进程是否启动
neutron agent-list|grep L3
| 285a115f-5160-402b-8bbe-c70b9a12741e | L3 agent |network.test.com | :-) | True |
| b034a3b1-15c4-4978-9cb5-cc61e49ec676 | L3 agent |network1.test.com | :-) | True |
三 创建路由器
查看router与l3—agent对应关系
neutorn l3-agent-list-hosting-router router1
有时候两个路由器可能分配到同一个l3_agent上,需要手动分配下。
参考:
http://blog.csdn.net/xuensong520/article/details/12166859