Radius计费.docx
- 文档编号:2375592
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:23
- 大小:23.87KB
Radius计费.docx
《Radius计费.docx》由会员分享,可在线阅读,更多相关《Radius计费.docx(23页珍藏版)》请在冰豆网上搜索。
Radius计费
RFC2866-RADIUS记账
(1)
RFC2866-RADIUSAccounting
摘要
本文描述在网络访问服务器和记账服务器之间传递记账信息协议。
注意
本文描述RADIUS记账协议。
早期的RADIUS记账报文使用UDP1646端口,这和“sa-msg-port”服务冲突。
RADIUS记账协议的正式端口是1813。
1.概述
管理大量用户的分散的串行线路和modem池为管理支持创建了大量需求。
因为modem池定义和外界联系的方式,必须仔细关注安全,授权和记账问题。
通过管理一个用户数据库,允许用户认证(确认用户名和密码),同时配置为用户传递数据的服务类型,是一种最佳的实现方式。
RADIUS协议用来进行认证和授权。
本文扩展了RADIUS协议,将记账报文通过NAS传递到RADIUS记账服务器。
本文废弃了RFC2139。
RADIUS记账的特点如下:
●C/S模式
网络访问服务器(NAS)作为客户端与RADIUS记账服务器进行交互。
客户端需要将记账报文发向指定的记账服务器。
RADIUS记账服务器的职责是接收记账请求,并且向客户端应答报文表示记账成功。
RADIUS记账服务器可以作为代理将请求转发到其他记账服务器。
●网络安全
客户端和RADIUS记账服务器之间的事务使用一个从来不在网络中传递的共享密钥进行认证。
●可扩展协议
所有的事务都由(属性,长度,值)三部分组成。
实现时添加新的属性不会影响已有属性。
1.1.需求描述
以下关键字在RFC2119中描述。
"MUST","MUSTNOT","REQUIRED","SHALL","SHALLNOT","SHOULD","SHOULDNOT","RECOMMENDED","MAY",and"OPTIONAL"。
这些关键字不区分大小写。
1.2.术语
文档中有以下术语:
●服务
NAS为拨号用户提供服务,比如PPP或Telnet。
●事务
NAS为拨号用户提供的服务构成一个事务,事务的开始是第一次提供服务的时候,事务的结束是服务结束的时候。
如果NAS支持同一用户多个事务,那么用户可以串行或并行的持有多个事务,每个事务拥有自己的Acct-Session-Id可以分别进行开始和结束记账记录。
●静默丢弃
具体的实现不继续执行,直接丢弃报文。
实现时应该对这种情况记录日志,日志中包括静默丢弃的报文内容,同时应该统计发生这种时间的次数。
2.操作
如果客户端使用RADIUS记账服务,开始记账时会生成一个记账开始报文,报文中描述了服务的类型以及用户正在享受这种服务,这个报文被发送到RADIUS记账服务器,然后记账服务器返回一个报文通知客户端已经收到记账开始报文。
服务结束时客户端会生成一个记账结束报文,报文中描述了服务类型以及可选的统计信息,例如消耗时间、上行和下行字节数或者上行和下行的报文数,客户端将这个报文发送到记账服务器,记账服务器收到报文后返回应答报文,通知客户端已经收到记账结束报文。
Accounting-Request(记账请求)报文,不论是开始记账还是记账结束,都通过网络发送到记账服务器。
建议当客户端没有收到记账请求报文应答时持续尝试。
如果一段时间内没有应答,重传几次请求。
当主服务器已经关闭或不可到达时,客户端可以将请求转发到其他服务器。
当主服务器几次请求失败或使用轮叫调度的算法将报文发送到另一台服务器。
重传回退算法是一个正在研究的课题,在本文中不进行描述。
RADIUS记账服务器为了满足客户端的请求,可以将请求转发到其他服务器中,这时,它作为客户端出现。
如果记账服务器不能正常记录记账报文,不能向客户端发送记账应答(Accounting-Response)报文。
2.1.代理
请参考RADUISRFC中有关RADIUS代理的描述。
RADIUS记账服务代理的运行方式一样,以下是一些例子:
1.NAS将记账请求(accounting-request)报文发送到代理服务器。
2.代理服务器记录日志(如果需要),将自己的Proxy-State属性放置到其他Proxy-State属性之后,然后更新请求认证码,最后将请求转发到远程服务器。
3.远程服务器收到报文后记录日志(如果需要),从请求报文中将所有Proxy-State属性按照原来的顺序无修改的拷贝到应答报文中,然后将记账应答(accounting-response)报文发送到代理服务器。
4.如果代理服务器在第2步添加了Proxy-State属性,就删除最后一个Proxy-State属性,然后更新应答认证码,再将记账应答(accounting-response)报文转发到NAS。
转发服务器不能修改已有的Proxy-State或Class属性。
转发服务器可以收到客户端的重传报文后再进行报文转发,也可以当转发服务器和远程服务器之间的网络连接比NAS和转发服务器之间的网络状况复杂很多时自己负担起重传的责任。
如果由代理服务器控制重传,那么重传算法需要很健壮以及可升级。
3.报文结构
RADIUS记账报文封装在UDP数据域发送,端口是UDP1813端口。
当回传应答报文时,反转源端口和目的端口。
本文描述RADIUS记账报文。
RADIUS记账服务器早期部署时使用UDP1646端口,这和“sa-msg-port”服务冲突。
RADIUS记账服务的正式端口是1813。
以下是RADIUS报文格式,数据从左向右传送。
0123
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Code|Identifier|Length|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
||
|Authenticator|
||
||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Attributes...
+-+-+-+-+-+-+-+-+-+-+-+-+-
Code
Code字段长度为一个字节,表示RADIUS报文的类型。
当收到Code字段非法的报文时,应该静默丢弃。
RADIUS记账报文的Code字段赋值如下所示:
Code值
报文类型
4
Accounting-Request
5
Accounting-Response
Identifier
Identifier字段长度是一个字节,用来匹配请求和应答报文。
RADIUS服务器将短时间内收到的相同客户端源IP、源UDP端口和标识符的报文当作重复请求进行处理。
Length
Length字段长度是两个字节。
表示整个报文的长度,包括Code,Identifier,Length,Authenticator以及Attribute字段的总长度。
超过Length长度的所有字节被当作补充,不进行解析和应答。
如果报文的实际长度比Length字段中的长度小,必须被静默丢弃。
报文的最小长度是20,最大长度是4095。
Authenticator
Authenticator字段的长度是16字节。
最高有效位先传送。
这个字段用来校验客户端和RADIUS服务器之间的RADIUS记账报文。
ReqeustAuthenticator
在记账请求报文(Accounting-Request)中,Authenticator是一个16字节的MD5校验值,叫做请求认证码(RequestAuthenticator)。
NAS和RADIUS记账服务器共享一个密钥。
记账请求报文(Accounting-Request)中的请求认证码包含根据Code,Identifier,Length,16字节的0,请求属性,共享密钥共同进行单向MD5算法计算得到。
注意,记账请求报文(Accounting-Request)不能可RADIUS接入请求(Access-Request)报文使用同样的请求认证码算法,因为报文中没有User-Password属性。
ResponseAuthenticator
记账应答报文(Accounting-Response)中的Authenticator字段叫做应答认证码(ResponseAuthenticator),根据记账应答报文(Accounting-Response)中的Code,Identirier,Length,需要应答的记账请求报文(Accounting-Request)中的请求认证码字段,应答报文中的所有属性以及共享密钥进行单向MD5哈希值计算。
这个16字节的MD5哈希值保存在记账应答报文(Accounting-Response)的Authenticator字段。
Attributes
属性字段可以有多个实例,相同类型属性实例的相对顺序应该保持,不同类型属性之间的顺序不要求保持。
4.报文类型
RADIUS报文类型由报文第一个字节的Code字段决定。
4.1.Accounting-Request
描述
记账请求报文(Accounting-Request)从客户端(通常是NAS或代理)发送到RADIUS记账服务器,报文中包含用户使用服务的记账信息。
报文的Code字段值为4。
服务器收到记账请求报文(Accounting-Request)后,如果报文记录正确,服务器必须返回记账应答报文(Accounting-Response);如果报文记录不正确,不返回任何报文。
任何RADIUS接入请求(Access-Request)或接入接受(Access-Accept)报文中的属性都可以在RADIUS记账请求(Accounting-Request)报文中出现,除了以下属性:
User-Password,CHAP-Password,Reply-Message,State。
NAS-IP-Address或NAS-Identifier必须有一个出现在记账请求报文(Accounting-Request)中。
报文中应该包含NAS-Port或NAS-Port-Type中的一个或全部,除非服务不涉及端口或NAS之间的端口没有区别。
如果记账请求报文(Accounting-Request)问中包含Framed-IP-Address属性,这个属性的值必须为用户的IP地址。
如果接入接受(Access-Accept)报文中Framed-IP-Address属性使用特殊值让NAS决定或用户自己决定IP地址,记账请求报文(Accounting-Request)中的这个属性必须是NAS决定的或用户自己决定的实际的IP地址。
记账请求报文(Accounting-Request)格式如下,在网络中从左向右传送。
0123
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Code|Identifier|Length|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
||
|RequestAuthenticator|
||
||
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Radius 计费