跳至主要内容

在学生公寓中应对公网 IP 枯竭问题

本指南为网络架构师在密集型学生公寓和多租户 WiFi 环境中部署运营商级 NAT (CGNAT) 和端口地址转换 (PAT) 以解决 IPv4 枯竭问题提供了权威的技术参考。内容涵盖 NAT444 架构、RFC 6598 共享地址空间、端口块分配 (PBA) 规划、符合 GDPR 要求的日志记录策略以及双栈 IPv6 迁移路径。对于在受限公网 IP 池中管理成百上千台并发设备的运营商而言,本指南至关重要,它提供了极具操作性的配置指导、真实案例研究和 ROI 分析。

📖 10 分钟阅读📝 2,500 🔧 3 应用实例3 练习题📚 10 关键定义

收听本指南

查看播客转录
您好,欢迎收听来自 Purple 的技术简报。我是今天的主持人,今天我们将讨论多租户网络中面临的一个关键基础设施挑战:管理学生公寓中的公网 IP 枯竭问题。 如果您是运营高密度环境(无论是学生公寓、酒店还是大型商业综合体)的网络架构师、CTO 或 IT 经理,您一定深知 IPv4 枯竭带来的痛苦。您拥有成千上万台并发设备、不断萎缩的公网 IP 地址池,以及维持高吞吐量和无缝连接的持续压力。今天,我们将深入探讨运营商级 NAT(即 CGNAT)、端口地址转换,以及如何构建一个既不损害性能也不损害合规性的可扩展解决方案。 让我们先了解一下背景。在典型的学生公寓楼中,单名住户就会携带智能手机、笔记本电脑、智能电视、游戏机,可能还有智能音箱。这意味着每位用户拥有五到七台设备。如果乘以五百或一千个床位,您将面临海量的并发会话负载。在此类规模下,标准的 NAT 或 PAT(端口地址转换)往往会失效。为什么?因为单个公网 IP 仅有 65535 个可用的 TCP 和 UDP 端口。当数千台设备为云同步、即时通讯应用和流媒体打开多个后台会话时,端口很快就会枯竭。其结果就是连接中断、用户体验下降以及服务台工单量暴增。 这就是 CGNAT(特别是 NAT 444)发挥作用的地方。与标准单级 NAT 不同,CGNAT 引入了第二层转换。订户设备从 RFC 1918 空间(例如 192.168.x.x)获取私网 IP。这些 IP 由接入点或 CPE 转换为共享的运营商级地址空间 - 具体而言是 RFC 6598,即 100.64.0.0/10 网段。最后,CGNAT 网关将这些地址转换为公网互联网 IP。 让我们进行深入的技术剖析。我们该如何有效地部署这一方案? 首先是端口块分配(PBA)。这是稳定部署 CGNAT 的基石。与其逐个动态分配端口(这会产生巨大的日志记录开销并导致端口空间碎片化),不如为每个订户分配一个连续的端口块。 行业最佳实践,也是我们通常针对高密度环境推荐的做法,是为每个订户分配大约 500 个端口。这达到了极佳的平衡。这足以处理现代 Web 应用程序,而不会使地址池耗尽。在每位用户分配 500 个端口的情况下,单个公网 IPv4 地址最多可支持 128 个订户。如果您进一步将其推高,比如支持 256 个订户,您就需要将端口分配降至 250 个,这会显著增加高峰使用时段(如晚上学习时间或周末游戏时段)会话中断的风险。 现在,让我们来谈谈实施建议和常见陷阱。 陷阱一:忽视会话日志记录和合规性。在英国和欧洲,根据 GDPR 和合法拦截法规,您必须能够将公网 IP 和端口追溯到特定时间段内的特定用户。如果您使用的是动态端口分配,您的 CGNAT 网关将为每一次会话的建立和拆除生成一条日志条目。在大规模运营中,这每天会产生数 TB 的系统日志数据,从而彻底压垮您的日志记录基础设施。 解决方案是什么?还是端口块分配。使用 PBA,您只需在将端口块分配给用户以及该端口块被释放时记录日志。这可将日志量减少高达 98%,使合规管理变得轻松且更具成本效益。 陷阱二:CAPTCHA 验证码问题。当 128 个用户共享同一个公网 IP 时,主流的内容分发网络和搜索引擎可能会将该流量体积标记为异常,并将其视为僵尸网络。用户就会开始频繁遇到无休止的 CAPTCHA 验证提示。为了缓解这一问题,请确保您的 CGNAT 网关是分布式部署的,并在特定地址被列入黑名单时轮换公网 IP 池。 接下来,让我们进入基于首席架构师常见问题的快速问答环节。 问:我们是否应该直接跳过 CGNAT 并直接过渡到 IPv6? 答:在理想情况下,是的。但学生公寓的现实情况是,许多传统设备 - 较旧的游戏机、廉价的智能插座 - 仍然仅支持 IPv4。推荐的架构是双栈部署。原生运行 IPv6,同时配合 CGNAT 运行 IPv4。这可以将高达 60% 至 70% 的流量(如 YouTube、Netflix 和 Facebook)直接分流到 IPv6,从而极大地减轻您 IPv4 NAT 池的负载。 问:这会对我们的 Purple WiFi 部署产生什么影响? 答:它可以实现无缝集成。Purple 作为身份提供商,处理身份验证和分析层。底层的 IP 路由(无论是双栈还是 CGNAT)对 Purple 门户都是透明的。如果您需要追溯用户会话以满足合规性要求,只需确保您的 RADIUS 计费和系统日志已正确关联即可。 总结一下:IPv4 枯竭是现实存在的,但它是可控的。 第一:使用带有 RFC 6598 共享地址空间的 NAT 444。 第二:实施端口块分配,每位订户大约分配 500 个端口。 第三:将订户与 IP 的比例保持在 128 比 1 或以下。 第四:部署 IPv6 双栈以分流流量。 第五:确保您的日志记录策略符合合法拦截要求,且不会让您的 SIEM 过载。 关于管理学生公寓中公网 IP 枯竭的技术简报到此结束。欲了解详细的架构图、配置示例以及关于多租户 WiFi 的更多见解,请务必查看 Purple 官方网站上的完整技术参考指南。感谢收听。

