把 VPC 当作一朵云里自带的局域网,最先要回答的不是”放多少台机器”,而是”这朵云在云上网络体系里处于哪一层、子网按什么维度切、安全靠谁来把关”。VPC(Virtual Private Cloud,虚拟私有云)是在公有云里为你隔出的一块完全私密的虚拟网络空间:不同 VPC 默认二层隔离,VPC 内部继续划子网、配路由表、挂安全组与网络 ACL,才能在”内外联通”和”风险拦截”之间找到平衡点。下面把规划顺序、组件选型、典型误区一次性拆开。
一、VPC 在云上网络体系里的位置
云上网络按层级从大到小依次是:Region → VPC → 子网 → 实例(ECS/容器/数据库)。Region 决定资源物理分布,VPC 决定租户逻辑边界,子网决定 IP 段切分,实例必须落在子网内才能拿到私有 IP。
VPC 默认提供三层能力:
- 基于 VXLAN 的租户网络隔离,每个 VPC 都是独立的 Overlay 网络;
- 子网划分与自定义路由表,控制 VPC 内部的流量走向;
- 安全组 + 网络 ACL 的双层访问控制,构成主机侧和网络侧的多重防护。
| 维度 | VPC | 经典网络(已下线) | 本地 IDC |
|---|---|---|---|
| 隔离粒度 | 租户级 Overlay | 共享网络 | 物理隔离 |
| 网段规划 | 自定义 RFC1918 段 | 平台固定 | 物理设备 |
| 跨可用区 | 子网跨 AZ 自由分布 | 限制较多 | 走大二层 |
| 访问控制 | 安全组 + 网络 ACL + 路由策略 | 仅安全组 | 硬件防火墙 |
| 加密能力 | 加密 VPC 可对内网报文全量加密 | 不支持 | 物理加密机 |
华为云 VPC 通过 QingTian 硬件系统将表项下发到 QingTian Cards,由硬件完成 VXLAN 封装与 ENI 虚拟化转发;加密 VPC 内计算资源、网关之间的互访流量会被全量加密,云侧无法解密。这是把”网络层安全”从软件下沉到硬件的典型做法,对合规要求高的金融、政企场景几乎是默认选项。
二、规划子网的三步法
子网规划决定了 IP 利用率、可用区布局和后续扩展空间。落地分三步推进:
- 确认业务形态:Web/API/DB/中间件/容器各算一份,按当前规模 ×1.5 预留 IP 余量(避免后续扩容时再拆分);
- 选择网段:VPC 支持 10.0.0.0/8~24、172.16.0.0/12~24、192.168.0.0/16~24,规划时避开与本地 IDC、VPN、DC 专线重复的段,防止后期路由冲突;
- 跨 AZ 部署:同一子网可跨可用区,但生产、数据库子网建议按 AZ 拆分,便于故障域隔离和数据库主备就近部署。
2.1 一个中型 Web 系统的典型子网
VPC: 10.20.0.0/16
├── subnet-web-a 10.20.1.0/24 AZ1 Web/API 层
├── subnet-web-b 10.20.2.0/24 AZ2 Web/API 层
├── subnet-db-a 10.20.10.0/24 AZ1 数据库层
├── subnet-db-b 10.20.11.0/24 AZ2 数据库层
└── subnet-mgmt 10.20.100.0/24 AZ1 堡垒机/跳板
子网按”功能 + AZ”双维度切分后,路由表只需在默认路由表上叠加”子网出向走 NAT””数据库子网只接受 Web 子网”几条策略即可。子网数量控制在两位数以内,是大多数中型系统的甜区——再多就该考虑拆 VPC 或上企业路由器。
2.2 路由表与路由策略
默认路由表保证同 VPC 内子网互通,自定义路由表按子网粒度下发。一条典型的出向公网路由:
| 目的地址 | 下一跳类型 | 下一跳 |
|---|---|---|
| 0.0.0.0/0 | NAT 网关 | nat-01 |
| 10.30.0.0/16 | 对等连接 | pcx-erp |
| 192.168.0.0/16 | 虚拟专用 VPN | vgw-hq |
自定义路由表绑给子网后,子网入流量仍走默认路由表,出流量走自定义路由表,这是”VPC 内部互通、对外走指定出口”的关键。生产环境建议每个自定义路由表只承担一个职责(出公网 / 出专线 / 出对端 VPC),混用会让后续排障变难。
三、安全组与网络 ACL 怎么协同
安全组与网络 ACL 是 VPC 内最常被混用的两个能力。它们的差别可以用一句话概括:安全组是”实例级”白名单,网络 ACL 是”子网级”黑白名单。流量过 VPC 时先匹配网络 ACL,再匹配安全组,两者同时存在等于”先过子网大门,再过主机小门”。
3.1 能力对比
| 能力 | 安全组 | 网络 ACL |
|---|---|---|
| 作用对象 | ENI / ENI 集合 | 子网 |
| 规则维度 | 入方向 + 出方向 | 入方向 + 出方向 |
| 协议支持 | TCP/UDP/ICMP/全部 | TCP/UDP/ICMP/全部 |
| 默认策略 | 默认拒绝(除放通规则) | 默认允许(白名单模式) |
| 状态 | 有状态 | 无状态(出/入需各自配) |
| 典型用途 | 主机防火墙 | 子网边界防御、防御 NACL 攻击 |
| 规则数量上限 | 单安全组百级 | 单 NACL 百级 |
| 关联关系 | 多对多(实例可挂多个 SG) | 一对一(子网只能挂一个 NACL) |
安全组有状态意味着:放通入向 TCP 80 后,响应的出向流量自动放行;网络 ACL 无状态意味着:放通入向 80 后必须再放通返回流量的高位端口,否则业务会断。两者职责并不重叠,网络 ACL 兜住”陌生源”流量,安全组只做精细授权。
3.2 三条常见误配置
- 只用安全组不做网络 ACL:一旦安全组规则被误删,整个子网失去边界。生产子网必须配套网络 ACL 做兜底。
- 网络 ACL 默认允许却误关放通规则:NACL 默认放行所有流量,但很多人会下意识写成”拒绝全部”,导致整个子网失联。
- 规则顺序写反:NACL 规则按列表顺序匹配,先放通再拒绝时,命中放通即停止;先拒绝再放通,永远命中拒绝。
3.3 一个数据库子网的推荐策略
网络 ACL:db-nacl
入方向 #1: 允许 10.20.1.0/24 → TCP 3306 (Web 子网访问)
入方向 #2: 允许 10.20.2.0/24 → TCP 3306 (Web 子网访问)
入方向 #3: 拒绝 0.0.0.0/0 → ALL (兜底拒绝)
出方向 #1: 允许 ALL (数据库主动外联)
出方向 #99: 拒绝 0.0.0.0/0 → ALL (可选)
安全组:sg-mysql
入方向: 10.20.1.0/24,10.20.2.0/24 → TCP 3306
出方向: ALL
两条防线职责清晰:网络 ACL 兜住”陌生源”流量,安全组只做精细授权。配合 IP 地址组把同一类源 IP 抽出来,规则变更只改一处——这是 VPC 规则维护成本最低的做法。
四、跨 VPC、跨云、跨 IDC 的连接选型
VPC 不是孤岛,连接方案决定业务能否跑通。下面按典型场景选型:
| 场景 | 推荐方案 | 关键约束 |
|---|---|---|
| 同区域 VPC 互通 | 对等连接 / 企业路由器 ER | 对等连接不传递;多 VPC 走 ER |
| 跨区域 VPC 互通 | 云连接 CC | 国内/海外区域分别计费 |
| VPC 访问公网 | 弹性公网 IP / NAT 网关 | NAT 网关按规格与流量计费 |
| VPC 访问云服务 | VPC 终端节点 VPCEP | 免公网、免 NAT |
| VPC ↔ 本地 IDC | 云专线 DC / VPN | 专线 SLA 更高、VPN 部署更快 |
| 多 VPC 流量统一管控 | 第三方虚拟化防火墙 | 旁挂在 ER 之后做流量清洗 |
对等连接不会自动传递,VPC-A 与 VPC-B 互通、VPC-B 与 VPC-C 互通,不等于 VPC-A 与 VPC-C 互通。VPC 数量超过 3 个后,建议直接用企业路由器 ER 收敛拓扑,避免每加一个 VPC 都要新建对等连接的”网状灾难”。
五、加密 VPC 与流量安全
对合规要求高的业务,可以在创建 VPC 时开启加密。开启后,VPC 内 ECS、BMS、CCI 等计算资源之间,以及资源与 NAT 网关、弹性负载均衡等网关之间的互访流量会使用加密报文传输,云侧无法解密侦听。
加密 VPC 不会改变路由与子网逻辑,仅在底层做报文加解密;CPU 占用略有上升,但 QingTian 硬件卸载后业务基本无感。对数据库主从复制、跨可用区数据同步这类”内网敏感流量”,加密 VPC 是性价比最高的兜底。
六、常见踩坑与排查顺序
上线后出问题,按下面顺序排查能省一半时间:
- 先看路由表:跨不通的子网/对端,多半是路由缺失;
- 再看网络 ACL:默认允许容易被误改成”拒绝全部”;
- 最后看安全组:实例级别被卡常因规则重复或源 IP 写错;
- 使用流日志:开启 VPC 流日志后,可看到被丢弃的报文,明确是 ACL 还是安全组拦截;
- 检查 IP 地址组:把同一类源 IP 抽到 IP 地址组,规则变更只改一处。
到这里,VPC、子网、ACL/安全组的协同关系就清楚了。核心思路是”网络层兜底、实例层精细”——把粗粒度防御放网络层,把细粒度授权放实例层,两层各司其职,才是云上网络规划的完整链路。
常见问题(FAQ)
Q1:VPC 之间默认互通吗?
默认不互通,需通过对等连接、企业路由器 ER 或云连接 CC 打通。
Q2:安全组和网络 ACL 同时存在时谁先生效?
网络 ACL 先匹配,命中放通后再由安全组判断,命中任一拒绝即丢包。
Q3:VPC 内的 ECS 能访问所有华为云云服务吗?
默认走公网;若要求免公网、降低延迟,可使用 VPC 终端节点 VPCEP 接入目标云服务。