摘要:随着通信行业的高速发展,互联网的全面普及,用户呈爆炸型增长趋势。因IPv4地址空间限制,当前运营商正面临地址即将枯竭,IPv6短时间内无法普及的困境。如何在有效控制运营成本的前提下,实现地址复用,同时还能满足安全溯源的需求,成为亟待解决的难题。CGN(Carrier-Grade NAT)作为一种运营商级NAT(Network Address Translation,网络地址转换)技术日趋得到广泛应用。在此背景下我们对CGN技术进行了深入研究,在传统部署策略的基础上,提出一种新的CGN备份系统方案,并对该系统承载现网业务的可行性进行了测试,重点验证了系统对用户感知的影响和溯源的实现。
CGN即运营商级NAT网关,用以实现NAT44、DS-Lite、NAT64等各种以地址转换为基础的技术应用。通常被部署在城域网业务控制层或出口位置、分组域出口以及IDC出口等网络关键位置。相应的,CGN设备采购及相关功能投资在运营商每年网络扩容中的占比也逐年增加。集中式CGN备份系统可以在保障网络可靠性的基础上,尽可能提高CGN设备的利用率,最大限度地保护投资。
本文以分析集中式CGN备份系统为基础,重点阐述该系统与传统CGN的优劣比较,适应场景,并详细描述了搭建集中式CGN备份系统的技术要点。
一、集中式CGN备份系统的研究背景
(一) 两种常见的CGN部署策略
1. 集中式部署
将CGN设备部署在城域网出口位置,通常采用双归属方式旁挂在CR(城域网核心路由器)路由器旁。通过策略路由或MPLS VPN等方式将用户流量引流到CGN网关上。集中式的部署方式能够将CGN网关硬件资源进行统一组织分配,实现资源的高效利用。在建设和维护方面,集中式也具备一定优势。集中式部署的最大问题是流量在城域网内部会叠加翻倍,对CR的端口需求翻倍,当城域网规模较大时,投资将会非常可观。
2. 分布式部署
将CGN设备部署在城域网业务控制层BRAS设备上,使其具备NAT能力,在每台BRAS上配置CGN板卡1:1备份,两块板卡同时工作,互为备份,一块板卡故障,另一块板卡承接业务。分布式部署方式可靠性高,无需改变现有网络结构和配置。缺点是在单CGN板卡能满足NAT流量处理能力的条件下,至少存在50%以上的冗余处理能力,板卡的利用率较低。
(二) 传统CGN部署存在的缺陷
两种传统的CGN部署模式成本较高,集中式部署流量在城域核心层迂回,流量翻倍,导致CR的端口需求成倍增加。此外,集中式部署的业务配置不够灵活,需要以城域网为单位提前进行规划,新增CGN业务需要修改CR策略路由,另外因为BRAS不具备NAT能力,欠缺灵活对接校园,政务等使用私网地址的业务场景。
而分布式部署需在BRAS上配置1:1备份,对CGN板卡的需求也会成倍增加。
(三) 集中式CGN备份系统对传统方案的改良
结合以上两种部署策略的优点,江苏电信提出了集中式CGN备份系统,采取CGN板卡分布式部署和集中式备份的模式,具备分布和集中相结合的特点,在保证可靠性的前提下,不仅保留了分布式部署的灵活性,也有效地控制了成本,可显著提高CGN板卡利用率。
二、集中式CGN备份系统的设计
(一) 集中式CGN备份系统架构简介
系统架构如图1所示,业务控制层每台BRAS配置一块CGN板卡,两台集中式CGN备份设备旁挂CR并处于待命状态,当BRAS上的分布式CGN板卡发生故障时,BRAS把报文转发到集中式CGN备份设备,由集中式CGN完成用户报文的处理。
当BRAS上CGN单板正常时,用户报文由CGN板卡处理,对报文源地址进行转换处理后,经由CR转发至互联网,参考图1中黄色路径。
当CGN单板发生故障时,BRAS不再具备NAT能力,将按照引流方式上送用户报文至集中式CGN备份设备处理,对地址转换后,再经由CR转发至互联网,参考图1中红色路径。
图1 集中式CGN备份系统架构
故障切换及回切过程中用户不断线,无需重新拨号,仅需重新刷新应用,重建TCP/UDP连接即可。
(二) 引流策略
参考图2,BRAS到集中式CGN备份设备主要有两种引流策略:
1.按路由引导流量
在CR上部署策略路由,用户私有路由进入城域网,CR匹配源地址,将流量牵引至集中式CGN备份设备。当BRAS上的CGN单板发生故障时,用户报文源地址无法被正常转换,被转发至CR与BRAS的互联口时,触发策略路由,修改下一跳至集中式CGN备份设备。
通过路由引导流量对业务控制层设备的配置改造量相对较小,但是需要在CR与BRAS的互联口上部署策略路由,相应地会把私有地址路由引入城域网,后期维护的复杂度比较高。
2.按隧道或VPN引导流量
BRAS和集中式CGN备份设备间打通隧道,或配置在同一个VPN中,用户分配VPN私网地址,CR上无配置要求,用户的私有路由不进入城域网。当BRAS上的CGN单板发生故障时,用户报文源地址无法被正常转换为公网地址,此时流量可通过VPN默认路由或其他方式转发至集中式CGN备份设备。
通过隧道或VPN引导的方法需要修改业务控制层设备数据,改造量较大,但不会把私有地址路由引入城域网,便于后期维护。
需要注意的是VPN方式仅适合开启MPLS的城域网。
图2 策略路由的引流策略和按隧道VPN引导流量
(三)负载均衡策略
两台集中式CGN备份设备需要采用负载均衡策略实现流量均衡及温备的要求,当其中一台发生故障时,另一台需承接所有业务请求。我们设计了两种方案以实现上述要求:
1.虚地址
策略路由指向2个下一跳虚地址LP(loopback),对应不同的源地址,将业务流分别牵引至2台集中式CGN备份设备。2个LP地址同时配置在2个CGN备份节点,通过IGP路由传递给CR并设置不同的COST值,以实现集中式CGN节点间的温备。当其中一个节点故障(脱网)情况下可自动切换至备份节点;当链路或板卡故障的情况下也可通过手动修改配置快速切换至另一个节点。
通过手动配置虚地址,增强了系统的灵活性,不仅可实现流量的负载分担,还能满足设备间的温备需求。虚地址方案的缺点是业务配置相对复杂,通过源地址区分流量的方法使两台设备负载仍会有偏差,无法实现绝对的均衡。
图3. 通过虚地址实现温备及负载均衡
2. 虚拟化
对于支持虚拟化的设备(如华三M9000等)可采用NFV技术实现业务的集群处理。将两台CGN备份节点虚拟化为一台集中式设备,实现了管理的统一和对外网络节点的统一。
通过虚拟化技术,流量可以自动负载分担,无需手动干预,会话可自动同步,实现毫秒级故障切换,此外分布式的业务处理,便于后期性能扩展,分散风险点。
虚拟化方案的缺点是过分依赖心跳,一旦心跳报文丢失,虚拟化失效,变成两台独自工作的设备,导致每台设备都无法接收并正常处理一个完整的用户数据流。
两种负载均衡策略各有优缺点,如果对均衡性的要求不苛刻,虚地址的方案更稳定。
(四)溯源问题
为确保分布式CGN节点发生故障后,仍能实现IP溯源,需要BRAS实现“用户虚拟下线”及“用户虚拟上线”功能,流程如图3所示。
用户虚拟下线是指当BRAS的CGN板卡发生故障时,BRAS会向AAA发送一个Accounting Stop报文,通知AAA对该用户停止计费。然后在很短的时间间隔后,发送一个Accounting Start报文,通知AAA对该用户开始计费,两个计费ID是不同的。
用户虚拟上线与虚拟下线过程一致,在BRAS的CGN板卡恢复时触发。
分布式CGN板卡故障期间,AAA只有用户的私网地址记录,用户报文的NAT映射由集中式CGN备份设备完成。为实现故障期间的用户溯源,集中式CGN备份设备需要支持Session级别的用户日志,并发送给log服务器记录。溯源的线索为:用户公网IPà查询log服务器获取用户私网IPà查询AAA服务器获取用户账号à找到目标用户。
图4. 报文交互流程
三、集中式CGN备份现网业务承载
(一)私网地址规划
相比传统的分布式部署模式,集中式备份的网络架构需要统一规划用户私有地址,各BRAS配置不同的用户私有地址池。对于规模较大城域网来说,对私网地址的需求是成倍增加的,在部署前要充分考虑地址空间及后期业务地址扩容的问题。
(二)备份比例估算
假设城域网配置分布式CGN板卡N块,每块板卡发生故障的概率为p,则不超过1块CGN板卡(不发生故障或有1块板卡发生故障)发生故障的事件概率为:
得出可成功备份的概率与分布式板卡块数N及单板故障率p的关系,如表1所示:
N p | 10% | 1% | 0.10% | 0.05% | 0.01% |
1 | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% |
2 | 99.00% | 99.99% | 100.00% | 100.00% | 100.00% |
3 | 97.20% | 99.97% | 100.00% | 100.00% | 100.00% |
4 | 94.77% | 99.94% | 100.00% | 100.00% | 100.00% |
5 | 91.85% | 99.90% | 100.00% | 100.00% | 100.00% |
6 | 88.57% | 99.85% | 100.00% | 100.00% | 100.00% |
7 | 85.03% | 99.80% | 100.00% | 100.00% | 100.00% |
8 | 81.31% | 99.73% | 100.00% | 100.00% | 100.00% |
9 | 77.48% | 99.66% | 100.00% | 100.00% | 100.00% |
10 | 73.61% | 99.57% | 100.00% | 100.00% | 100.00% |
11 | 69.74% | 99.48% | 99.99% | 100.00% | 100.00% |
12 | 65.90% | 99.38% | 99.99% | 100.00% | 100.00% |
13 | 62.13% | 99.28% | 99.99% | 100.00% | 100.00% |
14 | 58.46% | 99.16% | 99.99% | 100.00% | 100.00% |
15 | 54.90% | 99.04% | 99.99% | 100.00% | 100.00% |
16 | 51.47% | 98.91% | 99.99% | 100.00% | 100.00% |
17 | 48.18% | 98.77% | 99.99% | 100.00% | 100.00% |
18 | 45.03% | 98.62% | 99.98% | 100.00% | 100.00% |
19 | 42.03% | 98.47% | 99.98% | 100.00% | 100.00% |
20 | 39.17% | 98.31% | 99.98% | 100.00% | 100.00% |
表1. 板卡数与故障率关系表
当单板的故障率为1%时,用1块CGN板卡备份20块分布式CGN板卡的成功率为98.31%,单板的故障率越低,备份的成功率也越高。
现网估算出的各厂家设备CGN单板平均故障发生率小于0.001%,建议部署时的配比不低于1:20,可实现100%的备份成功率。
(二)TCP/UDP老化时间配置
CGN板卡对业务的响应是以会话(Session)为单位进行的,当前各厂家设备的端口生成速率已经达到每秒十万数量级,相比现网BRAS承载的业务量已非性能瓶颈。因此当分布式CGN节点发生故障时,在不考虑硬件差异的条件下,TCP和UDP老化时间参数会对备份的效果产生显著影响。
老化时间如果太小,设备需频繁响应用户新建连接请求,会增加CPU的负担;老化时间太大,又会产生很多垃圾会话,浪费CGN设备的内存资源。另外考虑到建立TCP连接需要较多开销,在多次测试的基础上,我们建议TCP和UDP老化时间分别设置为10秒和240秒。
四、集中式CGN备份现网部署及测试
根据集中式CGN备份的部署方案,我们采用现网主流BRAS设备在某城域网对CGN备份的功能及性能开展了测试工作:包括CGN备份的稳定性、时效性,以及TCP/UDP重建时间,对业务的实际影响等。测试分为两个阶段,第一个阶段是对方案的功能性进行验证,验证当分布式CGN节点发生故障时,BRAS及CR能否将用户流量引导至集中式CGN备份设备,以及集中式CGN备份设备能否正常做地址转换并转发业务流量。第二阶段是对方案的各方面性能进行验证,包括TCP/UDP重建时间、各单板最大承载用户数、业务感知等。
TCP/UDP老化时间配置为10s/240s,分布式BRAS一万并发用户,28万session的条件下,关闭BRAS上的CGN单板,集中式CGN备份设备完成切换的时间(进入稳态)在240--270秒之间(不同厂家设备性能略有差异)。触发切换时,虽然不是瞬时进入稳态,但这段时间设备以session为单位响应用户请求,过程中模拟用户进行了Web、网络游戏、直播、P2P、VPN、VOIP等应用测试,均无感知。
截至目前,根据测试结果反馈,各项指标可以满足现网业务需求,具备承担现网业务的能力,方案已具备商用条件。