header_image.png

执行摘要

随着 IPv4 地址枯竭的加速,在密集的多租户环境 - 如学生公寓、 酒店 和大型公共场所 - 中,IT 经理和网络架构师正面临着重大的运营挑战。一个拥有 1,000 名居民的单一学生公寓区可产生超过 7,000 台并发的 IP 连接设备。标准端口地址转换(PAT)架构在此规模下会失效,导致端口枯竭、连接断开以及用户体验下降。

本技术参考指南概述了使用 NAT444 模型部署运营商级 NAT(CGNAT)以管理 IP 枯竭的架构和部署。通过利用 RFC 6598 共享地址空间并实施战略性端口块分配(PBA),网络运营商可以实现极高的用户密度 - 每个公网 IP 支持多达 128 个用户 - 同时保持对 GDPR 和合法拦截法规的合规。对于使用 Guest WiFiWiFi Analytics 等平台的场所,强大的 CGNAT 架构可确保稳定的连接和准确的数据收集,而无需购买额外 IPv4 地址块的资本支出(CapEx)。

技术深度解析

学生公寓中的规模问题

现代学生公寓中的设备密度几乎不同于任何其他托管网络环境。一个典型的居民通常会连接一部智能手机、一台笔记本电脑、一台智能电视、一个游戏机以及至少一个智能家居设备。按每个居民 5 到 7 台设备计算,一个拥有 1,000 张床位的校园所带来的并发会话负载,甚至让同等规模的酒店都相形见绌。使用模式使得这一挑战更加复杂:在晚间高峰时段(18:00 - 23:00),游戏、视频流和社交媒体上几乎同时出现高带宽活动,所有这些活动都维持着持久的后台连接。

在区域互联网注册机构(RIR)级别,IPv4 地址空间已实际枯竭。管理欧洲和中东地区分配的 RIPE NCC 在 2019 年达到了其最终的 /8 分配政策。在公开市场上获取额外公网 IPv4 地址块的成本目前在每个地址 40 到 60 美元之间 - 对于管理数百个子网的任何运营商来说,这都是高昂的 CapEx。

标准 PAT 的局限性

在传统的单站点部署中,端口地址转换(PAT)将整个私有 LAN(RFC 1918 空间:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)映射到单个公网 IP 地址。单个 IPv4 地址在 TCP 和 UDP 中拥有 65,535 个可用端口。虽然这对于小型办公室来说已经足够,但在密集的学生公寓中,后台应用(如云同步、即时通讯平台、流媒体服务)的激增意味着单个用户可以轻松消耗数百个并发端口。当 PAT 边缘路由器耗尽其可用端口时,新的会话请求将被默默丢弃。这表现为应用超时、VoIP 呼叫失败以及服务台工单的增加。

CGNAT (NAT444) 架构

要突破单级 NAT 的限制,企业网络必须采用运营商级 NAT 架构,特别是 NAT444 模型。该名称是指翻译链中涉及的三层 IPv4 地址空间。

第 1 级 - CPE / 接入点层: 为订户设备分配来自 RFC 1918 空间(例如 192.168.x.x)的私有 IP 地址。接入点或客户终端设备(CPE)执行第一次 NAT 转换。

第 2 级 - CGNAT 网关: CPE 将私有 RFC 1918 地址转换为 RFC 6598 共享地址空间(100.64.0.0/10)。此中间空间专保留用于服务提供商基础设施与 CGNAT 网关之间。使用 RFC 6598 代替另一个 RFC 1918 范围可以防止复杂的群租多租户环境中的地址重叠和路由冲突。

第 3 级 - 公共互联网: CGNAT 网关执行从 RFC 6598 地址到共享公网 IPv4 地址的最终转换。这是外部服务可见的地址。

cgnat_pat_architecture_comparison.png

