Cloud & IT Cert Prep · 课时

VPC 架构与 CIDR 块

使用合适的 CIDR 范围设计 VPC,并在多个可用区中将其划分为公有子网和私有子网。

第 1 / 4 课13 个步骤

VPC 架构与 CIDR 块 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

什么是 VPC

Amazon Virtual Private Cloud(VPC) 是您在 AWS Region 中定义和控制的逻辑隔离私有网络。每个 AWS 账户在每个 Region 中都拥有一个默认 VPC(CIDR 172.31.0.0/16),但生产架构始终使用自定义 VPC。VPC 覆盖其 Region 中的所有 Availability Zones,并让您完全控制 IP 地址、子网、路由表、互联网网关和安全性。除非您明确配置连接,否则 VPC 内的资源会与其他 VPC 以及互联网隔离。

# Create a custom VPC
aws ec2 create-vpc \
  --cidr-block 10.0.0.0/16 \
  --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=production-vpc}]'

CIDR 块:IP 地址范围

CIDR(无类别域间路由)块使用 x.x.x.x/prefix 格式定义 VPC 或子网的 IP 地址范围。前缀长度决定范围内的 IP 地址数量:/16 = 65,536 个地址,/24 = 256 个地址,/28 = 16 个地址(AWS 支持的最小子网大小)。对于 VPC,AWS 允许使用从 /16(最大)到 /28(最小)的 CIDR 块。选择 VPC CIDR 时应确保:(1) 不与本地网络重叠(以便将来使用 VPN/Direct Connect),(2) 足以容纳规划的子网,以及 (3) 使用私有 RFC 1918 地址空间(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)。

# Common VPC CIDR choices:
# 10.0.0.0/16   -> 65,534 usable IPs (largest common choice)
# 10.0.0.0/20   -> 4,094 usable IPs
# 10.0.0.0/24   -> 254 usable IPs (too small for most VPCs)

# AWS reserves 5 IPs in each subnet:
# x.x.x.0   Network address
# x.x.x.1   VPC router
# x.x.x.2   DNS server
# x.x.x.3   Future use
# x.x.x.255  Broadcast

子网:划分 VPC

subnet 是 VPC IP 地址范围中的一个网段,位于单个 Availability Zone 中。子网分为公有子网(具有通往互联网网关的路由)或私有子网(没有直接通往互联网的路由)。典型三层架构的最佳实践是至少创建三层子网:公有子网(负载均衡器、堡垒主机)、私有应用子网(EC2 实例、ECS 任务)和私有数据子网(RDS、ElastiCache),并将每一层复制到至少两个 AZ 中,以实现高可用性。

# Create a public subnet in AZ-a
aws ec2 create-subnet \
  --vpc-id vpc-12345678 \
  --cidr-block 10.0.1.0/24 \
  --availability-zone us-east-1a \
  --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=public-1a}]'

# Create a private subnet in AZ-a
aws ec2 create-subnet \
  --vpc-id vpc-12345678 \
  --cidr-block 10.0.10.0/24 \
  --availability-zone us-east-1a \
  --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=private-app-1a}]'

设计多 AZ VPC CIDR 布局

对于 CIDR 为 10.0.0.0/16、跨两个 AZ 和三个层级的 VPC,一种常见的 CIDR 设计如下:公有 AZ-a:10.0.1.0/24;公有 AZ-b:10.0.2.0/24;私有应用 AZ-a:10.0.10.0/24;私有应用 AZ-b:10.0.11.0/24;私有数据 AZ-a:10.0.20.0/24;私有数据 AZ-b:10.0.21.0/24。此布局为添加 AZ-c 子网(10.0.3.0/24、10.0.12.0/24、10.0.22.0/24)预留了空间,无需重新规划整个 CIDR 方案。设计时始终要考虑未来的增长。

每个子网中的保留 IP

AWS 会保留每个子网中的前四个和最后一个 IP 地址。对于 10.0.1.0/24 子网:10.0.1.0(网络)、10.0.1.1(VPC 路由器)、10.0.1.2(DNS/DHCP)、10.0.1.3(未来使用)以及 10.0.1.255(广播)。/24 子网共有 256 个 IP,减去 5 个保留地址后,可用地址为 251 个。/28 子网(最小子网)共有 16 个 IP,减去 5 个后可用地址为 11 个。在规划要部署的资源数量(EC2 实例、使用 VPC 的 Lambda 函数等)时,必须考虑这一点。

VPC 次要 CIDR 块

You can add up to four secondary CIDR blocks to an existing VPC without re-creating it. This is useful when your primary CIDR is exhausted (all subnets full) or when you need to add address space from a different RFC 1918 range for a specific use case like Kubernetes pod networking. The secondary CIDRs are subject to certain restrictions—for example, you cannot add an overlapping CIDR, and certain non-RFC-1918 public ranges cannot be used. Plan VPC CIDR sizing carefully upfront to minimise the need for secondary CIDRs.

# Add a secondary CIDR to an existing VPC
aws ec2 associate-vpc-cidr-block \
  --vpc-id vpc-12345678 \
  --cidr-block 10.1.0.0/16

