第 15 章 带有 IPv6 的租户网络
本章介绍了如何在一个租户网络中实现 IPv6 子网的信息。除了租户网络,director 7.3 还可以为 overcloud 节点配置原生 IPv6 的部署。
Red Hat OpenStack Platform 6 增加了在租户网络中使用 IPv6 的功能。IPv6 子网可以在存在的租户网络中创建,并支持以下地址分配模式:SLAAC(Stateless Address Autoconfiguration)、Stateful DHCPv6 和 Stateless DHCPv6。本章介绍了 IPv6 子网创建选项,并提供了一个创建示例。
15.1. IPv6 子网选项
IPv6 子网使用 neutron subnet-create 命令创建。另外,您还可以指定地址模式和 RA(Router Advertisement)模式。下面介绍了这些选项的组合:
| RA 模式 | 地址模式 | 结果 |
|---|---|---|
|
ipv6_ra_mode=not set |
ipv6-address-mode=slaac |
这个实例使用 SLAAC 从外部路由(没有被 OpenStack Networking 管理的路由)接收 IPv6 地址。 |
|
ipv6_ra_mode=not set |
ipv6-address-mode=dhcpv6-stateful |
这个实例使用 DHCPv6 stateful 从 OpenStack Networking(dnsmasq)接收 IPv6 地址和可选的信息。 |
|
ipv6_ra_mode=not set |
ipv6-address-mode=dhcpv6-stateless |
这个实例使用 SLAAC 从外部路由接收一个 IPv6 地址,并使用 DHCPv6 stateless 从 OpenStack Networking(dnsmasq)接收可选的信息。 |
|
ipv6_ra_mode=slaac |
ipv6-address-mode=not-set |
实例使用 SLAAC 从 OpenStack Networking(radvd)接收一个 IPv6 地址。 |
|
ipv6_ra_mode=dhcpv6-stateful |
ipv6-address-mode=not-set |
这个实例使用 DHCPv6 stateful 从外部 DHCPv6 服务器接收一个 IPv6 地址和可选的信息。 |
|
ipv6_ra_mode=dhcpv6-stateless |
ipv6-address-mode=not-set |
这个实例使用 SLAAC 从 OpenStack Networking(radvd)接收一个 IPv6 地址,并使用 DHCPv6 stateless 从外部 DHCPv6 服务器接收可选的信息。 |
|
ipv6_ra_mode=slaac |
ipv6-address-mode=slaac |
实例通过 SLAAC 从 OpenStack Networking(radvd)接收一个 IPv6 地址。 |
|
ipv6_ra_mode=dhcpv6-stateful |
ipv6-address-mode=dhcpv6-stateful |
实例通过 DHCPv6 stateful 从 OpenStack Networking(dnsmasq)接收一个 IPv6 地址,使用 DHCPv6 stateful 从 OpenStack Networking(dnsmasq)获得其它可选信息。 |
|
ipv6_ra_mode=dhcpv6-stateless |
ipv6-address-mode=dhcpv6-stateless |
实例通过 DHCPv6 stateful 从 OpenStack Networking(radvd)接收一个 IPv6 地址,使用 DHCPv6 stateless 从 OpenStack Networking(dnsmasq)获得其它可选信息。 |
15.1.1. 使用 Stateful DHCPv6 创建一个 IPv6 子网
这个过程使用以上介绍的设置在一个租户网络中创建一个 IPv6 子网。它的初始步骤是收集所需的租户和网络信息,然后使用这些信息来生成一个子网创建命令。
OpenStack Networking 只支持对 SLAAC 的 EUI-64 IPv6 地址分配。因为主机将可以基于基本的 64 位再加上 MAC 地址来自分配地址,所以这将可以简化 IPv6 网络。使用不同的网络掩码和 SLAAC 的 address_assign_type 创建子网将会失败。
1. 获得需要创建 IPv6 子网的项目的租户 id。(这个值在不同 OpenStack 环境中是不同的,因此您的值可能会和这里使用的值不同)。在这个例子中,QA 的租户将会接收一个 IPv6 子网。
# keystone tenant-list +----------------------------------+----------+---------+ | id | name | enabled | +----------------------------------+----------+---------+ | 25837c567ed5458fbb441d39862e1399 | QA | True | | f59f631a77264a8eb0defc898cb836af | admin | True | | 4e2e1951e70643b5af7ed52f3ff36539 | demo | True | | 8561dff8310e4cd8be4b6fd03dc8acf5 | services | True | +----------------------------------+----------+---------+
2. 获得 OpenStack Networking(neutron)中的所有网络的列表,并记录下包括 IPv6 子网的网络名称。在这个例子中,使用 database-servers。
# neutron net-list +--------------------------------------+------------------+-------------------------------------------------------------+ | id | name | subnets | +--------------------------------------+------------------+-------------------------------------------------------------+ | 8357062a-0dc2-4146-8a7f-d2575165e363 | private | c17f74c4-db41-4538-af40-48670069af70 10.0.0.0/24 | | 31d61f7d-287e-4ada-ac29-ed7017a54542 | public | 303ced03-6019-4e79-a21c-1942a460b920 172.24.4.224/28 | | 6aff6826-4278-4a35-b74d-b0ca0cbba340 | database-servers | | +--------------------------------------+------------------+-------------------------------------------------------------+
3. 使用从以上步骤中获得的 QA tenant-id(25837c567ed5458fbb441d39862e1399)生成网络命令。另外,还需要包括 IPv6 子网的目标网络名称。在这个例子中,使用 database-servers 网络:
# neutron subnet-create --ip-version 6 --ipv6_address_mode=dhcpv6-stateful --tenant-id 25837c567ed5458fbb441d39862e1399 database-servers fdf8:f53b:82e4::53/125
Created a new subnet:
+-------------------+--------------------------------------------------------------+
| Field | Value |
+-------------------+--------------------------------------------------------------+
| allocation_pools | {"start": "fdf8:f53b:82e4::52", "end": "fdf8:f53b:82e4::56"} |
| cidr | fdf8:f53b:82e4::53/125 |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | fdf8:f53b:82e4::51 |
| host_routes | |
| id | cdfc3398-997b-46eb-9db1-ebbd88f7de05 |
| ip_version | 6 |
| ipv6_address_mode | dhcpv6-stateful |
| ipv6_ra_mode | |
| name | |
| network_id | 6aff6826-4278-4a35-b74d-b0ca0cbba340 |
| tenant_id | 25837c567ed5458fbb441d39862e1399 |
+-------------------+--------------------------------------------------------------+4. 查看网络列表来验证这个配置。请注意,database-servers 项中的内容反映了新创建的 IPv6 子网:
# neutron net-list +--------------------------------------+------------------+-------------------------------------------------------------+ | id | name | subnets | +--------------------------------------+------------------+-------------------------------------------------------------+ | 6aff6826-4278-4a35-b74d-b0ca0cbba340 | database-servers | cdfc3398-997b-46eb-9db1-ebbd88f7de05 fdf8:f53b:82e4::50/125 | | 8357062a-0dc2-4146-8a7f-d2575165e363 | private | c17f74c4-db41-4538-af40-48670069af70 10.0.0.0/24 | | 31d61f7d-287e-4ada-ac29-ed7017a54542 | public | 303ced03-6019-4e79-a21c-1942a460b920 172.24.4.224/28 | +--------------------------------------+------------------+-------------------------------------------------------------+
作为这个配置的结果,QA 租户创建的实例在加入到 database-servers 子网中时可以接收一个 DHCP IPv6 地址:
# nova list +--------------------------------------+------------+--------+------------+-------------+-------------------------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------------+--------+------------+-------------+-------------------------------------+ | fad04b7a-75b5-4f96-aed9-b40654b56e03 | corp-vm-01 | ACTIVE | - | Running | database-servers=fdf8:f53b:82e4::52 | +--------------------------------------+------------+--------+------------+-------------+-------------------------------------+

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.