端口块分配:关键设计决策

CGNAT 部署中最关键的配置选择是端口分配策略。存在两种方法:

动态端口分配(DPA): 端口是在每个会话的基础上从共享池中分配的。这最大化了端口利用效率,但会为每个会话的建立和拆除生成日志条目 - 在大规模情况下造成了巨大的合规和基础设施负担。

端口块分配(PBA): 在每个订户启动其第一个会话时,都会为其分配一个连续的端口块。在订户会话终止之前,该块一直保持分配状态。这种方法仅在分配和释放块时生成日志,从而将日志量减少高达 98%。

配置参数 推荐值 原理
每个订阅者的端口(PBA 块大小) 500 足够现代 Web 应用程序使用,不会耗尽地址池
每个订阅者的最大并发会话数 2,000 防止单个受感染设备耗尽地址池
会话超时(已建立的 TCP) 7,440 秒 (RFC 5382) 符合 IETF 关于 NAT 行为的建议
会话超时 (UDP) 300 秒 防止陈旧的 UDP 映射占用端口空间

**行业基准:**NFWare 是一家在 100 多个 ISP 中进行过部署的专业 CGNAT 厂商,建议每个公网 IP 最多容纳 128 个订阅者,且每个订阅者分配 500 个端口。超出此限制 - 例如,将每个 IP 的订阅者数量拉伸到 256 个,每个订阅者仅分配 250 个端口 - 会显著增加高峰负载期间会话中断的风险。

双栈 IPv6 作为长期迁移路径

CGNAT 是一种缓解策略,而不是永久解决方案。正确的架构方向是双栈部署:将 IPv6 与带有 CGNAT 的 IPv4 并行运行。现代设备和各大 CDN(Google、Netflix、Meta、Cloudflare)在可用时会强烈首选 IPv6。在配置良好的双栈环境中,60% 到 70% 的总流量可以卸载到 IPv6,从而极大地减轻 IPv4 CGNAT 池的负载并延长其有效寿命。

对于支持遗留设备至关重要的 医疗交通 环境,双栈还提供了一条清晰的迁移路径:支持 IPv6 的设备进行原生迁移,而仅支持 IPv4 的遗留设备则通过 CGNAT 继续运行,不会对用户造成任何干扰。

ip_exhaustion_solution_matrix.png

实施指南

第 1 步:审计您当前的 IP 分配和设备密度

在部署 CGNAT 之前,先建立一个基准。从您现有的网络管理系统中收集以下数据:

  • 每个子网的峰值并发设备数
  • 每个设备的平均和峰值会话数
  • 当前公网 IP 利用率百分比
  • 现有的 NAT 超时配置

这些数据直接决定了您的 PBA 块大小和公网 IP 池的需求。

第 2 步:设计 RFC 6598 传输网络

为运营商级传输网络分配 100.64.0.0/10 网段。规划子网划分以匹配您的园区拓扑 - 通常每个建筑物或接入层段分配一个 /24/23。确保您的路由基础设施不会将 RFC 6598 前缀泄漏到公共互联网或对等伙伴。

第 3 步:部署和配置 CGNAT 网关

CGNAT 网关通常是专用硬件设备,或者是运行在通用服务器硬件上的虚拟化网络功能 (VNF)。关键配置参数包括:

  • NAT Pool: 将您的公共 IPv4 块分配给 NAT 池。确保池大小适用于您的目标订户与 IP 比例。
  • PBA 配置: 将块大小设置为 500 个端口。将每个订户的最大块数配置为 1(如果订户用尽了初始块,可以选择将其扩展到 2,而不是增加基础块大小)。
  • 日志记录: 配置向您的 SIEM 输出 syslog。通过 PBA,每个日志条目会记录:订户内部 IP、分配的公共 IP、分配的端口块起始、块结束、分配的时间戳和释放的时间戳。
  • 会话限制: 每个订户应用最多 2,000 个并发会话,以防止滥用。

步骤 4:与身份和认证层集成

在利用 Guest WiFi 平台的环境中,Captive Portal 认证必须发生在 1 级 NAT 边界或之前。这确保了在流量聚合到 CGNAT 池之前,身份提供商可以准确地将 MAC 地址和用户凭据映射到唯一的内部 IP 地址。Purple 的平台在接入点级别处理此问题,从而维护一个清晰的用户到 IP 绑定,该绑定在整个 NAT 转换链中持久存在。

对于无密码访问部署 - 如 How a WiFi Assistant Enables Passwordless Access in 2026 中所述 - 相同的原则同样适用:必须在 CGNAT 网关的上游建立身份绑定,以确保准确的会话归因。

步骤 5:配置 IPv6 双栈

在所有接入点上启用 IPv6,并通过 DHCPv6 或 SLAAC 为每个 VLAN 分配一个 /64 前缀。通过您的上游提供商宣告 IPv6 路由。在减小 IPv4 NAT 池大小之前,请验证主要 CDN 流量(Google、Netflix、YouTube)是否正在解析为 AAAA 记录并通过 IPv6 进行路由。

