一、PPP的特点
PPP是IETF(因特网工程任务组)推出的点到点类型线路的数据链路层封装协议,PPP支持下面几类物理接口:同步串行接口、异步串行接口、高速串行接口(HSSI)、综合业务数字网(ISDN),此外PPP还被广泛的应用在ATM上(PPPover ATM,简称PPPoA)以及以太网上(PPPover Ethernet,简称PPPoE)。
二、PPP利用下面三个组件来解决网际网络连接问题:
在点对点链路上使用高级数据链路控制(HDLC)封装数据。PPP帧格式以HDLC帧格式为基础,做了少许改动。
1.使用LCP(Link Control Protocol,链路控制协议)来建立、设定和测试数据链路连接。
2.使用NCPs(Network Control Protocols,网络控制协议系列)建立和设定不同的网络层协议。
三、PPP分层体系结构
PPP分层体系架构是一个逻辑模型,下图是这一构架和OSI参考模型的对比:
只要是点到点类型的线路都可以运行PPP,在数据链路层PPP通过LCP协议进行链路管理,相当于以太网数据链路层的MAC子层,在网络层NCP为不同协议提供服务,相当于以太网数据链路层的LLC子层。
1.LCP(Link ControlProtocol)子层
LCP子层位于物理层之上,除了用来建立、配置和测试数据链路连接外,还提供下面这些功能:
身份验证:提供了PAP和CHAP验证。
压缩:将需要传输的数据先压缩再传输。支持Stac、Predictor、MPPC以及TCP头部压缩。
错误检测:保证链路的质量。
多链路:实现链路的负载均衡。
PPP回拨:可以提高安全性和节约用户拨号费用。
2.NCP(Network ControlProtocol)子层
当LCP将链路建立好后,PPP开始根据不同用户的需要配置上层协议所需环境,NCP被用来为上层服务提供服务接口,针对不同的上层协议NCP提供不同的服务组件。
四、PPP会话建立过程
PPP从开始发起呼叫到最终通信完成后释放链路一共要经历下面四个步骤:
第一步:链路的建立和配置协商,主要由LCP完成,通信的发起方发送LCP帧来配置和检测数据链路。
第二部:链路质量检测(可选),属于LCP的可选功能,主要是测试链路的质量能否满足要求。
第三步:网络层协议的配置阶段,主要是NCP的功能,通信双方交换一系列NCP分组来配置网络层,NCP配置好后双方的逻辑通信链路就建立完成了。
第四部:链路终止,当数据传送完成,或者一些外部事件发生的时候,一方会发起断开连接的请求,这时,首先使用NCP来释放网络层的链接,然后使用LCP来关闭数据链路层的链接,最后双方的通信设备关闭物理链路。
五、PPP身份验证协议
PPP有两种可选的身份验证协议PAP和CHAP:
1.PAP(PasswordAuthentication Protocol,密码验证协议),这是一种两次握手协议,采用明文传输方式传输用户口令,验证步骤如下:
首先被验证方主动发起验证请求,将本地配置的用户名和密码用明文的方式发送给验证方,验证方接收到验证请求后检查此用户名和密码是否正确(在验证方的数据库中也配置有此用户名和密码),正确就发回接受报文,错误就发送拒绝报文。这种验证方式是采用明文传输,很容易被破解。
2.CHAP(ChallengeHandshake Authentication Protocol,挑战握手验证协议)、这是一种三次握手协议,它只在网络上传输用户名,密码并不在网络上传输,下图为CHAP验证示意图:
CHAP的验证过程如下:
在PPP链路建立阶段完成后(R1作为被验证方拨入),验证方R2主动发起验证挑战”Challenge”,挑战报文中”01″是序列号;R2上可能有多个拨入请求,”ID”用来识别是哪个拨入者发起的挑战;”Random”是一个随机数;”R2″是发起挑战路由器的名字。
被验证方收到验证方发来的请求后,根据这个报文中的路由器名称(R2),在本地数据库中找到这个名称对应的密码,如果找到对应的密码,则用验证方发送过来的报文的ID和随机数加上本地数据库中找到的密码,以MD5算法生成一个”hash”值。
生成hash之后,再将这个hash值、验证方R2发送过来的ID号以及本路由的名称R1,发回给验证方R2。其中报文的序列号是”02″,”ID”是R2发送过来的那个ID不变,”hash”是R1计算后得到的哈希值。
R2接收到这个报文后,利用报文中的ID值找到储存在本地数据库中的随机数,并且根据发送过来的报文中路由器的名称(R1)找到本地数据库对应这个名称的密码,然后利用ID、随机数、R1对应的密码使用MD5算法生成一个hash值,最后用这个hash值与R1发送过来的hash比较,相同则验证通过,发回序号是”03″的确认报文,如果不相同则验证失败,发回序号是”04″的验证失败报文。
从这个步骤可以看出,只要双方配置相同的验证密码,即可完成验证,并且这个密码是不会在链路上传输的,传输的只是一个随机数、一个ID值、路由器的名称和发回的hash值。
六、配置实例
1、配置拓扑图
2.R1和R2的基本配置
3.配置压缩
配置压缩会影响路由性能,如果需要传送的文件已经压缩过,比如ZIP,RAR等,则不建议在路由上开启压缩:
4.配置链路质量监控(LQM)
在本文前面的”PPP会话建立过程”的第二步中提到了一个可选的阶段”链路质量检测”,在这个阶段LCP测试链路并决定链路的质量能否满足第三层协议的需要,如果不能满足,链路将会关闭。可以使用下面的命令来配置质量监控:
5.配置链路负载均衡
PPP链路负载均衡(多链路PPP,也叫MP、MPPP、MLP或Multilink)允许包被分段,在到对方的多条点对点线路上被同时发送,配置命令如下:
6.在R1上配置PAP验证
7.在R2上配置PAP验证
配置完成后检测R1和R2连通性,发现可以正常通信,PAP并不是路由器推荐的验证方式。
8.在R1上配置CHAP验证
9.在R2上配置CHAP验证
10.PPP的验证过程
联系客服