使用 IPv6 进行裸机配置的服务配置¶
使用 IPv6 地址进行裸机配置需要额外的配置。本页仅涵盖 IPv6 的具体内容。请参阅 配置租户网络 和 为裸机配置配置网络服务 以获取通用的网络配置。
警告
IPv6 网络在上游持续集成流水线中并未积极测试,很大程度上是因为测试虚拟机对 IPv6 的支持有限且存在已知问题。硬件厂商通常拥有更好的固件,可以启用此功能,但可能需要特定的操作模式,例如 无状态 或 有状态,具体取决于客户对其的要求。
配置 ironic PXE 驱动程序以使用 IPv6 地址进行配置¶
PXE 驱动程序的操作方式使其能够根据部署的运行状态和配置使用 IPv4 和 IPv6 地址。在内部,驱动程序尝试为两种格式准备配置选项,这允许仅具有 IPv6 地址的端口自动接收启动参数。因此,至关重要的是将 DEFAULT.my_ipv6 配置参数设置为 conductor 的 IPv6 地址。此选项是每个 conductor 独有的,并且由于自动地址分配的性质,软件无法“猜测”它。
使用 IPv6 无状态寻址进行配置¶
在使用无状态寻址时,DHCPv6 不会向客户端提供地址。但是,DHCPv6 通过 DHCPv6 选项(例如 bootfile-url 和 bootfile-parameters)提供其他配置。
一旦 PXE 驱动程序设置为以 IPv6 模式运行,Baremetal 服务中就不需要进一步的配置。
在网络服务中创建网络和子网¶
在网络服务中创建 Baremetal 服务网络和子网时,子网应将 ipv6-address-mode 设置为 dhcpv6-stateless,并将 ip-version 设置为 6。取决于网络服务中的路由器是否提供 RA(路由器通告),子网的 ipv6-ra-mode 应设置为 dhcpv6-stateless 或保持未设置状态。
注意
如果 ipv6-ra-mode 保持未设置状态,则预计网络上的外部路由器将提供带有适当标志的 RA,用于自动寻址和其他配置。
使用 IPv6 有状态寻址进行配置¶
在使用有状态寻址时,DHCPv6 通过 DHCPv6 选项(例如 bootfile-url 和 bootfile-parameters)提供地址和其他配置。
DHCPv6 使用的“身份关联”(IA)结构在通过网络启动时具有挑战性。固件和 ramdisk 通常最终使用不同的 DUID/IAID 组合,并且在将控制权交给下一步之前,一个链式启动阶段不一定能够释放其地址。如果 DHCPv6 服务器配置为仅使用静态保留,结果是启动将失败,因为 DHCPv6 服务器没有可用的地址。要解决此问题,请为每个主机配置 DHCPv6 服务器使用多个地址保留,或使用动态范围。
注意
对多个地址保留的支持需要 dnsmasq 版本 2.81 或更高版本。某些发行版可能会将此功能作为打包的一部分回移植到较早的 dnsmasq 版本,请查看发行版的发行说明。
如果使用不同的(非 dnsmasq)DHCPv6 服务器后端与网络服务,则使用多个地址保留可能无法正常工作。
使用 flat 网络接口¶
由于 DHCPv6 的“身份关联”挑战,不建议使用 flat 网络接口进行配置。当 ironic 使用 flat 网络接口时,服务器实例端口用于配置和其他操作。在这种情况下,Ironic 不会使用多个地址保留。因此,在大多数情况下它将无法工作。
使用 neutron 网络接口¶
当使用 neutron 网络接口时,Baremetal 服务将在用于配置、清理、救援和内省的服务网络上分配多个 IPv6 地址(默认情况下每个端口 4 个地址)。可以通过 Bare Metal 服务配置文件(/etc/ironic/ironic.conf)中的 [neutron]/dhcpv6_stateful_address_count 选项控制分配的地址数量。使用多个地址保留可确保 DHCPv6 服务器可以向每个步骤租用地址。
要在没有交换机管理的 neutron flat 提供程序网络上启用 IPv6 配置,必须将 baremetal 端口的 local_link_connection 字段设置为 {'network_type': 'unmanaged'}。以下示例显示了如何在未管理网络上操作设置 local_link_connection 的方法
baremetal port set \
--local-link-connection network_type=unmanaged <port-uuid>
Networking 服务的 dhcp 代理配置(/etc/neutron/dhcp_agent.ini)中还必须启用多个 IPv6 地址保留,方法是将选项 [DEFAULT]/dnsmasq_enable_addr6_list 设置为 True(Ussuri 版本中的默认值为 False)。
注意
Networking Service Ussuri 版本添加了对 dnsmasq 后端中多个 IPv6 地址保留的支持。它也被回移植到稳定的 Train 版本。
在网络服务中创建网络和子网¶
在网络服务中创建 ironic 服务网络和子网时,子网应将 ipv6-address-mode 设置为 dhcpv6-stateful,并将 ip-version 设置为 6。取决于网络服务中的路由器是否提供 RA(路由器通告),子网的 ipv6-ra-mode 应设置为 dhcpv6-stateful 或保持未设置状态。
注意
如果 ipv6-ra-mode 保持未设置状态,则预计网络上的外部路由器将提供带有适当标志的 RA,用于管理寻址和其他配置。