华为机密,未经许可不得扩散文档密级:内部公开1PPP-PPPOE协议培训固网技术支持部ISSUE1.0华为机密,未经许可不得扩散文档密级:内部公开2学习目标•掌握PPP协议原理和封装结构。•熟悉PPP链路的建立过程。•掌握PPPOE协议原理和封装结构。•熟悉PPPOE报文的交互过程。•了解处理PPP/PPPOE相关问题的方法。学习完本课程,您应该能够:华为机密,未经许可不得扩散文档密级:内部公开3参考资料《PPP协议技术与标准-20020613-C》《PPPOE协议技术与标准-20020613-C》《ISN8850智能IP业务交换机故障处理手册(V5.50)》RFC1334、RFC1994•RequestForComments,请求注解,Internet标准(草案)想一想:上述资料的获取途径是什么?华为机密,未经许可不得扩散文档密级:内部公开4引入PPP协议位于OSI七层模型的哪一层?PPPOE协议位于OSI七层模型的哪一层?他们的区别和联系是什么?OSI:OpenSystemInterconnectReferenceModel开放式系统互联参考模型;ISO:InternationalOrganizationforStandardization国际标准化组织。华为机密,未经许可不得扩散文档密级:内部公开5目录第一章PPP协议第二章PPPOE协议第三章故障处理及报文分析华为机密,未经许可不得扩散文档密级:内部公开6PPP协议的特点PPP协议是数据链路层协议。支持点到点的连接。物理层可以是同步电路或异步电路。支持多种NCP,如IPCP、IPXCP,更好地支持了网络层协议。支持验证:CHAP、PAP,保证了网络的安全性。端对端的对等性,不是client/server模式。PPP:Point-to-PointProtocol点到点协议华为机密,未经许可不得扩散文档密级:内部公开7PPP协议族LCP:链路控制协议,用于建立、配置及测试数据链路。它允许通信双方进行协商,以确定不同的选项,并完成PPP数据链路的建立,拆除和监控。•PAP/CHAP:密码验证协议/询问握手鉴权协议,网络安全方面的验证协议族。NCP:网络控制协议,支持不同的网络层协议,协商在该数据链路上传输的数据包的格式与类型。•IPCP:NCP最常用的一种,在PPP链路上协商特定的IP参数,如IP地址,DNS地址。PPP扩展协议华为机密,未经许可不得扩散文档密级:内部公开8PPP协议状态机DeadEstablishAuthenticateNetworkTerminateUpOpenedFailSuccess/NoneClosingDownFailLCPPAP?CHAPIPCP华为机密,未经许可不得扩散文档密级:内部公开9PPP数据帧的格式PPP协议为了消除多协议数据包在点对点链路传输上发生歧义,因此采用类似于以太网的定界帧格式来表示PPP封装的起始点和结束点,PPP的帧格式看上去非常像ISO的HDLC标准。标志域:固定为7E。地址域:固定为FF。控制域:固定为03。协议域:•0021:IP报文;•c021:LCP报文;8021:IPCP报文;•c023:PAP;c223:CHAP。校验标志标志地址信息域控制协议域1B1B2B缺省1500B7EFF031B2B1B7E《--想一想为什么?华为机密,未经许可不得扩散文档密级:内部公开10LCP报文格式校验标志标志地址信息域控制协议域1B1B2B缺省1500B7EFF031B2B1B7ELCP数据报文的封装格式标识域代码域长度域数据1B1B2B0x010x020x030x040x050x060x070x080x090x0A0x0B0x0CConfigure-RequestConfigure-AckConfigure-NakConfigure-RejectTerminate-RequestTerminate-AckCode-RejectProtocol-RejectEcho-RequestEcho-ReplyDiscard-RequestReserved华为机密,未经许可不得扩散文档密级:内部公开11LCP配置参数选项格式LCP数据报文的封装格式校验标志标志地址信息域控制协议域1B1B2B缺省1500B7EFF031B2B1B7ELCP数据报文中配置参数选项的封装格式长度域类型域数据1B1B标识域代码域长度域数据1B1B2B0x010x020x030x040x050x060x070x08Maximum-Recive-UnitAsync-Control-Character-MapAuthentication-ProtocolQuality-ProtocolMagic-NumberAddress-And-Control-Field-CompressionReservedProtocol-Field-Compression华为机密,未经许可不得扩散文档密级:内部公开12LCP的协商过程LCPConfig_ReqLCPConfig_RejLCPConfig_ReqLCPConfig_NakLCPConfig_ReqLCPConfig_AckLCPConfig_ReqLCPConfig_AckAuthentication_ReqAuthentication_AckChallengeAuthentication_ReqAuthentication_AckConfig-req报文里的配置参数类型不支持时,回reject报文,同时把不支持的属性在此报文中带回Config-req报文里的配置参数类型支持,但值不支持时,回nak报文,同时把此属性及值在此报文中带回LCP协商成功,响应ack报文LCP协商是双向的Pap认证过程,认证及方式是可选的chap认证过程,认证及方式是可选的华为机密,未经许可不得扩散文档密级:内部公开13LCPConfig-Request&Config-Ack假设点对点通信的一端发送了一个Config-Request报文,报文内容如下:当对端正确接收到了该报文后,应该发送一个Config-Ack报文,报文内容如下:唯一改变的内容就是代码域(02表示是Config-Ack报文)。华为机密,未经许可不得扩散文档密级:内部公开14LCPConfig-Request&Config-Nak该数据报文中有下划线的配置参数选项的内容为对端不认可的。当对端正确接收到了该报文后,发现类型域为0x02的配置参数选项可识别,但该配置参数选项数据域的内容不认可,应发送一个Config-Nak报文且该报文中将携带希望的配置参数选项内容,报文内容如下:该报文中返回的值已经被更改,且当发端收到该报文后会重新发送一个Config-Request报文,报文内容如下:新的配置请求报文与老的配置请求的报文ID不一样。:华为机密,未经许可不得扩散文档密级:内部公开15LCPConfig-Request&Config-Reject下划线所表示的配置参数选项为对端不可识别的。当对端正确接收到了该报文后,发现类型域为0x02的配置参数选项不识别,应该回应一个Config-Reject报文,报文内容如下:该报文如果被原发送端接收后,又会重新发送一个Config-Request报文,报文内容如下:HowaboutCode-Reject&Protocol-Reject?华为机密,未经许可不得扩散文档密级:内部公开16认证阶段通信设备的两端首先通过Config-Request协商认证方式。验证方在其Config-Request报文中必须含有认证配置参数选项,不需认证的一方就不需携带该配置选项。双方都收到Config-Ack报文时,就会进入到认证阶段。•Code=1•Type=03Authentication-Protocol:华为机密,未经许可不得扩散文档密级:内部公开17PAP认证PAP认证是两次握手协议。•被验证方向验证方发送PAP认证的请求报文,携带了用户名和密码。•当验证方收到该认证请求报文后,则会根据报文中的实际内容查找本地的数据库,如果该数据库中有与用户名和密码一致的选项时,则回向对方返回一个认证通过的响应报文。如果用户名与密码不符,则向对方返回验证不通过的响应报文。:华为机密,未经许可不得扩散文档密级:内部公开18PAP认证请求报文012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Peer-IDLength|Peer-Id...+-+-+-+-+-+-+-+-+-+-+-+-+|Passwd-Length|Password...+-+-+-+-+-+-+-+-+-+-+-+-+-+:Code=?1Authenticate-Request华为机密,未经许可不得扩散文档密级:内部公开19PAP认证应答报文012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Msg-Length|Message...+-+-+-+-+-+-+-+-+-+-+-+-+-:Code=?2Authenticate-Ack3Authenticate-Nak华为机密,未经许可不得扩散文档密级:内部公开20CHAP认证CHAP为三次握手协议。它只在网络上传送用户名而不传送口令,因此安全性比PAP高。•首先由验证方向被验证方发送一段随机的报文,并加上自己的主机名,我们通称这个过程叫做挑战。•被验证方使用用户名所对应的密钥、报文ID和挑战用Md5加密算法生成应答,随后将应答和用户名送回。•验证方提取被验证方的用户名,然后去查找本地的数据库,根据该用户名所对应的密钥、保留报文ID和随机报文用Md5加密算法生成结果,和刚刚被验证方所返回的应答进行比较,相同返回通过,否则返回失败。:华为机密,未经许可不得扩散文档密级:内部公开21CHAP认证请求报文:Code=?1Challenge2Response012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Value-Size|Value...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Name...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+华为机密,未经许可不得扩散文档密级:内部公开22CHAP认证应答报文:Code=?3Success4Failure012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Code|Identifier|Length|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+