AAA鉴权和计费(动态分配地址是在鉴权过程中进行)功能是基于RADIUS协议的,该协议属于应用层协议,底层的协议栈采用UDP和 IP。RADIUS协议规定了GGSN与AAA服务器之间如何传递用户信息和计费信息。
RADIUS(Remote Authentication Dial in User Service),远端认证拨号用户服务协议最初用于管理使用Modem的大量分散用户安全地连接至公司网络以及进行相应的鉴权。现在已发展成为一个多功能的协议,负责认证与系统的远程连接,提供对网络资源使用的授权和计费。
它是一个分布式客户端/服务器系统,可以防止未授权的用户访问网络。GGSN/NAS上运行的AAA程序对用户来讲为服务器端,对RADIUS服务器来说是作为客户端。
下面介绍涉及的一些基本概念。
PAP:Password Authentication Protocol,PAP验证为两次握手验证,用户以明文的形式把用户名和密码传递给GGSN,GGSN把用户名和加密过的密码放到验证请求包的相应属性中传递给RADIUS服务器。RADIUS服务器根据本地用户数据库检查用户名和密码是否正确,作出响应,根据响应结果决定是否允许用户访问网络。
CHAP:Challenge Handshake Authentication Protocol,CHAP验证为三次握手验证,当用户请求访问网络时,GGSN产生一个16字节的随机码给用户,同时还有一个ID号,即GGSN的hostname,用户端得到这个包后使用自己独有的设备或软件(MD5算法)对传来的随机码和ID进行加密,生成一个response传给GGSN。GGSN把传回来的CHAP ID和Response分别作为用户名和密码,并把原来的16字节随机码传给RADIUS服务器。RADIUS服务器根据用户名在服务器端查找数据库,得到和用户端进行加密所用的一样的密钥,对传来的原16字节的随机码进行加密,将其结果与传来的Password作计较,如果相同表明鉴权通过,如果不相同表明鉴权失败。
PPP:Point to Point Protocol,点对点协议,一种二层的链路协议,在其上可以进行二层链路协商(LCP)及三层网络协商(IPCP),并可以进行验证(PAP/CHAP )通过此协议,PC可以通过Modem和普通电话线建立到互联网的一个TCP/IP连接。PPP会话主要分为三个阶段:
LCP(Link Control Protocol)阶段:在MS和GGSN之间进行LCP协商,协商内容包括验证方式和MTU等,LCP协商的目的是建立链路;
鉴权阶段:此阶段可以通过命令配置,如果配置鉴权,需要对MS进行PAP或CHAP身份验证;如果验证失败,就进入LCP Terminate阶段,拆除链路;如果验证通过,就进入Network协商阶段(NCP);
NCP(Network Control Protocol)阶段:协商网络层协议,进行MS地址的分配。只有相应的网络层协议协商成功后,该网络层协议才可通过这条链路发送报文。
PPP终结:PPP用户在进行分组数据业务的时候,GGSN解GTP封装后获得原始PPP报文,剥离PPP封装获得原始IP报文(即PPP报文终结域GGSN),然后通过与企业网之间建立的三层VPN隧道(GRE 隧道、IPSec隧道)或者普通路由,将IP报文转发到企业网或者Internet。
PPP续传:PPP用户在进行分组数据业务的时候,GGSN解GTP封装后获得原始PPP报文,然后通过与企业网之间建立的二层L2TP隧道,将PPP报文转发至企业网。
------------------------------------------------------
具体来讲,一个带有RADIUS鉴权、地址分配和计费的流程描述如下:
2 为防止非法用户的接入,ISP/Intranet需要鉴权用户信息,同时给用户分配私有地址。这里有两种方案:
- Option1:采用RADIUS服务器进行鉴权和分配地址。
- Option2:采用RADIUS服务器进行鉴权+DHCP远端分配地址。
这里选取Option1进行描述,GGSN向RADIUS鉴权服务器发起Access-Request消息,请求对用户身份鉴权(采用PAP或CHAP验证),并请求地址分配。鉴权流程只在用户发起第一次上下文建立请求时需要,以后的二次上下文建立或者更新上下文就不需要鉴权了。
3 RADIUS鉴权服务器返回应答Access-Accept,表示鉴权通过并下发分配地址。
4 通过鉴权后,GGSN向RADIUS计费服务器发起Accounting-Request (START)计费请求,开始对用户进行计费。
5 GGSN在发出Accounting-Request (START)后回激活应答消息给SGSN,SGSN响应用户的激活请求。在这里可以通过命令radius acctctrl配置APN属性,限制用户直到收到Accounting Response (START)后,才可以给SGSN回创建PDP上下文响应;如果等待响应超时,根据response-timeout参数控制是否去活上下文。
6 RADIUS计费服务器给GGSN回Accounting Response (START)消息。在这里可以灵活配置APN属性,限制用户直到收到Accounting Response (START)后才可以转发数据,也可以允许用户在收到Accounting Response (START)之前就可以转发数据;如果RADIUS拒绝了GGSN的计费开始请求消息,则GGSN随时可以去活PDP上下文。
7 用户开始转发数据,包括上下行方向。
8 计费过程中,用户PDP上下文的更新或者时间和流量达到设定阈值后,均可以触发计费更新请求消息。GGSN向RADIUS计费服务器上报更新参数。
9 RADIUS计费服务器回应答Accounting Response (Interim-Update)。
10 一段时间后,用户终止业务访问,发起去活请求,SGSN请求GGSN删除PDP上下文,释放承载资源。
11 GGSN向RADIUS计费服务器发起计费停止请求Accounting-Request (STOP),并上报所消耗的时间和流量。
12 RADIUS计费服务器给GGSN回响应Accounting-Response (STOP)。
13 无论GGSN是否收到Accounting-Response (STOP)消息,此时均回SGSN去活响应,去活上下文,释放网络资源。
runhook 发表于 2014-2-25 14:43
“CHAP:Challenge Handshake Authentication Protocol,CHAP验证为三次握手验证,当用户请求访问网络时,G ...
欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) | Powered by Discuz! X2 |