Atom feed of this document
  

 配置3层代理

OpenStack Networking 服务有一个广泛使用的 API 扩展,允许管理员和租户创建路由来与 L2 网络和浮动 IP 相互连接,使端口对私有网络可以公开访问。

很多插件依赖于 L3 服务代理实现了 L3 的功能。然而,下列插件已经内置了 L3 的功能:

  • Big Switch/Floodlight 插件,它们都同时支持开源的Floodlight控制器和商业的Big Switch 控制器。

    [注意]注意

    只有商业版的BigSwitch控制器实现了3层点功能。当使用Floodlight作为你的OpenFlow控制器时,3层功能是不可用的。

  • 插件IBM SDN-VE

  • MidoNet 插件

  • NSX 插件

  • PLUMgrid 插件

[警告]警告

如果你使用了这些插件中的某一种,请不要配置或使用neutron-l3-agent

 

为所有其它插件安装3层代理

  1. 在网络节点安装二进制的 neutron-l3-agent:

    # apt-get install neutron-l3-agent
  2. 对于在外部网络运行 neutron-l3-agent 的上行节点,创建一个名为 "br-ex" 的桥接并在这个网卡上附加外部网络到这个桥接上。

    例如,基于Open vSwitch的eth1网卡连接到外部网络,运行:

    # ovs-vsctl add-br br-ex
    # ovs-vsctl add-port br-ex eth1

    请勿在运行 neutron-l3-agent 的节点的连接到外部网络的网卡上手动配置 IP 地址。当然,您必需有一个外部网络的 IP 地址范围,让它可以被 OpenStack Networking 的上传到外部网络的路由所使用。这个范围必需足够大,以能够为环境中的每一个路由和浮动 IP 分配 IP 地址。

  3. neutron-l3-agent 使用 Linux IP 栈和 iptables 来进行 L3 转发和 NAT。为了支持具有潜在重叠 IP 地址的多路由,neutron-l3-agent 默认只用 Linux 网络命名空间来提供隔离的转发上下文。因此,仅仅在节点上运行 ip addr listifconfig 命令是看不见路由的 IP 地址的。类似地,您不能直接 ping 固定 IP。

    为了实现这些,您必需在一个路由的特定的网络命名空间里执行命令。命名空间名称为 "qrouter-ROUTER_UUID"。这些示例命令在 UUID 为 47af3868-0fa8-4447-85f6-1304de32153b 路由命名空间里运行:

    # ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ip addr list
    # ip netns exec qrouter-47af3868-0fa8-4447-85f6-1304de32153b ping FIXED_IP
[注意]注意

对于iproute版本为3.12.0或更高,网络命名空间默认配置为删除。此行为可通过更改DHCP和L3代理。各自的配置文件是/etc/neutron/dhcp_agent.ini /etc/neutron/l3_agent.ini

对 DHCP 命名空间配置关键字:dhcp_delete_namespaces = True。您可以将其设置为 False,防止命名空间在运行 DHCP 代理的主机上无法彻底删除。

对于 L3 命名空间,配置关键字:router_delete_namespaces = True。您可以将其设置为 False ,以防命名空间无法在运行 L3 代理的节点上彻底删除。

[重要]重要

如果你要重启运行3层代理的节点,你必须在 neutron-l3-agent服务启动之前运行命令neutron-ovs-cleanup

在基于Red Hat,SUSE以及Ubuntu的系统中,neutron-ovs-cleanup服务自动运行命令 neutron-ovs-cleanup。然而,Debian系统中,你必须手动的运行此命令,或者是你自己写个系统启动时的脚本,当然此脚本也要在neutron-l3-agent服务启动之前运行。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...