我安装了具有2个节点配置(1个控制器,1个计算机)的openstack自由,每个配置有1个公共nic和1个私有nic,并遵循此方案使用dvr:http://docs.openstack.org/networking-guide/scenario_dvr_ovs.html
在控制器节点中,我创建了具有eth0'IP(这是公共nic)的br-ex,并安装了l3-agent(dvr_snat模式)ovs-agent dhcp-agent和services。
使用管理员帐户我创建了ext-net并将我的子网连接到它。
使用演示租户,我创建了一个演示网,一个演示子网和一个演示路由器,然后我设置了网关neutron router-gateway-set demo-net ext-net
所以我的ovs-vsctl show
看起来如下
Bridge br-int
fail_mode: secure
Port "sg-ef30b544-a4"
tag: 4095
Interface "sg-ef30b544-a4"
type: internal
Port "qr-a4b8653c-78"
tag: 4095
Interface "qr-a4b8653c-78"
type: internal
Port "qg-d33db11d-60"
tag: 1
Interface "qg-d33db11d-60"
type: internal
Port br-int
Interface br-int
type: internal
Port "tap9f36ccde-1e"
tag: 4095
Interface "tap9f36ccde-1e"
type: internal
Port int-br-ex
Interface int-br-ex
type: patch
options: {peer=phy-br-ex}
Bridge br-ex
Port "eth0"
Interface "eth0"
Port br-ex
Interface br-ex
type: internal
Port phy-br-ex
Interface phy-br-ex
type: patch
options: {peer=int-br-ex}
Bridge br-tun
Port br-tun
Interface br-tun
type: internal
ovs_version: "2.4.0"
和网络命名空间
root@controller:~# ip netns
qdhcp-3e662de0-9a85-4d7d-bb85-b9d4568ceaec
snat-f3f6213c-384c-4ec5-914c-e98aba89936f
qrouter-f3f6213c-384c-4ec5-914c-e98aba89936f
我的问题是l3-agent无法设置snat网络,因为它似乎无法访问网络。
ERROR neutron.agent.l3.agent Command: ['sudo', '/usr/bin/neutron-rootwrap', '/etc/neutron/rootwrap.conf', 'ip', 'netns', 'exec', 'snat-f3f6213c-384c-4ec5-914c-e98aba89936f', 'ip', '-4', 'route', 'replace', 'default', 'via', '149.XXX.YYY.ZZZ', 'dev', 'qg-d33db11d-60']
ERROR neutron.agent.l3.agent Exit code: 2
ERROR neutron.agent.l3.agent Stdin:
ERROR neutron.agent.l3.agent Stdout:
ERROR neutron.agent.l3.agent Stderr: RTNETLINK answers: Network is unreachable
ping -I br-ex 8.8.8.8
有效。
ping -I br-int 8.8.8.8
表示网络无法访问。
正如你所看到的那样,br-int和br-ex之间有一个补丁,所以它应该可以工作,但事实并非如此。