这是《计算机网络 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 云网络把物理数据中心抽象成 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 扩展。对单一目标地址和端口,五元组必须唯一。
高风险场景:
- 大量实例共享一个 NAT 网关;
- 短连接高频访问同一个第三方 API;
- DNS 或 HTTPS 未复用连接;
- 重试风暴;
- 数据库连接创建过多;
- 压测并发设计不合理。
现象:
- 偶发连接失败;
cannot assign requested address;- NAT 网关连接数和丢包指标高;
- 错误与流量高峰相关;
- 换目标地址或降低并发后缓解。
处理:
- 长连接和连接池;
- 降低重试频率;
- 拆分多个 NAT 网关或 EIP;
- 第三方多域名目标分散;
- 代理层复用连接;
- 限流;
- 监控新建连接速率。
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 |
常见问题:
- 路由表未关联正确子网;
- 对等连接两端路由缺少;
- 网段重叠导致无法建立连接;
- 默认路由误指向错误网关;
- 安全组和 NACL 同时拦截;
- 云路由与系统内路由冲突;
- 策略路由未覆盖源地址。
21.5 安全组与 NACL
| 项目 | 安全组 | NACL |
|---|---|---|
| 层级 | 实例 / 网卡 | 子网 |
| 状态 | 有状态 | 无状态 |
| 规则 | 默认拒绝入站,允许出站常见 | 按编号顺序匹配 |
| 适用 | 服务端口精细治理 | 子网边界粗粒度控制 |
排障顺序:
- 安全组入站;
- 安全组出站;
- NACL 入站和出站;
- 系统防火墙;
- 应用监听地址;
- 路由表;
- 对端安全组。
注意:安全组放行入站后,回包通常自动允许;无状态 NACL 还要放行临时端口回包。
21.6 云上跨网络互通
常见方式:
| 方式 | 场景 |
|---|---|
| VPC Peering | 同云两个 VPC 内网互通 |
| Transit Gateway / 云连接网 | 多 VPC 大规模组网 |
| VPN | 稳定性要求一般的混合云 |
| 专线 | 低延迟和高可靠性 |
| PrivateLink / Private Endpoint | 访问云服务不经公网 |
| Cloud Backbone | 跨地域高速互联 |
设计要点:
- 网段不能重叠;
- 路由最小授权;
- 带宽和并发连接;
- 跨可用区和跨地域延迟;
- 故障切换和备份链路;
- 安全审计;
- 云平台配额。
21.7 Overlay 网络
容器和云主机常用 overlay:
Pod Packet
-> VETH
-> Bridge
-> VXLAN / IPIP / Geneve 封装
-> Underlay Network
影响:
- MTU 降低;
- CPU 封装开销;
- 性能依赖实现;
- conntrack 表压力;
- 排障层级增加;
- 网络策略与安全组叠加。
排查 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>
云控制台检查:
- 实例网卡和 IP;
- 路由表关联;
- 安全组;
- NACL;
- NAT 网关;
- LB 后端子网;
- 对等连接路由;
- 流量镜像或 VPC Flow Log。
21.9 实践建议
- 生产、测试、开发 VPC 隔离;
- 数据层不放公网;
- 按应用分层子网;
- 预留 IP 空间;
- 安全组按角色命名和复用;
- 监控 NAT 连接、丢包、带宽;
- 关键外呼使用连接池;
- 跨地域调用评估延迟;
- 架构图与实际路由定期核对;
- 变更可回滚。
本章小结
NAT 修改源或目标地址,让私网实例访问公网或让公网流量进入内部服务。云网络由 VPC、子网、路由表、安全组、NACL、NAT 网关和对等连接组成,排障要沿“系统路由 -> 云路由 -> 安全策略 -> NAT 状态 -> 目标服务”推进。短连接外呼要治理连接复用和 NAT 端口耗尽。
思考题
- SNAT 和 DNAT 分别发生在什么方向?
- 为什么 NAT 端口耗尽常表现为偶发失败?
- 安全组和 NACL 的状态性有什么区别?
- overlay 网络为什么更容易出现 MTU 问题?
- 设计一个生产、测试隔离的多 VPC 网络方案。