实验说明:PPP中的认证方式有pap和chap两种,这两种认证既可以单独使用也可以结合使用。并且既可以进行单向认证也可以进行双向认证。
pap是通过验证远端的用户名和密码是否匹配来进行验证 chap则是发送一个挑战包,然后远端通过自己的数据库的用户名和密码利用md5进行计算后返还一个数值,然后在发送方验证这个数值是否和自己计算出来的数值是否一致进行验证
基本配置:
R1: ! hostname R1----------------------------------------------------------设置主机名为“R1”
!
interface Serial1/0
ip address 1.1.1.1 255.255.255.0
encapsulation ppp-------------------------------------------------设置封装为ppp
R2: hostname R2
!
interface Serial1/0
ip address 1.1.1.2 255.255.255.0
encapsulationppp
通过上面的配置,在没有启用任何认证的情况下,链路是通的。
配置步骤:
1. 在两台路由器上进行pap认证:
如果我们进行单项认证的话配置应该如下
R1为认证的服务器端,需要建立本地口令数据库,并且开始pap认证。
R1(config)#usernameR2 password gairuhe------------------------建立本地口令数据库
R1(config)#int s1/0
R1(config-if)#pppauthentication pap--------------------------------要求进行PAP认证
在这样的配置下,我们可以看到链路已经down了:
R1(config-if)#
*Aug 23 16:45:12.639: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial1/0, changed state to down
R2为认证的客户端,需要发送用户名和密码来匹配服务器端的口令数据库
此时我们在R2上加上如下的配置:
R2(config)#int s1/0
R2(config-if)#ppp papsent-username R2 password gairuhe------发送用户名和密码
R2(config-if)#
*Aug 23 16:47:48.635: %LINEPROTO-5-UPDOWN: Line protocol on InterfaceSerial1/0, changed state to up
此时链路已经起来,我们仅在R1上做了认证,而在R2上没有进行认证。这就是pap的单向认证。
Pap的双向认证:
Pap的双向认证其实就是将两端同时都配置为认证服务器端和认证客户端。在上面实验的基础上,我们只要将R2配置成服务器端,将R1配置成客户端即可。
R2(config)#username R1 password gairuhe
R2(config)#int s1/0
R2(config-if)#ppp authentication pap
R2(config-if)#
R1(config-if)#int s1/0
R1(config-if)#ppp pap sen
R1(config-if)#ppp pap sent-username R1 password gairuhe
R1(config-if)#
2.在上面实验的基础上,将R1改为chap认证,而R2不变
在R1上进行如下的改变
R1(config-if)#no ppp authentication pap
R1(config-if)#no ppp pap sent-username R1 password gairuhe
R1(config-if)#ppp authentication chap
我们发现,链路状态并没有改变,而且也没有任何的debug信息产生。这就是说明了在链路已经建立起来后,是无需进行再次的认证的。
我们把R1的是s1/0口shut down 后在no shut down,看看情况
R1(config-if)#shut
R1(config-if)#no shut
此时发现链路已经断开,并且要求需要PPP的认证
3.在两台路由器上进行chap认证
首先将R2的pap认证关闭
R2(config-if)#no pppauthen pap
R2(config-if)#no ppp pap sent-username R2 password gairuhe
可以看到chap认证是通过发送一个challenge信息来进行认证。
在R2上启用chap认证
R2(config)#int s1/0
R2(config-if)#ppp authentication chap
这个时候链路就已经通了。