网络接入服务器(NAS)技术规范(2)
【法规类别】电信
【发布部门】信息产业部(含邮电部)(已撤销) 【发布日期】2000.02.23 【实施日期】2000.02.23 【时效性】现行有效 【效力级别】XE0303
续(1)
8.4 PPP通信流程及协议
PPP协议由5部分组成:链路控制协议(LCP)、PAP和CHAP认证、多通道绑定(MP)、网络控制协议(NCP)、用户配置。详细内容可参阅RFC1661(PPP协议)、RFC1990(PPP多链协议)、RFC1332(IPCP协议)、RFC1334(PAP协议)、RFC1994(CHAP协议)、RFC1662(在类HHDLC帧中的PPP协议)。 (1)PPP连接示意
图23显示了典型的PPP两个路由器背靠背连接方式。 图23 PPP路由器背靠背连接示意(略) (2)PPP通信流程 1 / 7
PPP通信流程见图24。
PPP在建立链路之前要进行一系列的协商过程。PPP建链的各阶段如图25所示。 PPP建链的具体过程如下:
①LCP协商,协商内容包括:MRU(最大接收单元)、魔术字(magic number)、认证方式、异步字符映射等选项以及多链捆绑(MP)一些选项的协商,如多链最大可重建接收单元(MRRU)、多链短顺序号报头格式(SSNHF)、端点描述符(Discriminator)等。
图24 PPP通信流程
图25 PPP建链各阶段图
②LCP协商过后就到了Establish阶段,开始PAP或CHAP认证。PAP为两次握手认证,口令为明文。PAP认证过程如下:发送用户名同口令到认证方,认证方查看是否有此用户,口令是否正确,然后发送相应的响应。CHAP为3次握手认证,口令为密文(密钥)CHAP认证由认证方发送一些随机产生的报文,交给被认证,被认证方用自己的口令字用MD5算法进行加密,传回密文,认证方用自己保存的口令字及随机报文用MD5算法加密,比较两者的密文,根据比较结果返回响应的响应。
③认证成功即进行Network阶段协商(NCP),包括IPCP、IPXCP、BCP的协商(如IP地址的协商等)。任何阶段的协商失败都将导致链路的拆除。 IPCP协商内容为:
·IP address(old) ·VJ compression 2 / 7
·IP address
·Pirmary DNS Address ·Secondary DNS Address ·Primary NetBIOs Address ·Secondary NetBIOs Address IPXCP协商内容为:
·IPX Network Number ·IPX Node Number
·IPX Compression Protocol ·IPX Routing Protocol ·IPX Router Name
·IPX Configuration Complete ④协商成功,则链路建立成功,可以开始传输网络层数据报文。
8.5 RADIUS协议和通信流程 8.5.1 RADIUS协议
Radius通信协议是远程拨号接入的用户接入认证协议。Radius信息包被封装为UDP数据包,Radius的UDP数据包的目标端口地址是1812,Radius计费的UDP数据包的目标端口地址是1813。具体内容参照RFC2138(RADIUS)和RFC2139(RADIUS计费)。 Radius包的类型由包的第一个字节——代码域的值决定。 (1)接入请求(Access-Request) 当代码域的值为1时,该包是接入请求包。 3 / 7
接入请求包由客户端发向Radius服务器,传递的信息用于用户身份的认证。当从
一个有效的客户端得到一个接入请求包时,服务器要作出相应的响应。接入请求包中必须包括属性User-Name(用户名)和User-Password(用户密码)。建议含入属性NAS-IP-Address(NAS的IP地址)或者NAS-Identifier(NAS的标识号),以及属性NAS-Port(NAS的端口号)或者NAS-Port-Type(NAS的端口类型)。包中还可以包含其它的一些属性,但服务器并不要求。其中用户密码是经过MD5算法加密过的。接入请求包中代码域的值是1,标识域是一个唯一的数,与此对应的响应包的标识域的值同这个值一样,包的认证域是一个16位的随机数,不同的标识号对应于不同的随机数。 (2)允许接入(Access-Accept) 当代码域的值为2时,该包是允许接入包。
允许接入包由服务器发向客户端表明身份认证通过,允许用户接入。当客户端收到允许接入包后,首先要认证包的认证域,确认包的有效性,如果无效,包会被丢掉。对允许接入包中的属性没有特别的要求。允许接入包中代码域的值是2,标识域的值同请求包中的一样,包中的认证域是经过MD5加密的16位的字符串。 (3)拒绝接入(Access-Reject) 当代码域的值为3时,该包是拒绝接入包。
身份认证失败,服务器向客户端发出拒绝接入包。对拒绝接入包中的属性没有特别的要求。拒绝接入包中代码域的值是3,标识域的值同请求包中的一样,包中的认证域是经过MD5加密的16位的字符串。
(4)计费请求(Accounting-Request) 当代码域的值为4时,该包是计费请求包。
计费请求包由客户端发向Radius计费服务器,提供计费信息。如果完成了计费信 4 / 7
息的记录,服务器会发给客户端一计费响应包,否则不作任何响应。在计费请求包中决
不能出现属性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用于计费):
8.5.2 RADIUS接入认证与授权的通信流程
一台及多台RADIUS服务器的接入认证与授权的通信流程如图26所示。 一个远程用户、通过NAS(网络接入服务器)在RADIUS服务器上进行认证与授权需要经过以下步骤:
(1)远程用户通过PSTN或ISDN与NAS建立连接。
(2)NAS接受远程用户的连接,对PSTN用户,NAS提示用户输入用户名和口令,对ISDN用户,NAS将PAP(Point-To-Point Password Authentication 5 / 7
Protocol)的PAP ID和口令作为用户名和口令。
(3)NAS根据这些信息产生一个称为认证请求的数据包,这个包中包含有标识NAS的信息(如NAS的名字和IP地址)以及用户的名字和口令,NAS作为RADIUS的客户,在包发出之前将口令加密。
(4)NAS将认证请求数据包发送给RADIUS服务器1,RADIUS服务器1收到认证请求包后,将数据解密,获得用户名和口令,然后认证该用户的合法性。 (5)若认证通过,RADIUS服务器1会发送一个访问接受包给RADIUS客户端(NAS),其中含有用户上网所需要的一些信息,比如用户的IP地址,使用的协议等,这时NAS允许用户上网。
(6)NAS接到认证通过确认响应后向远程用户回发确认响应(通过PAP或CHAP)。
(7)若认证没有通过,RADIUS服务器1会发送一个访问拒绝包给RADIUS客户端。
(8)NAS接到认证未通过响应后,向远程用户发拒绝用户上网的指令(通过PAP或CHAP)。
(9)认证请求包通过网络送到RADIUS服务器1,在一定时间内如果没有收到响应,则NAS会重发一定的次数,在主服务器关闭或不可达的情况下,验证请求可以向备用的RADIUS服务器2发送,并依次类推。
(10)若认证通过,RADIUS服务器2会发送一个访问接受包给RADIUS客户端(NAS),其中含有用户上网所需要的一些信息,比如用户的IP地址,使用的协议等,这时NAS允许用户上网。
(11)NAS接到认证通过确认响应后向远程用户回发确认响应(通过PAP或CHAP)。 6 / 7
图26 一台及多台RADIUS服务器的接入认证与授权的通信流程(略)
(12)一定时间内仍收不到RADIUS服务器的响应,NAS认为RADIUS服务器关闭,并拒绝该用户上网。 8.6 Telnet流程及协议
Telnet协议参照RFC0854、RFC0855、RFC0858。 Telnet所定义的网络虚终端信息分为两种类型:一类是数据,一类是命令。 网络虚终端数据用7位ASCⅡ字符表示(各字节高位置0),并对其中8个字符进行了重定义,重定义的8个字符为:
网络虚终端控制命令借助于TCP的紧急(URGENT)数据机制发送,命令形式如下:
网络虚终端控制命令使用8比特字节序列,字节高位置1。控制功能使用转移序列(escape sequence)进行编码,每个转移序列有两个字节构成,前一个是保留字节IAC(Interpret As Command),后一个控制命令,NVT控制命令和编码如表5所示。
7 / 7