Overcloud 的 IPv6 网络


Red Hat OpenStack Platform 8

配置 Overcloud 以使用 IPv6 网络

OpenStack Documentation Team

摘要

本指南提供有关使用 Red Hat OpenStack Platform director 创建使用 IPv6 端点的 Overcloud 的信息。这包括 director 如何部署基于 IPv6 的 Overcloud 的信息,以及配置选项。

第 1 章 简介

Red Hat OpenStack Platform director 创建名为 Overcloud 的云环境。作为默认设置,Overcloud 使用互联网协议版本 4 (IPv4)来配置服务端点。但是,Overcloud 还支持互联网协议版本 6 (IPv6)端点,这对于支持 IPv6 基础架构的组织非常有用。本指南提供在 Overcloud 中使用 IPv6 的信息和配置示例。

1.1. 定义 IPv6 网络

IPv6 是互联网协议标准的最新版本。互联网工程任务组(IETF)开发了 IPv6,作为从当前通用 IPv4 标准的 IP 地址耗尽的方式。IPv6 与 IPv4 的不同有不同,包括:

大型 IP 地址范围
IPv6 范围大于 IPv4 范围。
更好的端到端连接
因为对网络地址转换的依赖,较大的 IP 范围会提供更好的端到端连接。
没有广播
IPv6 不支持传统的 IP 广播。相反,IPv6 使用多播以分级方式将数据包发送到适用的主机。
无状态地址自动配置(SLAAC)
IPv6 提供自动配置 IP 地址并检测网络上的重复地址的功能。这可减少 DHCP 服务器来分配地址的依赖。

IPv6 使用 128 位(代表使用一组 16 位)的 4 个十六进制定义地址,而 IPv4 仅使用 32 位(代表使用一组 8 位的十进制数字)。例如,IPv4 地址(192.168.0.1)的表示如下所示:

Expand
bits表示

11000000

192

10101000

168

00000000

0

00000001

1

对于 IPv6 地址(2001:db8:88ec:9fb3::1),表示如下:

Expand
bits表示

0010 0000 0000 0001

2001

0000 1101 1011 1000

0db8

1000 1000 1110 1100

88ec

1001 1111 1011 0011

9fb3

0000 0000 0000 0000

0000

0000 0000 0000 0000

0000

0000 0000 0000 0000

0000

0000 0000 0000 0001

0001

请注意,您还可以代表每个位组中没有前导零的 IPv6 地址,并为每个 IP 地址省略一组零位组。在我们的示例中,您可以像 db8 一样表示 0db8 位分组,省略三组 0000 位组,这会将 2001:0db8:88ec:9fb3:0000:0000:0000:0001 缩短为 2001:db8:88ec:9fb3::1。如需更多信息,请参阅 "RFC 5952: A Recommendation for IPv6 Address Text Representation"

IPv6 中的子网划分

与 IPv4 类似,IPv6 地址使用位掩码将地址前缀定义为其网络。例如,如果您为示例 IP 地址(例如 2001:db8:88ec:9fb3::1/64)),位掩码充当定义前 64 位(2001:db8:88ec:9fb3)的前缀,则位掩码充当定义前 64 位的前缀(2001:db8:88ec:9fb3)的前缀。剩余位(0000:0000:0000:0001)定义主机。

IPv6 还使用一些特殊地址类型,包括:

loopback
环回设备使用 IPv6 进行主机内部通信。此设备始终为 ::1/128。
链接本地
链接本地地址是特定网络段中有效的 IP 地址。IPv6 要求每个网络设备具有链接本地地址,并使用前缀 fe80::/10。但是,大多数时候,这些地址的前缀为 fe80::/64。
唯一的本地
唯一的本地地址用于本地通信。这些地址使用 fc00::/7 前缀。
多播
主机使用多播地址加入多播组。这些地址使用 ff00::/8 前缀。例如,FF02::1 是网络上所有节点的多播组,FF02::2 是所有路由器的多播组。
全局单播
这些地址通常为公共 IP 地址保留。这些地址使用 2000::/3 前缀。

1.2. 在 Red Hat OpenStack Platform 中使用 IPv6

Red Hat OpenStack Platform director 提供了将 OpenStack 服务映射到隔离网络的方法。这些网络包括:

  • 内部 API
  • 存储
  • 存储管理
  • 租户网络(Neutron VLAN 模式)
  • 外部

有关这些网络流量类型的更多信息,请参阅 Red Hat OpenStack Platform 8 Director 安装和使用 指南中的 规划网络

