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 中,而不会造成严重中断。
下表详细介绍了附加到每个角色的隔离网络:
角色 | Network |
---|---|
Controller | 置备、内部 API、存储、存储管理、租户、外部 |
Compute | 置备、内部 API、存储、租户 |
Ceph Storage | 置备、内部 API、存储、存储管理 |
Cinder 存储 | 置备、内部 API、存储、存储管理 |
Swift Storage | 置备、内部 API、存储、存储管理 |
10.2.2. 网络定义文件配置选项 复制链接链接已复制到粘贴板!
使用下表了解配置网络定义文件 network_data.yaml
的可用选项,采用 YAML 格式:
Name | 选项 | 类型 | 默认值 |
---|---|---|---|
| 网络的名称。 | 字符串 | |
| 可选:网络的低情况名称。 | 字符串 |
|
| 可选:网络的 DNS 域名。 | 字符串 | |
| 最大传输单元(MTU)。 | number |
|
| 可选:如果使用 IPv6,则设置为 true。 | 布尔值 |
|
| 在网络上创建 VIP。 | 布尔值 |
|
| 包含网络的子网。 | 字典 |
Name | 选项 | 类型 / Element | 示例 |
---|---|---|---|
| IPv4 CIDR 块表示法。 | 字符串 | 192.0.5.0/24 |
| IPv6 CIDR 块表示法。 | 字符串 | 2001:db6:fd00:1000::/64 |
| 可选: Gateway IPv4 address。 | 字符串 | 192.0.5.1 |
| 子网的开始和结束地址。 | 列出 / 字典 | start: 192.0.5.100 end: 192.0.5.150 |
| 子网的开始和结束地址。 | 列出 / 字典 | start: 2001:db6:fd00:1000:100::1 end: 2001:db6:fd00:1000:150::1 |
| 需要通过网络网关路由的 IPv4 网络列表。 | 列出 / 字典 | |
| 需要通过网络网关路由的 IPv6 网络列表。 | 列出 / 字典 | |
| 可选:网络的 VLAN ID。 | number |
routes
和 routes_ipv6
选项包含一个路由列表。每个路由都是一个带有 目的地
和 下一跃点
键的字典条目。这两个选项都是字符串类型。
routes: - destination: 198.51.100.0/24 nexthop: 192.0.5.1 - destination: 203.0.113.0/24 nexthost: 192.0.5.1
routes:
- destination: 198.51.100.0/24
nexthop: 192.0.5.1
- destination: 203.0.113.0/24
nexthost: 192.0.5.1
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
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
Name | 选项 | 类型 / Element | 默认值 |
---|---|---|---|
| Neutron 网络名称。 | 字符串 | |
| 可选:预定义的固定 IP 地址。 | 字符串 | |
| Neutron 子网名称。指定虚拟 IP neutron 端口的子网。使用路由网络进行部署需要。 | 字符串 | |
| 可选: FQDN (完全限定域名)。 | 列出 / 字典 |
|
| 可选:虚拟 IP 名称。 | 字符串 |
|
10.2.3. 配置网络隔离 复制链接链接已复制到粘贴板!
要启用并配置网络隔离,您必须将所需的元素添加到 network_data.yaml
配置文件中。
流程
创建网络 YAML 定义文件:
cp /usr/share/openstack-tripleo-heat-templates/network-data-samples/default-network-isolation-ipv6.yaml /home/stack/templates/network_data.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 Copied! Toggle word wrap Toggle overflow 更新
network_data.yaml
文件中的选项,使其与 overcloud 网络环境的要求匹配:Copy to Clipboard Copied! Toggle word wrap Toggle overflow