云上庄园设计学:AWS VPC 逻辑隔离与流量路径拆解
AWSArchitecture
VPC(虚拟私有云)
软件定义的数据中心内的租户逻辑隔离网段
VPC 定义了一个私有地址空间 (CIDR) 。其边界由逻辑路由器 (Implicit Router) 锁定。与传统机房不同,VPC 内部流量不经过物理交换机寻址,而是由控制平面根据路由表直接映射。相当于自己在城市里买下一块地,手动造了一整栋楼,楼里你说了算。你可以决定怎么分房间(子网)、怎么拉网线、哪扇门能对外开。VPC 保证你和别人的小区完全隔离,互不干扰。
子网(Subnet)
VPC 里的房间
在 VPC CIDR 范围内的进一步划分的子块。子网是可用区 (AZ) 的强绑定资源。相当于楼里划分的房间。有的房间对外开放(公有子网),有的房间只内部使用(私有子网)。每个子网必须放在一个特定的可用区(物理位置)。每个房间可以有自己的门(路由表 + IGW/NAT)。
Internet Gateway (IGW)
对外的大门
边界网关协议 (BGP) 出口路由器,执行 1:1 源地址转换 (Static NAT)。当流量离开 VPC 时,IGW 将实例的私有 IP 映射为公有 IP;由于它记录了映射表,因此支持双向主动通信。实例必须绑定属于自己的公有 IP,不能跟别的实例共享同一个公有 IP。
换句话说,没有 IGW,小区完全封闭,外面的访客根本进不来,房间也出不去。公有子网要想访问互联网,必须通过 IGW。连接 IGW 的子网就像装了可以对外通信的大门。
NAT Gateway
单向门
集中式出口 NAT 代理 (PAT - Port Address Translation)。执行 N:1 地址转换。多个私有实例共享一个或多个弹性 IP (EIP) 访问外网。它是单向触发的:仅允许内部主动发起的流量返回,丢弃所有外部主动发起的入站连接请求。
也就是说,私有子网不能直接对外开门,但可以通过 NAT Gateway 把内部的人送出去。比如,私有服务器要访问外部更新软件时,就通过 NAT Gateway 出去,但外面的人进不来。
路由表(Route Table)
小区导航图
控制平面路由策略 (Control Plane Routing Policy)。一个路由表可以控制多个子网,并且可以决定数据包下一跳的逻辑查找。每当一个子网内的实例发出请求,虚拟路由器会检索关联路由表,将数据包路由至 IGW、NAT、VPC Peering 或 Endpoint。而且支持更改规则,比如:去 0.0.0.0/0(互联网)就走 IGW,去某个 VPC Peering 就走 peering 连接。
可用区(Availability Zone)
同一个城市里的不同建筑区
一个 AWS 区域(Region)就像一个城市,里面有多个可用区(AZ),像不同街区的楼群。每个 AZ 是物理隔离的机房,断电或故障时不会影响其他 AZ,保证高可用。子网必须放在某个 AZ 里。
安全组(Security Group)
每个房间门口的保安
分布式虚拟防火墙,底层利用连接跟踪表(Connection Tracking)。如果入站规则放行,系统自动允许对应的回程流量,无需配置出站规则。也就是说,安全组是有状态 (Stateful) 的。
与 ACL 不同,它是面向资源的,而且,入站规则默认是全拒绝 (Deny All),但出站规则默认是全允许 (Allow All)。
网络 ACL(NACL)
楼栋大门口的门禁
核心交换机端口访问控制列表 (Standard/Extended ACL)。是无状态 (Stateless) 的。它是面向子网的,也就是说,ACL 实现的是子网级别的流量进出控制,入站流量先过 ACL 再到安全组。而且入站和出站流量是完全独立的。必须显式配置回程随机端口(Ephemeral Ports)的允许规则。网络 ACL 默认规则是:无论是入站(Inbound)还是出站(Outbound),都是 ALLOW ALL (0.0.0.0/0)。