最佳实践

尽可能实施确定性 NAT。 确定性 NAT 在订户的内部 IP 地址与其分配的公共 IP 和端口块之间使用算法映射。由于该映射在数学上是可计算的,因此无需维护或记录会话表 - 可以根据需要对该映射进行反向工程,以用于合法拦截目的。这是注重合规性部署的黄金标准。

分担 CGNAT 网关负载。 避免将所有 CGNAT 流量集中通过单个设备。将网关分布在园区或建筑物中,以防止单点故障。分布式网关还可以降低 IP 信誉风险:如果池中的公共 IP 因可疑流量模式而被 CDN 标记(验证码问题),则只有一部分用户会受到影响。 积极监控 IP 信誉。 订阅 IP 信誉源(例如 Spamhaus、SURBL)并监控您的公共 NAT 池 IP。保留一个干净的 IP 备用池,以便在活动地址被列入黑名单时进行轮换。这在学生公寓中尤为关键,因为少数用户的活动可能会触发滥用标记。

强制执行单用户会话限制。 严格限制每个用户并发会话数不超过 2,000 个,可防止单个受感染的设备(例如参与 DDoS 放大攻击的设备)耗尽分配给该公共 IP 的整个端口块。有关监控网络性能的更多详细信息,请参阅我们的指南: 如何测量 WiFi 信号强度和覆盖范围

与 IEEE 802.1X 访问控制保持一致。 在接入层部署基于 IEEE 802.1X 端口的身份验证,可确保只有经过身份验证的设备才能获得 IP 分配。这降低了流氓设备占用端口分配的风险,并为合法拦截目的提供了清晰的审计追踪。

故障排除与风险缓解

日志记录与合规负担

在英国和欧洲,根据 GDPR 和《2016年调查权力法案》,网络运营商必须能够将公共 IP 地址和端口号追溯到特定时间戳的特定用户。这是一项不可逾越的法律义务。

风险: 使用动态 CGNAT 时,记录每个会话的建立和拆除每天会产生数 TB 的 syslog 数据。一个拥有 1,000 个用户的动态分配部署每天会产生 5 亿条日志记录。这会使 SIEM 基础设施过载,增加存储成本,并使取证调查变得不切实际。

缓解措施: 端口块分配(PBA)可将日志记录量减少高达 98%。使用 PBA,您只需记录块分配和释放事件 - 通常每个用户会话只需记录两条日志,而不是数百或数千条。确保您的 SIEM 将这些日志保留至少 12 个月,以符合英国的数据保留要求。

CAPTCHA 和 IP 信誉问题

当 128 个用户共享一个公共 IP 时,聚合的流量可能会触发大型网站上的速率限制或反机器人保护。Google 的 reCAPTCHA、Cloudflare 的机器人管理以及类似系统使用基于 IP 的启发式算法,可能会将共享的 CGNAT IP 错误分类为机器人来源。

缓解措施: 将您的 CGNAT 池分布在多个公共 IP 上。积极监控信誉评分。考虑部署 DNS-over-HTTPS (DoH) 或 DNS-over-TLS (DoT) 以防止基于 DNS 的信誉问题。向用户说明,在共享 IP 环境中偶尔出现 CAPTCHA 提示是已知行为。

应用兼容性问题

某些应用程序 - 尤其是对等网络(P2P)协议、某些 VoIP 实现和较旧的游戏平台 - 依赖于持久的端口映射或入站连接发起。这些在双重 NAT 下可能会失效。

**缓解措施:**对于 VoIP,请确保您的 CGNAT 网关支持 SIP 的 ALG(应用层网关)。对于游戏,请考虑实施 UPnP 代理或配有独立且密度较低的 NAT 池的专用游戏 VLAN。对于销售点系统需要入站连接的 零售 环境,请将这些设备放在完全绕过 CGNAT 层的独立 VLAN 上。

投资回报率和业务影响

资本支出 (CapEx) 节省

部署 CGNAT 可带来直接且可观的 CapEx 节省。按每个 IPv4 地址 50 美元的市场价格计算,一个拥有 5,000 个床位、需要 1:1 设备与 IP 比例的大学需要购买大约 35,000 个 IP 地址 - 成本高达 175 万美元。通过部署比例为 128:1 的 CGNAT,相同的部署只需要不到 300 个公网 IP,从而将 IP 购置成本降至约 15,000 美元。

即使将 CGNAT 网关硬件或虚拟化网络功能的成本计算在内(对于校园规模的部署,通常为 20,000 - 80,000 美元),净节省金额依然非常可观。

运营支出 (OpEx) 减少

稳定的连接直接降低了服务台的日常开销。端口耗尽事件(大规模标准 PAT 的主要故障模式)会产生大量的支持工单。一个配置良好的 CGNAT 部署,配合适当的会话限制和 PBA,可以消除这种故障模式,从而使网络相关的服务台工单量预计减少 30% - 40%。

学生公寓市场的竞争优势

