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

什么是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 服务器需要被公网访问,而应用和数据库服务器则不能。

  1. 创建 VPC: 创建一个 VPC,CIDR 为 10.0.0.0/16
  2. 创建子网:
    • 在可用区 A 创建一个公网子网 10.0.1.0/24
    • 在可用区 B 创建一个私网子网 10.0.2.0/24
  3. 创建互联网网关: 创建一个互联网网关,并将其附加到 VPC 上。
  4. 配置路由表:
    • 公网路由表: 关联到公网子网 10.0.1.0/24。添加一条路由:0.0.0.0/0 -> Internet Gateway
    • 私网路由表: 关联到私网子网 10.0.2.0/24。初始时只有 local 路由。
  5. 部署资源:
    • 在公网子网中启动 Web 服务器,并为其分配一个弹性公网IP。由于公网路由表的存在,来自互联网的请求可以到达它,它也能主动访问互联网。
    • 在私网子网中启动应用服务器和数据库服务器。它们没有公网IP,且路由表没有指向互联网网关,因此无法被公网直接访问。
  6. 安全加固:
    • 为 Web 服务器配置安全组,只允许来自 0.0.0.0/0 的 80(HTTP)和 443(HTTPS)端口流量。
    • 为应用服务器配置安全组,只允许来自 Web 服务器安全组的流量(而不是某个 IP)。
    • 为数据库服务器配置安全组,只允许来自应用服务器安全组的流量(例如 MySQL 的 3306 端口)。
  7. (可选)让私网服务器上网: 如果应用服务器需要下载更新,你可以创建一个 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 的核心在于:

  1. 隔离性: 你的 VPC 和其他用户的 VPC 是天然隔离的。
  2. 可控性: 你可以完全控制你的网络环境,从 IP 范围到路由策略。
  3. 分层安全: 结合子网、路由、安全组和网络 ACL,构建纵深防御体系。
  4. 混合云连接: 它是连接云上资源和本地数据中心,构建混合云的基石。

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

相关推荐
cheems95273 小时前
【javaEE】TCP协议总结
网络·tcp/ip·java-ee
麦德泽特3 小时前
设计一个安全的时效性遥控协议:对抗重放攻击
服务器·网络·安全
Web极客码3 小时前
如何让你的 WordPress 博客完全私密
运维·服务器·网络
余瑜鱼鱼鱼3 小时前
总结 IP 协议的相关特性
服务器·网络·tcp/ip
xuxg20053 小时前
4G AT命令解析框架LwAtParser V2.0设计及实现(基于uCOS II)--中级篇 第七章 TCP协议实现
网络·网络协议·tcp/ip
unirst19850073 小时前
nginx中的proxy_set_header参数详解
运维·网络·nginx
良许Linux3 小时前
嵌入式安全和加密技术
网络·安全
岳来3 小时前
网络小白对容器参数endpoint 和gateway 对比
网络·docker·容器·gateway·endpoint
三万棵雪松3 小时前
【Linux Shell 编程基础学习与实践作业】
linux·运维·网络·学习·嵌入式linux