Radius协议相关知识专题.docx
《Radius协议相关知识专题.docx》由会员分享,可在线阅读,更多相关《Radius协议相关知识专题.docx(10页珍藏版)》请在冰豆网上搜索。
![Radius协议相关知识专题.docx](https://file1.bdocx.com/fileroot1/2023-2/26/f1dc9b11-fcf6-4d3d-ad35-96ed37b4d910/f1dc9b11-fcf6-4d3d-ad35-96ed37b4d9101.gif)
Radius协议相关知识专题
资料编码
产品名称
使用对象
产品版本
编写部门
资料版本
Radius协议相关知识专题
拟制:
于博
日期:
2010-06-20
审核:
日期:
审核:
日期:
批准:
日期:
华为技术有限公司
版权所有XX
修订记录
日期
修订版本
描述
作者
2010-06-20
于博
1.1RADIUS概述
RADIUS是ME60和RADIUS服务器之间的应用层通信协议,规定了ME60与RADIUS服务器之间传递用户信息和计费信息的过程和报文格式。
通过RADIUS协议与RADIUS服务器进行交互,完成用户的RADIUS认证、授权和计费过程。
RADIUS协议基于C/S架构,其中ME60属于客户端,而RADIUS服务器则属于服务器端。
RADIUS协议使用UDP报文承载,并通过报文重传机制和备用服务器机制保证可靠性。
RADIUS协议使用的认证和计费端口一般为1645/1646或1812/1813。
支持以下三种RADIUS协议类型:
∙标准RADIUS:
通用RADIUS协议。
∙RADIUS+1.0:
IPHotel型服务器支持RADIUS+1.0协议。
∙RADIUS+1.1:
Portal型服务器支持RADIUS+1.1协议。
具体配置必须和RADIUS服务器保持一致。
1.2RADIUS报文格式
RADIUS报文格式如下所示。
图1RADIUS报文格式
各字段含义:
Code字段:
Code字段长度为1个字节,用于表示RADIUS报文类型,常见的Code值和含义如下所示。
表1常用Code值和含义
值
报文类型
含义
用处
1
Access-request
认证请求
向RADIUS发起认证请求。
2
Access-accept
认证接受
RADIUS响应该报文,表示认证通过。
3
Access-reject
认证拒绝
RADIUS响应该报文,表示认证失败。
4
Accounting-request
计费请求
向RADIUS发起计费请求。
5
Accounting-response
计费响应
RADIUS对某个计费报文的响应。
说明:
计费请求报文包括以下三种报文,由报文中携带的40号属性区分。
∙开始计费报文(40号属性的值为1)。
∙实时计费报文(40号属性的值为2)。
∙停止计费报文(40号属性的值为3)。
Identifier字段:
Identifier字段长度为1字节,其内容用于匹配请求报文和响应报文。
Length字段:
Length字段长度为2字节,表示报文中所有域的长度。
Authenticator字段:
Authenticator字段长度为16字节,用于验证RADIUS服务器响应的请求以及密码隐藏算法。
分RequestAuthenticator和ResponseAuthenticator两种。
Attribute字段:
Attribute字段长度不定,可包含多个属性,每个属性的格式如下所示。
图2RADIUS属性格式
Type字段:
Type字段表示属性类型,常见的属性所对应的类型如下所示。
表2常见RADIUS属性表
值
属性名
字段类型
用处
1
User-name
String(1~32)
根据命令行的配置,可以带域名(如user0001@isp),也可以不带域名。
2
Password
String(16~128)
加密后的密码,仅对PAP认证有效。
3
Challenge-Password
String(17)
MD5加密后的验证字,仅对CHAP认证有效。
4
NAS-IP-Address
IPAddress
连接RADIUS服务器的接口地址。
5
NAS-Port
Integer
用户接入的物理端口。
6
Service-Type
Integer
固定为2,表示Framed类型。
7
Framed-Protocol
Integer
固定为1,表示PPP类型。
8
Framed-IP-Address
Address
用户的IP地址。
9
Framed-Netmask
Address
服务器为用户指定的子网掩码。
11
Filter-ID
String
(1)
用户所属的UCL组和互访组,格式为UCL-Group@Inter-Group。
18
Reply-Message
String(1~128)
在认证接受报文中表示成功消息,在认证拒绝报文中表示拒绝消息。
25
Class
String
RADIUS服务器可在发给ME60的认证接受报文中携带Class属性,ME60会在后续的所有计费请求报文中将此Class属性原样返回给RADIUS服务器。
在标准RADIUS中Class属性还可以用来传送CAR。
27
Session-TimeOut
Integer
用户剩余的时间,以秒为单位。
28
Idle-TimeOut
Integer
用户的闲置切断时间。
31
Calling-Station-Id
String
用户的MAC地址。
32
NAS-Identifier
String
如果已配置NAS-ID,则填写已配置的NAS-ID。
否则填主机名。
40
Acct-Status-Type
Integer
表示计费请求报文的类型。
1表示开始计费报文。
2表示停止计费报文。
3表示实时计费报文。
4表示重置计费报文。
41
Acct-Delay-Time
Integer
发送该计费报文花费的时间,以秒为单位(不包括网络传输时间)。
42
Acct-Input-Octets
Integer
用户接收的字节数,单位可以是Byte、Kbyte、Mbyte或Gbyte。
43
Acct-Output-Octets
Integer
用户发送的字节数,单位可以是Byte、Kbyte、Mbyte或Gbyte。
44
Acct-Session-Id
String
计费连接号。
45
Acct-Authentic
Integer
用户认证方式。
1表示RADIUS认证。
2表示本地认证。
46
Acct-Session-Time
Integer
用户的上线时间,以秒为单位。
47
Acct-Input-Packets
Integer
用户接收的报文数。
48
Acct-Output-Packets
Integer
用户发送的报文数。
49
Terminate-Cause
Integer
会话中断的原因。
52
Acct-Input-Gigawords
Integer
表示用户接收字节数相对4G(232)字节的倍数。
53
Acct-Output-Gigawords
Integer
表示用户发送字节数相对4G(232)字节的倍数。
55
Event-Timestamp
Integer
生成计费请求报文的时间(以秒为单位,表示从1970年1月1日零点零分零秒以来的绝对秒数)。
60
CHAP-Challenge
String(16)
质询字,只对CHAP认证时才有效。
61
NAS-Port-Type
Integer
NAS(NetworkAccessServer)的端口类型,常用值为15(Ethernet类型)。
87
NAS-Port-Id
String
用户接入的逻辑端口号(槽位号+端口号+VLAN号)。
Length字段:
Length字段长度为1字节,表示每个属性字段的长度。
Value字段:
Value字段长度不定,表示属性的值。
1.3RADIUS报文交互流程
RADIUS报文交互流程如下所示。
图3RADIUS报文交互流程
1.4服务器状态控制策略
Radius服务器的状态在系统中有两种状态标记:
UP和DOWN。
初始时所有的Radius服务器的状态都是UP的。
DOWN状态的含义是:
BAS系统向某个Radius服务器连续发送N个报文,在超时间隔内均收不到该Radius服务器的回应,则BAS系统认为该Radius服务器已经DOWN掉,相应的会将其状态置为DOWN标记。
N可以通过命令radius-serverdead-countcountvalue配置,默认为10次。
服务器状态变为DOWN以后,过一定的时间后BAS系统会把该服务重新设为UP状态,该时间间隔的值可以通过命令radius-serverdead-timetime-value设置,time-value值的单位为分钟。
默认为3分钟。
服务器状态变为DOWN以后,如果已有用户选择使用该服务器发送报文,发送超时但是还没有达到设定的重传次数,则会继续使用该服务器发送报文。
超时时间(报文再次发送的重传时间间隔)和重传次数可以在Radius服务器视图下通过命令radius-servertime-outvalue(value的单位为秒)和radius-serverretransmittimes来设置。
radiusgroup下配置的超时时间和重传次数,对组下的每个服务器生效,一个服务器发送次数超过重传次数将继续选择下一个服务器。
这样如果服务器组下设置的重传次数为N,服务器个数为3,则某个用户的报文的重传次数为3×N。
1.5主备方式服务器选择策略
第一次发送报文时的选择策略:
如果主服务器是UP的就选择主服务器(在RadiusGroup视图下第一个配置的服务器),否则选择最近一次收到报文的那个服务器,如果没有这样的服务器则选择第一个配置的服务器。
超时重传的选择:
如果该报文的发送次数没有达到设定的重传次数,则继续使用原服务器发送报文;如果已经达到重传次数且是主服务器时,则选择最近一次收到报文的那个备服务器,如果没有这样的服务器则选择第一个配置的备服务器(从第一个备服务器开始查找);如果是备服务器发送超时且已超过重传次数,则会搜寻一遍所有配置的备服务器,查找一个没有使用过的且状态为UP的备服务器发送,如果没有状态为UP的,则选择一个这样的状态为DOWN的备服务器发送;如果所有的服务器都已经发送过则释放报文ID,返回发送失败。
1.6负载均衡说明
如果Radius服务器组配置成负载均衡(loading-share)的模式,则BAS系统在发送报文时将按照配置RADIUS认证服务器或计费服务器时的权重weight参数来选择向那个服务器发送。
我司BAS系统实现的负载均衡是基于用户的报文负载均衡,用户上线时根据配置的Radius服务器的权重,选择一台服务器作为以后一系列策略下发的服务器。
1.7负载均衡方式服务器选择策略
负载均衡方式下对服务器的选择,在用户第一次发送报文以及报文重传时的选择策略是一样的。