在竞争激烈的学生公寓市场中,网络质量是潜在租户的主要选择标准。如果运营商能够展示持续、高吞吐量的连接 - 并通过显示在线时间、会话质量和设备密度指标的 WiFi Analytics 控制面板进行验证 - 就能获得更高的租金并实现更高的入住率。这种基础设施的稳定性也是部署先进定位服务的基础,正如 Purple launched offline maps mode for seamless, secure navigation for WiFi hotspots 中所强调的那样。

案例研究 1:800 个床位的大学宿舍楼

一所由英国大学运营的拥有 800 个床位的宿舍楼在晚间高峰期时常遇到连接问题。调查发现,他们的单级 PAT 配置使用 /29 公网子网(6 个可用 IP),在每天晚上 19:30 之前就会耗尽可用端口。该运营商部署了具有 PBA 的 CGNAT 解决方案(每个用户 500 个端口,每个 IP 支持 128 个用户),升级到 /27 公网子网(30 个可用 IP),并启用了 IPv6 双栈。部署后的指标显示,与初始的动态分配试点相比,端口耗尽事件减少了 94%,网络相关的服务台工单减少了 38%,CGNAT 日志量减少了 65%。在部署后的 60 天内,IPv6 分流率达到了 62%。

案例研究 2:拥有 1,200 间客房的专用学生公寓 (PBSA) 运营商

一家在英国两个城市管理三个站点的私营 PBSA 运营商在开设第四个站点之前,需要标准化其网络架构。他们现有的基础设施混合使用了单级 NAT 和临时 VLAN 划分,且没有连贯的日志记录策略。我们在所有三个站点部署了具有确定性 NAT 的 CGNAT,实现了可进行数学计算的订户到 IP 映射,而无需会话日志记录开销。这种方法在合法拦截合规性方面满足了该运营商法律团队的要求,消除了会话日志的 SIEM 存储成本,并为第四个站点提供了统一的架构模板。该运营商还集成了 Purple 的 Guest WiFi 平台用于 Captive Portal 认证,在 CGNAT 网关上游建立身份绑定,以确保分析报告中准确的用户归因。

关键定义

CGNAT (Carrier-Grade NAT)

一种网络架构,运营商在集中式网关处执行网络地址转换,从而使多个订户能够共享单个公网 IPv4 地址。定义于 RFC 6264 和 RFC 6888。也称为大规模 NAT (LSN) 或 CGN。

当单个公网 IP 不足以为网络上的所有设备提供服务时,IT 团队就会遇到 CGNAT。在学生公寓中,CGNAT 是在不购买额外公网地址空间的情况下管理 IPv4 耗尽的主要机制。

NAT444

一种特定的 CGNAT 拓扑,涉及三层 IPv4 地址空间:订户私有地址 (RFC 1918)、运营商级共享地址 (RFC 6598) 和公网互联网地址。该名称是指所跨越的三个 IPv4 网络。

NAT444 是多租户环境中部署 CGNAT 的标准架构。网络架构师必须理解三层模型,以正确设计中间网络并避免地址重叠。

RFC 6598 共享地址空间

IANA 保留用于 CPE 和 CGNAT 网关之间中间网络的 100.64.0.0/10 IPv4 地址块(100.64.0.0 至 100.127.255.255)。此空间在公网互联网上不可路由,专门设计用于防止 NAT444 部署中的地址冲突。

IT 团队必须将 RFC 6598 - 而非 RFC 1918 - 用于中间 CGNAT 网络。在此网段使用 RFC 1918 会在订户网络中使用相同的 RFC 1918 范围时带来地址重叠风险。

端口块分配 (PBA)

一种 CGNAT 端口分配策略,其中在每个订户的会话期间为其分配一个连续的端口块(例如 500 个端口),而不是针对每个连接单独分配端口。定义于 RFC 7422。

PBA 是符合 GDPR 的 CGNAT 部署的推荐方法。与动态端口分配相比,它可减少高达 98% 的日志记录开销,使合法拦截合规性在大规模运营中具有可行性。

确定性 NAT

一种 CGNAT 配置,其中订户内部 IP 地址与其分配的公网 IP 和端口块之间的映射是通过算法计算的,无需维护会话表。该映射在数学上是可逆的,无需检索日志即可识别订户。

对于注重合规性的部署,确定性 NAT 是黄金标准。它完全消除了日志记录开销,同时满足合法拦截要求,因为可以使用已知算法从公网 IP、端口和时间戳中识别出订户。

PAT (Port Address Translation)

网络地址转换的一种形式,通过使用唯一的源端口号区分连接,将多个私有 IP 地址映射到单个公网 IP 地址。也称为 NAT 重载或多对一 NAT。

PAT 是大多数企业边缘路由器中使用的标准单级 NAT。它是 CGNAT 的前身,由于在大规模情况下存在端口耗尽问题,因此不足以应对密集的多租户环境。

会话表

由 NAT 网关维护的数据结构,用于记录每个活跃连接的内部(私有)IP 地址和端口与外部(公有)IP 地址和端口之间的映射关系。会话表是 CGNAT 所消耗的主要内存和处理资源。

