Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

3.2. 规划网络

规划环境中的网络拓扑结构和子网非常重要,您需要把角色和服务进行正确的映射,从而使它们可以进行正确的通讯。Red Hat OpenStack Platform 使用 neutron 网络服务,这个服务会独立运行,并管理基于软件的网络、静态和浮动 IP 地址以及 DHCP。director 在 Overcloud 环境的每个节点上实施这个服务。
Red Hat OpenStack Platform 把不同的服务映射到分配给环境中的不同子网的独立网络流量类型中。这些网络类型包括:

表 3.2. 网络类型分配

网络类型
描述
用于
IPMI
节点电源管理的网络。这个网络在安装 Undercloud 前被预先定义。
所有节点
Provisioning
director 使用这个网络类型来通过 PXE 引导实施新的节点,并调配在 Overcloud 裸机服务器上进行的 OpenStack 安装。这个网络在安装 Undercloud 前被预先定义。
所有节点
Internal API
Internal API 网络被用来处理经过 API 、RPC 消息和数据库进行的 OpenStack 服务间的通讯。
Controller、Compute、Cinder Storage、Swift Storage
Tenant
Neutron 为每个租户提供自己的网络。这可以通过使用 VLAN 隔离(VLAN segregation,每个租户网络都是一个网络 VLAN)实现,也可以使用 VXLAN 或 GRE 通道(tunneling)实现。每个租户网络的网络数据会被相互隔离,并都有一个相关联的 IP 子网。通过网络命名空间,多个租户子网可以使用相同的地址。
Controller、Compute
Storage
块存储、NFS、iSCSI 和其它存储。在理想情况下,因为性能的原因,这个网络应该位于一个完全独立的网络交换环境中。
所有节点
Storage Management
OpenStack Object Storage(swift)使用这个网络来在相关的副本节点中同步数据项。代理服务(proxy service)在用户请求和底层的存储层间起到一个主机接口的作用。这个代理会接收用户的请求,并找到所需的副本来获得所需的数据。使用 Ceph 作为后端的服务会通过 Storage Management 网络进行连接,因为它们不会和 Ceph 直接进行交流,而是使用前端的服务。请注意,RBD 驱动是个例外,它会直接连接到 Ceph。
Controller、Ceph Storage、Cinder Storage、Swift Storage
External
运行 OpenStack Dashboard(horizon)来进行图形化的系统管理、OpenStack 服务的公共 API 以及对入站网络流量进行 SNAT 处理来把它们导向正确的目标。如果 external 网络使用私有 IP 地址(RFC-1918),还需要对来自于互联网的流量进行额外的 NAT 处理。
Controller
Floating IP
允许入站的网络流量到达相关实例,它使用 1 对 1 的 IP 地址映射把浮动 IP 地址和在租户网络中实际分配给实例的 IP 地址相关联。如果提供在一个与 External 分离的 VLAN 中的浮动 IP,您可以把 Floating IP VLAN trunk 到 Controller 节点,并在 Overcloud 创建后通过 Neutron 添加 VLAN。这意味着,创建多个 Floating IP 网络附加到多个网桥。VLAN 会被 trunk,但不会被配置为接口。neutron 会为每个 Floating IP 网络在所选的网桥上创建一个带有 VLAN 分段 ID 的 OVS 端口。
Controller
在一个典型的 Red Hat OpenStack Platform 安装中,网络类型的数量通常会超过物理网络连接的数量。为了可以把所有网络都连接到正确的主机,Overcloud 使用 VLAN 标签(VLAN tagging)来为每个接口提供多个网络。大多数的网络都是相互分离的子网,但以下网络需要一个第 3 层的网关来提供到互联网和其它网络的路由功能。

注意

我们推荐,即使在部署时使用了禁用隧道功能(tunneling)的 neutron VLAN,您最好仍然部署一个 Tenant VLAN(用于 GRE 和 VXLAN 隧道)。这只需要在部署时进行一些微小的定制,从而为以后留下了使用网络隧道功能实现工具网络或虚拟化网络的选择。您仍然需要使用 VLAN 创建 Tenant 网络,但同时也为特殊目的的网络创建了 VXLAN 隧道功能,而不需要消耗租户 VLAN。VXLAN 功能可以被添加到带有 Tenant VLAN 的部署中,而 Tenant VLAN 却无法在不对系统运行造成影响的情况下添加到一个存在的 Overcloud 中。
director 提供了一个为其中的 5 种网络流量类型映射到特定子网或 VLAN 的方法。这些流量类型包括:
  • Internal API
  • Storage
  • Storage Management
  • Tenant
  • External
所有没有被分配的网络都会被自动分配到和 Provisioning 网络相同的网络中。
下图显示了一个通过独立的 VLAN 进行分离的网络拓扑结构。每个 Overcloud 节点都使用两个接口(nic2nic3)的绑定来通过相关的 VLAN 提供网络功能。同时,所有 Overcloud 节点都使用 nic1 通过原生的 VLAN 来通过 Provisioning 网络和 Undercloud 进行通讯。
Example VLAN Topology using Bonded Interfaces

图 3.1. 使用绑定接口的 VLAN 拓扑结构示例

下表提供了把网络流量映射到不同网络结构中的示例:

表 3.3. 网络映射

映射
接口总数
VLAN 总数
带有外部连接的平面网络
网络 1 - Provisioning、Internal API、Storage、Storage Management、Tenant Networks
网络 2 - External、Floating IP(在 Overcloud 创建后进行映射)
2
2
隔离的网络
网络 1 - Provisioning
网络 2 - Internal API
网络 3 - Tenant Network
网络 4 - Storage
网络 5 - Storage Management
Network 6 - External 和 Floating IP(在创建 Overcloud 后被映射)
3(包括 2 个绑定接口)
6