远程用户拨号认证系统 RADIUS记帐协议( 三 )


RADIUS记帐编码分配如下:
4 记帐请求
5 记帐相应
标识符
标识符域是一个八位字节,用于请求和应答的匹配 。假如请求包具有相同的源ip地址、源UDP端口号,并且在很短的一段时间内出现了相同的标识符,RADIUS就可以检测到重复的请求 。
长度
长度域占有两个八位的字节 。它表明了该包所包含的编码、标识符、长度、鉴别码以及属性域的总长度 。在长度域限定的范围之外的八位字节必须作为填充字节,在接收时不予处理 。假如包的实际长度小于长度域中给出的值,该包必须被直接丢弃 。包的最小长度是20,最大长度是4095 。
鉴别码
鉴别码域占有16个八位的字节 。最重要的字节先传输 。该域的值用来鉴别客户端和RADIUS记帐服务器之间的信息 。
请求鉴别码
在记帐请求包中,鉴别码的值是一个占有16个八位字节的MD5【5】校验和,称作请求鉴别码 。
网络接入服务器(NAS)和RADIUS记帐服务器共享一个密钥 。记帐请求包中的鉴别码中包含对一个由编码+标识符+长度+16个为0的八位字节+请求属性+共享密钥(在这里,+表示将各个字符连接起来)所构成的八位字节流进行某种方式的MD5哈希计算得到的代码 。这个占有16个8位字节的MD5哈希值被存储到记帐请求包的鉴别码域中 。
注重记帐请求中的请求鉴别码不得与RADIUS接入请求的请求鉴别码的生成方式相同,因为在记帐请求中没有用户口令这一属性 。
响应鉴别码
在记帐响应包中的鉴别码域称作响应鉴别码 。它包含对一个由记帐响应编码、标识符、长度、来自于将要被应答的记帐请求包的请求鉴别码以及响应属性(假如有的话)、共享密钥构成的八位字节流进行某种方式的MD5哈希计算得到的代码 。这个占有16个8位字节的MD5哈希值被存储到记帐响应包的鉴别码域中 。
属性
属性可能会包含多个实例,在这种情况下同种类型的各个属性的排列应当保持一定的顺序 。但是,不同类型的各个属性的排列顺序是任意的 。
4.包的类型
RADIUS包的类型是由位于包的第一个八位字节的编码域的值决定的 。
4.1 记帐请求
描述
记帐请求包是由客户端(典型的情况是网络接入服务器或者它的代理)送到RADIUS记帐服务器,并将用于为某个用户提供的某种服务提供记帐的信息通知RADIUS记帐服务器 。客户端发送一个将编码域置为4(记帐请求)的RADIUS数据包 。
一收到记帐请求,假如服务器能够成功的记录下记帐包的话,必须马上发送一个记帐响应应答;假如记录记帐包失败,不得发送任何应答 。在RADIUS接入请求和接入许可包中的任何有效属性出了一下的几种属性:用户密码、CHAP密码、应答信息、状态不能出现在RADIUS记帐请求包中之外,其他的属性在RADIUS记帐请求包中都是有效的 。在RADIUS记帐请求中必须包含NAS-IP-Address(网络接入服务器的IP地址)或者NAS-Identifer(网络接入服务器标识符) 。在请求包中还应当包含NAS-port(网络接入服务器端口号)或者NAS-Port-Type(网络接入服务器端口类型)属性,或者两者都包含;除非该服务不会设计任何端口或者网络接入服务器(NAS)对它的各个端口不作区分 。
假如记帐请求包包含了一个Framed-IP-Address,该属性中必须包含用户的IP地址 。假如接入许可使用了一个专门的值以告诉网络接入服务器(NAS)为用户分配一个IP地址,记帐请求中的Framed-IP-Address(假如有的话)必须包含实际分配给用户的IP地址 。
记帐请求包的格式概况如下所示 。各个域是自左向右传输的 。

推荐阅读