Red Hat OpenStack Platform director 还提供了将 IPv6 通信用于这些网络的方法。这意味着所需的 OpenStack 服务、数据库和其他相关服务使用 IPv6 地址进行通信。这也适用于使用涉及多个 Controller 节点的高可用性解决方案的环境。这有助于组织将 Red Hat OpenStack Platform 与其 IPv6 基础架构集成。

使用下表作为 Red Hat OpenStack Platform 中支持 IPv6 的网络的指南:

Expand
网络类型双栈(IPv4/v6)单堆栈(IPv6)单堆栈(IPv4)

内部 API

 

 

Storage

 

 

存储管理

 

 

租户网络

 

租户网络端点

  

这指的是托管租户网络隧道的网络的 IP 地址,而不是租户网络本身

External - 公共 API (和 Horizon)

 

 

External - 浮动 IP

是 [1]

是 [1]

 

提供商网络

IPv6 支持取决于租户操作系统

调配(PXE/DHCP)

  

此网络上的接口仅是 IPv4。

IPMI 或其他 BMC

  

OpenStack 平台通过 Provisioning 网络(即 IPv4)与 BMC 接口通信。但是,如果 BMC 接口支持双栈 IPv4/IPv6,非 OpenStack 平台工具可以使用 IPv6 与 BMC 通信。

Overcloud 置备网络

   

overcloud 中的 Ironic 置备网络

overcloud 清理网络

   

隔离网络在机器准备好重复使用前清除机器

[1] 分配全局单播地址(GUA)前缀和地址的 Neutron 租户网络不需要 neutron 路由器外部网关端口上的 NAT 来访问外部世界。

1.3. 设置要求

本指南充当 Red Hat OpenStack Platform 8 Director 安装和使用指南的补充 信息。这意味着要求中指定的相同 要求 也适用于本指南。根据需要实施这些要求。

本指南还需要以下内容:

  • 安装了 Red Hat OpenStack Platform director 的 Undercloud 主机。请参阅 安装 Undercloud
  • 您的网络支持 IPv6-native VLAN 和 IPv4 原生 VLAN。两者都要在部署中使用。

1.4. 定义场景

本指南的场景是创建带有使用 IPv6 的隔离网络的 Overcloud。本指南旨在通过利用 Heat 模板和环境文件配置的网络隔离来实现此目标。此方案还向这些 Heat 模板和环境文件提供某些变体,以演示配置中的具体差异。

注意

在这种情况下,Undercloud 仍然使用 IPv4 连接进行 PXE 引导、内省、部署和其他服务。

本指南使用与 Red Hat OpenStack Platform 8 Director 安装和使用指南中的 高级 Overcloud 场景类似。主要区别是 Ceph Storage 节点的遗漏。

有关此场景的更多信息,请参阅为 Overcloud 配置高级自定义

重要

本指南将 2001:DB8::/32 IPv6 前缀用于 RFC 3849 中定义的文档目的。确保将这些示例地址替换为您自己的网络中的 IPv6 地址。

第 2 章 在创建前配置 Overcloud

下面的章节提供了在运行 openstack overcloud deploy 命令前所需的配置。这包括准备节点以进行调配、配置 Undercloud 上的 IPv6 地址以及创建定义 Overcloud 的 IPv6 参数的网络环境文件。

2.1. 初始化 Stack 用户

stack 用户身份登录 director 主机,并运行以下命令来初始化 director 配置:

$ source ~/stackrc

这将设置环境变量,其中包含用于访问 director 的 CLI 工具的身份验证详情。

2.2. 在 Undercloud 上配置 IPv6 地址

Undercloud 需要访问 Overcloud 的公共 API,该 API 位于外部网络上。要达到此目的,Undercloud 主机需要在访问外部网络的接口上有一个 IPv6 地址。

注意

Provisioning 网络仍然需要每个节点的 IPv4 连接。Undercloud 和 Overcloud 节点使用此网络进行 PXE 引导、内省和部署。另外,节点使用此网络通过 IPv4 访问 DNS 和 NTP 服务。

原生 VLAN 或 Dedicated 接口

如果 Undercloud 使用原生 VLAN 或附加到外部网络的专用接口,请使用 ip 命令向接口添加 IPv6 地址。在本例中,专用接口是 eth0

$ sudo ip link set dev eth0 up; sudo ip addr add 2001:db8::1/64 dev eth0

中继 VLAN 接口

