1.PPP协议简介
PPP 是一种得到广泛应用的广域网协议,它同时支持同/异步传输介质,也支持拨号方式。在我们的日常生活、工作中,拨号上网、DDN 专线等网络连接方式都是封装的 PPP 协议。
2.PPP的组成部分
PPP 包含一组协议,这些协议组合起来,就可以实现非常丰富的功能。
PPP 协议族的一个重要组成部分是链路控制协议LCP(Link Control Protocol),它用于协商链路的一些参数,负责创建并维护链路。
PPP 支持对多种网络层协议的封装。对于每一种网络层协议,它都提供一个对应的网络控制协议NCP(Network Control Protocol),用来协商网络层协议的参数。
3.PPP协议栈
PPP 是一个分层结构。在底层,它能使用同步媒介(如 ISDN 或同步DDN 专线),也能适用异步媒介(如基于 Modem 拨号的 PSTN 网络)。
在数据链路层,PPP 在链路建立方面提供了丰富的服务,这些服务以LCP 协商选项的形式提供。
在上层,PPP 通过 NCPs 提供对多种网络层协议的支持。PPP 对于每一种网络层协议都有一种封装格式来区别它们的报文。
4.PPP协商流程
PPP 协商分为几个阶段:Dead 阶段、Establish 阶段、Authenticate 阶段、Network 阶段和 Terminate 阶段,在不同的阶段进行不同协议的协商。只有前面的协议协商出结果后,才能转入下一个阶段,进行下一个协议的协商。
5.PPP基本配置命令
上面是 PPP 的基本配置命令。
encapsulation ppp 命令是接口配置命令,它指定一个广域网口的封装类型为 PPP。
ppp authentication 命令是接口配置命令,它指定验证方式,可选的验证方式为 PAP 和 CHAP。需要注意的是:验证是单向的,配置这条命令的一方作为验证方来验证对方。如果通讯的双方都要验证对方,则双方都应配置 ppp authentication 命令。
user 命令是全局配置命令,它配置验证所需的用户名和口令。命令字password 后的可选参数中,0 表示以明文的方式显示后面的口令,7 表示以加密的方式显示后面的口令。
6.CHAP/PAP配置命令
PAP 是一种两次握手验证协议:
1、被验证方直接将用户名和口令传递给验证方;
2、验证方将这个用户名和口令与自己 user 命令配置的用户列表进行比较,如果相同则通过验证。
CHAP 是三次握手协议:
1、验证方生成一段随机报文传递到对方,并同时将本端的主机名附带上一起发送给被验证方;
2、被验证方接到对端对本端的验证请求时,便根据此报文中验证方的主机名和本端的用户表查找用户口令字,用此用户的口令对这段随机报文进行加密,然后与自己的用户名一起传递给对方;
3、验证方根据对方的用户名查找 user 列表,找到对应的口令,用这个口令对随机报文加密,与对方加密的随机报文比较,若相同则验证通过,否则失败。CHAP 不用在网络上传递口令,保密性较好。
PAP 有一条配置命令:ppp pap sentusername,是被验证方用来配置自己的用户名和口令。
CHAP 有两条配置命令:
ppp chap hostname:配置 CHAP 的用户名;
ppp chap password:配置 CHAP 的口令。
7.PPP配置举例
上面是 PPP 配置的一个简单例子。路由器 A 和 B 通过串口 0 直连,A 用 CHAP 对 B 进行验证。B 的用户名是 quidway,口令是 pass。
在路由器 A,需要配置 user 命令,设置对方的用户名和口令。然后在串口 0 的接口配置状态下:
1、封装 PPP 协议;
2、配置以 CHAP 验证对方;
3、配置本端CHAP主机名。
PPP 配置举例(续)
在路由器 B,要在串口 0 的接口配置状态下:
1、封装 PPP;
2、配置 CHAP 的用户名。
在全局配置模式下:
1、配置用户列表。
8.显示接口信息
配置好 PPP 协议后,可以通过 show interface 命令检查 LCP 和 NCP 状态。
上面的例子显示的是同步串口的接口信息。