APP下载

基于RFC 3576协议的BRAS主动控制系统研究

2011-05-24薛晓东赵永军中国铁通河南分公司河南郑州450052

邮电设计技术 2011年3期
关键词:用户名会话断线

薛晓东,赵永军(中国铁通河南分公司,河南郑州450052)

0 前言

高速宽带化是当前网络发展的主要方向。经连年的持续发展,我国宽带网络己初具规模。目前各大运营商都在积极开展新业务以吸引更多的用户,而其中的宽带认证鉴权与计费系统将扮演举足轻重的角色。如何在基础网络接入业务的基础上进一步提供更多的服务选择,是各大运营商目前面临的共同问题。无疑,通过个性化服务,创造更高的ARUP值,将是宽带网络发展的主要方向。

针对上述需求,本文首先对目前各大运营商普遍使用的远程身份验证拨入用户服务(RADIUS)协议组的认证部分作一简单介绍。介绍如何应用RADIUS协议来实现宽带网络接入服务器(BRAS)与RADIUS服务器之间的通信,完成对个人用户上网认证、授权和计费控制的;然后提出了一些现实问题,并引入RFC3576和一些辅助技术,讨论如何设计和实现一套接入设备的主动管理系统。

1 RADIUS协议简介

RADIUS是一种C/S结构协议,其客户端最初就是网络接入服务器(NAS-Net Access Server),现在任何RADIUS客户端软件的计算机都可成为RADIUS的客户端。RADIUS协议认证机制灵活,可采用密码认证协议(PAP)、挑战握手认证协议(CHAP)或 Unix 登录认证等多种方式。

RADIUS协议的基本工作原理是:用户接入NAS,NAS使用Access-Require数据包向RADIUS服务器提交用户信息(如用户名、密码等,用户密码是经MD5加密的),双方使用共享密钥,这个密钥不经网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可提出一个Challenge,要求进一步对用户认证,也可对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求(Account-Require),RADIUS 服务器响应 Account-Accept,对用户开始计费,同时用户可进行相关操作。

RADIUS服务器和NAS服务器通过用户数据包协议(UDP)进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费。采用UDP的基本原因是其效率比较高。为弥补UDP协议在可靠性上的不足,RADIUS协议还规定了重传机制。如果NAS向某个RADIUS服务器提交请求没有收到返回信息,则可要求备份RADIUS服务器重传。由于有多个备份RADIUS服务器,因此NAS进行重传时可采用轮询或先主后备方式。如果备份RADIUS服务器的密钥和以前RADIUS服务器的密钥有所不同,则需重新进行认证。由于RADIUS协议简单明了并具有可扩充性,因此得到了广泛应用(如普通电话、ADSL、小区宽带上网及IP电话、VPDN、移动电话预付费等)。最近,IEEE提出的802.1x标准是一种基于端口的标准,用于对无线网络的接入认证,在认证时也采用了RADIUS协议。

1.1 远端RADIUS验证-PAP方式

远端PAP方式见图1。用户请求上网时,用户以明文形式将用户名及其密码传递给NAS,NAS把用户名和加密过的密码放到验证请求包的相应属性中传递给RADIUS服务器,根据RADIUS服务器返回结果来决定是否允许该用户上网。

1.2 远端RADIUS验证-CHAP方式

远端CHAP方式见图2。用户请求上网时,NAS产生一个16 byte随机码(还有一个ID号-本地路由器主机名)给用户;用户端得到该包后使用自己独有的设备或软件对传来的各域进行加密,生成一个Response传给NAS,NAS把传回来的CHAP ID和Response分别作为用户名、密码及原来的16 byte随机码传给RADIUS服务器;RADIUS根据用户名在服务器端查找数据库,得到和用户端进行加密所用的一样的密码,然后根据传来的16 byte随机码进行加密,将其结果与传来的Password进行比较,相同时表明验证通过,否则表明验证失败。另外,如果验证成功,RADIUS服务器同样也可生成一个16 byte随机码对用户进行询问。

