Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PPP建立的过程

PPP建立的过程

作者头像
Ponnie
发布于 2021-02-24 02:58:49
发布于 2021-02-24 02:58:49
3K0
举报
文章被收录于专栏:玉龙小栈玉龙小栈

PPP 协议简介

一、

PPP 主要由三类协议族组成:

链路控制协议族(LCP):主要用来建立、拆除和监控PPP数据链路。

网络层控制协议族(NCP): 主要用来协商在该数据链路上所传输的数据包的格式与类型。

扩展协议族CHAP和PAP: 主要用于网络安全方面的验证,验证对端设备的合法性。

简述PPP 链路的状态机

1、Dead阶段(链路不可用阶段)

Dead阶段也称为物理层不可用阶段。

当通信双方的两端检测到物理线路激活(通常是检测到链路上有载波信号)时,就会从Dead阶段跃迁至Establish阶段,即链路建立阶段。

链路被断开后也同样会返回到链路不可用阶段。

2、Establish阶段(链路建立阶段)

接口UP之后,就会进入Establish状态,在Establish状态,会进行LCP协商,主要协商的内容有以下几点:

a.工作方式:SP/MP;协商使用单链路工作方式还是多链路工作方式;

b.接口最大接收单元:MRU;(两端不一致,则向小的协商);

c.魔术字:魔术字主要用于PPP链路上检查环路,主要用于检查物理链路的环路,比如光纤打环测试的时候,就会出现发送的LCP报文中的魔术字和接收到的LCP报文的魔术字相同的情况;如果相同则会重新选取魔术字;

d.认证方式。

下一个阶段既可能是验证阶段,也可能是网络层协议阶段。下一阶段的选择是依据链路两端的设备配置的,通常由用户来配置。

备注:MRU和MTU的区别:

MTU:最大传输单元

MRU:最大接收单元

接口的MRU=MTU

3、Authenticate阶段(验证阶段)

LCP协商通过则进入Authentication阶段,可选阶段,,进行PAP或者CHAP的认证;

4、Network阶段(网络层协商阶段)

认证通过则进入Network阶段;Network协商不通过也不会进入Terminate阶段,因为这样的话,配置了相应的IP地址之后,就可以直接发送业务,不需要重新建立链路后,再进行NCP协商。

5、Terminate阶段(网络终止阶段)

认证不通过则进入Terminate阶段,也就是拆链阶段;

详细讲解PPP 链路建立的过程

PPP链路建立过程分为三个阶段:

LCP协商阶段、认证阶段(可选)、NCP协商阶段;

1、LCP协商阶段:

协商的参数:工作方式MP/SP(两端不一致则使用SP)、魔术字(用于防止物理环路)MRU(会向小的协商)、认证方式;

当链路UP后,开始LCP协商。Client发送配置请求(Configuration Request)消息,里面携带参数(MRU,认证类型、魔术字),假设Server协商通过,回复确认消息(ACK)。假设Server协商不通过,回复NAK或者Reject消息。Client收到NAK或者Reject消息后,再次发送使用了新协商参数的Configuration Request消息(Configuration Request最多发送10次)。同理,Server也会向Client进行类似的过程。最终,如果双方协商成功,则进入下一个协商阶段,如果协商不成功则PPP链路无法建立

2、认证阶段:

PAP:

被验证方把本地用户名和口令以明文的形式发送到验证方验证方根据本地用户表查看是否有被验证方的用户名若没有,则认证失败;

若有,则查看口令是否正确,若口令正确,则认证通过;若口令不正确,则认证失败。

CHAP:

认证端接口配置用户名的情况下,被认证端接口用户名一定要配,密码可配可不配;认证端的接口下没有配置用户名的情况下,被认证端的接口下用户名一定要配,此时密码也必须配置。否则认证过程失败。

1.验证方配置用户名的验证过程

a)验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge),并同时将本端的用户名附带上一起发送给被验证方(挑战报文里面包含一个随机数和ID)

