(2)允许接入(Access-Accept)
当代码域的值为2时,该包是允许接入包。
允许接入包由服务器发向客户端表明身份认证通过,允许用户接入。当客户端收到允许接入包后,首先要认证包的认证域,确认包的有效性,如果无效,包会被丢掉。对允许接入包中的属性没有特别的要求。允许接入包中代码域的值是2,标识域的值同请求包中的一样,包中的认证域是经过MD5加密的16位的字符串。
(3)拒绝接入(Access-Reject)
当代码域的值为3时,该包是拒绝接入包。
身份认证失败,服务器向客户端发出拒绝接入包。对拒绝接入包中的属性没有特别的要求。拒绝接入包中代码域的值是3,标识域的值同请求包中的一样,包中的认证域是经过MD5加密的16位的字符串。
(4)计费请求(Accounting-Request)
当代码域的值为4时,该包是计费请求包。
计费请求包由客户端发向Radius计费服务器,提供计费信息。如果完成了计费信息的记录,服务器会发给客户端一计费响应包,否则不作任何响应。在计费请求包中决不能出现属性User-Password、CHAP-Password、Reply-Message、State,但必须包含属性NAS-IP-Address或者NAS-Identifier,两者必须包含其一(建议含入属性NAS-Port或者NAS-Port-Type)。计费请求包中代码域的值是4,标识域是一个唯一的数,与此对应的响应包的标识域的值同这个值一样,包的认证域是一个16位的随机数,不同的标识号对应于不同的随机数。
(5)计费响应(Accounting-Response)
当代码域的值为5时,该包是计费响应包。
计费信息记录完成后,服务器发给客户端一计费响应包。对计费响应包中的属性没有特别的要求。计费响应包中代码域的值是5;标识域的值同请求包中的一样;包中的认证域是经过MD5加密的16位的字符串。
Radius的属性带有特定的认证、授权及计费的信息,用于请求和响应包中。
在认证、授权、计费过程中可能用到的主要的属性类型有以下这些(其中40到51用于计费):
1 User-Name string length≥3
2 User-Password string length≥18 and length≤130
3 CHAP-Password string length=19
4 NAS-IP-Address address length=6
5 NAS-Port integer length=6
6 Service-Type integer length=6
7 Framed-Protocol integer length=6
8 Framed-IP-Address address length=6
9 Framed-IP-Netmask address length=6
10 Framed-Routing integer length=6
11 Filter-Id string length≥3
12 Framed-MTU integer length=6
13 Framed-Compression integer length=6
14 Login-IP-Host address length=6
15 Login-Service integer length=6
16 Login-TCP-Port integer length=6
17 (unassigned)
18 Reply-Message string length≥3
19 Callback-Number string length≥3
20 Callback-Id string length≥3
21 (unassigned)
22 Framed-Route string length≥3
23 Framed-IPX-Network integer length=6
24 State string length≥3
25 Class string length≥3
26 Vendor-Specific string length≥7
27 Session-Timeout integer length=6
28 Idle-Timeout integer length=6
29 Terminationm-Acton integer length=6
30 Called-Station-Id string length≥3
31 Calling-Station-Id string length≥3
32 NAS-Identifier string length≥3
33 Proxy-State string length≥3
34 Login-LAT-Service string length≥3
35 Login-LAT-Node string length≥3
36 Login-LAT-Group string length=34
37 Framed-Apple Talk-Link integer length=6
38 Framed-Apple Talk-Network integer length=6
39 Framed-Apple Talk-Zone string length≥3
40 Acct-Status-Type integer length=6
41 Acct-Delay-Time integer length=6
42 Acct-Input-Octets integer length=6
43 Acct-Output-Octets integer length=6
44 Acct-Session-Id string length≥3
45 Acct-Authentic integer length=6
46 Acct-Session-Time integer length=6
47 Acct-Input-Packets integer length=6
48 Acct-Putput-Packets integer length=6
49 Acct-Terminate-Cause integer length=6
50 Acct-Multi-Session-Id string length≥3
51 Acct-Link-Count integer length=6
60 CHAP-Challenge string length≥7
61 NAS-Port-Type integer length=6
62 Port-Limit integer length=6
63 Login-LAT-Port string length≥3
8.5.2 RADIUS接入认证与授权的通信流程
一台及多台RADIUS服务器的接入认证与授权的通信流程如图26所示。
一个远程用户、通过NAS(网络接入服务器)在RADIUS服务器上进行认证与授权需要经过以下步骤:
(1)远程用户通过PSTN或ISDN与NAS建立连接。
(2)NAS接受远程用户的连接,对PSTN用户,NAS提示用户输入用户名和口令,对ISDN用户,NAS将PAP(Point-To-Point Password Authentication Protocol)的PAP ID和口令作为用户名和口令。
(3)NAS根据这些信息产生一个称为认证请求的数据包,这个包中包含有标识NAS的信息(如NAS的名字和IP地址)以及用户的名字和口令,NAS作为RADIUS的客户,在包发出之前将口令加密。
(4)NAS将认证请求数据包发送给RADIUS服务器1,RADIUS服务器1收到认证请求包后,将数据解密,获得用户名和口令,然后认证该用户的合法性。