在Mitaka的介绍中的自动分配功能简化了为最终用户设置外部连接的过程,也称为“获取我的网络”。
运营商必须创建默认的外部网络和默认子网池(一个用于IPv4,一个用于IPv6或每个子网)。 一旦这些位置到位,用户可以通过一个命令获得自动分配的拓扑。
启用自动分配的部署
为了使用这个功能,必须开启下列扩展
auto-allocated-topology
subnet_allocation
external-net
router
在最终用户可以使用自动分配功能之前,运营商必须创建将用于自动分配网络拓扑创建的资源。 要执行此任务,请执行以下步骤:
1. 设置默认外部网络
设置外部网络在OpenStack管理员指南中描述。 假设要用于自动分配功能的外部网络命名为public,请使用以下命令将其设置为默认外部网络:
$ neutron net-update public --is-default=True
2.创建默认子网池
自动分配功能需要至少一个默认子网池。 一个用于IPv4,一个用于IPv6,或每个。
$ neutron subnetpool-create --shared --is-default True\
--pool-prefix 10.0.0.0/24 --default-prefixlen 26 shared-default
Created a new subnetpool:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| address_scope_id | |
| default_prefixlen | 26 |
| default_quota | |
| id | 7923bc31-4ca4-4c95-9ec2-d69b21775ee2 |
| ip_version | 4 |
| is_default | True |
| max_prefixlen | 32 |
| min_prefixlen | 8 |
| name | shared-default |
| prefixes | 10.0.0.0/24 |
| shared | True |
| tenant_id | 375e91c9dc854aaa8c8fd93f4b24e87c |
+-------------------+--------------------------------------+
$ neutron subnetpool-create --shared --is-default True\
--pool-prefix 2001:db8:8000::/48 --default-prefixlen 64 default-v6
Created a new subnetpool:
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| address_scope_id | |
| default_prefixlen | 64 |
| default_quota | |
| id | 953b28ab-5afa-42ea-8f44-44bf111672b1 |
| ip_version | 6 |
| is_default | True |
| max_prefixlen | 128 |
| min_prefixlen | 64 |
| name | default-v6 |
| prefixes | 2001:db8:8000::/48 |
| shared | True |
| tenant_id | 375e91c9dc854aaa8c8fd93f4b24e87c |
+-------------------+--------------------------------------+
“获取我的网络”
在运营商已经如上所述设置资源的部署中,用户可以得到其自动分配的网络拓扑,如下所示:
$ neutron auto-allocated-topology-show
+-----------+--------------------------------------+
| Field | Value |
+-----------+--------------------------------------+
| id | 8b835bfb-cae2-4acc-b53f-c16bb5f9a7d0 |
| tenant_id | 3a4e311bcb3545b9b7ad326f93194f8c |
+-----------+--------------------------------------+
操作员(以及具有管理角色的用户)可以通过指定项目ID来获取项目的自动分配拓扑:
$ neutron auto-allocated-topology-show 3a4e311bcb3545b9b7ad326f93194f8c
+-----------+--------------------------------------+
| Field | Value |
+-----------+--------------------------------------+
| id | 8b835bfb-cae2-4acc-b53f-c16bb5f9a7d0 |
| tenant_id | 3a4e311bcb3545b9b7ad326f93194f8c |
+-----------+--------------------------------------+
此命令返回的ID是可用于引导VM的网络。
$ nova boot --flavor m1.small --image cirros-0.3.4-x86_64-uec\
--nic net-id=8b835bfb-cae2-4acc-b53f-c16bb5f9a7d0 vm1
用户的自动分配拓扑结构不会更改。
验证自动分配的要求
要验证所需资源是否正确设置为自动分配,请使用–dry-run选项:
$ neutron auto-allocated-topology-show --dry-run
Deployment error: No default router:external network.
$ neutron net-update public --is-default=True
$ neutron auto-allocated-topology-show --dry-run
Deployment error: No default subnetpools defined.
$ neutron subnetpool-update shared-default --is-default=True
$ neutron auto-allocated-topology-show --dry-run
+---------+-------+
| Field | Value |
+---------+-------+
| dry-run | pass |
+---------+-------+
验证选项对所有用户的行为相同。 但是,它主要被认为是一个管理实用程序,因为是操作员必须设置要求。
通过自动分配创建的项目资源
自动分配功能在使用它的每个项目中创建一个网络拓扑。 项目的自动分配网络拓扑包含以下资源:
资源 | 名称 |
---|---|
network | auto_allocated_network |
subnet(ipv4) | auto_allocated_subnet_v4 |
subnet(ipv6) | auto_allocated_subnet_v6 |
router | auto_allocated_router |