搜索

第 8 章 为 Red Hat OpenStack Platform 环境自定义网络

download PDF

您可以为 Red Hat OpenStack Platform (RHOSP)环境自定义 undercloud 和 overcloud 物理网络。

8.1. 自定义 undercloud 网络

您可以自定义 undercloud 网络配置,以使用特定的网络功能安装 undercloud。如果您有 IPv6 节点和基础架构,您还可以将 undercloud 和 provisioning 网络配置为使用 IPv6 而不是 IPv4。

8.1.1. 配置 undercloud 网络接口

undercloud.conf 文件中包含自定义网络配置,以使用特定的网络功能安装 undercloud。例如,一些接口可能没有 DHCP。在这种情况下,您必须在 undercloud.conf 文件中禁用这些接口的 DHCP,以便 os-net-config 可在 undercloud 安装过程中应用配置。

步骤

  1. 登录 undercloud 主机。
  2. 创建新文件 undercloud-os-net-config.yaml,并包含所需的网络配置。

    addresses 部分中,包含 local_ip,如 172.20.0.1/26。如果在 undercloud 中启用了 TLS,还必须包含 undercloud_public_host,如 172.20.0.2/32undercloud_admin_host,如 172.20.0.3/32

    下面是一个示例:

    network_config:
    - name: br-ctlplane
      type: ovs_bridge
      use_dhcp: false
      dns_servers:
      - 192.168.122.1
      domain: lab.example.com
      ovs_extra:
      - "br-set-external-id br-ctlplane bridge-id br-ctlplane"
      addresses:
      - ip_netmask: 172.20.0.1/26
      - ip_netmask: 172.20.0.2/32
      - ip_netmask: 172.20.0.3/32
      members:
      - type: interface
        name: nic2

    要为特定接口创建网络绑定,请使用以下示例:

    network_config:
    - name: br-ctlplane
      type: ovs_bridge
      use_dhcp: false
      dns_servers:
      - 192.168.122.1
      domain: lab.example.com
      ovs_extra:
      - "br-set-external-id br-ctlplane bridge-id br-ctlplane"
      addresses:
      - ip_netmask: 172.20.0.1/26
      - ip_netmask: 172.20.0.2/32
      - ip_netmask: 172.20.0.3/32
      members:
      - name: bond-ctlplane
        type: linux_bond
        use_dhcp: false
        bonding_options: "mode=active-backup"
        mtu: 1500
        members:
        - type: interface
          name: nic2
        - type: interface
          name: nic3
  3. undercloud-os-net-config.yaml 文件的路径包含在 undercloud.conf 文件的 net_config_override 参数中:

    [DEFAULT]
    ...
    net_config_override=undercloud-os-net-config.yaml
    ...
    注意

    director 使用您在 net_config_override 参数中包含的文件作为模板来生成 /etc/os-net-config/config.yaml 文件。os-net-config 管理您在模板中定义的接口,因此您必须在此文件中执行所有 undercloud 网络接口自定义。

  4. 安装 undercloud。

验证

  • 在 undercloud 安装成功完成后,验证 /etc/os-net-net-config/config.yaml 文件是否包含相关配置:

    network_config:
    - name: br-ctlplane
      type: ovs_bridge
      use_dhcp: false
      dns_servers:
      - 192.168.122.1
      domain: lab.example.com
      ovs_extra:
      - "br-set-external-id br-ctlplane bridge-id br-ctlplane"
      addresses:
      - ip_netmask: 172.20.0.1/26
      - ip_netmask: 172.20.0.2/32
      - ip_netmask: 172.20.0.3/32
      members:
      - type: interface
        name: nic2

8.1.2. 为使用 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 地址模式指定为 stateless 或 stateful :

    [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 在置备网络上创建路由器。为 true 时,数据中心路由器必须提供路由器公告。
    • <true/false> 替换为 false 来禁用路由网络,并在 provisioning 网络中创建一个路由器。
  6. 配置本地 IP 地址,以及通过 SSL/TLS 的 director Admin API 和公共 API 端点的 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 名称服务器。
  12. 使用 virt-customize 工具修改 overcloud 镜像,以禁用 cloud-init 网络配置。有关更多信息,请参阅红帽知识库解决方案 使用 virt-customize 修改 Red Hat Linux OpenStack Platform Overcloud 镜像。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.