什么是PPP

PPP(Point-To-Point Protocol)点到点协议,是一种提供在点到点链路上传输、封装网络层数据的链路层协议,属于数据链路层协议。
PPP可以适用于多种链路,例如:

  • 同步和异步专线
  • 异步拨号链路(PSTN)
  • 同步拨号链路(ISDN)

PPP的特点

总结下来有以下几个特点:

工作在同异步方式下

PPP是面向字符的,在点到点串行链路上使用的是字符填充技术,所以及支持异步链路又支持同步链路

控制数据链路的建立

通过LCP(Link Control Protocol)链路控制协议,能够有效控制数据链路的建立

支持验证、安全更好

PPP支持PAP、CHAP两种验证,更好的保障了网络的安全性

支持多种网络层协议

这东西倒是没啥用,可以同时支持多种网络层协议,但现在网络层唯一的协议就是IP协议,IPX、IPXCP几个都已经淡出市场

对网络地址进行协商分配

可以对网络层的地址进行协议,支持IP地址远程分配,这就是所谓的拨号上网,由ISP分配IP进行网络数据传输

无重传机制

由于没有了重传机制,极大的减小了网络的开销

PPP协议的组成

PPP并不是一个单一的协议,而是由几个协议组合而层的协议族
协议簇
其中PPP协议主要由LCPNCP、以及验证协议PAP/CHAP组成

链路层控制协议

LCP(Link Control Protocol),主要用于管理PPP的数据链路,建立、拆除和监控数据链路等。

网络控制协议

NCP(Network Control Protocol),主要用于协商网络层协议的类型以及属性,同时还协商改数据链路上锁传输的数据包的格式与类型,配置网络层协议等。

验证协议

验证协议又分PAP和CHAP,两者都是用来对PPP的对端设备进行省份合法验证,在一定程度上保证了链路的安全性

PPP会话建立的流程

建立流程
一个完整的PPP会话建立大体需要三步

  • 链路协商阶段:
    设备会发送LCP报文来检测链路的可用情况,如果可用则建立成功,否则失败
  • 验证阶段:
    链路建立成功后,会根据PPP帧中的选项来判断是否需要验证,需要则进行验证,验证成功则进行最后的网络协商阶段,否则直接进入网络协商阶段
  • 网络层协议阶段:
    发送NCP报文,来选择并配置网络层协议,双方使用的是否是IP协议,协调通过则PPP链路建立成功

流程图

当物理层不可用时,PPP 链路处于 dead 阶段。
当物理层可用时进入 Establish 阶段,PPP 链路在 Establish 阶段进行 LCP 协商。
如果配置了验证,则进入 Authenticate 阶段,开始 CHAP 或 PAP 验证
如果验证失败则进入 Terminate 阶段,拆除链路,LCP 状态转为 Down
如果验证成功则进入 Network 阶段由 NCP 协商网络层协议参数,此时 LCP 状态仍为 Opened,而 NCP 状态从 Initial 转到 Request。
NCP 协商支持 IPCP 协商,IPCP 协商主要包括双方的 IP 地址

PPP的验证

PAP验证

PAP验证
被验证方首先发起验证请求,通过两次握手来传递验证信息
其中用户名和密码通过明文传输方式在网络中传递

CHAP验证

CHAP验证
由主验证方首先发起验证请求,通过三次握手来传递验证信息
该验证不会发送密码,安全性比PAP高,这里不详细介绍他们的验证流程,有需要了解的可以查看如下概述:
概述

PPP的基础配置

/*设置接口报文的封装PPP*/
[H3C-Serial1/0] link-protocol ppp
/*设置验证类型*/
[H3C-Serial1/0] ppp authentication-mode [pap | chap]
/*设置用户名、密码、服务类型*/
[H3C] local-user [user-name] class network
[H3C-luser-network-name] password simple [password]
[H3C-luser-network-name] service-type ppp
/*详细配置查看如下实例*/
PAP验证配置实例

PAP配置验证实例

CHAP验证配置实例

实例一

实例二