10.2. 网络隔离


Red Hat OpenStack Platform (RHOSP)提供隔离的 overcloud 网络,以便您可以隔离托管特定类型的网络流量。流量分配给特定的网络接口或绑定。使用绑定提供容错功能,如果使用正确的绑定协议,也可以提供负载共享。如果没有配置隔离网络,RHOSP 将 provisioning 网络用于所有服务。

网络配置由两个部分组成:应用于整个网络的参数,以及用于配置部署节点上网络接口的模板。

您可以为 RHOSP 部署创建以下隔离网络:

IPMI
用于节点电源管理的网络。安装 undercloud 之前已预定义了此网络。
置备
director 使用这个网络进行部署和管理。provisioning 网络通常配置在专用的接口上。初始部署使用带有 PXE 的 DHCP,然后网络转换为静态 IP。默认情况下,PXE 引导必须在原生 VLAN 上进行,但有些系统控制器允许从 VLAN 进行引导。默认情况下,计算和存储节点使用调配接口作为 DNS、NTP 和系统维护的默认网关。
内部 API
内部 API 网络用于使用 API 通信、RPC 消息和数据库通信 RHOSP 服务之间的通信。
租户

Networking 服务(neutron)使用以下方法之一为各个租户(项目)提供自己的网络:

  • VLAN 隔离,其中每个租户网络都是网络 VLAN。
  • 隧道(通过 VXLAN 或 GRE)

网络流量在每个租户网络内隔离。每个租户网络关联有一个 IP 子网,网络命名空间意味着多个租户网络可以使用相同的地址范围,而不会造成冲突。

存储
用于块存储、NFS、iSCSI 等的网络。出于性能的原因,最好将其隔离为完全独立的交换机结构。
存储管理
OpenStack Object Storage (swift)使用此网络来同步参与的副本节点之间的数据对象。代理服务充当用户请求和底层存储层之间的中间接口。代理接收传入的请求,并找到所需的副本来检索请求的数据。使用 Ceph 后端的服务通过存储管理网络连接,因为它们不直接与 Ceph 交互,而是使用 frontend 服务。请注意,RBD 驱动程序是一个例外,因为此流量直接连接到 Ceph。
外部
托管用于图形系统管理的 OpenStack 控制面板(horizon)、OpenStack 服务的公共 API,并为目的地为实例的传入流量执行 SNAT。
浮动 IP
允许传入流量在浮动 IP 地址和租户网络中实际分配给实例的 IP 地址映射,从而访问实例。如果在独立于外部的 VLAN 上托管浮动 IP,您可以将浮动 IP VLAN 中继到 Controller 节点,并在 overcloud 创建后通过网络服务(neutron)添加 VLAN。这提供了创建连接到多个网桥的多个浮动 IP 网络的方法。VLAN 是中继的,但没有配置为接口。相反,网络服务(neutron)在每个浮动 IP 网络所选网桥上创建一个具有 VLAN 分段 ID 的 OVS 端口。
注意

provisioning 网络必须是原生 VLAN,其他网络可以中继。

undercloud 可用作默认网关。但是,所有流量都位于 IP 伪装 NAT (网络地址转换),无法从 RHOSP 网络的其余部分访问。undercloud 也是 overcloud 默认路由的单点故障。如果在 provisioning 网络上的路由器设备上配置了外部网关,undercloud neutron DHCP 服务器可以改为提供该服务。

10.2.1. 每个角色所需的网络

您可以使用 VLAN 创建租户网络,但您可以创建 VXLAN 隧道以进行特殊使用,而无需消耗租户 VLAN。VXLAN 功能可以添加到具有租户 VLAN 的部署中,但不能将租户 VLAN 添加到部署的 overcloud 中,而不会造成严重中断。

下表详细介绍了附加到每个角色的隔离网络:

Expand
角色Network

Controller

置备、内部 API、存储、存储管理、租户、外部

Compute

置备、内部 API、存储、租户

Ceph Storage

置备、内部 API、存储、存储管理

Cinder 存储

置备、内部 API、存储、存储管理

Swift Storage

置备、内部 API、存储、存储管理

10.2.2. 网络定义文件配置选项

使用下表了解配置网络定义文件 network_data.yaml 的可用选项,采用 YAML 格式:

Expand
表 10.1. 网络数据 YAML 选项
Name选项类型默认值

name

网络的名称。

字符串

 

name_lower

可选:网络的低情况名称。

字符串

name.lower()

dns_domain

可选:网络的 DNS 域名。

字符串

 

mtu

最大传输单元(MTU)。

number

1500

ipv6

可选:如果使用 IPv6,则设置为 true。