会话表大小是 CGNAT 网关的关键容量规划参数。一个拥有 1000 个订户且每个订户最大会话数为 2000 的部署,需要至少 200 万个条目的会话表容量。会话表大小不足会导致连接失败。

双栈 (Dual-Stack)

一种网络配置,其中 IPv4 和 IPv6 协议在相同的网络基础设施和终端设备上同时启用。具有双栈能力的设备在连接到支持 IPv6 的目的地时会优先选择 IPv6。

双栈是 CGNAT 部署中推荐的过渡策略。通过将支持 IPv6 的流量分流到原生 IPv6 路径,双栈可以减轻 IPv4 CGNAT 地址池的负载,并提供向以 IPv6 为主网络迁移的路径。

RFC 1918 私有地址空间

保留用于私有网络使用的三个 IPv4 地址范围:10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。这些地址在公共互联网上不可路由,用于内部网络寻址。

在 CGNAT 部署中,RFC 1918 地址用于订户设备寻址。网络架构师必须确保订户网络中使用的 RFC 1918 范围与中间 CGNAT 网络中使用的范围不重叠 - 这就是为什么中间层使用 RFC 6598 的原因。

合法拦截

执法部门依法授权的通信拦截。在英国受 2016 年调查权力法案(Investigatory Powers Act 2016)管辖。网络运营商在收到合法拦截请求时,必须能够识别出与特定公网 IP 地址、端口和时间戳相关联的订户。

合规的合法拦截是 CGNAT 日志记录需求的主要驱动力。运营商必须保留足够的日志,以便通过公网 IP 和端口数据识别订户。PBA 和确定性 NAT 是使该方案在不压垮日志基础设施的情况下实现规模化落地的两种架构。

应用实例

一栋拥有 600 个床位的学生公寓楼目前使用带有标准 PAT 的单个 /29 公网子网(6 个可用 IP)。在晚间高峰时段(19:00 至 23:00),用户反映大范围连接失败。网络团队已确认 PAT 路由器上存在端口枯竭。该运营商有预算购买 CGNAT 网关硬件,但无法获得除 /27(30 个可用 IP)以外的其他公网 IP。请设计一个 CGNAT 部署方案,以消除端口枯竭问题,并支持未来增长至 900 个床位。

步骤 1 - 基准评估:按每位住户 5 台设备计算,600 个床位的高峰并发设备数约为 3,000 台。在每个订户 500 个端口(PBA)的配置下,每个公网 IP 可支持 128 个订户。利用 /27 中的 30 个可用 IP,理论最大订户容量为 3,840 个 - 足以满足 900 个床位(每位住户 4.3 台设备)的需求。步骤 2 - RFC 6598 中间网络:为中间运营商级网络分配 100.64.0.0/20,为 CPE 到 CGNAT 网关的流量提供 4,096 个地址。按楼翼划分的子网:100.64.0.0/24、100.64.1.0/24 等。步骤 3 - CGNAT 网关规格:部署一台会话表容量至少为 768,000 条的 CGNAT 网关(3,000 订户 × 每订户最大 2,000 会话,外加 20% 预留空间)。配置 500 个端口块的 PBA。设置每订户最大端口块数为 1,允许超过 500 个并发会话的订户溢出至 2 个端口块。步骤 4 - IPv6 双栈:在所有接入点上启用 IPv6。通过 SLAAC 分发 /64 前缀。目标是在 90 天内实现 60% 的 IPv6 分流,这可将 IPv4 CGNAT 负载有效降低至 1,200 个并发 IPv4 订户 - 完全在 /27 的容量范围内。步骤 5 - 日志记录:配置 syslog 到 SIEM,仅记录 PBA 端口块分配/释放事件。日志至少保留 12 个月。步骤 6 - 会话限制:在 CGNAT 网关处强制执行每订户最大 2,000 个会话,以防止滥用。

考官评语: 该解决方案正确地指出,/27(30 个 IP × 每 IP 128 个订户 = 3,840 容量)足以满足 900 个床位的增长目标,从而避免了购买额外 IP 的需要。IPv6 双栈组件至关重要 - 如果没有它,IPv4 池将持续承压。将每个订户的 PBA 配置为 500 个端口是行业标准建议,直接解决了端口枯竭故障模式。会话表容量计算(3,000 × 2,000 × 1.2 预留空间)是一种实用的工程方法。另一种替代方法(在公开市场上购买 /24 的额外 IPv4 空间)将花费约 150,000 美元,在 CGNAT 能以极低成本达到相同效果的情况下,这显然是不合理的。

一家 PBSA 运营商在拥有 1,000 个床位的场所部署了使用动态端口分配的 CGNAT。其法务团队指出,目前的日志记录方式每天产生 400GB 的 syslog 数据,这使 SIEM 难以负荷,并且导致执法部门的合法拦截请求无法切实执行。请重新设计日志记录策略,以满足 UK 合法拦截义务,同时将日志量降至可控水平。

