CGNAT 普及:运营商级 NAT 技术延缓了对公网 IPv4 地址的需求
一、背景与目标
1. 项目背景
A. 业务场景
随着互联网用户数量持续增长和物联网设备爆炸式增加,IPv4 地址池已接近枯竭。区域性互联网注册机构(RIR)早在 2011 年就分配完了最后一个 /8 的 IPv4 地址块。面对这一挑战,互联网服务提供商(ISP)需要一种既能维持现有服务,又能延缓 IPv4 地址耗尽时间的过渡方案。
B. 痛点分析
- 公网 IPv4 地址资源稀缺,申请新地址成本高昂
- 直接向 IPv6 迁移需要升级大量网络设备和用户终端
- 部分应用和用户仍依赖 IPv4 连接
- 运营商需要平衡成本与用户体验
2. 设计目标
A. 功能目标
通过运营商级 NAT 技术,实现多个用户共享少量公网 IPv4 地址,有效延长 IPv4 地址池的使用寿命。
B. 非功能目标
- 地址复用率:达到 35:1 甚至更高
- 并发连接数:支持海量并发连接处理
- 可追溯性:完整的日志记录以满足合规要求
- 可扩展性:支持平滑扩容以应对用户增长
二、现状分析
1. 现有系统
A. 传统 NAT 模型
传统网络架构中,用户家庭路由器执行一次 NAT 转换,将私有 IP 地址(如 192.168.x.x)映射到运营商分配的公网 IPv4 地址。这种 1:1 的映射方式每个用户需要一个独立的公网 IP。
B. 存在问题
- IPv4 地址空间有限,约 43 亿个地址无法满足全球需求
- 公网 IPv4 地址价格持续上涨
- 部分地区用户无法获得公网 IP
2. 改进需求
在运营商层面引入第二层 NAT,使多个用户共享一个公网 IPv4 地址,从而大幅降低对公网 IP 的需求。
三、总体设计
1. 设计原则
- 透明性:对大多数互联网应用透明,无需用户端修改
- 可扩展性:支持大规模用户接入
- 可追溯性:保留完整的地址转换日志
- 渐进式:作为 IPv4 向 IPv6 迁移的过渡方案
2. 系统架构
graph TB
subgraph 用户网络
A1[用户A设备 192.168.1.100]
A2[家庭路由A NAT]
B1[用户B设备 192.168.1.100]
B2[家庭路由B NAT]
end
subgraph 运营商网络
C1[私网地址 100.64.0.0/10]
C2[CGNAT设备 LSN]
C3[公网IP池 共享地址]
end
subgraph 互联网
D[目标服务器]
end
A1 -->|NAPT| A2
B1 -->|NAPT| B2
A2 -->|私网IP:端口| C1
B2 -->|私网IP:端口| C1
C1 -->|端口块分配PBA| C2
C2 --> C3
C3 --> D
E[IPv6公网 直接访问]
E --> D
style A1 fill:#e1f5fe
style B1 fill:#e1f5fe
style C2 fill:#fff3e0
style C3 fill:#ffebee
style E fill:#e8f5e9
3. 组件说明
- 用户设备:使用私有 IP 地址(如 192.168.x.x)
- 家庭路由:执行第一层 NAT,将用户设备映射到运营商分配的私网地址
- CGNAT 设备:运营商级 NAT 设备,执行第二层地址转换
- 公网 IP 池:多个用户共享的少量公网 IPv4 地址
- IPv6 直连:部分运营商同时提供 IPv6 公网地址,无需 CGNAT
四、详细设计
1. 核心技术
A. CGNAT 定义
CGNAT(Carrier-Grade NAT),也称为大规模 NAT(Large-Scale NAT,LSN),是一种在互联网服务提供商层面部署的网络地址转换技术。其核心是允许多个用户共享同一个公网 IPv4 地址访问互联网。
B. 技术标准
CGNAT 的核心规范定义在 RFC 6888 中,该标准规定了运营商级 NAT 的通用要求,包括:
- 地址和端口转换规则
- 日志记录要求
- 端口分配策略
- 可扩展性要求
C. 关键特性
- 大规模 IP 地址转换:可处理海量并发连接
- 高吞吐量:支持运营商级别的数据流量
- 快速 NAT 转换设置率:能够快速建立地址转换规则
- 高速日志记录:记录所有转换活动用于审计
2. 过渡技术对比
A. NAT444 架构
NAT444 是一种使用三层 IPv4 地址的网络模型:
- 第一层:用户设备私有地址(192.168.x.x)
- 第二层:运营商私网地址(100.64.0.0/10,RFC 6598 定义的运营商级 NAT 地址)
- 第三层:公网 IPv4 地址
这种架构在用户和互联网之间建立了两层 NAT,因此称为 NAT444。
B. DS-Lite(Dual-Stack Lite)
DS-Lite 是一种结合了隧道技术和 NAT 的过渡方案:
graph LR
subgraph NAT444架构
A1[用户设备 IPv4私网]
A2[家庭路由 NAT]
A3[运营商CGN NAT]
A4[公网IPv4]
end
subgraph DS_Lite架构
B1[用户设备 双栈]
B2[B4 隧道端点]
B3[IPv6隧道网络]
B4[AFTR NAT网关]
B5[公网IPv4]
end
A1 --> A2 --> A3 --> A4
B1 --> B2 -->|IPv4 over IPv6| B3 --> B4 --> B5
C[优势 简单部署]
D[优势 促进IPv6]
A --> C
B --> D
style A fill:#fff3e0
style B fill:#e8f5e9
DS-Lite 的关键组件:
- B4(Basic Bridging BroadBand):用户端设备,负责将 IPv4 数据包封装到 IPv6 隧道中
- AFTR(Address Family Transition Router):运营商端隧道终结器,执行 NAT 转换
C. 技术选型对比
| 技术方案 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| NAT444 | 部署简单,对现有网络改动小 | 双层 NAT 增加复杂性,可能影响 P2P 应用 | IPv4 为主,IPv6 尚未普及的地区 |
| DS-Lite | 促进 IPv6 部署,单层 NAT | 需要运营商网络支持 IPv6 | IPv6 基础设施完善的地区 |
3. 端口分配策略
A. 端口块分配(PBA,Port Block Allocation)
CGNAT 采用端口块分配算法,为每个用户分配一组端口而非单个端口。例如:
- 一个公网 IP 的 1024-65535 端口范围可划分为多个端口块
- 每个用户分配一个端口块(如 1000 个端口)
- 用户可自由使用其端口块内的端口
B. 地址复用率
根据 F5 的技术文档,LSN 资源池可实现高达 35:1 的回报率,即一个公网 IP 可服务 35 个用户。具体复用率取决于:
- 用户平均并发连接数
- 端口块大小配置
- 用户行为模式
五、技术影响
1. 对用户的影响
A. 正面影响
- 降低互联网接入成本(运营商节省 IP 成本可能传递给用户)
- 更容易获得互联网接入服务
- 配合 IPv6 部署,可获得真正的公网地址
B. 负面影响
- 端口映射失效:用户无法从外网主动访问内网设备
- P2P 应用受阻:BT 下载、在线游戏联机等应用体验下降
- 服务器托管受限:无法在家中托管需要公网 IP 的服务
2. 对应用的影响
A. 受影响的应用类型
- P2P 文件共享:BT、eMule 等
- 在线游戏:依赖 P2P 连接的游戏
- 远程访问:远程桌面、SSH 等
- 物联网设备:需要外部访问的智能设备
B. 应对方案
- 使用中继服务器:通过第三方服务器中转连接
- 申请独立公网 IP:部分运营商提供付费公网 IP 服务
- 使用 IPv6:通过 IPv6 建立端到端连接
- VPN 隧道:通过 VPN 绕过 CGNAT 限制
3. 行业发展趋势
A. 中国运营商实践
中国三大运营商(中国电信、中国联通、中国移动)采用不同的 CGNAT 和 IPv6 部署策略:
- 中国联通:专注于本地试点
- 中国电信:专注于 IPv6 研发跟进
- 中国移动:借助 TD-LTE 网络部署机会推进 IPv6
无锡等城市的城域网通过 NAT444 和 DS-Lite 技术实现规模部署,完成了 10 万双栈用户的网络改造。
B. IPv6 与 CGNAT 的关系
CGNAT 与 IPv6 并非相互排斥,而是互补的过渡方案:
- CGNAT 解决短期 IPv4 地址短缺问题
- IPv6 是长期解决方案
- "IPv6 公网 + IPv4 私网(CGNAT)" 是当前主流的过渡期网络部署方案
六、实施考虑
1. 日志与合规
A. 日志记录要求
根据 RFC 6888 要求,CGNAT 必须记录以下信息:
- 转换前后的 IP 地址和端口
- 转换时间戳
- 用户标识
B. 存储挑战
CGNAT 日志量巨大,需要考虑:
- 日志压缩和归档策略
- 快速检索能力
- 符合数据保留法规要求
C. 实践经验
根据运营商实践经验,平均每条线路每 5 周约产生一个日志条目(通过 CPE 租约/续订和资源池重新平衡优化)。
2. 性能优化
A. 资源池管理
- 动态资源池重新平衡
- 基于用户需求的端口块分配
- 空闲资源回收机制
B. 硬件要求
CGNAT 设备需要满足:
- 高并发连接处理能力(百万级)
- 快速 NAT 表查找
- 高速网络接口(10G/40G/100G)
3. 监控与运维
A. 关键监控指标
- 公网 IP 利用率
- 端口块使用率
- 并发连接数
- 转换失败率
B. 告警规则
- 端口池耗尽告警
- 连接数超限告警
- 设备资源使用告警
七、未来展望
1. 技术演进
A. 短期(1-3 年)
CGNAT 持续普及,成为运营商标准配置,配合 IPv6 部署提供双栈服务。
B. 中期(3-5 年)
IPv6 渗透率提升,CGNAT 主要服务于老旧设备和应用。
C. 长期(5 年以上)
IPv6 成为主流,CGNAT 逐渐退出历史舞台,但可能在特定场景长期存在。
2. 挑战与机遇
A. 挑战
- 应用兼容性问题
- 用户体验下降
- 运维复杂度增加
B. 机遇
- 加速 IPv6 普及
- 促进新型网络架构发展
- 推动应用层协议改进
八、总结
CGNAT 作为应对 IPv4 地址枯竭的过渡方案,通过在运营商层面部署大规模 NAT 技术,实现了多个用户共享公网 IP 的目标,可有效延缓 IPv4 地址耗尽时间。虽然 CGNAT 带来了端口映射受限、P2P 应用受阻等问题,但配合 IPv6 的部署,为互联网向下一代网络协议平滑演进提供了可行的路径。
对于用户而言,了解 CGNAT 的影响并选择合适的应对方案(如使用 IPv6、申请公网 IP、使用 VPN 等),可以最大程度减少 CGNAT 带来的不便。对于运营商而言,CGNAT 是平衡成本与服务的有效手段,但需要持续优化性能、完善日志管理、加速 IPv6 部署,以提供更好的服务质量。
参考资料
- RFC 6888 - Common Requirements for Carrier-Grade NAT - IETF 官方标准
- RFC 6333 - Dual-Stack Lite Broadband Deployments - IETF 官方标准
- 配置 CGNAT(运营商级 NAT)IP - Cisco - Cisco 技术文档
- 使用 BIG-IP CGNAT 提高网络可扩展性 - F5 - F5 技术文档
- 运营商级 NAT (CGN) 及其对 IPv4 枯竭的影响 - InterLIR - 技术分析文章
- 什么是运营商级 NAT (CGNAT)?- 阿里云开发者社区 - 技术介绍
- 电信级 NAT - 维基百科 - 百科资料
- CGN 技术白皮书 - 新华三集团 - 厂商白皮书