• PPP协议


    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
  • 相关阅读:
    安卓之屏幕适配
    Kotlin入门教程——目录索引
    Kotlin入门(33)运用扩展属性
    Kotlin入门(32)网络接口访问
    Kotlin入门(31)JSON字符串的解析
    Kotlin入门(30)多线程交互
    Kotlin入门(29)任务Runnable
    Kotlin入门(28)Application单例化
    Kotlin入门(27)文件读写操作
    Kotlin入门(26)数据库ManagedSQLiteOpenHelper
  • 原文地址:https://www.cnblogs.com/PBDragon/p/12608875.html
Copyright © 2020-2023  润新知