PPP协议简介
点到点协议(Point-to-Point Protocol,PPP)提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议,在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。
PPP协议组成
1.提供一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是信息部分,长度受最大传送单元MTU的限制。PPP支持异步链路(无奇偶校验的8比特数据)和面向比特的同步链路。
2.链路控制协议(LCP):一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。
3.网络控制协议(NCP):协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议。
为了在点到点链路(Point-to-Point Protocol)上建立通信,PPP链路的一端必须在建立阶段(Establishment Phase)首先发送LCP包(packets)配置数据链路。链路建立后,在进入到网络层协议阶段前,PPP提供一个可选择的验证阶段。
PPP认证方式
PPP支持两种验证协议:密码验证协议(Password Authentication Protocol,PAP)和挑战一握手验证协议(Challenge Handshake Authentication Protocol,CHAP)。
相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连接请求,主叫响应。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫发送的随机的哈希值,主叫在数据库中确认无误后发送一个连接成功的数据包连接。
PPP协议工作过程
PPP通讯是两个端点之间的通讯,每一端必须首先发送LCP packets数据来设定和测试数据链路,当链路建立后,peer才可以被认证,认证完成后,再通过发送NCP packets来选定网络层协议,这些后续的通讯就可以在网络层进行了。
LCP协商过程
LCP 两端通过发送LCP Config-Request和Config-Ack交互协商选项。 LCP一方通过发送LCP Config-Request来向另一方请求自己需要的LCP协商选项。如果Config-Request报文的接收方支持并接受这些选项则回复LCP Config-Ack报文。如果Config-Request部分(或者全部)不支持所有的LCP选项则回复其他报文。
(1)Config-ACK:若完全支持对端的LCP选项,则回应Config-ACK报文,报文中必须完全协带对端Request报文中的选项。
(2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。
(3)Config-Reject:若不能支持对端的协商选项,则回应Config-Reject报文,报文中带上不能支持的选项,如Windows拨号器会协商CBCP(被叫回呼),而ME60不支持CBCP功能,则回将此选项拒绝掉。
NCP协商协议
NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。NCP的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINS Server IP地址等。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段。
NCP流程与LCP流程类似,用户与ME设备之间互相发送NCP Config-Request报文并且互相回应NCP Config-Ack报文后,标志NCP己协商完,用户上线成功,可以正常访问网络了。
PPP配置方法
1.无认证方式
(1)在R1路由器的相应接口配置IP地址
(2)在R2路由器的相应接口配置IP地址
(3)测试R1、R2路由器的连通情况。
2.PAP单向认证
(1)在R1路由器上的接口启用pap证认(认证方)
(2)在R1路由器上创建ppp认证用户
(3)在R2路由器的接口上发传R1的用户和密码(被认证方)
(4)观察R1、R2路由器相应接口的状态Link、Protocol是否都为UP。
R1: interface Serial1/0 ppp authentication-mode pap ip address 192.168.1.1 255.255.255.0 local-user PAP_USER class network password cipher $c$3$M8fMrPoubJvQ78PeACK5KyXMZtARotLC/w== service-type ppp authorization-attribute user-role network-operator R2: interface Serial1/0 ppp pap local-user PAP_USER password cipher $c$3$q5y5yileSDry4+0CplnaIhu4Ndf6kycfow== ip address 192.168.1.2 255.255.255.0
3.CHAP单向认证
(1)在R1路由器上的接口启用chap证认(认证方)
(2)在R1路由器上创建ppp认证用户
(3)在R2路由器的接口上分别发传R1的用户和密码(被认证方)
(4)观察R1、R2路由器相应接口的状态Link、Protocol是否都为UP。
R1: interface Serial1/0 ppp authentication-mode chap ip address 192.168.1.1 255.255.255.0 local-user R1_CHAP class network password cipher $c$3$4+ZtDnuiwBdPxMh3BY200BzJMILGRxhJ5Q== service-type ppp authorization-attribute user-role network-operator R2: interface Serial1/0 ppp chap password cipher $c$3$3BmukfFJB59uj9F5lCNjqylACq9YWpaWUQ== ppp chap user R1_CHAP ip address 192.168.1.2 255.255.255.0