2.PPP专题
PPP协议的组成
-
LCP链路控制协议:
-
用于管理PPP数据链路,建立,拆除,监控数据
-
-
NCP网络控制协议:
-
用于协商所承载的网络层协议类型及其属性,协商数据包的格式和类型,配置网络层协议
-
-
验证协议
-
PAP
-
CHAP
-
PPP链路的建立过程
-
会话协议的建立过程
-
链路建立阶段:发送LCP报文来检测链路的可用情况
-
验证阶段(可选):链路建立成功之后,根据PPP帧中的验证选项来决定是否验证
-
网络层协商阶段:双方发送NCP报文来选择并配置网络层协议,协商使用的网络层协议,选择对应的网络层地址
-
-
会话流程:
-
物理层不可用,PPP处于dead阶段,链路必须从这个阶段开始和结束
-
当物理层可用时进入Establish阶段,进行LCP协商,协商内容:
-
协商内容包括工作方式是 SP 还是MP、最大接收单元 MRU、验证方式、魔术字和异步字符映射等选项。LCP 协商成功后进入Opened状态,表示底层链路已经建立。
-
-
如果没有配置验证,则直接进入 Network 阶段。如果配置了验证,则进入Authenticate阶段,开始CHAP或者PAP验证
-
如果验证失败,则进入Terminate阶段,拆除链路,LCP状态转为Down;
-
如果验证成功则进入Network阶段,由NCP协商网络层协议参数,此时LCP状态仍为Opened;NCP状态从Initial转到Starting
-
在Network阶段PPP链路金NCP协商,NCP协商支持IPCP,MPLSCP等协商,NCP协商支持IPCP协商,IPCP协商主要包括双方的IP地址,通过NCP协商选择配置一个网络层协议;只有相应网络层协议协商成功之后,该网络层协议才可用通过这PPP链路发送报文
-
PPP链路将一直保持通信,直到有明确LCP或者NCP帧来关闭这条链路,或者发生了外部事件
-
在Terminate阶段,如果所有资源都被释放掉,通信双方将回到dead阶段
PPP 报文封装的帧格式
首位8bit的Flag用来标识帧的起始和结束
PPP 链路协商的报文类型
PPR 捆绑的方法和区别
-
PPP捆绑是为了将多条PPP链路捆绑为一条逻辑链路来提高网络的带宽和可靠性
-
捆绑方式分为 MP 和Virtual-Template
-
MP 只能用于捆绑 PPP链路,但VT还可用于其他协议
-
VT的缺点是 VT的状态无法反映物理接口的真实状态,影响路由收敛的速度;而MP能够做到MP 接口状态与物理接口一致,一般推荐使用MP
-
LCP 如何检测环路
-
魔术字为一个随机产生的数字,用于检测链路环路,如果收到的LCP 报文中的魔术字和本地产生的魔术字相同,则认为链路有环路。
PAP 和 CHAP 验证工作原理,CHAP 为什么比 PAP 安全
-
PAP验证:
-
被验证方首先发起验证请求,两次握手验证
-
被验证方以明文发送用户名和密码到主验证方
-
主验证方核实用户名和密码
-
如果用户合法且密码正确则会发送ACK消息通告对端验证通过,允许进入下一阶段协商
-
如果用户名或密码不正确,则发送NAK消息,通告对端验证失败
-
-
注意:
-
验证失败后不会将链路关闭,只有当失败次数到达一定值时,链路才被关闭
-
可以在一方进行,由一方验证另一方的身份,也可以进行双向身份验证(两个单向独立验证的过程);
-
用户名和密码是明文发送的,可能对网络安全造成威胁
-
-
-
CHAP验证:
-
主验证方首先发起验证请求,三次握手验证
-
主验证方主动发起验证请求,主验证方向被验证方发送一个随机数值,同时将本端的用户名一起发送给被验证方
-
被验证方接收到主验证方的请求后,检查本地密码;
-
如果本端接口上配置了默认的CHAP密码,则被验证方选用此密码
-
如果没有配置默认的CHAP密码,则被验证方根据此报文中主验证方的用户名在本端的用户列表中查找该用户对应的密码,并选用找到的密码;
-
-
随后被验证方利用MD5算法对报文ID,密码,和随机数生成一个摘要,将此摘要和自己的用户名发回主验证方;
-
主验证方用MD5算法对报文ID,本地保存的被验证方密码和原随机数生成一个摘要,并与收到的摘要数值进行比较
-
如果相同被验证方发送Acknowledge消息声明验证通过
-
如果不同则验证不通过,向被验证方发送Not Acknowledge
-
-
CHAP单向验证是指一端作为主验证方,另一端作为被验证方;双向验证是单向验证的简单叠加
-
-
对比:
-
PAP是两次握手,CHAP是三次握手
-
PAP密码是明文在链路上发送缺乏安全性,CHAP在网络上传输用户名,不传密码
-
都支持双向身份验证
-
CHAP 认证的特点是只在网络上传输用户名,而不是传输口令,并且传输的哈希值无法根据哈希值推导出输入参数,同时是验证方主动向被验证方发送挑战消息,可以避免暴力破解,因此它的安全性要比 PAP 高。
-
PPPoE 协商过程
-
PPPoE的会话建立有三个阶段
-
PPPoE 发现阶段
-
PPPOE 会话阶段
-
PPPOE 终结阶段
-
-
-
在发现阶段有四个步骤:
-
PPPoE 客户端(终端 PC 或者路由器)广播一个 PPPoE Active Discoven Initiation 报文(PADI),包含它请求的服务类型。目的 MAC 地址为广播地址
-
PPPoE服务器(聚合路由器)发送一个PPPoE Active Discover Offer报文(PADO),描述它能够提供哪些服务;目的MAC地址为客户(终端用户或者路由器)的单播地址
-
PPOE 客户发送一个单播 PRPoP Active Discovery Request 报文(PADR)给PPPoE服务器
-
PPPoE服务器发送一个单播PPPoE Active Discover Session-confirm报文(PADS)给客户端;这是一个确认报文,并且会话建立完成;里面包含Session ID
-
-
当发现阶段完成后,PPPOE 客户端和被选择的 PPPOE 服务器具有用来在以太网上建立 PPP连接的信息。当 PRPOE会话开始后,PPP 经历正常的链路控制协议(LCP)和网络控制协议(NCP)过程。
-
任何时候一个已经建立的会话指出这个PPPOE会话要被终止的时候,将会发送PPPoE Active Discovery Terminate(PADT)报文。PPPoE 客户或 PPPOE 服务器都可以发送 PADT 报文。