布尔值

false

vip

在网络上创建 VIP。

布尔值

false

subnets

包含网络的子网。

字典

 
Expand
表 10.2. 子网定义的网络数据 YAML 选项
Name选项类型 / Element示例

ip_subnet

IPv4 CIDR 块表示法。

字符串

192.0.5.0/24

ipv6_subnet

IPv6 CIDR 块表示法。

字符串

2001:db6:fd00:1000::/64

gateway_ip

可选: Gateway IPv4 address。

字符串

192.0.5.1

allocation_pools

子网的开始和结束地址。

列出 / 字典

start: 192.0.5.100

end: 192.0.5.150

ipv6_allocation_pools

子网的开始和结束地址。

列出 / 字典

start: 2001:db6:fd00:1000:100::1

end: 2001:db6:fd00:1000:150::1

Routes

需要通过网络网关路由的 IPv4 网络列表。

列出 / 字典

 

routes_ipv6

需要通过网络网关路由的 IPv6 网络列表。

列出 / 字典

 

vlan

可选:网络的 VLAN ID。

number

 
注意

routesroutes_ipv6 选项包含一个路由列表。每个路由都是一个带有 目的地下一跃点 键的字典条目。这两个选项都是字符串类型。

routes:
  - destination: 198.51.100.0/24
    nexthop: 192.0.5.1
  - destination: 203.0.113.0/24
    nexthost: 192.0.5.1
Copy to Clipboard Toggle word wrap
routes:
  - destination: 2001:db6:fd00:2000::/64
    nexthop: 2001:db6:fd00:1000:100::1
  - destination: 2001:db6:fd00:3000::/64
    nexthost: 2001:db6:fd00:1000:100::1
Copy to Clipboard Toggle word wrap
Expand
表 10.3. 网络虚拟 IP 的 YAML 数据选项
Name选项类型 / Element默认值

network

Neutron 网络名称。

字符串

 

ip_address

可选:预定义的固定 IP 地址。

字符串

 

子网

Neutron 子网名称。指定虚拟 IP neutron 端口的子网。使用路由网络进行部署需要。

字符串

 

dns_name

可选: FQDN (完全限定域名)。

列出 / 字典

overcloud

name

可选:虚拟 IP 名称。

字符串

$network_name_virtual_ip

10.2.3. 配置网络隔离

要启用并配置网络隔离,您必须将所需的元素添加到 network_data.yaml 配置文件中。

流程

  1. 创建网络 YAML 定义文件:

    $ cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/default-network-isolation-ipv6.yaml /home/stack/templates/network_data.yaml
    Copy to Clipboard Toggle word wrap
  2. 更新 network_data.yaml 文件中的选项,使其与 overcloud 网络环境的要求匹配:

    - name: Storage
      name_lower: storage
      vip: true
      ipv6: true
      mtu: 1500
      subnets:
        storage_subnet:
          ipv6_subnet: fd00:fd00:fd00:3000::/64
          ipv6_allocation_pools:
            - start: fd00:fd00:fd00:3000::10
              end: fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe
          vlan: 30
    - name: StorageMgmt
      name_lower: storage_mgmt
      vip: true
      ipv6: true
      mtu: 1500
      subnets:
        storage_mgmt_subnet:
          ipv6_subnet: fd00:fd00:fd00:4000::/64
          ipv6_allocation_pools:
            - start: fd00:fd00:fd00:4000::10
              end: fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe
          vlan: 40
    - name: InternalApi
      name_lower: internal_api
      vip: true
      ipv6: true
      mtu: 1500
      subnets:
        internal_api_subnet:
          ipv6_subnet: fd00:fd00:fd00:2000::/64
          ipv6_allocation_pools:
            - start: fd00:fd00:fd00:2000::10
              end: fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe
          vlan: 20
    - name: Tenant
      name_lower: tenant
      vip: false # Tenant networks do not use VIPs
      ipv6: true
      mtu: 1500
      subnets:
        tenant_subnet:
          ipv6_subnet: fd00:fd00:fd00:5000::/64
          ipv6_allocation_pools:
            - start: fd00:fd00:fd00:5000::10
              end: fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe
          vlan: 50
    - name: External
      name_lower: external
      vip: true
      ipv6: true
      mtu: 1500
      subnets:
        external_subnet:
          ipv6_subnet: 2001:db8:fd00:1000::/64
          ipv6_allocation_pools:
            - start: 2001:db8:fd00:1000::10
              end: 2001:db8:fd00:1000:ffff:ffff:ffff:fffe
          gateway_ipv6: 2001:db8:fd00:1000::1
          vlan: 10
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat