一、简单介绍
1、高级数据链路控制(HDLC)协议是基于的一种数据链路层协议,促进传送到下一层的数据在传输过程中能够准确地被接收(也就是差错释放中没有任何损失并且序列正确)。HDLC 的另一个重要功能是流量控制,换句话说,一旦接收端收到数据,便能立即进行传输。HDLC 具有两种不同的实现方式:高级数据链路控制正常响应模式即 HDLC NRM(又称为SDLC)和 HDLC 链路访问过程平衡(LAPB)。其中第二种使用更为普遍。HDLC 是 X.25 栈的一部分。
点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。
2. PPP 认证:PAP 和CHAP
(1)PAP——密码验证协议
PAP(Password Authentication Protocol)利用 2 次握手的简单方法进行认证。在
PPP 链路建立完毕后,源节点不停地在链路上反复发送用户名和密码,直到验证通过。PAP
的验证中,密码在链路上是以明文传输的,而且由于是源节点控制验证重试频率和次数,因
此 PAP 不能防范再生攻击和重复的尝试攻击。
(2)CHAP——询问握手验证协议
CHAP(Challenge Handshake Authentication Protocol)利用 3 次握手周期地验证源端
节点的身份。CHAP 验证过程在链路建立之后进行,而且在以后的任何时候都可以再次进行。这使得链路更为安全;CHAP 不允许连接发起方在没有收到询问消息的情况下进行验证尝试。CHAP 每次使用不同的询问消息,每个消息都是不可预测的唯一的值,CHAP 不直接传送密码,只传送一个不可预测的询问消息,以及该询问消息与密码经过 MD5 加密运算后的加密值。所以 CHAP 可以防止再生攻击,CHAP 的安全性比 PAP 要高。
二、实验拓扑图
实验一 HDLC和PPP封装
一、实验步骤:
在R1、R2路由器上配置IP地址,保证直连链路的连通性
1、R1#show interfaces serial 1/0
Serial1/0 is up, line protocol is up
Hardware is M4T
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation HDLC, crc 16, loopback not set //该接口的默认封装为HDLC封装;
(此后省略)
2、把串行链路两端的接口封装为ppp协议
R1(config)#interface serial 1/0
R1(config-if)#encapsulation ppp
R2(config)#interface serial 1/0
R2(config-if)#encapsulation ppp
R1#show interfaces serial 1/0
Serial1/0 is up, line protocol is up
Hardware is M4T
Internet address is 192.168.12.1/24
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation PPP, LCP Open //该接口封装为PPP协议;
Open: IPCP, CDPCP, crc 16, loopback not set //网络层支持IP和CDP协议
(此后省略)
二、实验调试
①测试R1和R2之间串行链路的连通性;
如果两端封装协议相同,则ping测试应该正常。
②链路两端封装不同的协议;
链路两端封装协议不匹配,导致链路故障
【注】:
显示链路接口时,常见以下几种状态:
Serial1/0 is up, line protocol is up
//链路正常;
Serial1/0 is administratively down, line protocol is down
//没有打开该接口,执行“no shutdown ”可以打开接口;
Serial1/0 is up, line protocol is down
//物理层正常,数据链路层有问题,通常是没有配置时钟、两端封装不匹配、PPP认证错误;
Serial1/0 is down, line protocol is down
//物理层故障,通常为连线问题;
实验二 PAP认证
在实验一的基础上继续试验,首先配置路由器R1(远程路由器,被认证方)在路由器R2(中心路由器,认证方)取得验证。
1、两端路由器上的串口都采用PPP封装;
2、在远程路由器的R1上配置在中心路由器上登陆的用户名和密码。
3、在中心路由器上的串口采用PPP封装,用“encapsulation”命令;
配置PAP认证,使用“ppp authencation pap ”命令;
4、中心路由器R2上为远程用户设置用户名和密码;
以上的步骤只是配置了R1(远程路由器)在R2(中心路由器)取得验证,即单项验证。然而在实际情况中通常采用双向验证,即R2要验证R1,R1也要验证R2,因此要采用类似的步骤配置R1对R2的验证,这是R1为中心路由器,R2为远端路由器。
5、在远程路由器R2上配置在中心路由器上登陆的用户名和密码;
6、在中心路由器R1上配置PAP验证;
在中心路由器R1上为远程路由器设置用户名和密码;
【注】在ISDN拨号上网时,却通常只是电信对用户进行验证,用户不能对电信进行验证,即验证是单向的。
实验调试:
使用“debug ppp authentication ”命令可以查看ppp认证过程。
在R1上关闭、打开serial1/0端口
在R2上可以看到PAP认证成功的过程
如果在R1上改变密码,在R2上将可以看到PAP认证失败的过程
实验三、CHAP认证
接下来,我们看一下CHAP验证的配置方法
在实验一的基础上继续试验,
使用“username 用户名 password 密码”命令为对方配置用户名和密码,双方的密码一定要相同,
R1(config)#username R2 password 123456
R2(config)#username R1 password 123456
然后在R2上使用“debug ppp authentication ”命令查看CHAP的认证过程
在R1上关闭、开启serial1/0端口。
以上的CHAP认证最简单的配置,也是实际应用最多的配置,要求用户名必须为对方路由器名,双方密码必须一致。由于CHAP默认使用本地路由器的名字作为建立PPP连接时的识别符。路由器在收到对方发送过来的询问信息时,将本地路由器上的名字作为身份标识发送给对方,而在对方发送过来的身份标识之后,默认使用本地验证方法,即在配置文件中找,看看有没有用户身份识别和密码,如果有,计算加密值,结果正确则验证通过,否则验证失败,连接无法建立。