电信级NAT
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/CGN_IPv4.svg/400px-CGN_IPv4.svg.png)
电信级NAT或运营商级NAT(Carrier-grade NAT,缩写为CGNAT或CGN),也称大规模NAT(large-scale NAT,缩写LSN),是运营商为了缓解IPv4地址枯竭问题,向客户分配私网IPv4地址而非公网地址,并通过自身的中间件完成的网络地址转换(NAT)操作。[1]电信级NAT可以让更多的终端设备共享一个公共地址。
电信级NAT的一种常见应用场景为NAT444。该场景中,客户到公网的访问将经历两次NAT:源地址由客户的私有网段先转换至运营商的私有网段,再转换至运营商的公网IPv4地址。[2]
另一种电信级NAT的场景是双栈精简版(Dual-Stack Lite,也称DS-Lite),其中运营商的网络使用IPv6,因此只需要两个IPv4网段。
共享地址空间
如果运营商使用RFC 1918中的地址作为电信级NAT的地址空间,那么已经使用RFC 1918空间的客户设备将存在与之冲突的风险,原因是如果网络接口的内部地址与外部地址相同,路由和NAT将无法正常工作。
此情况促使一些运营商通过ARIN制定政策,希望为电信级NAT分配新的私有地址空间,但遭到了ARIN的推迟,直到IETF通过了备忘录RFC 2860,明确了分配IP地址的若干细节问题。
IETF之后发布了RFC 6598,详述了为电信级NAT部署使用的共享地址空间。ARIN根据此分配的需求将地址空间返还给了IANA。[3]分配的地址块为100.64.0.0/10,即100.64.0.0到100.127.255.255。[4]
优点
- 最大化利用本已有限的IPv4地址空间。
- 由于客户的设备不直接存在于公网上,可能在一定程度上有助于保护其免受攻击。
缺点
电信级NAT遭受到了如下批评:
- 与任何形式的NAT一样,电信级NAT违背了端到端原则(英语:End-to-end principle)。[5]
- 由于其有状态(英语:Stateful)的特性,电信级NAT有显著的安全性、可扩展性和可靠性问题。
- 电信级NAT使执法行动查阅变得更加困难,因为需要保留额外的NAT日志。
- 在电信级NAT下无法运行网络托管服务。
- 无法对需要公网IPv4地址的业务(如网络托管服务)使用电信级NAT,因而其对解决IPv4地址枯竭问题作用有限。
电信级NAT通常会阻止客户使用端口映射,因为网络地址转换(NAT)通常通过将网络中NAT设备的端口映射到外部接口的其他端口来实现,这样路由器才能将请求映射到到正确的设备。在电信级NAT网络中,即使客户端的路由器已配置端口转发,运营商处运行电信级NAT的主路由器仍将阻止端口转发,因此实际的端口将不是客户配置的端口。[6]为了克服前者的缺点,端口控制协议(英语:Port Control Protocol)(PCP)已在RFC 6887中标准化。
此外,在极少数情况下,可能会遇到IP地址封禁问题。以维基百科为例,系统会封禁破坏者的IP地址。如果该IP地址恰巧为某电信级NAT的出口地址,那么该NAT下的正常用户将同时被封锁。[6]
参见
参考资料
- ^ RFC 6264 - An Incremental Carrier-Grade NAT (CGN) for IPv6 Transition. [2016-12-31]. (原始内容存档于2017-01-28).
- ^ NAT444 (CGN/LSN) and What it Breaks. [2016-12-31]. (原始内容存档于2012-05-18).
- ^ Re: shared address space... a reality!. [13 September 2012]. (原始内容存档于2017-02-03).
- ^ 100.64.0.0/10 – Shared Transition Space. [2016-12-31]. (原始内容存档于2012-05-03).
- ^ Assessing the Impact of NAT444 on Network Applications. [2016-12-31]. (原始内容存档于2020-06-02).
- ^ 6.0 6.1 存档副本 (PDF). [2016-12-31]. (原始内容存档 (PDF)于2016-03-04).