此过程介绍了如何创建代表外部网络的虚拟网络。在此虚拟网络上,不使用 DHCP,而是创建浮动 IP 地址。这些浮动 IP 地址分配给特定的租户,并且可以分配给 Nova VM 实例以供该租户下的用户使用。
因为该控制器包含了本章中的样例多节点体系结构中的 Neutron 服务,因此您将在该控制器节点上执行以下步骤。
开始之前
要执行此过程,租户必须已有内部网络。有关创建专用网络的过程,请参见如何创建内部网络。
此外,还必须完成弹性虚拟交换机配置,例如配置交换机的 l2-type 和 vlan-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
controller# svcadm enable ipfilter
controller# ipadm set-prop -p forwarding=on ipv4
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
controller# neutron router-create router-name
该命令显示路由器名称及对应的 ID。使用此 ID 在下一步中更新配置文件。
在 /etc/neutron/l3_agent.ini 文件中,将 router_id 参数的值设置为上一步中的路由器 UUID。
router_id = router-ID
controller# svcadm enable neutron-l3-agent
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external=true network-name
其中 segmentation_id 的值是 VLAN 范围的第一个数字。
在本文档的样例配置中,已禁用 DHCP。分配池由分配给子网的某个范围的浮动 IP 地址组成。
controller# neutron subnet-create --enable-dhcp=false --name subnet-name \ --allocation-pool start=start-IP, end=end-IP network-name subnet-IP
controller# neutron router-gateway-set router-ID network-ID \
在此步骤中,需要路由器 ID 和租户的子网 ID。可通过如下方式获取该信息:
# keystone tenant-list # neutron net-list --tenant-id tenant-ID
根据要添加到外部网络的租户专用网络的数量,重复此步骤。
controller# neutron router-interface-add router-ID subnet-ID
以下示例使用Figure 3–3 的部分内容作为参考。在该图中,租户 A 具有两个 VM 实例,每个实例均属于一个专用网络。这两个专用网络分别为 HR 和 ENG。这两个子网将添加到外部网络以支持两个 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.
另请参见