如果 Undercloud 使用 control plane 网桥(br-ctlplane)在同一接口上使用中继 VLAN 来访问外部网络,请创建新的 VLAN 接口,将它附加到控制平面,再添加 IPv6 地址到 VLAN。例如,对于外部网络的 VLAN ID,我们的场景使用 100:

$ sudo ovs-vsctl add-port br-ctlplane vlan100 tag=100 -- set interface vlan100 type=internal
$ sudo ip l set dev vlan100 up; sudo ip addr add 2001:db8::1/64 dev vlan100

确认 IPv6 地址

使用 ip 命令确认添加 IPv6 地址:

$ ip addr

IPv6 地址显示在所选接口上。

设置持久性 IPv6 地址

除了以上之外,您可能还想使 IPv6 地址永久生效。在这种情况下,在 /etc/sysconfig/network-scripts/ 中修改或创建适当的接口文件(在我们的示例中,是 ifcfg-eth0ifcfg-vlan100)。包含以下行:

IPV6INIT=yes
IPV6ADDR=2001:db8::1/64

如需更多信息,请参阅红帽客户门户网站 如何为 IPv6 配置网络接口

2.3. 设置您的环境

本节使用 Red Hat OpenStack Platform 8 Director 安装和使用中的 配置基本 Overcloud 要求 中的流程的一个截止版本。

使用以下工作流来设置您的环境:

  • 创建节点定义模板,并在 director 中注册空白节点。
  • 检查所有节点的硬件。
  • 手动将节点标记到角色中。
  • 创建类别,并将它们标记到角色中。

2.3.1. 注册节点

节点定义模板(instackenv.json)是一个 JSON 格式文件,包含用于注册节点的硬件和电源管理详情。例如:

