Computer NetworkNotes

第 21 章:NAT 与云网络

zjc 于 2026-01-21 发布

这是《计算机网络 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 云网络把物理数据中心抽象成 VPC、子网、路由表、安全组、EIP、NAT 网关、对等连接和专线。理解 NAT、conntrack 和路由策略,才能定位“实例能出公网但不能入公网”“内网互通异常”“NAT 端口耗尽”“跨可用区流量绕路”等问题。

21.1 私网地址与公网访问

私网地址:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

私网实例访问公网通常经过 NAT:

Private EC2 / ECS
  -> Route Table
     -> NAT Gateway
        -> Internet

方向差异:

能力 私网实例 有 EIP / 公网 IP 实例
主动访问公网 可经 NAT 可直接转换
公网主动访问 默认不可 可监听服务
暴露服务 通过 LB / VPN / 专线 可直接暴露但需安全策略

数据库和内部服务通常不应直接绑定公网地址。

21.2 SNAT 与 DNAT

SNAT:修改源地址。

10.0.1.10:50000 -> Internet
NAT 转换为公网 IP:40001
响应回来再还原

DNAT:修改目标地址。

Client -> 公网 VIP:443
LB DNAT -> 10.0.1.10:8080

NAT 依赖连接状态表。状态老化、表满、后端响应路径不一致,都会造成异常。

21.3 NAT 端口耗尽

一个公网 IP 的端口最多约 65535,但可通过多个公网 IP 扩展。对单一目标地址和端口,五元组必须唯一。

高风险场景:

  1. 大量实例共享一个 NAT 网关;
  2. 短连接高频访问同一个第三方 API;
  3. DNS 或 HTTPS 未复用连接;
  4. 重试风暴;
  5. 数据库连接创建过多;
  6. 压测并发设计不合理。

现象:

  1. 偶发连接失败;
  2. cannot assign requested address
  3. NAT 网关连接数和丢包指标高;
  4. 错误与流量高峰相关;
  5. 换目标地址或降低并发后缓解。

处理:

  1. 长连接和连接池;
  2. 降低重试频率;
  3. 拆分多个 NAT 网关或 EIP;
  4. 第三方多域名目标分散;
  5. 代理层复用连接;
  6. 限流;
  7. 监控新建连接速率。

21.4 VPC 与路由表

典型 VPC:

VPC 10.0.0.0/16
  Public Subnet  10.0.0.0/24
  App Subnet     10.0.16.0/24
  Data Subnet    10.0.32.0/24

路由表示例:

目的 下一跳
10.0.0.0/16 local
0.0.0.0/0 NAT Gateway / IGW
10.20.0.0/16 Peering / VPN

常见问题:

  1. 路由表未关联正确子网;
  2. 对等连接两端路由缺少;
  3. 网段重叠导致无法建立连接;
  4. 默认路由误指向错误网关;
  5. 安全组和 NACL 同时拦截;
  6. 云路由与系统内路由冲突;
  7. 策略路由未覆盖源地址。

21.5 安全组与 NACL

项目 安全组 NACL
层级 实例 / 网卡 子网
状态 有状态 无状态
规则 默认拒绝入站,允许出站常见 按编号顺序匹配
适用 服务端口精细治理 子网边界粗粒度控制

排障顺序:

  1. 安全组入站;
  2. 安全组出站;
  3. NACL 入站和出站;
  4. 系统防火墙;
  5. 应用监听地址;
  6. 路由表;
  7. 对端安全组。

注意:安全组放行入站后,回包通常自动允许;无状态 NACL 还要放行临时端口回包。

21.6 云上跨网络互通

常见方式:

方式 场景
VPC Peering 同云两个 VPC 内网互通
Transit Gateway / 云连接网 多 VPC 大规模组网
VPN 稳定性要求一般的混合云
专线 低延迟和高可靠性
PrivateLink / Private Endpoint 访问云服务不经公网
Cloud Backbone 跨地域高速互联

设计要点:

  1. 网段不能重叠;
  2. 路由最小授权;
  3. 带宽和并发连接;
  4. 跨可用区和跨地域延迟;
  5. 故障切换和备份链路;
  6. 安全审计;
  7. 云平台配额。

21.7 Overlay 网络

容器和云主机常用 overlay:

Pod Packet
  -> VETH
     -> Bridge
        -> VXLAN / IPIP / Geneve 封装
           -> Underlay Network

影响:

  1. MTU 降低;
  2. CPU 封装开销;
  3. 性能依赖实现;
  4. conntrack 表压力;
  5. 排障层级增加;
  6. 网络策略与安全组叠加。

排查 overlay 要同时看 Pod、Node、Veth、Bridge、隧道、underlay 路由和云安全组。

21.8 云网络排障

ip addr
ip route
ip rule
ping <gateway>
ping <target>
traceroute <target>
ss -ntp
conntrack -L | grep <ip>

云控制台检查:

  1. 实例网卡和 IP;
  2. 路由表关联;
  3. 安全组;
  4. NACL;
  5. NAT 网关;
  6. LB 后端子网;
  7. 对等连接路由;
  8. 流量镜像或 VPC Flow Log。

21.9 实践建议

  1. 生产、测试、开发 VPC 隔离;
  2. 数据层不放公网;
  3. 按应用分层子网;
  4. 预留 IP 空间;
  5. 安全组按角色命名和复用;
  6. 监控 NAT 连接、丢包、带宽;
  7. 关键外呼使用连接池;
  8. 跨地域调用评估延迟;
  9. 架构图与实际路由定期核对;
  10. 变更可回滚。

本章小结

NAT 修改源或目标地址,让私网实例访问公网或让公网流量进入内部服务。云网络由 VPC、子网、路由表、安全组、NACL、NAT 网关和对等连接组成,排障要沿“系统路由 -> 云路由 -> 安全策略 -> NAT 状态 -> 目标服务”推进。短连接外呼要治理连接复用和 NAT 端口耗尽。

思考题

  1. SNAT 和 DNAT 分别发生在什么方向?
  2. 为什么 NAT 端口耗尽常表现为偶发失败?
  3. 安全组和 NACL 的状态性有什么区别?
  4. overlay 网络为什么更容易出现 MTU 问题?
  5. 设计一个生产、测试隔离的多 VPC 网络方案。