1.3 RADIUS协议传输模式

采用RADIUSUDP传输模式有以下几个原因。

a)NAS和RADIUS服务器间传递的一般是数十至上百个字节长度的数据,用户可容忍几秒到十几秒的验证等待时间。处理大量用户时服务器端采用多线程,可支持较高的并发。

b)TCP必须是成功建立连接后才进行数据传输的。在大量用户使用的情况下,TCP的实时性不好。

c)由于向主用服务器发送请求失败后还必须向备用服务器发送请求,因此RADIUS要有重传和备用服务器机制,而TCP不能很好地满足这一机制。

2 RFC3576协议

2.1 简介

RFC3576协议于 2003年 7月由 Cisco Systems、Circular Logic和Microsoft等3家公司的3位作者发表,全称为Dynamic Authorization Extensions to RADIUS,可实现对RADIUS的授权动态控制。在被BRAS/NAS实现后,就允许动态地改变一个用户的会话 (包括中断用户会话和修改会话授权2个功能定义)。目前,Juniper、华为、中兴等BRAS厂家均采用不同形式实现了该协议。

由RFC2865定义的RADIUS基本协议不支持由RADIUS服务器主动向NAS发出的消息,即用户一旦拨号上网后,其主动下网前的会话状态是不受RADIUS服务器控制的,然而不少时候确实是需要在用户不重新发起一个会话情况下修改用户会话状态的。为克服这一限制,多个厂家实现了RADIUS协议的扩展命令,以支持由RADIUS主动发给NAS的命令消息。扩展命令支持停止会话(DM)和授权变更(CoA)2种消息,其中:DM消息实现强制将用户会话立刻停止,CoA消息实现修改用户授权 (如数据过滤器、带宽、ACL、QoS或其他一些厂家支持的属性)。

2.2 DM

一个断线请求 (Disconnect-Quest)包由RADIUS服务器发出,在NAS收到此包后结束一个用户的会话,并丢弃掉相关的上下文信息。断线请求包将发送到NAS的3799号端口,并在包中通过标识属性(如ACCT-SESSION-ID)告知NAS需结束的会话。DM消息的原理见图3。

如果会话上下文被丢弃且用户会话终止,则NAS需给断线请求包一个ACK的回应;如果NAS不能中断会话并丢弃其相关上下文,就需回复一个NAK的包给RADIUS服务器。NAS必须回应断线请求包。如果NAS不支持这种断线请求,则需回复一个带有“Unsupported Service”值的Error-Cause属性包给RADIUS服务器。在成功终止会话后,在NAS返回给RADIUS的ACK包中需包括值为Admin-Reset的Acct-Terminate属性(见RFC2866),用以标识会话终止的原因。

2.3 CoA

CoA请求包里包含了要求NAS修改的会话动态授权消息,典型的如修改用户的过滤器和带宽。更细颗粒度的带宽控制可实现上行和下行的区别修改。CoA消息使用的端口和报文格式与DM消息相同。CoA消息的原理见图4。

同样,如果NAS成功地修改了用户的会话授权,则需回复一个ACK消息给RADIUS服务器,否则给RADIUS服务器回应一个NAK报文,在NAK报文中需列出不支持的属性和值。

3 实现接入设备主动控制系统需解决的问题

RFC3576是个协议建议,并非厂家必须实现的强制性规则。因此,要真正实现一个达到电信级应用要求的接入设备主动控制系统,还需解决大量的实际问题。下面仅就其中的几个问题进行阐述,并提出解决建议。需要说明的是,这些建议仅为理论研究,而不代表实际测试结果。

3.1 获得会话的详细参数简介

在RFC中,并未描述在不知道当前会话参数的情况下,如何从NAS上获取参数的办法。但在实际工程中,如果要实现控制就必须提前了解会话的具体参数,并根据参数内容作出控制的判断和需控制的参数定制。可通过以下2个方式来获取一个具体会话的参数。

