4.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 置备。

先决条件

流程

  1. 打开 undercloud.conf 文件。
  2. 将 IPv6 地址模式指定为无状态或有状态:

    [DEFAULT]
    ipv6_address_mode = <address_mode>
    ...

    根据 NIC 支持的模式,将 < address_mode > 替换为 dhcpv6-statelessdhcpv6-stateful

    注意

    当您使用有状态地址模式时,固件、链加载程序和操作系统可能会使用不同的算法来生成 DHCP 服务器跟踪的 ID。DHCPv6 不会按 MAC 跟踪地址,如果来自请求者的标识符值变化,则不会提供相同的地址,但 MAC 地址保持不变。因此,当使用有状态 DHCPv6 时,还必须完成下一步来配置网络接口。

  3. 如果您将 undercloud 配置为使用有状态 DHCPv6,请指定用于裸机节点的网络接口:

    [DEFAULT]
    ipv6_address_mode = dhcpv6-stateful
    ironic_enabled_network_interfaces = neutron,flat
    ...
  4. 为裸机节点设置默认网络接口:

    [DEFAULT]
    ...
    ironic_default_network_interface = neutron
    ...
  5. 指定 undercloud 是否应该在 provisioning 网络中创建路由器:

    [DEFAULT]
    ...
    enable_routed_networks: <true/false>
    ...
    • <true/false > 替换为 true 以启用路由网络,并防止 undercloud 在 provisioning 网络中创建路由器。为 true 时,数据中心路由器必须提供路由器公告。
    • <true/false> 替换为 false 来禁用路由网络,并在 provisioning 网络中创建一个路由器。
  6. 配置本地 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 地址。

  7. 可选:配置 director 用来管理实例的 provisioning 网络:

    [ctlplane-subnet]
    cidr = <ipv6_address>/<ipv6_prefix>
    ...
    • <ipv6_address > 替换为不使用默认 provisioning 网络时用于管理实例的网络的 IPv6 地址。
    • 将 < ipv6_prefix > 替换为不使用默认置备网络时用于管理实例的网络的 IP 地址前缀。
  8. 为置备节点配置 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 地址。
  9. 可选:配置将流量转发到外部网络的网关:

    [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 地址。

  10. 配置在检查过程中使用的 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_startdhcp_end 定义的范围重叠,但必须位于同一 IP 子网中。

  11. 为子网配置 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 名称服务器。