PPP协议技术原理.ppt
PPP协议技术原理,单击此处编辑副标题样式,部门/姓名,文档类型:文档密级:主送对象:抄送对象:文档编号:审 核 人:,修订记录,2,学习目标,了解HDLC,PPP框架性原理掌握PPP基本配置、排错,3,课程内容,第一章 HDLC协议第二章 PPP协议简介第三章 PPP协议工作原理第四章 PPP故障与诊断,4,HDLC协议简介,HDLC:高级数据链路控制协议,是一种面向比特的同步串行数字链路的封装协议规范。只支持点到点链路。协议内部通Keepalive报文来检测链路状态。是数据链路层最基础的一种协议,其他的WAN链路二层协议都是以该协议为基础发展而来。例如X.25的LAPB,PPP以及ISDN的LAPD等等。该协议有两个版本:ISO标准的HDLC和厂商私有的HDLC,它们有一定的区别,主要是对协议层的支持情况。,5,HDLC协议简介,一、ISO HDLC标准二、CISCO HDLC标准,6,标志,地址,控制,数据,帧校验,标志,8 8 8 16 可变长 16 8 bit,Proprietary,标识多种网络层协议Keepalive 0 x8035IP 0 x0800IPX 0 x8137,HDLC的链路操作,链路处于DOWN状态,当设备检测到载波或网管配置指示物理层可用时,HDLC发送一个UP事件,进入Establish阶段。启动链路检测定时器、初始化超时计数器,通过Keepalive报文交互建立连接,当收到对端链路检测帧时,将链路协议UP并进入Maintain阶段,链路始终处于UP状态、可承载网络层报文。,7,HDLC基础配置,路由器同步串口缺省支持CISCO HDLC私有协议,KEEPALIVE为10秒。HDLC封装的相关配置如下:,8,HDLC基础配置,一、Debug hdlc events 以上调试信息解读:my_seq 指本地端发送的报文序号 my_seen 指此前收到对端路由器对本地HDLC keepalive 报文认可的序号 your_seen 指本地对端认可的序号,序号是递增的,9,%Interface serial 1/0:receive one HDLC keepalive packet.%Interface serial 1/0 send one keepalive packet:my_seq=21,my_seen=20,your_seen=16line protocol is UP,not in loopback state.%Interface serial 1/0:receive one HDLC keepalive packet.%Interface serial 1/0 send one keepalive packet:my_seq=22,my_seen=21,your_seen=17line protocol is UP,not in loopback state.,HDLC基础配置,一、Debug hdlc events 以上调试信息解读:my_seq 根据keepalive 的时间不断递增,但未收到对方Keepalive 报文,始终都是20,本地也没有对对端序号your_seen的递增确认,说明在通讯过程中由于某种原因对端报文无法到达本地的HDLC 协议层,原因可能是对方设备关机或是线路传输问题。,10,%Interface serial 1/0:receive one HDLC keepalive packet.%Interface serial 1/0 send one keepalive packet:my_seq=21,my_seen=20,your_seen=16line protocol is UP,not in loopback state.%Interface serial 1/0 send one keepalive packet:my_seq=22,my_seen=20,your_seen=16line protocol is UP,not in loopback state.%Interface serial 1/0 send one keepalive packet:my_seq=23,my_seen=20,your_seen=16line protocol is UP,not in loopback state.,HDLC基础配置,一、Debug hdlc packets 以上调试信息解读:收发报文调试开关,打印出HDLC 收到的或要发送的所有报文(包括报文 长度,接收的报文类型),如果报文长度超过64 字节,则只打印头64 字节,11,Interface serial 1/0 HDLC input:packet-len=22(0 x16):8F 00 80 35 00 00 00 02 00 00 00 16 00 00 00 1AFF FF 00 5C E2 53packet-pkt_type=3(PDD_RARP)Interface serial 1/0 HDLC output:packet-len=22(0 x16):8F 00 80 35 00 00 00 02 00 00 00 1B 00 00 00 16FF FF 00 5F 8E D9,课程内容,第一章 HDLC协议第二章 PPP协议简介第三章 PPP协议工作原理第四章 PPP故障与诊断,12,PPP协议简介,PPP协议的定义:PPP协议提供了一种标准的方式在点对点的链路上传输多种网络层协议的数据报。,PPP协议与协议栈的对应关系,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层,PPP协议,PPP协议简介,PPP:点对点协议,是一种以ISO HDLC为基础支持多种上层协议,且各个厂商设备均支持的开放式标准协议。PPP 协议既支持同步线路,又支持异步线路,相比HDLC更具扩展性。PPP 还支持多种功能特性,主要有以下五种:1、IP地址及数据压缩自动协商功能;2、支持PAP、CHAP身份认证;3、支持多链路逻辑绑定功能;4、支持采用多种网络层协议;5、能够进行链路错误检测。,14,PPP协议简介,PPP相对于HDLC的区别 1、PPP是基于HDLC的桢格式开发的,HDLC只支持同步串口,但PPP支 持同步串口外也支持异步出口。2、PPP比HDLC增加了protocal和lcp两个字段,因此PPP协议可以进行 连路协商和多种网络层协议,如ip、ipx、appletalk。3、PPP比HDLC增加了身份认证功能。,15,PPP协议结构,PPP协议主要包含两个子协议:链路控制协议层(LCP)、网络控制协议层(NCP)。PPP协议不仅仅是一个数据链路层协议,它的NCP部分上跨到了OSI参考模型的三层,因此PPP还具有部分网络层的功能。,16,PPP数据结构,协议域长度为2个字节,主要用来指明信息域中使用的协议类型。,17,课程内容,第一章 HDLC协议第二章 PPP协议简介第三章 PPP协议工作原理第四章 PPP故障与诊断,18,PPP协商过程,的典型的PPP链路协商过程分为三个阶段:链路建立阶段、认证阶段(可选)、网络控制协商阶段,19,PPP协商过程,LCP(链路控制协议)配置、建立、维护和测试数据链路的连接,有如下协商参数:1 Maximum-Receive-Unit(最大接收单元)3 Authentication-Protocol(认证协议)4 Quality-Protocol(质量协议)5 Magic-Number(魔术数)7 Protocol-Field-Compression(协议域压缩)8 Address-and-Control-Field-Compression(地址和控制域压缩)身份认证、压缩、多链路绑定、回拨等功能均在LCP子层实现。NCP(网络控制协议)建立和配置不同的网络层协议,比如选择IPCP,协商IP及IP数据压缩等。IP地址协商就是在这层实现。,20,PPP认证机制,PPP提供认证协议有PAP(密码验证协议)和CHAP(竞争握手验证协议)。PAP认证特点 CHAP认证特点,21,认证简单,二次握手机制 明文格式发送用户名和密码 由被认证方发起认证 只在链路建立的阶段进行认证,链路建 立成功将不再进行认证检测 目前在PPPOE拨号中用的比较常见,认证复杂,三次握手机制 密文格式发送认证信息 由认证方发起认证,避免暴力破解 在链路建立成功后具有再次认证检测 机制 目前在金融网的广域网中比较常见,VS,PAP认证,两次握手协议明文方式进行验证,22,Client,Server,username:ruijiepassword:123,username:ruijiepassword:123,用户名+密码,验证成功,验证失败,RA,RB,PAP配置实例,客户端配置(被验证方):RA服务器端配置(验证方):RB,23,RA(config)#hostname RARA(config)#interface seril 0/0RA(config-if)#encapsulation pppRA(config-if)#ppp pap sent-username ruijie password 123,RB(config)#hostname RBRB(config)#username ruijie password 123RB(config)#interface seril 0/1RB(config-if)#encapsulation pppRB(config-if)#ppp authentication pap,CHAP认证,CHAP为三次握手协议只在网络上传输用户名,而并不传输口令安全性要比PAP高,但认证报文浪费带宽,24,Client,Server,Hostname:RAPassword:123,Hostname:RBPassword:123,RB+挑战报文,RA+加密后的密码,验证成功,验证失败,RA,RB,CHAP配置实例,客户端配置(被验证方):RA服务器端配置(验证方):RB,25,RA(config)#hostname RARA(config)#username RB password 123RA(config)#interface serial 0/0RA(config-if)#encapsulation pppRA(config-if)#ppp authentication chap,RB(config)#hostname RBRB(config)#username RA password 123RB(config)#interface serial 0/1RB(config-if)#encapsulation pppRB(config-if)#ppp authentication chap,注意:用户名是对方的,密码一定要相同且区分大小写,PPP多链路绑定,PPP multilink是将多个物理链路合并或者捆绑成一条逻辑链路 作用是增加带宽,减少延时,线路备份及将不同类型的接口捆 绑为一个逻辑接口 MP是由LCP在初始化时设置的一个功能选项。MP将Packet分成多 个小块的片段同时送到远端router,LCP再将它们恢复成完整的 Packet,MP 工作过程,PPP 物理链路在协商完LCP 的一般参数之后,再发起MP 请求,如果对方的链路支持MP,并且给出正确的应答,那么将和其它的物理链路共同捆绑到逻辑接口上下一步是进行NCP(比如IPCP)协商,如果协商成功,所有的MP 的物理链路将都使用同一个逻辑接口的网络地址。设定多链路PPP必须在逻辑接口上设置PPP multilink命令,用以指定该逻辑接口使用多链路的协商模式。,27,MP的配置实例,创建MP逻辑口进入物理口绑定到逻辑口,28,interface multilink 1-创建multilink 1 逻辑接口ip address 1.1.1.1 255.255.255.252-配置IP地址,或者用借用地址encapsulation ppp-封装PPP协议ppp multilink-使能MP功能interface Serial 1/0-进入具体物理口,进行逻辑绑定no ip address-物理口无需配置地址encapsulation ppp-封装PPP协议ppp multilink-使能MP功能multilink-group 1-绑定逻辑口,组号与multilink号一致interface Serial 1/1-其他需要绑定的物理口配置同理no ip addressencapsulation pppppp multilinkmultilink-group 1,课程内容,第一章 HDLC协议第二章 PPP协议简介第三章 PPP协议工作原理第四章 PPP故障与诊断,29,PPP故障和诊断,PPP常用的调试监控命令如下:,30,Ruijie#show interface serial interface-number#显示串口接口的信息Ruijie#show ppp multilink#显示串口接口的信息Ruijie#debug ppp packet#在 PPP 通讯过程中打印报文调试信息Ruijie#debug ppp negotiation#在 PPP 通讯过程中打印协商调试信息Ruijie#debug ppp authentication#在 PPP 通讯过程中打印授权调试信息,PPP故障和诊断,Show interface serial 1/0:调试信息解读,31,serial 1/0 is UP,line protocol is UPHardware is Infineon DSCC4 PEB20534 H-10 serialMTU 1500 bytes,BW 2000 KbitEncapsulation protocol is PPP,loopback not setKeepalive interval is 10 sec,setCarrier delay is 2 secRXload is 1,Txload is 1LCP OpenOpen:ipcpQueueing strategy:WFQ5 minutes input rate 30 bits/sec,0 packets/sec5 minutes output rate 30 bits/sec,0 packets/sec49 packets input,786 bytes,0 no bufferReceived 1 broadcasts,0 runts,0 giants0 input errors,0 CRC,0 frame,0 overrun,0 abort47 packets output,768 bytes,0 underruns0 output errors,0 collisions,1 interface resets1 carrier transitionsV35 DTE cableDCD=up DSR=up DTR=up RTS=up CTS=up,1、从物理层来观察链路状态,最后一行的五个信号(DCD、DSR、DTR、RTS、CTS)将决定serial 是否UP,这是PPP Line Protocol UP 的首要条件2、从 LCP 状态是否UP,IPCP 状态是否UP 来看PPP 协商是否成功,如果都是UP 那么line protocol 将处于 up 状态,链路层应该是可以通讯的。3、可以参考底层数据收发状况:Packet Input 和Output 是指报文接收和发送的个数,假如,没有出现interface reset,说明报文成功发送,如果在Input Queue 中没有drop 个数,说明报文都成功地接收。4、DCD:UP表示监测到数据载波 DSR:UP表示数据发送准备就绪,DCE端可用 DTR:UP表示数据终端准备就绪,DTE端可用 RTS:UP表示请求发送,可以接受DTE端呼叫 CTS:UP表示允许发送,确认可以接受DTE呼叫,PPP故障和诊断,Debug ppp packet:调试信息解读,32,Ruijie#debug ppp packetPPP:serial 1/0 S LCP CONFREQ id 3 len 10MAGICNUMBER(6)0 x0 0 x2b 0 x39 0 x1b%LINK CHANGED:Interface serial 1/0,changed state to upPPP:serial 1/0 R LCP CONFREQ id 6 len 10MAGICNUMBER(6)0 x29 0 xbd 0 xea 0 xebPPP:serial 1/0 S LCP CONFACK id 6 len 10MAGICNUMBER(6)0 x29 0 xbd 0 xea 0 xebPPP:serial 1/0 R LCP CONFACK id 3 len 10MAGICNUMBER(6)0 x0 0 x2b 0 x39 0 x1bPPP:serial 1/0 LCP upPPP:serial 1/0 PPP up.PPP:serial 1/0 S IPCP CONFREQ(2)id 10 len 2Address(6)0 x64 0 x64 0 x64 0 x1PPP:serial 1/0 R IPCP CONFREQ(3)id 10 len 2Address(6)0 x64 0 x64 0 x64 0 x2PPP:serial 1/0 S IPCP CONFACK(3)id 10 len 2Address(6)0 x64 0 x64 0 x64 0 x2PPP:serial 1/0 S LCP PROTREJ id 4 len 10 protocol=0 x82070103PPP:serial 1/0 R IPCP CONFACK(2)id 10 len 2Address(6)0 x64 0 x64 0 x64 0 x1%LINE PROTOCOL CHANGE:Interface serial 1/0,changed state toUPRuijie#PPP:serial 1/0 S LCP ECHOREQ id 1 len 12 magic 0 x2b391b,1、以上信息是PPP 协商从开始到Line Protocol Up 的所有报文,没有认证2、注意到黑体部分的调试信息:双方路由器互相发送LCP CONFREQ,再互相做LCP CONFACK 应答,此后进入IPCP 协商,同样注意黑体部分的内容,双方路由器互相发送 IPCP CONFREQ,并且附上本身的IP 地址,然后在收到IPCP 的 CONFREQ请求之后,互相发送IPCP CONFACK 应答附上对方的IP 地址,至此PPP协商就成功,PPP故障和诊断,Debgu ppp negotiation,33,PPP:serial 1/0 reset lcp optionsPPP:serial 1/0 sending OPCODE_CONFREQ,type=5(LCP_MAGICNUMBER),value=0 x10a5df%LINK CHANGED:Interface serial 1/0,changed state to upLCP:received config,type=5(MAGICNUMBER)value=0 x29cbca60ackedPPP:serial 1/0 OPCODE_CONFACK received,type=5(LCP_MAGICNUMBER),value=0 x10a5dfPPP:serial 1/0 state=Acksent ppp_recv_confack(0 xc021):rcvdid 5PPP:serial 1/0 reset ipcp optionsIPCP:serial 1/0 sending OPCODE_CONFREQ,type=3(IPCP_ADDRESS),Address=IPCP:serial 1/0 received ADDR:her address 100.100.100.2(ACK)IPCP:ipcp_do_req_cb:returning OPCODE_CONFACK.IPCP:serial 1/0 OPCODE_CONFACK received,type=3(IPCP_ADDRESS),Address=PPP:serial 1/0 state=Acksent ppp_recv_confack(0 x8021):rcvdid 3%LINE PROTOCOL CHANGE:Interface serial 1/0,changed state toUP注意到上述的黑体部分,正是LCP 和IPCP 协商的参数的选项。,PPP故障和诊断,Debug ppp authentication:调试信息解读,34,以下是PAP 验证方打印出的信息:PPP:serial 1/0 PAP authenticating peer RG36PPP:serial 1/0 Remote passed PAP authentication sending Auth-Ack to peer.PPP:serial 1/0 lcp authentication OK!以下是CHAP的被验证方,当发送的CHAP 密码出错时,打印出的信息如下:PPP:serial 1/0 recv CHAP challenge from RouterPPP:serial 1/0 remote router failed CHAP authenticationPPP:serial 1/0 Remote msg is:Authentication failure,PPP故障和诊断,用show interface serial slot-number/interface-number 命令来查看接口的状态,同步口接口有四种状态,下表以serial 1/0 为例:,35,接口无法UP,1、必须排除接口被人为shutdown 的故障;2、用show interface serial命令来查看接口的状态,物理层参数(DCD、DTR、DSR、CTS、RTS)都应该是UP 的,如有DOWN状态,需判断如V.35、V.24、RJ48 电缆线是否有问题,可采用打环测试方法判断;3、如接口的线缆是DTE(和线路的设备相连的接头为针头的线缆)而DCD 是Down,则需判断电缆线相连的Modem 的线路协商是否成功,如果成功,Modem 上的DCD 或者LINE 的指示灯应该常亮;4、环回测试是判断线路问题的最好工具,具体参考环回测试指导。,36,链路协议层无法UP,1、先确定物理层UP,再确认链路层是否有数据收发:用show interface serial 观察Packet Input 和Output的个数,如无Input 报文,说明对端路由器可能没开机或对方发送出现故障;用Clear Count 清掉接口计数,观察是否有Interface resets 的个数,如果有,说明本端发送出现问题;2、确认是否线路成环:用show interface serial查看是否有Loopback is set 的提示,用debug ppp packet 查看PPP 协商时两端Magic Number 的应答是一样的,成环后有可能UP,但无法PING通;3、确认两端配置的协议一致:一端PPP,一端HDLC,用debug ppp packet 可以看出Protocol type 不匹配的提示,则造成链路的协议无法UP。4、确认协商参数正确,如认证:如存在CHAP 或PAP认证,须确保用户名和密码正确,这可通过debug ppp packet 或 debug ppp negotiation 调试信息来排查。,37,链路UP,无法PING通,LCP 协商成功是前提,如接口没有配置IP 地址,那么line protocal也是可以up 的,但是没有ipcp open的提示,会导致无法ping通对端;排除是否存在打环状态,接口是否有loopback is set提示,去掉环路再测试;排除是否存在“鸳鸯线”-及运营商将收发跳错了位置,这种情况需打环即可判断;点对点线路,IP地址不对有时也能up,为此需要确保两端配置正确。如line protocal 不停的up down,且提示lcp not open,packet drop,则需注意时钟是否翻转,可在接口下invert txclock反转时钟,消除时延,确保发送正确。,38,参考文档,39,星网锐捷网络有限公司地址:北京海淀区复兴路29号中意鹏奥大厦东楼11层 邮编:100036E-Mail:,