VPC 对等连接:连接 VPC

VPC 对等连接会在两个 VPC 之间建立私有网络连接,使其中的资源能够使用私有 IP 地址进行通信。建立对等连接的 VPC 可以属于同一账户、不同账户,甚至位于不同 Region(跨 Region 对等连接)。要求:两个 VPC 的 CIDR 不能重叠。限制:对等连接是非传递的——如果 VPC-A 与 VPC-B 建立对等连接,VPC-B 又与 VPC-C 建立对等连接,则 VPC-A 不能通过 VPC-B 与 VPC-C 通信。若要在许多 VPC 之间实现全网状连接,请改用 AWS Transit Gateway。

AWS Transit Gateway

AWS Transit Gateway (TGW) 充当一个中央网络枢纽——也就是云路由器——用于连接多个 VPC、VPN 和 Direct Connect 连接。对于包含 N 个 VPC 的全网状网络,无需创建 N*(N-1)/2 个 VPC 对等连接;只需将每个 VPC 和连接挂载到 Transit Gateway,由它在它们之间路由流量即可。TGW 支持路由表,您可以借此控制哪些挂载可以彼此通信,从而实现网络分段(例如,在同一个 TGW 上隔离生产 VPC 和开发 VPC)。

在 VPC 中启用 DNS

两个 DNS 设置控制 VPC 中的名称解析。enableDnsSupport:为 true 时(默认值),VPC 使用 AWS 提供的 DNS 解析器 169.254.169.253,或使用 VPC CIDR 中的第二个 IP(例如,对于 10.0.0.0/16,为 10.0.0.2)。enableDnsHostnames:为 true 时(自定义 VPC 必须启用,默认 VPC 默认启用),VPC 中的 EC2 实例会获得类似 ip-10-0-1-15.ec2.internal 的 DNS 主机名。要使 Route 53 Private Hosted Zones 在 VPC 中正常工作,必须同时启用这两个设置。

# Enable DNS support and DNS hostnames in a VPC
aws ec2 modify-vpc-attribute \
  --vpc-id vpc-12345678 \
  --enable-dns-support '{"Value": true}'
aws ec2 modify-vpc-attribute \
  --vpc-id vpc-12345678 \
  --enable-dns-hostnames '{"Value": true}'

VPC Flow Logs

VPC Flow Logs 会捕获流经 VPC 的网络流量元数据,包括源 IP 和目标 IP、端口、协议、传输的字节数,以及流量是被接受还是被拒绝。Flow Logs 可以发布到 CloudWatch Logs(使用 Logs Insights 查询),也可以发布到 S3(使用 Athena 分析)。它们对于安全取证(谁连接到了什么)、流量分析(识别高带宽流)和故障排查(连接为何被拒绝)都非常有价值。Flow Logs 可以在 VPC、subnet 或单个 ENI 级别运行。

# Enable flow logs for a VPC, deliver to CloudWatch
aws ec2 create-flow-logs \
  --resource-type VPC \
  --resource-ids vpc-12345678 \
  --traffic-type ALL \
  --log-destination-type cloud-watch-logs \
  --log-group-name /aws/vpc/flowlogs \
  --deliver-logs-permission-arn arn:aws:iam::123456789012:role/FlowLogsRole

连接规划

在创建 VPC 之前,请规划所有未来的连接需求:本地网络连接(VPN 或 Direct Connect)——确保 VPC CIDR 不与本地网络的 subnet 重叠;跨 VPC 连接(对等连接或 Transit Gateway)——为组织中的所有 VPC 规划互不重叠的 CIDR;AWS 服务访问(为 S3、DynamoDB、SSM 使用 VPC 终端节点,避免流量经过互联网);以及 subnet 大小规划——为每个 subnet 预留足够余量,以应对 EKS pod、Lambda 函数和 Elastic Network Interfaces 消耗的 IP 地址。

快速检查

测试您对本课 AWS Solutions Architect(SAA-C03)相关概念的理解。

课程回顾

本课您学习了:VPC 是 Region 中按逻辑隔离的网络,由一个 CIDR 块定义,并划分为跨多个 AZ 的公有和私有 subnet;AWS 会在每个 subnet 中保留 5 个 IP,因此规划 subnet 大小时必须始终考虑这一扣减;以及VPC 对等连接和 Transit Gateway 可以私密地连接 VPC,但 CIDR 范围不能重叠。接下来我们将学习 Internet Gateways 和 Route Tables。

免费开始

用 AI 导师学习 Cloud & IT Cert Prep — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
150
课程
600

常见问题解答

「VPC 架构与 CIDR 块」课时是免费的吗?

是的 — 「VPC 架构与 CIDR 块」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「VPC 架构与 CIDR 块」这节课中我会学到什么?

使用合适的 CIDR 范围设计 VPC,并在多个可用区中将其划分为公有子网和私有子网。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「VPC 架构与 CIDR 块」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. VPC 架构与 CIDR 块
  2. 互联网网关与路由表
  3. NAT 网关与私有子网
  4. 网络 ACL 与安全组
← 返回 Cloud & IT Cert Prep