概述
PPP - 点到点协议
前言
串行链路数据传输方式
串行链路普遍用于广域网中。串行链路中定义了两种数据传输方式:异步和同步。
-
异步传输是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。
-
同步传输是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。DTE即数据终端设备,它通常使用DCE产生的时钟信号。
DCE是运营商的网络设备,DTE是用户设备
HDLC协议应用
ISO制定的HDLC是一种面向比特的通信规则。HDLC传送的信息单位为帧。作为面向比特的同步数据控制协议的典型,HDLC具有如下特点:
-
协议不依赖于任何一种字符编码集;
-
数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现;
-
全双工通信,不必等待确认可连续发送数据,有较高的数据链路传输效率;
-
所有帧均采用CRC校验,并对信息帧进行编号,可防止漏收或重收,传输可靠性高;
-
传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。
HDLC地址借用
- 配置了地址借用之后,路由的出处会在借用的端口那里
HDLC基本配置
华为设备上的串行接口默认运行PPP协议
思科设备上的串行接口默认运行HDLC协议
HDLC配置只限于在串行接口上配置
PPP 协议应用
PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。PPP协议有如下优点:
-
PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
-
PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
-
PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
-
PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
-
PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
-
无重传机制,网络开销小,速度快。
PPP组件
PPP包含两个组件:链路控制协议LCP和网络层控制协议NCP。
为了能适应多种多样的链路类型,PPP定义了链路控制协议LCP。LCP可以自动检测链路环境,如是否存在环路;协商链路参数,如最大数据包长度,使用何种认证协议等等。与其他数据链路层协议相比,PPP协议的一个重要特点是可以提供认证功能,链路两端可以协商使用何种认证协议来实施认证过程,只有认证成功之后才会建立连接。
PPP定义了一组网络层控制协议NCP,每一个NCP对应了一种网络层协议,用于协商网络层地址等参数,例如IPCP用于协商控制IP协议,IPXCP用于协商控制IPX协议等。
PPP链路建过程
对于PPP链路建立过程的描述如下:
-
Dead阶段也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。
-
在Establish阶段,PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。
-
多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。
-
在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。
-
NCP协商成功后,PPP链路将保持通信状态。PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
-
在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。
LCP报文
此表格列出了LCP用于链路层参数协商所使用四种报文类型。
-
Configure-Request(配置请求):链路层协商过程中发送的第一个报文,该报文表明点对点双方开始进行链路层参数的协商。
-
Configure-Ack(配置响应):收到对端发来的Configure-Request报文,如果参数取值完全接受,则以此报文响应。
-
Configure-Nak(配置不响应):收到对端发来的Configure-Request报文,如果参数取值不被本端认可,则发送此报文并且携带本端可接受的配置参数。
-
Configure-Reject(配置拒绝):收到对端发来的Configure-Request报文,如果本端不能识别对端发送的Configure-Request中的某些参数,则发送此报文并且携带那些本端不能认别的配置参数。
LCP协商参数
LCP报文携带的一些常见的配置参数有MRU,认证协议,以及魔术字。
-
在VRP平台上,MRU参数使用接口上配置的最大传输单元(MTU)值来表示。
-
常用的PPP认证协议有PAP和CHAP,一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码等认证信息。
-
LCP使用魔术字来检测链路环路和其它异常情况。魔术字为随机产生的一个数字,随机机制需要保证两端产生相同魔术字的可能性几乎为0。
收到一个Configure-Request报文之后,其包含的魔术字需要和本地产生的魔术字做比较,如果不同,表示链路无环路,则使用Confugure-Ack报文确认(其它参数也协商成功),表示魔术字协商成功。在后续发送的报文中,如果报文含有魔术字字段,则该字段设置为协商成功的魔术字。
LCP参数协商
如图所示,RTA和RTB使用串行链路相连,运行PPP。当物理层链路变为可用状态之后,RTA和RTB使用LCP协商链路参数。本例中,RTA首先发送一个Configure-Request报文,此报文中包含RTA上配置的链路层参数。当RTB收到此Configure-Request报文之后,如果RTB能识别并接受此报文中的所有链路层参数,则向RTA回应一个Configure-Ack报文。
RTA在没有收到Configure-Ack报文的情况下,会每隔3秒重传一次Configure-Request报文,如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文,则认为对端不可用,停止发送Configure-Request报文。
注:完成上述过程只是表明RTB认为RTA上的链路参数配置是可接受的。RTB也需要向RTA发送Configure-Request报文,使RTA检测RTB上的链路参数是不是可接受的。
当RTB收到RTA发送的Configure-Request报文之后,如果RTB能识别此报文中携带的所有链路层参数,但是认为部分或全部参数的取值不能接受,即参数的取值协商不成功,则RTB需要向RTA回应一个Configure-Nak报文。
在这个Configure-Nak报文中,只包含不能接受的链路层参数,并且此报文所包含的链路层参数均被修改为RTB上可以接受的取值(或取值范围)。
在收到Configure-Nak报文之后,RTA需要根据此报文中的链路层参数重新选择本地配置的其它参数,并重新发送一个Configure-Request。
当RTB收到RTA发送的Configure-Request报文之后,如果RTB不能识别此报文中携带的部分或全部链路层参数,则RTB需要向RTA回应一个Configure-Reject报文。在此Configure-Reject报文中,只包含不能被识别的链路层参数。
在收到Configure-Reject报文之后,RTA需要向RTB重新发送一个Configure-Request报文,在新的Configure-Request报文中,不再包含不被对端(RTB)识别的参数。
PPP 认证
注:PPP认证在进行配置时,只有认证方匹配置的时候进入aaa配置用户,被认证方只需要设置用户名和密码即可
PAP认证模式
Password Autengication Protocol
,密码认证协议,以明文
方式直接发送密码,二次握手
机制,发起方为被认证方
,可以做无限次的尝试(暴力破解),只在链路建立的阶段进行认证,一旦链路建立成功将不再认证
LCP协商完成后,认证方要求被认证方使用PAP进行认证。
被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方。
认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配,如果匹配,则返回Authenticate-Ack报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。
CHAP认证模式
CHallenge Handshake Authentication Protocol
,挑战/质询握手认证协议,以MD5
来隐藏密码,三次握手
认证,由认证方发起认证
,有效避免暴力破解,在链路建立成功后具有在此认证检测机制,目前企业网的远程连接介入环境中用的比较常见.
CHAP认证过程需要三次报文的交互。为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程所使用的报文均使用相同的Identifier信息。
-
LCP协商完成后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和一个随机产生的Challenge字符串,此Identifier即为后续报文所使用的Identifier。
-
被认证方收到此Challenge报文之后,进行一次加密运算,运算公式为MD5{ Identifier+密码+Challenge },意思是将Identifier、密码和Challenge三部分连成一个字符串,然后对此字符串做MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发回认证方。
-
认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同,然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不相同则认证失败。
使用CHAP认证方式时,被认证方的密码是被加密后才进行传输的,这样就极大的提高了安全性。
PPP 认证配置
认证方配置用户
aaa
local-user [用户名] password cipher [密码] 创建PPP认证用户
local-user [用户名] service-type ppp
进入相应的接口进行配置,被认证方只需要配置下面的认证即可
ppp authentication-mode pap/chap 开启pap/chap认证模式
ppp pap local-user [用户名] password cipher [密码] 配置pap认证
ppp chap user [用户名]
ppp chap password cipher [密码] 配置chap认证
启pap/chap认证模式
ppp pap local-user [用户名] password cipher [密码] 配置pap认证
ppp chap user [用户名]
ppp chap password cipher [密码] 配置chap认证
最后
以上就是外向音响为你收集整理的PPP-HCIAPPP - 点到点协议的全部内容,希望文章能够帮你解决PPP-HCIAPPP - 点到点协议所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复