7.6. 为使用 IPv6 的裸机置备配置 undercloud
如果有使用 IPv6 的节点和基础架构,您可以将 undercloud 和置备网络配置为使用 IPv6 而不是 IPv4,以便 director 能够在 IPv6 节点上置备和部署 Red Hat OpenStack Platform。但是,有一些注意事项:
- 双堆栈 IPv4/6 不可用。
- Tempest 验证可能无法正确执行。
- 在升级过程中,无法进行 IPv4 到 IPv6 的迁移。
修改 undercloud.conf
文件,以便在 Red Hat OpenStack Platform 中启用 IPv6 置备。
先决条件
- undercloud 上的 IPv6 地址。有关更多信息,请参阅 Overcloud 的 IPv6 网络指南中的在 undercloud 上配置 IPv6 地址。
流程
-
打开
undercloud.conf
文件。 将 IPv6 地址模式指定为无状态或有状态:
[DEFAULT] ipv6_address_mode = <address_mode> ...
-
根据 NIC 支持的模式,将 <
address_mode
> 替换为dhcpv6-stateless
或dhcpv6-stateful
。
注意当您使用有状态地址模式时,固件、链加载程序和操作系统可能会使用不同的算法来生成 DHCP 服务器跟踪的 ID。DHCPv6 不会按 MAC 跟踪地址,如果来自请求者的标识符值变化,则不会提供相同的地址,但 MAC 地址保持不变。因此,当使用有状态 DHCPv6 时,还必须完成下一步来配置网络接口。
-
根据 NIC 支持的模式,将 <
如果您将 undercloud 配置为使用有状态 DHCPv6,请指定用于裸机节点的网络接口:
[DEFAULT] ipv6_address_mode = dhcpv6-stateful ironic_enabled_network_interfaces = neutron,flat ...
为裸机节点设置默认网络接口:
[DEFAULT] ... ironic_default_network_interface = neutron ...
指定 undercloud 是否应该在 provisioning 网络中创建路由器:
[DEFAULT] ... enable_routed_networks: <true/false> ...
-
将
<true/false
> 替换为true
以启用路由网络,并防止 undercloud 在 provisioning 网络中创建路由器。为true
时,数据中心路由器必须提供路由器公告。 -
将
<true/false>
替换为false
来禁用路由网络,并在 provisioning 网络中创建一个路由器。
-
将
配置本地 IP 地址,以及 director Admin API 和公共 API 端点通过 SSL/TLS 的 IP 地址:
[DEFAULT] ... local_ip = <ipv6_address> undercloud_admin_host = <ipv6_address> undercloud_public_host = <ipv6_address> ...
-
将
<ipv6_address
> 替换为 undercloud 的 IPv6 地址。
-
将
可选:配置 director 用来管理实例的 provisioning 网络:
[ctlplane-subnet] cidr = <ipv6_address>/<ipv6_prefix> ...
-
将
<ipv6_address
> 替换为不使用默认 provisioning 网络时用于管理实例的网络的 IPv6 地址。 -
将 <
ipv6_prefix
> 替换为不使用默认置备网络时用于管理实例的网络的 IP 地址前缀。
-
将
为置备节点配置 DHCP 分配范围:
[ctlplane-subnet] cidr = <ipv6_address>/<ipv6_prefix> dhcp_start = <ipv6_address_dhcp_start> dhcp_end = <ipv6_address_dhcp_end> ...
-
将
<ipv6_address_dhcp_start
> 替换为要用于 overcloud 节点的网络范围的 IPv6 地址。 -
将
<ipv6_address_dhcp_end
> 替换为要用于 overcloud 节点的网络范围末尾的 IPv6 地址。
-
将
可选:配置将流量转发到外部网络的网关:
[ctlplane-subnet] cidr = <ipv6_address>/<ipv6_prefix> dhcp_start = <ipv6_address_dhcp_start> dhcp_end = <ipv6_address_dhcp_end> gateway = <ipv6_gateway_address> ...
-
在不使用默认网关时,将
<ipv6_gateway_address>
替换为网关的 IPv6 地址。
-
在不使用默认网关时,将
配置在检查过程中使用的 DHCP 范围:
[ctlplane-subnet] cidr = <ipv6_address>/<ipv6_prefix> dhcp_start = <ipv6_address_dhcp_start> dhcp_end = <ipv6_address_dhcp_end> gateway = <ipv6_gateway_address> inspection_iprange = <ipv6_address_inspection_start>,<ipv6_address_inspection_end> ...
-
将 <
ipv6_address_inspection_
start> 替换为检查过程中要使用的网络范围内的 IPv6 地址。 -
将
<ipv6_address_inspection_end
> 替换为检查过程中要使用的网络范围末尾的 IPv6 地址。
注意这个范围不得与
dhcp_start
和dhcp_end
定义的范围重叠,但必须位于同一 IP 子网中。-
将 <
为子网配置 IPv6 名称服务器:
[ctlplane-subnet] cidr = <ipv6_address>/<ipv6_prefix> dhcp_start = <ipv6_address_dhcp_start> dhcp_end = <ipv6_address_dhcp_end> gateway = <ipv6_gateway_address> inspection_iprange = <ipv6_address_inspection_start>,<ipv6_address_inspection_end> dns_nameservers = <ipv6_dns>
-
将
<ipv6_dns>
替换为特定于子网的 DNS 名称服务器。
-
将