步骤 1 - 迁移到端口块分配(PBA):将动态端口分配替换为每个订户 500 个端口的 PBA。这样可以立即使日志事件从每次会话一个减少到每次分配块一个和每次释放块一个。对于一个拥有 1,000 名用户、平均每人每天有 3 次分配/释放块周期的部署,每天大约会生成 6,000 条日志条目 - 比动态分配基线减少了 99% 以上。步骤 2 - 日志架构:确保每个 PBA 日志条目捕获:(a) 订户内部 IP 地址,(b) 分配的公网 IP 地址,(c) 分配的端口块起始和结束,(d) 块分配时间戳 (UTC),(e) 块释放时间戳 (UTC),(f) 订户标识符(MAC 地址或 RADIUS 用户名)。步骤 3 - 确定性 NAT 选项:如果 CGNAT 平台支持,请迁移到确定性 NAT。由于映射在数学上是可计算的,因此完全免去了日常操作的日志记录。仅针对非确定性溢出情况保留 PBA 日志。步骤 4 - 保留策略:将日志在具有防篡改功能的日志存储(例如,只写一次的 S3 兼容对象存储)中保留 12 个月。实施访问控制,以便为合法拦截请求检索日志时需要双重授权。步骤 5 - 事件响应流程:记录响应合法拦截请求的流程,包括在确定性 NAT 下根据公网 IP、端口和时间戳反向计算订户的公式。

考官评语: 这里的关键洞察在于动态端口分配是日志记录问题的根本原因,而不是 CGNAT 本身。迁移到 PBA 是最主要的干预措施。从每天 400GB 减少到大约每天 1MB(6,000 条日志条目)是切合实际的,并且符合已公布的行业基准。确定性 NAT 选项是最佳的长期解决方案,但需要平台支持 - 并非所有 CGNAT 设备都实现了该功能。对日志访问的双重授权要求是 GDPR 的最佳实践,可确保合法拦截日志检索是可审计的。这种方法既满足了《2016年调查权力法案》的要求,又符合 GDPR 数据最小化原则。

一所大学的 IT 团队报告称,学生经常遇到 Google、Netflix 和游戏平台的 CAPTCHA 验证挑战和速率限制。调查显示,有 200 名学生通过 CGNAT 共享同一个公网 IP 地址。该团队被告知,短期内无法获取更多公网 IP。在不更改 IP 分配的情况下,可以立即实施哪些缓解措施?

步骤 1 - 降低订户密度:200:1 的比例是主要原因。即使没有额外的公网 IP,也要审查 CGNAT 地址池是否得到了高效利用。确保全面启用 IPv6 双栈 - 如果 60% 的流量分流到 IPv6,有效的 IPv4 订户数量将降至每 IP 大约 80 个,远低于 128:1 的推荐阈值。步骤 2 - IP 轮换:为公网 IP 池实施轮换策略。如果 CGNAT 网关支持,请为每个订户组配置定期轮换分配的公网 IP。这可以防止单个 IP 积累持续的负面信誉。步骤 3 - DNS 优化:确保向客户端提供的 DNS 解析器优先返回 AAAA 记录。许多 CAPTCHA 触发是基于 DNS 的 - 如果客户端无必要地将服务解析为 IPv4 地址,即使其原本可以原生使用 IPv6,也会通过 CGNAT 进行路由。步骤 4 - 会话超时微调:将非 DNS UDP 流量的 UDP 会话超时从默认值(通常为 300 秒)缩短到 60 秒。这可以更快地释放端口空间,并从外部服务的角度减少表观会话量。步骤 5 - 与受影响的平台沟通:对于持续的黑名单问题,向主要的 IP 信誉数据库(如 Spamhaus、SURBL)提交删除请求。证明该 IP 是为合法的教育机构服务的共享 CGNAT 地址。

考官评语: 本场景测试了候选人在不使用增加 IP 获取这一主要手段的情况下,减轻 IP 信誉问题的能力。IPv6 双栈解决方案是最具影响力的干预措施,应作为首要建议。DNS AAAA 首选项配置是一个细微但有效的优化,许多运营商往往会忽略这一点。会话超时调整是一项有效的短期措施,但存在风险 - 过于激进的超时可能会中断有状态的应用。下架申请流程是一个合理的运营操作,但它是被动的而非预防性的。正确的长期解决方案仍然是将订户与 IP 的比例降低到 128:1 或以下。

练习题

Q1. 一个拥有 2,000 个床位的学生公寓校区拥有一个 /26 公网子网(62 个可用 IP)。网络团队正计划部署 CGNAT。计算:(a) 在推荐的 128:1 比例下可支持的最大订户数量,(b) 可用的总端口容量,(c) 推荐的 PBA 块大小,以及 (d) 现有的 /26 是否足够,或者是否需要额外的 IP。

提示:从 /26 中总共可用的 IP 开始,然后应用 128:1 的订户比例。在现实的人均设备比例下,将结果与 2,000 床位的设备数量进行对比。在最终建议中考虑 IPv6 双栈分流。

