CGN技术白皮书
Copyright © 2021 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
2011年2月3日,ICANN发布公告称最后五组IP地址已分配完毕,已无IPv4地址可分配。
引入IPv6是解决IPv4地址耗尽的根本和直接的解决方案,但短期内难以完成将IPv4应用和服务全部迁移到IPv6。在IPv6过渡期间,为了不影响运营商原有用户以及不断增长的新用户使用互联网,CGN(Carrier Grade NAT,运营商级网络地址转换)应运而生。
CGN也称为LSN(Large-scale NAT,大规模网络地址转换),其本质是NAT,是一种能够对目前有限的公网IPv4地址进行复用的技术,可以有效提高IPv4地址利用率,在相当长的时间内解决IPv4地址耗尽的问题。CGN有多种应用场景,如NAT444、DS-Lite等。
传统NAT多部署在CPE(Customer Premises Equipment,用户侧设备)上,实现少量用户地址的转换。而CGN部署在运营商网络中,实现大量用户的地址转换,在支持并发用户数、性能、溯源等方面有很大提升。
与传统NAT相比,CGN具备如下优点:
· 大容量:部署在运营商网络中,为大量用户提供地址转换服务。
· 高可靠性:使用多块CGN单板,进行单机板间备份、双机框间备份或集中式备份分布式,避免单一CGN单板故障导致的网络服务不可用。
· 可溯源:CGN提供用户日志和流日志,管理员可以根据业务报文的公网地址和端口号在日志中查询到私网用户的IP地址,进而锁定具体用户。
· CGN资源管理:CGN资源包括公网地址和端口块。支持通过限制端口数、限制共享单个公网IP的私网用户数等方式,达到防止个别用户占用过多CGN资源的目的。
CGN基本概念如下:
· CGN单板:承载CGN业务的板卡称为CGN单板,其产品形态分为CR(Core Router,核心路由器)插卡式和BRAS(Broadband Remote Access Server,远程宽带接入服务器)插卡式。
· 单机板间备份:安装在同一台设备上的两块CGN单板之间进行NAT业务备份。
· 双机框间备份:分别处于两台设备上的CGN单板之间进行NAT业务备份。
静态方式的地址转指外部网络和内部网络之间的地址映射关系由配置确定,即一个公网IP地址唯一对应一个内部主机。该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外网,外网用户也可以主动访问内网。
NO-PAT方式属于一对一的地址转换,在这种方式下只转换IP地址,而对TCP/UDP协议的端口号不处理,一个公网IP地址不能同时被多个用户使用。
如图1所示,NO-PAT方式的处理过程如下:
· NAT设备收到私网侧主机发送的访问公网侧服务器的报文。
· NAT设备从地址池中选取一个空闲的公网IP地址,建立与私网侧报文源IP地址间的NAT转换表项,并依据查找NAT表项的结果将报文转换后向公网侧发送。
· NAT设备收到公网侧的回应报文后,根据其目的IP地址反向查找NAT表项,并依据查表结果将报文转换后向私网侧发送。
图1 NO-PAT方式原理图
由于NO-PAT方式并未实现地址复用,因此并不能解决公网地址短缺的问题,而PAT(Port Address Translation)方式则可以解决这个问题。
PAT方式属于多对一的地址转换,它通过使用“IP地址+端口号”的形式进行转换,使多个私网用户共用一个公网IP地址访问外网,实现了地址的复用,因此是地址转换实现的主要形式。
目前PAT仅支持对传输层协议为TCP、UDP或ICMP的报文进行“IP地址+端口号”转换。
如图2所示,PAT方式的处理过程如下:
· NAT设备收到私网侧主机发送的访问公网侧服务器的报文。
· NAT设备从地址池中选取一对空闲的“公网IP地址+端口号”,建立与私网侧报文“源IP地址+源端口号”间的PAT转换表项,并依据查找PAT表项的结果将报文转换后向公网侧发送。
· NAT设备收到公网侧的回应报文后,根据其“目的IP地址+目的端口号”反向查找PAT表项,并依据查表结果将报文转换后向私网侧发送。
图2 PAT方式原理图
端口块方式是一种基于端口范围的PAT动态地址转换,即一个私网IP地址在一个时间段内独占一个公网IP地址的某个端口块。例如:假设私网IP地址10.1.1.1独占公网IP地址202.1.1.1的一个端口块10001~10256,则该私网IP向公网发起的所有连接,源IP地址都将被转换为同一个公网IP地址202.1.1.1,而源端口将被转换为端口块10001~10256之内的一个端口。
端口块方式包括静态映射和动态映射两种,主要应用在NAT444或DS-Lite网络中。
端口块静态映射是指,NAT网关设备根据配置自动计算私网IP地址到公网IP地址、端口块的静态映射关系,并创建静态端口块表项。当私网IP地址成员中的某个私网IP地址向公网发起新建连接时,根据私网IP地址匹配静态端口块表项,获取对应的公网IP地址和端口块,并从端口块中动态为其分配一个公网端口,对报文进行地址转换。
配置端口块静态映射时,需要创建一个端口块组,并在端口块组中配置私网IP地址成员、公网IP地址成员、端口范围和端口块大小。假设端口块组中每个公网IP地址的可用端口块数为m(即端口范围除以端口块大小),则端口块静态映射的算法如下:按照从小到大的顺序对私网IP地址成员中的所有IP地址进行排列,最小的m个私网IP地址对应最小的公网IP地址及其端口块,端口块按照起始端口号从小到大的顺序分配;次小的m个私网IP地址对应次小的公网IP地址及其端口块,端口块的分配顺序相同;依次类推。
在NAT与BRAS联动的场景中,用户上线成功后,设备将遍历所有接口上的地址转换配置,当用户流量与某接口的地址转换配置中的ACL规则相匹配时,为该用户分配公网地址以及端口块,并创建动态端口块表项。用户下线后,回收为其分配的端口块资源,删除相应的动态端口块表项。
非联动场景中,当内网用户向公网发起连接时,首先根据动态地址转换中的ACL规则进行过滤,决定是否需要进行源地址转换。对于需要进行源地址转换的连接,当该连接为该用户的首次连接时,从所匹配的动态地址转换配置引用的NAT地址组中获取一个公网IP地址,从该公网IP地址中动态分配一个端口块,创建动态端口块表项,然后从端口块表项中动态分配一个公网端口,进行地址转换。对该用户后续连接的转换,均从生成的动态端口块表项中分配公网端口。当该用户的所有连接都断开时,回收为其分配的端口块资源,删除相应的动态端口块表项。
端口块动态映射支持增量端口块分配。当为某私网IP地址分配的端口块资源耗尽(端口块中的所有端口都被使用)时,如果该私网IP地址向公网发起新的连接,则无法再从端口块中获取端口,无法进行地址转换。此时,如果预先在相应的NAT地址组中配置了增量端口块数,则可以为该私网IP地址分配额外的端口块,进行地址转换。
出于安全考虑,大部分私网主机通常并不希望被公网用户访问。但在某些实际应用中,需要给公网用户提供一个访问私网服务器的机会。而在NO-PAT或PAT方式下,由于由公网用户发起的访问无法动态建立NAT表项,因此公网用户无法访问私网主机。NAT Server(NAT内部服务器)方式就可以解决这个问题——通过静态配置“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,NAT设备可以将公网地址“反向”转换成私网地址。
如图3所示,NAT Server方式的处理过程如下:
· NAT设备收到公网侧主机发送的访问私网侧服务器的报文。
· NAT设备根据公网侧报文的“目的IP地址+目的端口号”反向查找静态NAT表项,并依据查表结果将报文转换后向私网侧发送。
· NAT设备收到私网侧的回应报文后,根据其“源IP地址+源端口号”查找静态NAT表项,并依据查表结果将报文转换后向公网侧发送。
图3 NAT Server方式原理图
按照CGN单板的部署位置,可以分为集中式部署CGN和分布式部署CGN两种方式。
集中式部署指的是将提供CGN功能的设备部署在接近或位于城域网核心的位置,通常部署在CR(Core Router,核心路由器)上,如图4和图5所示,可以在CR上旁挂插有CGN单板的设备,也可以将CGN单板插在CR上。
集中式部署CGN方式的特点如下:
· 适用于用户/流量都比较少的场景。
· 设备故障影响范围大。
· 需要部署的CGN单板数量少。
图4 集中式部署CGN(CR旁挂插有CGN单板的设备)
图5 集中式部署CGN(CR上插入CGN单板)
分布式部署相对于集中式部署的网络位置而言,是将提供CGN功能的设备部署在接近或位于城域网边缘的位置,通常部署在BRAS设备上,如图6所示。
分布式部署CGN方式的特点如下:
· 适用于用户/流量都比较多的场景。
· 设备故障影响范围小。
· 需要部署的CGN单板数量多。
CGN单板是运营商网络的核心部件,承担着大量用户的地址转换工作。如果CGN单板故障,将导致大量用户的网络服务不可用。为了提高CGN的可靠性,需要使用多块CGN单板,并形成备份关系,避免单一CGN单板故障导致的网络服务不可用。有如下三种CGN备份方式可供选择:
· 集中式备份分布式CGN
· 单机CGN板间备份
· 双机CGN框间备份
集中式备份分布式CGN是指,网络中同时存在分布式部署CGN和集中式部署CGN的设备,并使用集中式部署的CGN对分布式部署的CGN进行NAT业务能力的备份。
正常情况下,由分布式部署CGN的设备处理NAT业务。当分布式部署的CGN单板发生故障时,流量切换到集中式部署CGN的设备上,由集中式部署的CGN进行地址转换。当分布式部署的CGN单板故障恢复时,流量回切到分布式部署CGN的设备上进行地址转换。
如图7所示,BRAS设备上的CGN单板正常工作时,流量在BRAS设备上的CGN单板进行地址转换;如图8所示,当BRAS上的CGN单板故障时,流量切换到CR设备上的CGN单板进行地址转换。
图7 集中式备份分布式CGN组网图(BRAS上的CGN单板正常)
图8 集中式备份分布式CGN组网图(BRAS上的CGN单板故障)
单机CGN板间备份是指,安装在同一台设备上的两块CGN单板之间进行NAT业务备份。
互为备份的CGN单板作为主、备节点加入同一个备份组,由备份组来决定主备节点(CGN单板)的激活状态,只有处于激活状态的节点才能处理NAT业务。如图9所示,单机CGN板间备份的机制如下:
· 主节点正常时,主节点为激活状态,处理NAT业务。同时,主节点将NAT表项同步给备节点。
· 主节点故障时,备节点会变成激活状态,接替主节点处理NAT业务。
图9 单机CGN板间备份原理图
双机CGN框间备份是指,分别处于两台设备上的CGN单板之间进行NAT业务同步。在该备份方式下:
· 两台设备上的CGN单板在逻辑上组成同一个备份组的主备节点。
· 在两台设备间的三层直连链路上建立备份通道,通过该备份通道同步NAT会话表项和端口块表项。
· 在备份通道所在接口上需要创建一个VRRP备份组,并将两台设备上的备份组与该VRRP备份组进行绑定。备份组主备节点的激活状态由VRRP决定。VRRP中Master设备上的备份组节点处于激活状态,Backup设备上的备份组节点处于非激活状态。只有处于激活状态的节点才能处理NAT业务。
如图10所示,双机CGN框间备份的机制如下:
· VRRP中Master设备上的备份组节点处理NAT业务,并通过备份通道将NAT会话表项和端口块表项同步给Backup设备上的备份组节点。
· 当VRRP中Master设备故障时,VRRP选举新的Master设备,由新Master设备上的备份组节点接替处理NAT业务。
图10 双机CGN框间备份原理图
如图11所示,BRAS A、BRAS B、BRAS C和Device属于同一自治系统,要求它们之间通过IS-IS协议达到IP网络互连的目的。BRAS A、BRAS B、BRAS C为主机提供接入服务,同时通过CGN单板提供地址转换功能;使用路由方式实现流量切换,即正常情况下,流量在BRAS A、BRAS B、BRAS C上的CGN单板进行地址转换;当BRAS A、BRAS B或BRAS C上的CGN单板故障时,流量切换到Core Router旁挂的Device上的CGN单板进行地址转换,提高CGN业务的可靠性。
图11 集中式备份分布式CGN典型应用组网图
如图12所示,BRAS为主机提供接入服务,同时通过CGN单板提供地址转换功能,并支持1:1方式的CGN板间热备。CGN单板主备切换期间,用户的业务不会受到影响,从而提高CGN业务的可靠性。
图12 单机CGN板间备份典型应用组网图
如图13所示,BRAS A和BRAS B为用户提供接入服务,同时通过CGN单板提供地址转换功能。正常情况下,BRAS A在VRRP备份组中的状态为Master,BRAS A上的CGN单板是备份组中的主节点,由BRAS A上的CGN单板处理NAT业务,并将业务数据备份到BRAS B设备上的CGN单板。当BRAS A上CGN单板出现故障时,BRAS B成为VRRP备份组中的Master,其上的CGN单板切换为备份组的主节点,这时由BRAS B上的CGN单板处理NAT业务,保证NAT业务不会中断。
图13 双机CGN框间备份典型应用组网图
· RFC 1631:The IP Network Address Translator (NAT)
· RFC 2663:IP Network Address Translator (NAT) Terminology and Considerations
· RFC 2993:Architectural Implications of NAT
· RFC 3022:Traditional IP Network Address Translator (Traditional NAT)
· RFC 3027:Protocol Complications with the IP Network Address Translator