{
    "nodes":[
        {
            "mac":[
                "bb:bb:bb:bb:bb:bb"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.205"
        },
        {
            "mac":[
                "cc:cc:cc:cc:cc:cc"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.206"
        },
        {
            "mac":[
                "dd:dd:dd:dd:dd:dd"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.207"
        },
        {
            "mac":[
                "ee:ee:ee:ee:ee:ee"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.208"
        }
        {
            "mac":[
                "ff:ff:ff:ff:ff:ff"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.209"
        }
        {
            "mac":[
                "gg:gg:gg:gg:gg:gg"
            ],
            "cpu":"4",
            "memory":"6144",
            "disk":"40",
            "arch":"x86_64",
            "pm_type":"pxe_ipmitool",
            "pm_user":"admin",
            "pm_password":"p@55w0rd!",
            "pm_addr":"192.0.2.210"
        }
    ]
}
注意

Provisioning 网络使用 IPv4 地址。IPMI 地址也必须是 IPv4 地址,且必须通过 Provisioning 网络的路由直接附加或访问它们。

创建模板后,将文件保存到 stack 用户的主目录(/home/stack/instackenv.json),然后将其导入到 director。使用以下命令完成此操作:

$ openstack baremetal import --json ~/instackenv.json

这会导入模板,并将模板中的每个节点注册到 director 中。

将内核和 ramdisk 镜像分配给所有节点:

$ openstack baremetal configure boot

现在,节点已在 director 中注册和配置。

2.3.2. 检查节点的硬件

注册节点后,检查每个节点的硬件属性。运行以下命令检查每个节点的属性:

$ openstack baremetal introspection bulk start
重要

确保此进程完成运行。它可能需要 15 分钟来检查这些裸机节点。

2.3.3. 手动标记节点

注册并检查每个节点的硬件后,将它们标记到特定的配置集中。这些配置集标签与您的节点与类别匹配,而类别则分配到部署角色。

检索节点列表来识别它们的 UUID:

$ ironic node-list

要手动标记节点到特定的配置集,请将 profile 选项添加到每个节点的 properties/capabilities 参数中。例如,要将三个节点标记为使用控制器配置集和一个节点以使用计算配置集,请使用以下命令:

$ ironic node-update 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 6faba1a9-e2d8-4b7c-95a2-c7fbdc12129a add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 5e3b2f50-fcd9-4404-b0a2-59d79924b38e add properties/capabilities='profile:control,boot_option:local'
$ ironic node-update 484587b2-b3b3-40d5-925b-a26a2fa3036f add properties/capabilities='profile:compute,boot_option:local'
$ ironic node-update d010460b-38f2-4800-9cc4-d69f0d067efe add properties/capabilities='profile:compute,boot_option:local'
$ ironic node-update d930e613-3e14-44b9-8240-4f3559801ea6 add properties/capabilities='profile:compute,boot_option:local'

添加 profile:computeprofile:control 选项会将节点标记为相关的配置集。

注意

作为手动标记的替代选择,可使用自动配置集标记根据基准测试数据标记大量节点。

2.4. 配置网络

本节检查 Overcloud 的网络配置。这包括隔离服务以使用特定的网络流量和使用我们的 IPv6 选项配置 Overcloud。

2.4.1. 配置接口

Overcloud 需要一组网络接口模板。这些模板是 YAML 格式的标准 Heat 模板。director 包含一组示例模板供您入门:

  • /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans - 目录,包含每个角色上具有 VLAN 配置的单个 NIC 的模板。
  • /usr/share/openstack-tripleo-heat-templates/network/config/bond-with-vlans - 目录,其中包含每个角色上绑定 NIC 配置的模板。

将其中一个模板集合复制到 stack 用户的 templates 目录中。例如:

$ sudo cp -r /usr/share/openstack-tripleo-heat-templates/network/config/single-nic-vlans ~/templates/nic-configs

有关网络接口配置的更多信息,请参阅 Red Hat Enterprise Linux OpenStack Platform 8 Director 安装和使用中的创建自定义 接口 模板

注意

两个接口模板集合都包含两个用于配置控制器节点的文件: controller.yamlcontroller-v6.yaml。使用 controller-v6.yaml 来配置 IPv6。

2.4.2. 配置 IPv6 隔离网络

Overcloud 需要网络环境文件来配置 IPv6。此文件是描述 Overcloud 网络环境并指向网络接口配置模板的 Heat 环境文件。在这种情况下,创建一个环境文件(/home/stack/network-environment.yaml),并包含以下部分。

resource_registry:
  OS::TripleO::BlockStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/cinder-storage.yaml
  OS::TripleO::Compute::Net::SoftwareConfig: /home/stack/templates/nic-configs/compute.yaml
  OS::TripleO::Controller::Net::SoftwareConfig: /home/stack/templates/nic-configs/controller-v6.yaml
  OS::TripleO::ObjectStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/swift-storage.yaml
  OS::TripleO::CephStorage::Net::SoftwareConfig: /home/stack/templates/nic-configs/ceph-storage.yaml

本节将每个接口模板作为一个资源注册。在创建 Overcloud 时,主 Heat 模板集合在为每个节点类型配置网络时调用适当的 OS::TripleO::*::Net::SoftwareConfig 资源。如果没有这些资源,则主要的 Heat 模板集合使用来自主资源 registry 的默认网络配置集合。

注意

两个接口模板集合都包含两个用于配置控制器节点的文件: controller.yamlcontroller-v6.yaml。使用 controller-v6.yaml 来配置 IPv6。

parameter_defaults:
  DnsServers: ["8.8.8.8","8.8.4.4"]
  ControlPlaneSubnetCidr: "24"
  EC2MetadataIp: 192.0.2.1
  ControlPlaneDefaultRoute: 192.0.2.1
  ExternalInterfaceDefaultRoute: 2001:db8::1

  ExternalNetworkVlanID: 100
  ExternalNetCidr: '2001:db8:0:1::/64'
  ExternalAllocationPools: [{'start': '2001:db8:0:1::10', 'end': '2001:db8:0:1:ffff:ffff:ffff:fffe'}]

  InternalApiNetworkVlanID: 201
  InternalApiNetCidr: 'fd00:fd00:fd00:2000::/64'
  InternalApiAllocationPools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]

  TenantNetworkVlanID: 202
  TenantNetCidr: 172.17.0.0/24
  TenantAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}]

  StorageNetworkVlanID: 203
  StorageNetCidr: 'fd00:fd00:fd00:4000::/64'
  StorageAllocationPools: [{'start': 'fd00:fd00:fd00:4000:0000:0000:0000:0000', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:ffff'}]

  StorageMgmtNetworkVlanID: 204
  StorageMgmtNetCidr: 'fd00:fd00:fd00:5000::/64'
  StorageMgmtAllocationPools: [{'start': 'fd00:fd00:fd00:5000:0000:0000:0000:0000', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:ffff'}]

parameter_defaults 部分包含环境的自定义。请注意 IPv6 设置的以下参数:

ExternalInterfaceDefaultRoute
外部接口默认路由的 IP 地址。在这种情况下,您将使用 Undercloud 作为默认路由,并指定 第 2.2 节 “在 Undercloud 上配置 IPv6 地址” 中创建的 IP 地址。
ExternalNetworkVlanID
外部网络的 VLAN ID。如果使用 VLAN 访问 Undercloud 上的外部网络(请参见 第 2.2 节 “在 Undercloud 上配置 IPv6 地址”),请确保为这个值映射相同的 VLAN。
ExternalNetCidr, InternalApiNetCidr, TenantNetCidr, StorageNetCidr, StorageMgmtNetCidr
每个对应网络的 IPv6 CIDR 前缀。
ExternalAllocationPools, InternalApiAllocationPools, TenantAllocationPools, StorageAllocationPools, StorageMgmtAllocationPools
要分配给节点的 IPv6 地址范围。这对于确保不会发生 IPv6 冲突非常有用。

2.4.3. 使用混合 IPv6/IPv4 配置

可以将 Overcloud 配置为将 IPv4 和 IPv6 网络组合用于各种服务。这要求修改 Overcloud 中的网络和端口。例如,我们可能旨在在 IPv4 上部署存储和存储管理网络,而其他网络则使用 IPv6。

复制网络隔离初始化文件(network-isolation-v6.yaml):

$ sudo cp /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml ~/templates/nic-configs/network-isolation-v6.yaml

编辑该文件,以映射存储和存储管理资源,以使用模板的 IPv4 版本。例如:

resource_registry:
  OS::TripleO::Network::External: ../network/external_v6.yaml
  OS::TripleO::Network::InternalApi: ../network/internal_api_v6.yaml
  OS::TripleO::Network::StorageMgmt: ../network/storage_mgmt.yaml   # Changed for IPv4
  OS::TripleO::Network::Storage: ../network/storage.yaml            # Changed for IPv4
  OS::TripleO::Network::Tenant: ../network/tenant_v6.yaml

# Port assignments for the VIPs
  OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external_v6.yaml
  OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api_v6.yaml
  OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage.yaml            # Changed for IPv4
  OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt.yaml   # Changed for IPv4
  OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip_v6.yaml

# Port assignments for the controller role
  OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external_v6.yaml
  OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api_v6.yaml
  OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage.yaml            # Changed for IPv4
  OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml   # Changed for IPv4
  OS::TripleO::Controller::Ports::TenantPort: ../network/ports/tenant_v6.yaml

...

在运行 openstack overcloud deploy 时,包含自定义 network-isolation-v6.yaml 而不是原始的。

此外,修改 /home/stack/network-environment.yaml 中的 parameter_defaults 部分,以定义其对应网络的 IPv6 和 IPv4 分配混合。例如:

parameter_defaults:
  DnsServers: ["8.8.8.8","8.8.4.4"]
  ControlPlaneSubnetCidr: "24"
  EC2MetadataIp: 192.0.2.1
  ControlPlaneDefaultRoute: 192.0.2.1
  ExternalInterfaceDefaultRoute: 2001:db8::1

  ExternalNetworkVlanID: 100
  ExternalNetCidr: '2001:db8:0:1::/64'
  ExternalAllocationPools: [{'start': '2001:db8:0:1::10', 'end': '2001:db8:0:1:ffff:ffff:ffff:fffe'}]

  InternalApiNetworkVlanID: 201
  InternalApiNetCidr: 'fd00:fd00:fd00:2000::/64'
  InternalApiAllocationPools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}]

  TenantNetworkVlanID: 202
  TenantNetCidr: 172.17.0.0/24
  TenantAllocationPools: [{'start': '172.17.0.10', 'end': '172.17.0.200'}]

  StorageNetworkVlanID: 203
  StorageNetCidr: 172.18.0.0/24
  StorageAllocationPools: [{'start': '172.18.0.10', 'end': '172.18.0.200'}]

  StorageMgmtNetworkVlanID: 204
  StorageMgmtNetCidr: 172.19.0.0/24
  StorageMgmtAllocationPools: [{'start': '172.19.0.10', 'end': '172.19.0.200'}]
重要

如果在 Overcloud 中使用 VXLAN 网络,请将租户网络设置为使用 IPv4。租户网络不支持 IPv6 VXLAN。

2.5. 完成 Overcloud 配置

这完成必要的步骤来配置基于 IPv6 的 Overcloud。下一章使用 openstack overcloud deploy 命令,利用本章中的配置创建 Overcloud。

第 3 章 创建 Overcloud

创建使用 IPv6 网络的 Overcloud 需要 openstack overcloud deploy 命令的其他参数。例如:

$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml -e /home/stack/templates/network-environment.yaml -e --control-scale 3 --compute-scale 3 --control-flavor control --compute-flavor compute --neutron-disable-tunneling --neutron-network-type vlan --neutron-tunnel-types vlan --neutron-network-vlan-ranges datacenter:1:1000 --ntp-server pool.ntp.org [ADDITIONAL OPTIONS]

以上命令使用以下选项:

  • --templates - 从默认的 Heat 模板集合创建 Overcloud。
  • -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation-v6.yaml - 向 Overcloud 部署添加额外的环境文件。在这种情况下,它是一个环境文件,用于初始化 IPv6 的网络隔离配置。
  • -e /home/stack/templates/network-environment.yaml - 向 Overcloud 部署添加额外的环境文件。在这种情况下,它是之前创建的网络环境文件。
  • --control-scale 3 - 将 Controller 节点扩展为 3。
  • --compute-scale 3 - 将 Compute 节点扩展为 3。
  • --control-flavor control - 为 Controller 节点使用特定的类别。
  • --compute-flavor compute - 将特定的类别用于计算节点。
  • --Neutron-disable-tunneling - 禁用 Overcloud 中的隧道。隧道不支持 IPv6。如果将 IPv4 用于租户网络配置,并且旨在启用隧道,请不要包含此选项。
  • --Neutron-network-type vlan - 设置 neutron 网络类型。如果将 IPv6 用于租户网络,则使用 VLAN 模式。如果使用 VXLAN,请将租户网络更改为使用 IPv4。如需更多信息,请参阅 第 2.4.3 节 “使用混合 IPv6/IPv4 配置”
  • --Neutron-network-vlan-ranges datacenter:1:1000 - set the mapping range for neutron to support.
  • --ntp-server pool.ntp.org - 设置 NTP 服务器。
注意

如需完整的选项列表,请运行:

$ openstack help overcloud deploy

Overcloud 创建过程开始,并且 director 会调配您的节点。这个过程需要一些时间才能完成。要查看 Overcloud 创建的状态,请以 stack 用户身份打开一个单独的终端并运行:

$ source ~/stackrc
$ heat stack-list --show-nested

3.1. 访问 Overcloud

director 会生成脚本来配置和帮助认证 director 主机与 Overcloud 的交互。director 将此文件(overcloudrc)保存到 stack 用户的主目录中。运行以下命令来使用此文件:

$ source ~/overcloudrc

这会加载必要的环境变量,以便从 director 主机的 CLI 与 Overcloud 交互。要返回与 director 主机进行交互的状态,请运行以下命令:

$ source ~/stackrc

第 4 章 创建后配置 Overcloud

创建过程会导致 overcloud 具有 IPv6 网络。但是,Overcloud 需要一些创建后配置。

4.1. 创建 Overcloud 租户网络

Overcloud 需要针对实例使用基于 IPv6 的租户网络。提供 overcloudrc 文件,并在 neutron 中创建初始租户网络。例如:

$ source ~/overcloudrc
$ neutron net-create default --provider:physical_network datacentre --provider:network_type vlan --provider:segmentation_id 101
$ neutron subnet-create default 2001:db8:fd00:6000::/64 --ipv6-ra-mode slaac --ipv6-address-mode slaac --ip-version 6 --name default

这会创建一个名为 default 的基本 neutron 网络。使用 neutron net-list 确认创建的网络:

$ neutron net-list

4.2. 创建 Overcloud 公共网络

此场景将节点接口配置为使用外部网络。但是,您仍需要在 Overcloud 上创建此网络,以便我们可以提供网络访问。

$ neutron net-create public --router:external --provider:physical_network datacentre --provider:network_type vlan --provider:segmentation_id 100
$ neutron subnet-create public 2001:db8:0:2::/64 --ip-version 6 --gateway 2001:db8::1 --allocation-pool start=2001:db8:0:2::2,end=2001:db8:0:2::ffff --ip-version 6 --ipv6_address_mode=slaac --ipv6_ra_mode=slaac

这会创建一个名为 public 的网络,为我们的实例提供超过 65000 IPv6 地址的分配池。

创建路由器,将实例流量路由到外部网络。

neutron router-create public-router
neutron router-gateway-set public-router public

第 5 章 总结

此结束了基于 IPv6 的 Overcloud 的创建和配置过程。有关常规 Overcloud 后创建功能,请参阅 Red Hat OpenStack Platform 8 Director 安装和使用指南中的 Overcloud 创建后执行任务。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部