b)被验证方接到验证方的验证请求后,先检查本端接口上是否配置了PPP CHAP Password命令,如果配置了该命令,则被验证方用报文ID、随机数,命令中配置的用户密码和MD5算法对该随机报文进行加密,将生成的密文和接口的用户名发回验证方(Response)。

如果接口上未配置PPP CHAP Password命令,则根据此报文中验证方的用户名在本端的用户表查找该用户对应的密码,用报文ID、随机数,此用户的密钥(密码)和MD5算法对该随机报文进行加密,将生成的密文和被验证方自己的用户名发回验证方(Response)

c)验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败

2.验证方没有配置用户名的验证过程

a)验证方主动发起验证请求,验证方向被验证方发送一些随机产生的报文(Challenge)

b)被验证方接到验证方的验证请求后,利用报文ID、随机数,PPP CHAP Password命令配置的CHAP密码和MD5算法对该随机报文进行加密,将生成的密文和接口的用户名发回验证方(Response)

c)验证方用自己保存的被验证方密码和MD5算法对原随机报文加密,比较二者的密文,若比较结果一致,认证通过,若比较结果不一致,认证失败

3、NCP协商阶段:

a.静态IPCP协商:

R1会向R2发送Configure-Request报文,报文中携带自己接口的IP地址10.0.0.1。R2收到R1发送的配置请求报文后,进行相应的检查,先看IP地址是否冲突,如果不冲突,检查对方的IP地址是否为合法的单播IP地址(不为0.0.0.0),如果是合法单播IP地址,为对方的接口IP地址生成一个32位的主机路由

b.动态IPCP协商:

R1会向R2发送配置请求报文,报文中携带的IP地址为0.0.0.0,R2收到对端的配置请求报文后,发现对端IP地址为0.0.0.0,于是回复一个Configure-NAK报文,并且从全局地址池中选出的一个IP地址(10.0.0.254),通过Configure-NAK报文发送给到R1。

R1收到Configure-NAK报文后,将报文中的IP地址作为自己接口的IP地址使用,并回复Configure-Request报文,报文中携带的IP地址为10.0.0.254。

R2收到报文检查通过,生成一个10.0.0.254/32的主机路由,回复Configure-ACK报文。

链路监控阶段:

使用LCP协议的Echo-Request报文(10S/次)和echo-reply报文;

链路拆除阶段:

使用LCP协议的Terminate-Request报文(3s重传,只发送2次)和Terminate-reply报文;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉龙网络新知社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【面试系列】PPP链路魔术字及认证
PPP在此阶段使用 LCP协商链路层参数。如果链路层参数协商不成功(FAIL),PPP连接建立不成功,PPP退回到 Dead阶段。如果链路层参数协商成功(OPENED),则PPP进入 Authenticate阶段。
Ponnie
2021/07/29
2K0
[NetWork] PPP 概述
一种是通过虚拟接口类实现MP(Virtual Template): 可以利用用户名进行确定捆绑 一个VT接口可以派生多个捆绑
BreezeCloud
2022/11/18
8000
[NetWork] PPP 概述
华为、华三、思科高级网络工程师必经之路(5)我们的爱如同TCP连接,始终可靠,永不掉线——PPP---网络点到点协议、.PAP---密码认证协议、LCP协议报文类型、NCP协商保姆级别、PPP封装详解
盛透侧视攻城狮
2024/12/29
2010
华为、华三、思科高级网络工程师必经之路(5)我们的爱如同TCP连接,始终可靠,永不掉线——PPP---网络点到点协议、.PAP---密码认证协议、LCP协议报文类型、NCP协商保姆级别、PPP封装详解
全面剖析广域网技术PPP点对点协议,文末附常见面试题!
PPP 是一种广泛应用的链路层协议,旨在提供点对点网络通信的稳定性和可靠性。它是连接计算机世界的纽带,允许设备之间建立数据链路并进行通信。本文将深入探讨PPP的不同方面,包括其基础、协商过程、应用领域、安全性和未来展望。
网络技术联盟站
2023/11/06
1.3K0
全面剖析广域网技术PPP点对点协议,文末附常见面试题!
网络工程师从入门到精通-通俗易懂系列 | PPP协议+PPPoE看完后我忍不住敲了几波实验!
· PPP可以用于多种类型的物理介质上,包括串口线、电话线、光纤(例如SDH),也用于Internet接入。
网络技术联盟站
2019/08/01
2K0
网络工程师从入门到精通-通俗易懂系列 | PPP协议+PPPoE看完后我忍不住敲了几波实验!
HDLC与PPP协议原理与配置_路由交换基础内容
广域网中经常会使用串行链路来提供远距离的数据数据传输,高级数据链路控制HDLC(High-level Data Link Control)和点对点协议PPP(Point to point Protocol)是两种典型的串口封装协议。
张旭博客
2022/12/27
9540
HDLC与PPP协议原理与配置_路由交换基础内容
华为ensp中PPP(点对点协议)中的CHAP认证 原理和配置命令
PPP协议(Point-to-Point Protocol)是点到点协议,是一种常用的串行链路层协议,用于在两个节点之间建立点对点连接。它可以用于拨号网络、虚拟专用网络(VPN)和其他类型的点对点连接。
神秘泣男子
2024/06/03
1.5K0
华为ensp中PPP(点对点协议)中的CHAP认证 原理和配置命令
华为ensp中PPP(点对点协议)中的PAP认证 原理和配置命令
PPP协议(Point-to-Point Protocol)是点到点协议,是一种常用的串行链路层协议,用于在两个节点之间建立点对点连接。它可以用于拨号网络、虚拟专用网络(VPN)和其他类型的点对点连接。
神秘泣男子
2024/06/03
8280
华为ensp中PPP(点对点协议)中的PAP认证 原理和配置命令
网管工程师
答:有。①工作所处的OSI层次不一样,交换机工作在OSI第二层数据链路层,路由器工作在OSI第三层网络层②寻址方式不同:交换机根据MAC地址寻址,路由器根据IP地址寻址③转发速不同:交换机的转发速度快,路由器转发速度相对较慢。
一朵灼灼华
2022/08/05
9540
Android 3G/4G流量上网原理简析
手机一般会提供两种上网方式:Wifi或者3G/4G上网,Wifi上网其实就是利用网卡通过以太网上网;3G/4G则是通过基带,利用蜂窝网络进行上网,之前已经简单的阐述了Wifi上网跟3G上网的区别,本文主要简述Android 3G/4G上网的流程及原理。
看书的小蜗牛
2018/06/29
5.3K0
Android 3G/4G流量上网原理简析
华为ensp中PPPOE (点对点协议)原理和配置命令
PPPoE(PPP over Ethernet)是一种将PPP协议封装到以太网帧中的链路层协议。它可以使以太网网络中的多台主机连接到远端的宽带接入服务器,具有适用范围广、安全性高、计费方便的特点。
神秘泣男子
2024/06/03
1.1K0
华为ensp中PPPOE (点对点协议)原理和配置命令
第12章 HDLC
C.Authentication D. Dead E. Terminate
week
2018/08/27
3780
烽火2640路由器命令行手册-03-广域网配置命令
当帧中继端口与网络相连一般应配为DTE,若路由器为背靠背相连,则一台配成DTE,另一台配成DCE。如果需要双向LMI过程,应配置为NNI。 帧中继标准描述了一个终端用户与一帧中继网络之间的接口,称为UNI,以及邻近帧中继网络之间的接口,称之为NNI。下图描述了UNI和NNI的概念。
landv
2018/12/17
1.1K0
[Linux虚拟机]PPTP协议讲解
PPTP协议,是点对点协议(PPP)为基于点对点连接的多协议自寻址数据包的传输提供了一个标准方法。 PPP 最初设计是为两个对等结构之间的 IP 流量的传输提供一种封装协议。在 TCP-IP 协议集中它是一种关于同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原非标准第二层协议,即 SLIP。除了 IP 以外 PPP 还可以传送其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。 PPP 主要由以下几部分组成: 封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时通过统一链路的多路技术。(人们)精心的设计 PPP 封装,使其保有对常用支持硬件的兼容性。 链路控制协议:为了在一个很宽广的环境内能足够方便的使用,PPP 提供了 LCP。LCP 用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测 looped-back 链路和其他普通的配置错误,以及终止链路。提供的其他可选设备有:对链路中对等单元标识的认证,和链路功能正常或链路失败情况下的决定。 网络控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。 配置:通过链路控制协议使 PPP 链路很容易配置。该机制也应用于其它控制协议如网络控制协议(NCPs) 为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立之后,LCP 可选设备才可以被认证。然后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在连路上发送了。 链路将保持通信设定不变,直到外在的 LCP 和 NCP 关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。
李鹏华
2024/05/24
3580
[Linux虚拟机]PPTP协议讲解
[Linux虚拟机]利用pptp协议连接公司内网
PPTP协议,是点对点协议(PPP)为基于点对点连接的多协议自寻址数据包的传输提供了一个标准方法。 PPP 最初设计是为两个对等结构之间的 IP 流量的传输提供一种封装协议。在 TCP-IP 协议集中它是一种关于同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原非标准第二层协议,即 SLIP。除了 IP 以外 PPP 还可以传送其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。 PPP 主要由以下几部分组成: 封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时通过统一链路的多路技术。(人们)精心的设计 PPP 封装,使其保有对常用支持硬件的兼容性。 链路控制协议:为了在一个很宽广的环境内能足够方便的使用,PPP 提供了 LCP。LCP 用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测 looped-back 链路和其他普通的配置错误,以及终止链路。提供的其他可选设备有:对链路中对等单元标识的认证,和链路功能正常或链路失败情况下的决定。 网络控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。 配置:通过链路控制协议使 PPP 链路很容易配置。该机制也应用于其它控制协议如网络控制协议(NCPs) 为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立之后,LCP 可选设备才可以被认证。然后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在连路上发送了。 链路将保持通信设定不变,直到外在的 LCP 和 NCP 关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。
李鹏华
2024/05/24
3180
[Linux虚拟机]利用pptp协议连接公司内网
搭建 PPPOE 拨号上网
PPPoE是point-to-point protocol over ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。rp-PPP0E是一个集成了拨号客户端和服务端的解决方案。 下载地址:http://www.roaringpenguin.com/products/pppoe
DevinGeng
2019/04/09
5.6K0
PPPoE(Point-to-Point Protocol over Ethernet)技术
随着运营商对宽带接入技术要求的不断提高,以 xDSL、CableModem 和以太网为主的几种宽带接入技术在用户管理和计费等方面的不足开始显露,已无法满足运营商的需求。在众多的接入技术中,以太网接入方式经济实惠,而 PPP 协议又可以提供良好的访问控制和计费功能,结合以太网的经济性及 PPP 良好的可扩展性与管理控制功能,于是产生了 PPPoE (Point-to-Point Protocol over Ethernet,在以太网上承载 PPP协议) 。PPPoE协议的提出很好地解决了用户管理和上网收费等实际应用问题,得到了运营商的认可并广为采用。
网络技术联盟站
2020/06/17
2.5K0
用树莓派做VPN路由网关
目标是将树莓派做成VPN路由网关,即本身是一个VPN的Client(VPN的客户端),同时可以转发网络请求。这样只要连上家里的WIFI就可以无缝访问公司网络和其它网络。
云深无际
2021/04/14
4.7K0
用树莓派做VPN路由网关
这些问题你都答不上,还好意思说自己学过网络?
答:三层交换机接收到报文后,会查找硬件转发表,找目的MAC地址,然后根据硬件转发表进行转发。
网络技术联盟站
2019/07/23
3.9K0
tcp/ip系列--数据链路
tcp/ip系列上一篇(tcp/ip基础知识):https://blog.csdn.net/qq_19968255/article/details/83547041
Dlimeng
2023/06/29
2220
tcp/ip系列--数据链路
推荐阅读
相关推荐
【面试系列】PPP链路魔术字及认证
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档