1. 企业网络与安全边界总览

在 Google Cloud 上构建企业网络,核心不是“把虚拟机连起来”,而是围绕一个 VPC 网络 建立可控的地址空间、可达路径与安全策略。理解 VPC、子网、防火墙、路由、混合连接与安全边界之间的整体关系,是后续所有实验和架构设计的基础。本节先建立全局视图,再搭建贯穿课程的实战环境。

一、整体关系:从地址到策略的六层结构

Google Cloud 的网络对象可以按“承载—寻址—放行—选路—互联—防护”六个层次理解:

  • VPC 网络:全局资源,是地址空间与策略的容器,跨区域存在,但不直接承载流量。
  • 子网:区域级资源,为资源提供 IP 地址段,是实例、转发规则、混合连接的落点。
  • 防火墙规则:作用于 VPC 内的实例,按方向、优先级、源/目标、协议端口决定是否放行。
  • 路由:决定数据包“往哪走”,包括系统生成路由、自定义静态路由和动态路由。
  • 混合连接:Cloud VPN、Cloud Interconnect、Router 等把本地网络接入 VPC。
  • 安全边界:Cloud Armor、VPC Service Controls、Private Service Connect、Cloud NAT 等构成对外与对内的防护面。

这六层不是并列的,而是有明确的依赖顺序:没有 VPC 就没有子网,没有子网就没有实例地址,没有路由就无法跨网段通信,没有防火墙规则流量就会被默认拒绝。下图给出它们之间的整体关系。

企业网络与安全边界整体关系 本地数据中心 10.10.0.0/16 BGP ASN 65001 混合连接 Cloud VPN / Interconnect Cloud Router (ASN 64514) VPC 网络 corp-vpc(全局) 子网 subnet-a asia-east1 10.0.1.0/24 区域级资源 子网 subnet-b us-central1 10.0.2.0/24 区域级资源 防火墙规则 方向 / 优先级 / 源目标 协议端口 / 默认拒绝 路由 系统路由 / 静态路由 动态路由 (BGP) 安全边界 Cloud Armor · VPC Service Controls · Private Service Connect · Cloud NAT 对外防护 + 对内隔离 + 出站控制 工作负载 Compute Engine / GKE 10.0.1.10 等实例地址 依赖顺序:VPC → 子网 → 防火墙/路由 → 混合连接 → 安全边界 流量路径:实例 → 子网 → 路由 → 防火墙 → 边界 → 外部网络

二、关键概念辨析

VPC 是全局的,子网是区域的。 一个 VPC 可以包含多个区域的子网,子网之间默认通过系统路由互通。这与传统数据中心“每个 VLAN 一个广播域”的模型不同,Google Cloud 的 VPC 更像一个跨区域的逻辑网络。

防火墙规则是“允许”语义,不是“拒绝”语义。 VPC 默认有一条隐含的 deny all ingress 和 allow all egress。你写的规则几乎都是“允许某类流量”,而不是“禁止某类流量”。要禁止,通常靠不写允许规则,或用优先级更高的拒绝规则覆盖。

路由决定“能不能到达”,防火墙决定“允不允许通过”。 两者缺一不可:有路由但没放行,包会被丢弃;有放行但没路由,包根本找不到下一跳。

三、实战环境搭建

本课程后续实验统一使用以下环境。建议在独立项目中操作,避免影响生产资源。

# 1. 设置项目与区域
gcloud config set project netsec-lab-01
gcloud config set compute/region asia-east1
gcloud config set compute/zone asia-east1-b

# 2. 创建自定义模式 VPC
gcloud compute networks create corp-vpc \
  --subnet-mode=custom

# 3. 创建两个区域的子网
gcloud compute networks subnets create subnet-a \
  --network=corp-vpc \
  --region=asia-east1 \
  --range=10.0.1.0/24

gcloud compute networks subnets create subnet-b \
  --network=corp-vpc \
  --region=us-central1 \
  --range=10.0.2.0/24

# 4. 放行 IAP SSH 与内部 ICMP
gcloud compute firewall-rules create allow-iap-ssh \
  --network=corp-vpc \
  --direction=INGRESS \
  --action=ALLOW \
  --rules=tcp:22 \
  --source-ranges=35.235.240.0/20

gcloud compute firewall-rules create allow-internal-icmp \
  --network=corp-vpc \
  --direction=INGRESS \
  --action=ALLOW \
  --rules=icmp \
  --source-ranges=10.0.0.0/8

创建完成后,用以下命令验证环境是否符合预期:

gcloud compute networks subnets list --network=corp-vpc
gcloud compute firewall-rules list --filter="network:corp-vpc"
gcloud compute routes list --filter="network:corp-vpc"

预期结果:subnet-a 与 subnet-b 均处于 READY 状态;防火墙规则中能看到两条自定义规则,优先级均为 1000;路由表中除默认路由外,应出现两条子网路由,分别指向 10.0.1.0/24 和 10.0.2.0/24。

验证要点: 在 subnet-a 中创建一台实例,从该实例 ping subnet-b 中实例的内网 IP。若能通,说明子网路由与 ICMP 放行规则生效;若不通,优先检查防火墙规则的方向和源范围,而不是先怀疑路由。

四、安全边界的定位

安全边界不是单一产品,而是一组能力的组合:Cloud Armor 保护外部 HTTP(S) 负载均衡入口,VPC Service Controls 防止数据从受保护服务中渗出,Private Service Connect 让服务以私有方式暴露,Cloud NAT 控制出站访问。它们与 VPC 的关系是“叠加在 VPC 之上”,而不是替代 VPC 的防火墙与路由。