核心概念
-
网络
(图片来源网络,侵删)- 一个隔离的二层网络,类似于传统交换机,你可以创建多个网络,每个网络内的实例可以互相通信,但默认情况下不能与其他网络通信。
- 可以指定网络类型,如 VLAN、VXLAN、GRE 等。
-
子网
- 在网络之上定义的三层网络,包括 IP 地址范围(CIDR)、网关、DNS 服务器等。
- 实例从这个子网获取 IP 地址。
-
路由器
- 一个虚拟三层设备,用于连接不同的网络(包括私有网络和外部网络)。
- 它负责在不同网络之间转发数据包,实现网络互通。
- 路由器通常有一个“外部网关接口”,用于连接到外部网络(如物理网络或提供互联网访问)。
-
端口
- 网卡在虚拟交换机上的一个虚拟接入点。
- 每个虚拟机实例都有一个或多个端口,这些端口连接到某个网络。
- 端口还包含安全组规则、绑定信息等。
-
安全组
(图片来源网络,侵删)- 实例的虚拟防火墙,由一组“允许”和“拒绝”的入站/出站规则组成。
- 默认情况下,安全组只允许 SSH (22) 和 ICMP 流量,其他所有流量都被拒绝。
- 安全组是“有状态”的,意味着如果一个出站连接被允许,对应的入站回复流量也会被自动允许。
-
插件
- Neutron 的核心架构是插件化的,插件负责实现特定的网络后端技术,如 Open vSwitch、Linux Bridge、ML2 等。
- ML2 (Modular Layer 2) 是目前最主流的插件,它允许多种 L2 网络类型(如 VLAN, VXLAN)共存于一个云环境中。
主要的网络部署模式
根据网络隔离程度、是否使用外部网络以及规模,OpenStack 主要有以下几种常见的部署模式:
Provider (Provider) 网络 / Flat 网络
这是最简单、最直接的模式,适用于小型环境或快速部署。
- 工作原理:
- OpenStack 直接使用物理网络(即由外部网络管理员提供的 VLAN)。
- Neutron 不创建虚拟网络,而是直接将虚拟机的虚拟端口桥接到物理网络接口(如
br-ex)上。 - 虚拟机获得的 IP 地址由外部网络(如公司的 DHCP 服务器)分配,或者通过 Neutron 的 DHCP 服务分配。
- 特点:
- 优点: 配置简单,与现有网络环境集成容易,性能较高(因为少了一层虚拟化)。
- 缺点: 网络隔离性差,所有虚拟机都在同一个物理广播域内,扩展性有限,难以实现多租户隔离。
- 适用场景: 测试环境、小型私有云,或者当网络管理员希望完全控制网络时。
Self-Service (Tenant) 网络 / 私有网络
这是 OpenStack 最核心、最常用的模式,为租户(用户)提供完全隔离的私有网络。

