在 Oracle® Solaris 中安装和配置 OpenStack (Kilo)

退出打印视图

更新时间: 2016 年 6 月
 
 

关于提供商路由器

路由器提供项目 VM 实例与更广泛网络的连接。此路由器由所有项目网络共享。因为只有一个路由器,所以项目网络无法使用重叠的 IP 地址。

该路由器在连接路由器与外部网络的接口上执行双向网络地址转换 (network address translation, NAT)。项目可以有许多浮动 IP(公共 IP),具体数量取决于项目需要或浮动 IP 配额所允许的数量。这些浮动 IP 与需要外部连接的 VM 实例关联。

创建路由器需要配置 Neutron L3 代理。此代理将自动在分配给 Nova 实例的地址和浮动 IP 地址之间创建一对一的 NAT 映射。L3 代理还支持专用网络之间的通信。

缺省情况下,会禁用同一个项目的专用网络之间的路由。要更改此行为,请将 /etc/neutron/l3_agent.ini 配置文件中的 allow_forwarding_between_networks 设置为 True。设置该参数后,重新启动 neutron-l3-agent SMF 服务。

如何针对外部网络配置路由器

此过程介绍了如何针对外部网络创建路由器。部分步骤需要编辑配置文件。因此,在此过程中使用终端窗口比使用 Horizon 系统信息显示板更方便。

在安装了 Neutron 服务的节点上执行以下步骤。本文档根据前面章节所述样例体系结构定位控制器节点上的服务。

开始之前

确保如如何安装并配置 Neutron中所述完成了 Neutron 的配置。

  1. 如果 IP 过滤器服务已禁用,请启动它。
    controller# svcadm enable -rs ipfilter
  2. 如果在主机上禁用了 IP 转发,请将其启用。
    controller# ipadm set-prop -p forwarding=on ipv4
  3. 为 Neutron 设置全局 shell 变量。
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_PROJECT_NAME=service
    controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
  4. 创建提供商路由器。
    controller# neutron router-create router-name

    该命令显示路由器名称及对应的 ID。使用此 ID 在下一步中更新配置文件。

  5. 确保 /etc/neutron/l3_agent.ini 文件包含设定的以下参数。
    router_id=routerID从上一步获取的 ID。
  6. 启用 neutron-l3-agent SMF 服务。
    controller# svcadm enable neutron-l3-agent
  7. (u53ef选) 显示关于路由器的信息。

    在将外部网络添加到路由器之后,可以添加关于路由器的更多信息。

    controller# neutron router-show router-name
示例 1  创建路由器

此示例说明如何针对外部网络创建路由器。

controller# svcadm enable -rs ipfilter

controller# ipadm set-prop -p forwarding=on ipv4
controller# ipadm set-prop -p forwarding=on ipv6

controller# export OS_USERNAME=neutron
controller# export OS_PASSWORD=service-password
controller# export OS_PROJECT_NAME=service
controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0

controller# neutron router-create ext-router
Created a new router:
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | True                                 |
| external_gateway_info |                                      |
| id                    | f89b24ed-42dd-48b0-8f4b-fd41887a3370 |
| name                  | ext-router                           |
| status                | ACTIVE                               |
| project_id            | 7d1caf0854b24becb28df5c5cabf72cc     |
+-----------------------+--------------------------------------+

此时,更新 /etc/neutron/l3_agent.ini 文件中的 router_id

router_id = f89b24ed-42dd-48b0-8f4b-fd41887a3370

然后,启用 L3 代理服务。

controller# svcadm enable neutron-l3-agent