a)通过Telnet命令仿真获得。Telnet命令仿真方式是利用软件来模拟Telnet的命令操作,将需问询的参数加入到操作命令中,再采用统一的字符代码表达式对其返回的结果进行格式化,生成属性对。对于此方式,笔者曾用Python的内置模块telnetlib测试成功。

b)通过SNMP网管命令获得。通常的BRAS均支持SNMP网管命令,可通过此命令查询系统状态。而对于服务器上的会话状态,通常需通过厂家提供的MIB库对其返回的信息进行分析。

3.2 RFC中CoA的语义问题

CoA在RFC3576中有个潜在的模糊问题,即:由于只有一次交互过程,所以在RADIUS发给NAS的CoA报文属性对中,对未发送的属性是去掉或保持在语义上是模糊的。例如:RADIUS给BAS发送了带宽=1 024 bit/s、ACL=XTemplage属性,而会话本身具有带宽=512 bit/s、ACL=YTemplage、IsFilter=Yes属性。 对于“带宽”和“ACL”属性没有2义性来说,很明确是要进行修改操作的,但对于“IsFilter”属性,是要从会话中删除此或不作任何个性,协议本身并未明确规定。因此,需准确了解不同厂家的BRAS实现方式,并据其定义相应的规则库。

3.3 厂家自定义属性的支持

由于CoA可能实现的功能非常多,具体的功能均通过厂家的扩展属性来实现。因此在实际工程中,需建立一套对厂家扩展属性和实现功能的一个规则数据库。通过此库来保存不同厂家设备甚至同一型号设备的不同配置方式所带来的差异性,并提供友好管理界面实现随时修改和测试功能。

3.4 实现方式

对于接入设备的主动控制系统来说,其功能模块可按图5的方式来实现。

由图5可知,通过一个数据库来管理BRAS的厂家私有属性及对协议的支持细节,通过中间的服务提供者完成对不同底层技术的真实实现,并由各服务提供者完成与设备的真正通信。中间由一个统一的服务接口来完成对下层实现细节的屏蔽。上层则提供几个标准系统,如:通过“基于Web的管理系统”来实现对规则库的管理及对服务的真实调用;通过“外部接口系统”完成需对系统进行的自动调用或业务系统需实现的带宽调整等;“服务测试系统”则是提供检查服务提供者的有效性手段,以方便及时地将各服务提供者及BAS的状态反馈给各上层系统。

4 结束语

本文简单介绍了RADIUS协议的基本概念,深入阐述了RFC3576协议的基本原理,简要论述了如何实现一套基于web的BRAS上网会话的主动控制系统。该系统在实现电信业务上有极大的潜在好处。它打破了以往用户一旦通过认证并上网后,便不可对其上网会话属性进行修改的成见,并为实现通过一个门户网站动态地选择当前要使用的服务、不断线的服务升级、动态ACL、动态带宽、动态QoS控制、方便的服务测试和强制断线等提供了办法,还为未来的业务向更友好、更灵活的方面发展打下了基础。

[1]Rigney C.RFC 2866-RADIUS Accounting[EB/OL].[2010-12-09].http://www.cnpaf.net/Class/Rfcen/200502/3931.htm.

[2]Aboba B.,J.Wood.RFC 3539-Authentication,Authorization and Accounting (AAA)Transport Profile [EB/OL]. [2010-12-09].http://www.chinaitpower.com/A200508/2005-08-02/181855.html.

[3]摩根,洛夫林.CCNP ISCW认证考试指南[M].夏俊杰,译.北京:人民邮电出版社,2008.

猜你喜欢

用户名会话断线
《现代临床护理》杂志投稿程序
断线的珍珠
《护士进修杂志》投稿程序
QQ和微信会话话轮及话轮转换特点浅析
风莺图诗
归来吧!精灵(连载八)
机智的快递员
断线的风筝
用绘画导入英语教学
巧用凭据管理 自动登录网络