查看标准答案

一个 /26 提供了 62 个可用公网 IP。在每个 IP 128 个订户的比例下,最大 IPv4 CGNAT 容量为 62 × 128 = 7,936 个订户。按照每名住户 5 台设备计算,2,000 个床位将产生约 10,000 台并发设备。在没有 IPv6 的情况下,/26 是不够的(7,936 < 10,000)。然而,在 IPv6 双栈实现 60% 分流的情况下,实际的 IPv4 负载将降至约 4,000 台设备 - 远在 /26 的 7,936 容量范围之内。推荐的 PBA 块大小为每个订户 500 个端口。总端口容量:62 个 IP × 64,000 个可用端口 = 3,968,000 个端口。按每个订户 500 个端口计算:3,968,000 / 500 = 最大 7,936 个订户。建议:部署带 PBA 的 CGNAT,每个订户 500 个端口,将启用 IPv6 双栈作为先决条件,此时现有的 /26 就足够了。如果无法保证 50% 以上的 IPv6 分流,请获取额外的 /27 作为缓冲。

Q2. 某拥有 500 个床位的学生公寓部署的 CGNAT 正在引发合规性担忧。运营商的法律团队收到执法部门针对特定公网 IP 地址 (203.0.113.45)、端口 51432、时间戳 2025-11-15 21:47:33 UTC 的合法拦截请求。CGNAT 网关配置了动态端口分配。SIEM 包含 180 天的日志,但取证团队报告称,从日志中定位特定用户每次请求需要耗时 4 小时以上。请找出根本原因,并提出将响应时间缩短至 15 分钟以内的修复方案。

提示:4 小时的响应时间是日志架构的问题,而不是数据保留问题。请考虑在动态分配与 PBA 下分别记录了哪些信息,以及确定性 NAT 将如何完全改变响应流程。

查看标准答案

根本原因:动态端口分配会为每个会话生成一个日志条目。由于 500 个用户 × 每小时每个用户数百个会话,SIEM 每天包含数百万个日志条目。通过 IP、端口和时间戳定位单个条目需要在可能数十亿条记录中进行全文搜索 - 导致了 4 小时的响应时间。修复方案 1 (PBA):迁移到端口块分配(Port Block Allocation)。使用 PBA,端口 51432 的日志条目将记录端口块分配情况(例如,端口 51001 - 51500 在 21:30:00 UTC 分配给用户 192.168.1.23,在 23:15:00 UTC 释放)。对公网 IP + 端口范围 + 时间戳进行单次索引查询可在数秒内返回结果。预计响应时间:2 分钟以内。修复方案 2 (确定性 NAT):如果平台支持,迁移到确定性 NAT。端口 51432 可以通过数学方法反向计算出用户的内部 IP,无需进行任何日志查询。响应时间:30 秒以内。立即行动:在规划 PBA 迁移的同时,对现有的 SIEM 日志在 (public_ip, port, timestamp) 上建立索引,以缩短当前的响应时间。

Q3. 网络架构师正在为新建的拥有 800 个床位的 PBSA 项目设计 CGNAT 基础设施。上游 ISP 已提供一个 /27 公网子网,并确认 IPv6 传输可用。运营商还希望部署 Purple 的 Guest WiFi 平台以进行 Captive Portal 认证。请描述 Captive Portal 认证相对于 CGNAT 网关的正确部署位置,并解释错误部署如何带来合规风险。

提示:考虑 Captive Portal 需要捕获哪些信息(用户身份、设备 MAC、内部 IP)以及在 NAT 转换链的哪一点上这些信息仍然可用。思考内部 IP 地址在通过 CGNAT 网关后会发生什么。

查看标准答案

Captive Portal 认证必须发生在 1 级 NAT 边界或之前 - 即在接入点(AP)或 CPE 层,在流量进入 RFC 6598 中间网络之前。正确部署:Purple 的 Guest WiFi 平台在接入点对用户进行认证。该平台记录以下绑定关系:用户身份 → MAC 地址 → RFC 1918 内部 IP → 时间戳。此绑定关系是在 CGNAT 网关执行其转换之前建立的。然后,CGNAT 网关将 RFC 1918 IP 映射到公网 IP 和端口块,并且 PBA 日志记录:RFC 1918 IP → 公网 IP → 端口块 → 时间戳。这两个日志记录可以通过 RFC 1918 IP 和时间戳进行联接,从而生成完整的链路:用户身份 → 公网 IP + 端口。错误部署(Captive Portal 位于 CGNAT 网关之后):如果认证发生在 CGNAT 网关之后,平台只能看到公网 IP 和端口 - 无法看到内部 IP。此时,同一个 CGNAT IP 后面的多个用户将无法区分。平台无法建立可靠的用户到 IP 绑定,导致无法进行合法拦截溯源,并违反 GDPR 的合规责任要求。这就是合规风险。通过 Purple 的架构,身份绑定在 CGNAT 层上游建立,从而确保分析平台和合规日志链中的准确用户溯源。