CloudStack 学习小记 4 —— 网络设置介绍

“Hi,这是小5自学 CloudStack 相关知识的第4篇笔记。这期我们将对 CloudStack 的网络设置进行介绍。”

摘要
  • CloudStack 提供两种网络风格:

适用于 AWS 式网络的基本网络。提供一个单一网络,可通过三层协议(例如安全组(IP 地址源过滤))实现访客隔离。

高级模式适用于更复杂的网络拓扑结构。此网络模型在定义访客网络方面提供了最大的灵活性,但比基本网络模式需要更多的配置步骤。

每个区域(zone)要么采用基本网络,要么采用高级网络。一旦在 CloudStack 中为某个区域选择并配置了网络模型,就无法更改。一个区域在其整个生命周期内要么是基本网络,要么是高级网络。

同一个云环境中可以同时使用两种网络类型。但对于给定的 Zone 必须使用基本网络或高级网络中的一种。同一物理网络上可以对不同类型的网络流量进行分段。访客流量也可以按账户进行分段。要隔离流量,可以使用单独的 VLAN。如果在单个物理网络上使用单独的 VLAN,请确保 VLAN 标签位于不同的数值范围内。

公共流量和访客流量都需要使用 VLAN。以下是一个 VLAN 分配方案示例:

  • 二层交换机

二层交换机是 pod 内部的接入交换层。它应该将所有 VLAN 路由到每个计算主机,同时负责切换包含计算和存储主机的管理网络的流量。三层交换机将作为管理网络的网关。

  • 通用防火墙

防火墙需要实现两个目的:

1)保护管理服务器。应配置 NAT 和端口转发,将来自公共互联网的流量定向到管理服务器。

2)管理多个区域之间的网络流量。应在多个区域之间配置站点到站点 VPN。

  • 管理服务器负载均衡

CloudStack 可以使用负载均衡器为多个管理服务器提供虚拟 IP 地址。管理员负责为管理服务器创建负载均衡器规则。应用程序需要在多个会话之间保持数据持久性。下表列出了需要进行负载均衡的端口以及是否需要持久性。即使不需要持久化,也允许启用它。

除了上述设置外,管理员还负责将全局配置项“host”的值从管理服务器 IP 地址设置为负载均衡器的虚拟 IP 地址。如果“host”值未设置为端口 8250 的虚拟 IP 地址,并且您的某个管理服务器崩溃,则用户界面仍然可用,但系统虚拟机将无法连接到管理服务器。

  • 拓扑要求

安全要求

公共互联网不得访问管理服务器上的 8096 端口或 8250 端口。

运行时内部通讯要求

管理服务器之间相互通信以协调任务。这种通信使用 TCP 协议,端口为 8250 和 9090。

控制台代理虚拟机通过管理流量网络连接到区域内的所有主机。因此,区域中任何给定 Pod 的管理流量网络都必须与区域中所有其他 Pod 的管理流量网络连通。

二级存储虚拟机和控制台代理虚拟机通过 8250 端口连接到管理服务器。如果您使用多个管理服务器,则必须确保管理服务器的负载均衡 IP 地址能够通过 8250 端口访问。

存储网络拓扑要求

二级存储的 NFS 导出由辅助存储虚拟机挂载。即使存在独立的存储网络,二级存储流量也会通过管理流量网络传输。主存储流量则通过存储网络传输(如果可用)。如果选择将二级存储 NFS 服务器放置在存储网络上,则必须确保管理流量网络到存储网络之间存在路由。

外部防火墙拓扑结构要求

当外部防火墙集成到位时,仍需将公网 IP VLAN 转发到主机。这是为了支持辅助存储虚拟机和控制台代理虚拟机。

高级区域(Zone)拓扑要求

使用高级网络时,私有网络和公共网络必须使用不同的子网。

XenServer 拓扑要求

管理服务器通过端口 22 (ssh)、80 (HTTP) 和 443 (HTTPS) 与 XenServer 主机通信。

VMware 拓扑要求

管理服务器和辅助存储虚拟机必须能够访问 vCenter 和区域内的所有 ESXi 主机。为了允许必要的访问通过防火墙,请保持 443 端口开放。

管理服务器通过端口 443 (HTTPS) 与 VMware vCenter 服务器通信。

管理服务器通过管理流量网络上的 3922 端口(ssh)与系统虚拟机通信。

Hyper-V 拓扑要求

CloudStack 管理服务器使用 HTTPS 与 Hyper-V 代理通信。为了确保管理服务器和 Hyper-V 主机之间的安全通信,请开放端口 8250。

KVM 拓扑要求

管理服务器通过端口 22 (ssh) 与 KVM 主机通信。

LXC 拓扑要求

管理服务器通过端口 22 (ssh) 与 LXC 主机通信。

  • Traffic Sentinel 的访客网络使用情况集成

为了收集访客网络的使用情况数据,CloudStack 需要从网络上安装的外部网络统计信息收集器提取数据。访客网络的计量统计信息可通过 CloudStack 与 inMon Traffic Sentinel 的集成获得。

Traffic Sentinel 是一款网络流量使用情况数据采集包。CloudStack 可以将 Traffic Sentinel 的统计数据整合到自身的流量使用记录中,从而为云基础设施用户计费提供依据。Traffic Sentinel 使用流量监控协议 sFlow。路由器和交换机生成 sFlow 记录并将其提供给 Traffic Sentinel 进行采集,然后 CloudStack 查询 Traffic Sentinel 数据库以获取这些信息。

为了构建查询,CloudStack 会确定当前查询间隔内正在使用的客户 IP 地址。这包括新分配的 IP 地址以及之前分配并持续使用的 IP 地址。CloudStack 会向 Traffic Sentinel 查询适用于这些 IP 地址在 CloudStack 中保持分配状态期间的网络统计信息。返回的数据会与拥有每个 IP 地址的客户账户以及 IP 地址的分配和释放时间戳关联起来,以便在 CloudStack 中创建计费计量记录。使用情况服务器运行时,会收集这些数据。

  • 设置区域 VLAN 和运行虚拟机最大容量

在外部网络场景下,区域中的每个实例都必须拥有唯一的访客 IP 地址。要确定如何配置 CloudStack 以支持此功能,您需要考虑两个变量:预计有多少个区域 VLAN 以及预计在任何给定时间点该区域中运行的实例数量。

根据部署需求,选择合适的 guest.vlan.bits 值,然后重启管理服务器。


以上内容主要来自对 docs.cloudstack.apache.org 的学习,在此特别声明。