- 工作原理:
- 创建网络: 租户创建一个或多个私有网络(如
tenant-net)。 - 创建子网: 在私有网络上创建一个子网,并配置 IP 地址范围、网关和 DHCP 服务。
- 创建路由器: 创建一个虚拟路由器。
- 连接: 将路由器的接口连接到私有网络,同时将路由器的“外部网关”连接到
provider网络(即物理网络)。 - 启动实例: 将实例连接到这个私有网络,实例会从子网获取私有 IP 地址。
- 创建网络: 租户创建一个或多个私有网络(如
- 特点:
- 优点: 高度隔离,每个租户的网络完全独立,互不影响,支持复杂的网络拓扑,如多层应用。
- 缺点: 配置相对复杂,需要正确设置路由器才能访问外部网络。
- 网络访问:
- 内部通信: 同一个私有网络内的实例可以互相通信。
- 外部通信 (North-South): 实例通过路由器和浮动 IP 访问外部网络(如互联网),或者被外部网络访问。
- 跨网络通信: 不同租户的私有网络可以通过路由器进行互通(需要管理员配置)。
- 适用场景: 大多数生产环境,特别是需要多租户隔离的场景。
VLAN 网络
这是一种特殊的 Self-Service 网络,它使用 VLAN 技术来提供二层隔离。
- 工作原理:
- 当租户创建一个 Self-Service 网络时,Neutron 会为其分配一个唯一的 VLAN ID。
- 所有连接到这个网络的实例的流量都会被打上这个 VLAN 标签。
- 物理网络交换机需要配置为 Trunk 模式,允许这些 VLAN ID 的流量通过。
- 特点:
- 优点: 提供了与物理网络 VLAN 相同级别的隔离,易于与现有网络策略集成。
- 缺点: VLAN ID 的数量有限(通常最多 4094),在大规模多租户环境中可能会耗尽,物理交换机需要支持 VLAN。
- 适用场景: 需要与现有物理网络 VLAN 策略严格对齐的企业环境。
Overlay 网络 (VXLAN / GRE)
这是目前大规模、多租户云环境中最主流的模式,它通过隧道技术在 IP 网络之上构建虚拟的 L2 网络。
- 工作原理:
- 当租户创建一个 Self-Service 网络时,Neutron 会为其分配一个唯一的 VXLAN 网络标识符(VNI)或 GRE 密钥。
- 同一个网络内的实例之间通信时,虚拟机发送的原始以太网帧被封装在 UDP 包中(对于 VXLAN),并通过底层 IP 网络进行传输。
- 目标主机解封装后,得到原始以太网帧。
- 特点:
- 优点:
- 极高的可扩展性: VNI 的数量远多于 VLAN ID(数百万级别),支持海量租户。
- 网络无感知: 底层网络可以是任何 IP 网络,无需支持 VLAN,简化了物理网络配置。
- 灵活的部署: 可以跨越多个物理机架甚至数据中心。
- 缺点: 相比 VLAN,多了一层封装,会带来轻微的性能开销(现代硬件可以很好地缓解这个问题)。
- 优点:
- 适用场景: 大型公有云、超大规模私有云,需要极高可扩展性和灵活性的环境。
网络流量类型
理解了模式后,还需要了解 OpenStack 中流量的几种主要方向:
-
East-West 流量: 指在云内部不同资源之间的流量。
- 例子: 同一个私有网络内的两台虚拟机互相通信。
- 特点: 通常不经过物理网络,在虚拟交换机内部完成,速度快。
-
North-South 流量: 指云内部资源与外部网络(通常是互联网)之间的流量。
- 例子: 虚拟机访问外部的网站,或者外部用户通过浮动 IP 访问虚拟机提供的服务。
- 特点: 必须经过路由器和物理网络,速度相对较慢。
-
管理流量: OpenStack 各组件(如 Nova, Neutron, Cinder)之间通信所使用的网络。
- 特点: 必须是稳定、可靠的网络,通常使用独立的物理网卡或 VLAN。
总结与选择建议
| 模式类型 | 核心特点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| Provider 网络 | 直接使用物理网络 | 简单、高性能、易集成 | 隔离性差、扩展性有限 | 测试环境、小型云、网络管理员控制 |
| Self-Service 网络 | 租户创建隔离的私有网络 | 高度隔离、灵活、支持复杂拓扑 | 配置稍复杂 | 生产环境主流选择 |
| VLAN 网络 | 用 VLAN ID 隔离 Self-Service 网络 | 与物理网络策略兼容好 | VLAN ID 有限、依赖物理交换机 | 需要与现有 VLAN 策略对齐的企业 |
| Overlay 网络 (VXLAN) | 用隧道技术封装 L2 流量 | 可扩展性极高、网络无感知 | 有轻微性能开销 | 大规模、多租户生产环境首选 |
如何选择?
- 新手入门/快速测试: 从 Provider 网络 开始,最简单。
- 构建真正的多租户私有云: Self-Service 网络 是基础,再根据规模选择 VLAN 或 VXLAN 作为其后端。
- 大规模生产环境: 强烈推荐 ML2 + VXLAN 模式,它能提供最佳的扩展性和灵活性。
- 与现有物理网络深度融合: 如果你的网络已经大量使用 VLAN,VLAN ID 足够,可以考虑 VLAN 网络。
OpenStack 的网络设计非常灵活,这些模式并非互斥,可以在同一个云环境中同时部署,以满足不同业务的需求。
