什么是VPC(虚拟私有云,Virtual Private Cloud)网络?

什么是 VPC(虚拟私有云,Virtual Private Cloud)网络?

简单来说,VPC 是在公共云(如阿里云、AWS、腾讯云)上构建的一个 logically isolated(逻辑隔离的)、属于用户自己的私有网络环境。

你可以把它想象成在云厂商的大数据中心里,为你划拨出一块完全独立的、专属于你的网络空间。在这个空间里,你可以自由地定义IP地址范围、划分子网、配置路由表和设置网络网关,就像管理你自己的传统数据中心网络一样。

核心思想:逻辑隔离 + 自定义网络。

VPC 的核心组成部分

一个典型的 VPC 环境由以下几个关键部分组成:

1. 私有 IP 地址空间(CIDR 块)

是什么: 当你创建一个 VPC 时,你需要指定一个私有的 IP 地址范围。这通常使用 CIDR(无类别域间路由)表示法,例如 10.0.0.0/16。这意味着你的 VPC 内部最多可以有 65536 个 IP 地址(从 10.0.0.0 到 10.0.255.255)。

常用范围: 通常使用 RFC 1918 定义的私有地址段:

10.0.0.0/8 (10.0.0.0 - 10.255.255.255)

172.16.0.0/12 (172.16.0.0 - 172.31.255.255)

192.168.0.0/16 (192.168.0.0 - 192.168.255.255)

注意: 这个地址范围一旦选定,就不能轻易更改。你需要确保它不会和你希望连接的其他网络(如你的公司内网)的 IP 地址范围重叠。

2. 子网

是什么: 子网是 VPC 这个大网络内部的更小网段。通过将 VPC 划分为多个子网,你可以更有效地管理和部署资源。

划分依据: 通常,子网会按照可用区 来划分。例如,在 10.0.0.0/16 的 VPC 中,你可以在可用区 A 创建一个子网 10.0.1.0/24,在可用区 B 创建一个子网 10.0.2.0/24。

公网与私网子网:

公网子网: 子网中的路由表指向了互联网网关,因此部署在此子网中的云服务器(如ECS实例)可以分配公网IP,直接与互联网通信(通常用于 Web 服务器、堡垒机)。

私网子网: 子网中的路由表没有指向互联网网关,因此部署在此子网中的云服务器无法直接访问互联网(通常用于数据库、后端应用服务器),安全性更高。

3. 路由器与路由表

是什么: VPC 中有一个隐形的、分布式的虚拟路由器。它的职责是控制 VPC 内部子网之间、以及 VPC 与外部网络之间的数据包流向。

路由表: 路由器的工作依据是路由表。每个子网都必须关联一个路由表(可以多个子网共用同一个路由表)。路由表中定义了一系列规则,指明目的地址的流量应该从哪个下一跳出去。

示例规则:

目的:10.0.0.0/16,下一跳:local(这是默认规则,表示 VPC 内部通信)

目的:0.0.0.0/0,下一跳:Internet Gateway (igw-xxxx)(表示所有去往公网的流量,都发往互联网网关)

目的:192.168.1.0/24,下一跳:VPN Gateway (vgw-xxxx)(表示去往公司内网的流量,都发往 VPN 网关)

4. 网关

网关是 VPC 连接外部世界的出入口。常见的网关类型有:

互联网网关:

功能: 实现 VPC 内的云服务器与互联网的双向通信。它是 VPC 访问互联网的"大门"。

特点: 它本身不提供 NAT(网络地址转换)功能,通常需要配合弹性公网IP使用。一个 VPC 只能绑定一个互联网网关。

NAT 网关:

功能: 专门为私网子网 中的云服务器提供访问互联网的能力,但阻止互联网主动访问这些服务器。它实现了源网络地址转换。

场景: 数据库服务器需要下载软件包补丁,但不希望被外界直接访问。你可以将它们放在私网子网,通过 NAT 网关上网。

VPN 网关 / 专线网关:

功能: 用于将你的 VPC 与你的本地数据中心(公司内网)通过加密通道或专线连接起来,构建一个混合云环境。

5. 安全控制

VPC 提供了两层安全保障,实现精细化的访问控制:

安全组:

作用范围: 类似于一个"虚拟防火墙",工作在实例级别(即云服务器级别)。

状态: 有状态的。如果你允许了某个请求出去,那么该请求的响应流量会被自动允许,无论入站规则如何。

规则: 你可以定义允许哪些 IP、哪些协议(TCP/UDP/ICMP)访问哪些端口。

网络 ACL:

作用范围: 工作在子网级别,是子网的无状态防火墙。

状态: 无状态的。意味着你必须明确设置入站规则 和出站规则,即使是对应请求的响应流量也需要单独设置规则。

规则: 支持"允许"和"拒绝"规则,并按规则编号从小到大依次执行。通常用于为整个子网设置一个粗粒度的安全屏障。

VPC 是如何工作的?

让我们通过一个例子来看 VPC 如何协调工作:

场景: 你想部署一个三层架构的 Web 应用,包括:Web 服务器、应用服务器和数据库服务器。Web 服务器需要被公网访问,而应用和数据库服务器则不能。

创建 VPC: 创建一个 VPC,CIDR 为 10.0.0.0/16。

创建子网:

在可用区 A 创建一个公网子网 10.0.1.0/24。

在可用区 B 创建一个私网子网 10.0.2.0/24。

创建互联网网关: 创建一个互联网网关,并将其附加到 VPC 上。

配置路由表:

公网路由表: 关联到公网子网 10.0.1.0/24。添加一条路由:0.0.0.0/0 -> Internet Gateway。

私网路由表: 关联到私网子网 10.0.2.0/24。初始时只有 local 路由。

部署资源:

在公网子网中启动 Web 服务器,并为其分配一个弹性公网IP。由于公网路由表的存在,来自互联网的请求可以到达它,它也能主动访问互联网。

在私网子网中启动应用服务器和数据库服务器。它们没有公网IP,且路由表没有指向互联网网关,因此无法被公网直接访问。

安全加固:

为 Web 服务器配置安全组,只允许来自 0.0.0.0/0 的 80(HTTP)和 443(HTTPS)端口流量。

为应用服务器配置安全组,只允许来自 Web 服务器安全组的流量(而不是某个 IP)。

为数据库服务器配置安全组,只允许来自应用服务器安全组的流量(例如 MySQL 的 3306 端口)。

(可选)让私网服务器上网: 如果应用服务器需要下载更新,你可以创建一个 NAT 网关,放在公网子网中,然后在私网路由表中添加一条路由:0.0.0.0/0 -> NAT Gateway。这样,应用服务器就能通过 NAT 网关访问互联网下载补丁,但外界依然无法主动访问它。

VPC 与传统网络的优势对比

特性

传统数据中心网络

云上 VPC

建设周期

需要采购硬件(路由器、交换机、防火墙),布线,配置,周期长。

分钟级创建,完全软件定义,即时可用。

可扩展性

受限于物理设备和机房的规模,扩展需要再次采购。

弹性伸缩,理论上可以无限扩展(通过子网划分)。

运维成本

需要专业的网络工程师维护硬件设备,处理故障。

运维简单,底层硬件由云厂商负责,用户只需进行软件层面的配置。

高可用性

需要自行设计冗余方案(双机热备等),成本高且复杂。

原生高可用,子网可以跨可用区,NAT网关、VPN网关等组件本身是云厂商托管的、高可用的。

灵活性

修改网络架构(如调整路由)复杂,风险高。

高度灵活,可以随时修改路由表、安全组等配置,即时生效。

安全性

物理隔离,安全性高,但边界防护依赖硬件防火墙。

多租户隔离,逻辑隔离 + 软件定义的安全组/NACL,提供更精细化的安全策略。

不同云厂商的 VPC 差异

虽然核心概念一致,但不同云厂商的实现和命名略有不同:

阿里云: 专有网络 VPC。概念与本文基本一致。主要组件包括 VPC、交换机(子网)、路由表、NAT 网关、VPN 网关、安全组等。

AWS: Amazon Virtual Private Cloud (VPC)。概念相同。主要组件包括 VPC、Subnet、Route Table、Internet Gateway、NAT Gateway、Security Group、Network ACL。

腾讯云: 私有网络 VPC。概念相同。主要组件包括私有网络、子网、路由表、公网网关、NAT 网关、VPN 连接、安全组等。

总结

VPC 是云计算的网络基础。它通过软件定义网络技术,将物理网络虚拟化,为用户提供了一个逻辑隔离的、可自定义的、安全的网络环境。

理解 VPC 的核心在于:

隔离性: 你的 VPC 和其他用户的 VPC 是天然隔离的。

可控性: 你可以完全控制你的网络环境,从 IP 范围到路由策略。

分层安全: 结合子网、路由、安全组和网络 ACL,构建纵深防御体系。

混合云连接: 它是连接云上资源和本地数据中心,构建混合云的基石。

掌握了 VPC,你就掌握了在云上构建复杂、安全、高可用应用系统的第一步。