在 Oracle® Solaris 11.2 中安装和配置 OpenStack

退出打印视图

更新时间: 2015 年 4 月
 
 

如何在 OpenStack 中配置外部网络

此过程介绍了如何创建代表外部网络的虚拟网络。在此虚拟网络上,不使用 DHCP,而是创建浮动 IP 地址。这些浮动 IP 地址分配给特定的租户,并且可以分配给 Nova VM 实例以供该租户下的用户使用。

因为该控制器包含了本章中的样例多节点体系结构中的 Neutron 服务,因此您将在该控制器节点上执行以下步骤。

开始之前

要执行此过程,租户必须已有内部网络。有关创建专用网络的过程,请参见如何创建内部网络

此外,还必须完成弹性虚拟交换机配置,例如配置交换机的 l2-typevlan-range 属性。以下示例说明了在Step 9 中配置这些属性设置时如何显示它们:

controller# evsadm show-controlprop -p l2-type -p vlan-range
PROPERTY   PERM  VALUE      DEFAULT  HOST
l2-type    rw    vlan       vlan     --
vlan-range rw    1,200-300  --       --

此外,还必须具有与正将其专用网络连接到外部网络的租户有关的信息。通过使用以下命令,可随时显示租户信息:

keystone tenant-list

  1. 启用 Solaris IP 过滤器。
    controller# svcadm enable ipfilter
  2. 在整台主机上启用 IP 转发。
    controller# ipadm set-prop -p forwarding=on ipv4
  3. 设置必要的环境变量。
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_TENANT_NAME=service-name
    controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
  4. 创建提供商路由器。
    controller# neutron router-create router-name

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

  5. 更新 L3 代理配置文件。

    /etc/neutron/l3_agent.ini 文件中,将 router_id 参数的值设置为上一步中的路由器 UUID。

    router_id = router-ID
  6. 启用 neutron-l3-agent SMF 服务。
    controller# svcadm enable neutron-l3-agent
  7. 创建外部网络。
    controller# neutron net-create --provider:network_type=vlan \
    --provider:segmentation_id=VLAN-nbr \
    --router:external=true network-name

    其中 segmentation_id 的值是 VLAN 范围的第一个数字。

  8. 创建一个子网并将其与外部网络关联。

    在本文档的样例配置中,已禁用 DHCP。分配池由分配给子网的某个范围的浮动 IP 地址组成。

    controller# neutron subnet-create --enable-dhcp=false --name subnet-name \
    --allocation-pool start=start-IP, end=end-IP network-name subnet-IP
    
  9. 向路由器添加外部网络。
    controller# neutron router-gateway-set router-ID network-ID \
    

    注 -  可以从 /etc/neutron/l3_agent.ini 文件获取 router-ID。如有必要,可以使用 neutron net-list 命令获取 network-ID
  10. 将租户的专用网络添加到路由器。

    在此步骤中,需要路由器 ID 和租户的子网 ID。可通过如下方式获取该信息:

    1. 要获取租户的子网 ID,请先显示租户及其 ID,然后显示特定租户 ID 的子网。
      # keystone tenant-list
      # neutron net-list --tenant-id tenant-ID
    2. 将专用网络添加到路由器。

      根据要添加到外部网络的租户专用网络的数量,重复此步骤。

      controller# neutron router-interface-add router-ID subnet-ID
示例 4-2  service 租户创建外部网络

以下示例使用Figure 3–3 的部分内容作为参考。在该图中,租户 A 具有两个 VM 实例,每个实例均属于一个专用网络。这两个专用网络分别为 HRENG。这两个子网将添加到外部网络以支持两个 VM 实例在范围更广的网络中通信。以下示例假定使用 Neutron 服务的缺省用户名和口令。

controller# svcadm enable ipfilter
controller# ipadm set-prop -p forwarding=on ipv4

controller# export OS_USERNAME=neutron
controller# export OS_PASSWORD=neutron
controller# export OS_TENANT_NAME=TenantA
controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create ext-router
Created a new router:
+-----------------------+-----------------+
| Field                 | Value           |
+-----------------------+-----------------+
| admin_state_up        | True            |
| external_gateway_info |                 |
| id                    | 97ro5-ut3er     |
| name                  | ext-router      |
| status                | ACTIVE          |
| tenant_id             | abcde12345      |
+-----------------------+-----------------+

此时,通过将 router_ID 参数设置为 97ro5-ut3er 更新 /etc/neutron/l3_agent.ini 文件。

在更新了该文件后,继续执行剩余步骤。

controller# svcadm enable neutron-l3-agent

controller# neutron net-create --provider:network_type=vlan \
--provider:segmentation_id=1 --router:external=true ext_network
Created a new network:
+--------------------------+-------------------+
| Field                    | Value             |
+--------------------------+-------------------+
| admin_state_up           | True              |
| id                       | 555ext-net555     |
| name                     | ext_network       |
| provider:network_type    | vlan              |
| provider:segmentation_id | 1                 |
| router:external          | True              |
| shared                   | False             |
| status                   | ACTIVE            |
| subnets                  |                   |
| tenant_id                | abcde12345        |
+--------------------------+-------------------+

controller# neutron subnet-create  --enable-dhcp=False \
--name ext_subnet --allocation-pool start=10.134.13.8,end=10.134.13.254 \
ext_network 10.134.13.0/24
Created a new subnet:

+------------------+--------------------------------------------------+
| Field            | Value                                            |
+------------------+--------------------------------------------------+
| allocation_pools | {"start": "10.134.13.8", "end": "10.134.13.254"} |
| cidr             | 10.134.13.0/24                                   |
| dns_nameservers  |                                                  |
| enable_dhcp      | False                                            |
| gateway_ip       | 10.134.13.1                                      |
| host_routes      |                                                  |
| id               | 444sub-net444                                    |
| ip_version       | 4                                                |
| name             | ext_subnet                                       |
| network_id       | 555ext-net555                                    |
| tenant_id        | abcde12345                                       |
+------------------+--------------------------------------------------+

controller# neutron router-gateway-set 97ro5-ut3er 555ext-net555
Set gateway for router 97ro5-ut3er

controller# keystone tenant-list
+------------+---------+---------+
|     id     |   name  | enabled |
+------------+---------+---------+
| 12345abcde | TenantA |  True   |
| 67890fghij | TenantB |  True   |
+------------+---------+---------+

controller# neutron net-list --tenant-id 12345abcde
+------------+------+-------------+
|     id     | name |   subnets   |
+------------+------+-------------+
| 1a3b5c7d9e | HR   | xyz-123-uvw |
| 2f4g6h8i0j | ENG  | 098-r2d2-56 |
+------------+------+-------------+

controller# neutron router-interface-add 97ro5-ut3er xyz-123-uvwHR added to the router.
Added interface xyz-123-uvw to router 97ro5-ut3er.

controller# neutron router-interface-add 97ro5-ut3er 098-r2d2-56ENG added to the router.
Added interface 098-r2d2-56 to router 97ro5-ut3er.

另请参见