HDLC和PPP原理与配置

news2024/11/13 23:00:55

HDLC:高级数据链路控制
PPP:点到点协议

PPP:包括LCP链路控制协议,用于各种链路协议层参数的协商内容包括最大接收单元MRU,认证方式,魔术字等选项.
NCP:网络控制协议,用于各网络层参数的协商,更好地支持了网络层协议.

PAP:口令认证.
CHAP:质询握手认证协议

PPP有两种验证方式:
PAP为两次握手验证,口令为明文.
CHAP为三次握手验证,口令为密文.
PPP验证对端路由器可只采用PAP和CHAP验证方式,这两种按顺序验证前一种失败后,换另一种验证,一般来说,CHAP验证更加的安全.

PAP和CHAP的验证是哪一方发起的?PAP和CHAP的最大不同点是什么?
PAP被验证方将自己的用户名及密码发送给验证方;CHAP验证时验证方发起;验证的主要区别:PAP明文发送,CHAP是密文发送.

PAP的详细过程是什么样的?
被验证方用配置的用户名和密码使用Authenticate-Request报文以明文方式发送给对方.认证方收到被认证方的用户密码后,根据本地配置的用户和密码进行比对,如果比对成功,则返回Authenticate-Ack报文,否则返回Authenticate-Nak报文,表示认证失败.

PAP为两次握手协议,详细验证过程如下:当两端链路可相互传输数据时,被验证方发送用户和密码给验证方,验证方根据本端的用户表(或Radius服务器)查看是否有此用户,口令正确.则会给对端发送ACK报文,通知对端已允许进入下一阶段协商;否则发送Nak报文,通知对端验证失败.一次认证失败并不会直接将链路关闭,只是当验证不过的次数到达一定值时,才会关闭链路,这样才可以防止因误传,网络干扰造成不必要的LCP重新协商.

CHAP详细验证过程是什么样的?
LCP协商完成之后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和随机陈长生的Challenge字符串,,被认证方收到此Challenge报文后进行一次加密运算,运算公式是{Identifier+密码+Challenge},意思是将Identifier,密码和Challenge三部分连在一起形成字符串,然后对此字符串进行MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装子啊Response报文中发回认证方.

认证方收到发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息,得到密码信息后进行一次加密运算,运算方式和被认证方的加密方式运算方式相同,然后再将运算得到的摘要信息和Response报文中封装的摘要信息做比较,相同则认证成功,不同就失败,提高了安全性.

PPP LCP协商中的Magic-number选项有什么意义?

这个是协商双方的魔术字,两端魔术字不能重复,魔术字可用来检测链路的情况.被确认链路就不能UP.

前言

广域网中经常会使用串行链路来提供远距离的`数据传输,高级数据链路控制HDLC和点对点协议PPP是两种典型的串口封装协议.

串行链路的数据输出方式

它常用于广域网中.串行链路中定义了两种数据传输模式:异步和同步.
异步传输是以字节为单位来传输数据,并且需要额外的开始位和停止位,起始位是0,停止位是1.在这种传输模式方式下,每个字节的发送都需要额外的开销.
同步传输是以帧位单位来传输数据,在通信时需要使用时钟同步本端和对端,DCE即数据通信设备,它提供他们之间的数据传输的时钟信号.DTE即数据终端设备,通常使用DCE产生的时钟信号.

HDLC协议应用

全称高速数据链路控制,是一种面向比特的链路协议.
ISO制定的HDLC是一种面向比特的通信规则.单位是帧.它有以下特点:
协议不依赖任何一种字符编码集.
数据传输可透明传输,用于透明传输的"0比特插入法"易于硬件使用(就是连续的五个1后面要插入一0这样可以有效的避免帧边界冲突.)
全双工模式:不必等待确认可连续发送数据.
所有的帧都要进行CRC检验,并对信息帧进行编号,可防止漏收或重收.
传输控制功能与处理工能分离,具有灵活性和控制性.

HDLC帧结构

它有三种帧:信息帧,监控帧,无编号帧.
完整的HDLC帧是由标志字段(F),地址字段(A),控制字段(C),信息字段(I),帧校验序列字段(FCS)等
标志字段:01111110,用于字段的开始和结束,用于帧与帧之间的添充符.
地址字段:地址信息.
控制字段:构成各种命令的以及响应,以便对链路进行监视和控制.发送方用此字段来控制接收方执行约定的程序(比如Request和ACK),接收方则用此报告已完成的操作或者状态的变化.
信息字段:包含任意长度的二进制数,上限由FCS字段或通讯节点确定,一般来说是1000-2000,下限时0,就是没有信息字段,监视帧没有信息字段.
帧检验序列字段:16位CRC对内容进行判断.
HDLC帧分为三种:
信息帧(I帧):用于传送有效信息或数据
监控帧(S帧):用于流量控制和差错检验,在控制字段的前两位由10比特填写,监控帧没有信息字段,所以通常是6字节.
无编号帧(U帧):用于链路的建立和消除以及多种控制功能.

HDLC基本配置

用户只需要在串行接口视图下运行link-protocol hdlc命令就能使能接口的HDLC协议,华为设备上的串行接口默认运行PPP协议.用户在串行链路的端口配置相同的链路协议,双方才能通信.

HDLC接口地址借用

一个接口如果没有IP地址就没有办法生成路由,也就没有办法转发报文.IP地址借用允许一个没有IP地址的接口从其他的接口借用地址.这样可以避免接口独占IP地址,节省IP地址资源,一般建议借用loopback接口的IP地址,因为这些接口总是处于活跃状态,因而可以提供稳定可用的IP地址.
但还是需要在RTA配置静态路由.

配置验证

disp IP interface brief查看lookback接口的IP地址成功.

PPP协议应用

PPP协议就是点到点链路协议,主要用于在全双工的同异步链路上进行数据通信.
PPP协议优点如下:
PPP及支持同步传输由支持异步传输,x.25,FR(Frame Relay)等数据链路层协议支持同步传输,SLIP仅支持异步传输.
PPP协议具有很好的拓展性,比如在以太网链路上承在PPP协议时,PPP可用拓展成PPPoE.
PPP提供了LCP协议,用于公众链路层参数的协商.
PPP提供了各种NCP协议(IPCp,IPXCP),用于网络层参数的协商.
PPP提供了认证协议:CHAP,PAP.
无重传机制,网络开销小,速度快.

PPP组件

PPP包含两个组件:链路控制协议和网络层控制协议,
PPP定义了链路控制协议LCP.LCP可以自动检测链路状态,如是否存在环路;协商链路的参数,最大数据包长度,使用何种认证协议.与其他的数据链路层协议相比,PPP协议的一个重要的特点是提供认证功能,链路两端可以协商使用任何认证协议来实施过程,只有认证成功后,次啊会建立连接.
PPP定义了一组网络层控制NCp,每个NCP对应一种网络协议,用于协商网络层等参数,例如IPCp-用于协商控制协议,IPXCP用于协商控制IPX协议.

PPP链路建立过程

PPP链路建立过程的描述如下:
dead阶段:物理层不可用阶段.当双方通信建立时,就会从dead转到establish阶段,即链路建立阶段.
在这个阶段PPP链路会进行LCP参数协商,包括:最大接收的单元MRU,认证方式,魔术字等选项.LCP参数协商确定后就会进入Opened模式,表示链路已经建立.
多数情况下是需要链路进行认证才能进入Authenticate的,PPP默认情况下是不进行认证的.如果是要求认证,则需要在链路阶段双方进行协商.如果在这个阶段再次收到configure-Request报文,则又会回到链路建立阶段.
Network阶段,PPP链路进行NCP协商来选择和配置一个网络层协议并进行网络层参数协商,只有经过网络层协商成功后,网络层协议才能在链路层传输.如果这个阶段接收到configure-Request报文,也返回链路建立阶段.
NCP协商成功后,ppp链路将保持通信状态PPP运行过程中,可以随时中断连接,物理链路断开,认证失败,超过定时器时间,管理员手动配置关闭,都会链路进行到Terminate阶段.
在Terminate阶段,如果将所有的资源都被释放,通信双方重新建立PPP连接.

PPP帧结构

PPP采用了与HDLC协议类似的帧结构:
Flag域标识物理帧的起始和结束,该字节01111110(0x7e).
PPP帧与HDLC帧的目的地址域有差异,PPP帧的地址域使固定位11111111(0xff)是一个广播地址.
PPP数据帧的控制域默认位00000011(0x03),表示无序号帧就是不是需要回复和应答的数据帧.
帧校验位FCS是一个16位校验和.用于检测PPP帧的完整性.
协议字段:典型的字段:0xC021表示LCP报文0xC023代表PAP报文0xC223代表CHAP报文.
信息字段包含协议字段中的指定数据包,数据字段的默认最大长度被称为最大接受单元MRU,缺省值是1500字节.
如果协议字段被设为0xC021,则说明链路双方在用LCP报文进行PPP链路协商和建立:
code字段主要是用来给LCP标识报文类型的,经典的报文类型是有配置信息报文(0x01),配置成功信息报文(0x02),终止请求报文(0x05).
Identifier域为一个字节用来匹配请求和响应.
Length域的值就是LCP报文的总字节的数据.
数据字段则承载各种的TLV参数用于协商配置选项,包括最大接收单元,认证协议等等.

LCP报文

configure-request(配置请求):链路层协商的过程中发送过来的第一个报文,表明了双方开始协商链路层参数.
configure-Ack(配置响应):收到对端发送来的Congfigure-request报文,如果取值完全接收,则以此报文响应.
configure-Nak(配置不响应):..............................................................不被本端认可,则发送此报文且携带本端的可接受的配置参数.
Configure-Reject(配置拒绝):..............................................................,如果本端不能识别对端的configure-request中的某些参数,则发送此报文并且本端不能认识别的配置参数.

LCP协商参数

LCP报文携带的一些常见的配置参数有MRU,认证协议,以及魔术字.
VRP平台上,MRU参数使用接口上的最大传输单元(MTU)值来表示.
常见的PPP协议有PAP和CHAP,一条PPP链路可以使用不同的认证协议来认证对端,但是被认证方必须支持要求使用的认证方式和正确配置用户名和密码等认证信息.
魔术字是随机数字,确保两端产生相同魔术字的可能性.
是在收到Configure-request时校验魔术字,无环路,则使用configure-Ack报文认证(其他参数也协商成功).后续报文含有魔术字段,则该字段设置为协商成功的魔术字.

LCP链路参数协商

RTA和RTB使用串行链路相连,运行PPP.当物理链路变为可用状态之后,RTA和RTB使用LCP协商链路参数.本例中,RTA首先发送一个Configure-Reqeust报文,它包含RTA上而配置的全部参数,RTB收到之后,如果RTB能识别并接收此报文中的所有链路层参数,册向RTA回应一个Configure-Ack报文.
RTA在没有接收到Configure-Ack报文的情况下会每隔3秒,发送一个Configure-request,超过十次没有接收到则停止,认为对方不可用.
上述的过程只是表明RTA的配置RTB表示接收.没有表示RTB的配置RTA接收.跟相亲一样,都要看对方的条件.

LCP链路参数协商

当RTB收到RTA发送的Configure报文之后,如果RTB能识别次报文中携带的所有链路层,但是认为部分或者全部参数都不同意,即参数的取值协商不同,则RTB需要回复RTA一个Configure-Nak报文.
在这个Configure-Nak中,包含不能接受的链路层参数,这些参数均被修改成RTB可以接受的取值(或者范围).
在收到这个Configure-Nak之后,RTA选择此报文本地配置的其他参数,并重新发送一个Configure-request.

LCP链路参数协商

当RTB收到RTA发送的Configure-request报文之后,如果RTB不能识别此报文中携带的部分或者全部链路参数,则RTB需要向RTA回应一个configure-Reject保卫呢,在这个报文中只包含不能被识别的链路层参数.
在收到拒绝请求后,RTA需要向RTB重新发送一个Configure-Request报文,在新的报文不再含有不被对端识别的参数.

PPP基本配置

在建立PPP链路之前,必须现在串口接口上配置链路层协议.如果接口运行的不是PPP协议,则需要运行link-protocol ppp命令使能数据链路层的PPP协议.

PPP认证模式-PAP

PAP认证的工作原理比较简单.两次握手认证协议,密码以明文方式在链路上发送.
LCP协商完成后,认证放要求认证方使用PAP进行认证.
被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方.
认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配,如果匹配,则返回Authenticate-Ack报文,表示认证成功.否则返回Authenticate-Nak报文,表示认证失败.

PPP认证模式-CHAP

CHAP认证过程过程需要三次报文的交互,为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程使用的报文均使用相同的Identifier信息.LCP协商完成后,认证方发送一个Challenge报文给被认证方,报文中含有Identifier信息和随机产生的Challenge字符串,此的Identifier即为后续报文所使用的Identifier.
被认证方收到此Challenge报文后,进行一次加密运算,运算公式为MD5{Identifier+密码+Challenge},意思是将Identifier,密码和Challnege三部分连接成一个字符串,对此字符串进行MD5运算,得到一个16字节长的摘要信息,然后将此摘要信息和端口上配置的CHAP用户名一起封装在Reponse报文中发回认证方.
认证方接收到被认证方发送的Response报文之后,按照其中的用户名在本地查找相应的密码信息之后,进行一次加密运算,运算方式和被认证方的加密运算方式相同,运算得到的摘要信息域Response信息报文封装的摘要信息做对比,相同则认证成功,不同则失败.

IPCP静态地址协商

IPCP使用和LCP相同的协商机制,报文类型,但是IPCP并非调用LCP,只是工作过程,报文等和LCP相同.
IP地址协商包括两种方式:静态配置协商和动态配置协商.
如图所示,两端路由配置的IP地址分别为10.1.1.1/30和10.1.1.2/30.
静态IP地址的协商过程如下:
1,每一端都要发送Configure-Request报文,在此报文中包含本地配置的IP地址;
2,每一端收到Configure-Request报文之后,检查其中的IP地址,如果IP地址是一个合法的单播IP地址,而且和本地配置的IP地址不同(没有IP冲突),则认为对端可用使用该地址,回应一个Configure-Ack报文.

IPCP动态地址协商

两端动态协商IP地址的过程:
RTA向RTB发送一个Configure-Request报文,此报文中会包含一个IP地址0.0.0.0,表示向对端请求IP地址;
RTB收到上述Configure-Request报文后,认为其中包含的地址(0.0.0.0)不合法,使用Configure-Nak回应一个新的IP地址10.1.1.1;
RTA收到此Configure-Nak报文之后,更新本地IP地址,并重新发送一个Configure-Request报文,包含新的IP地址10.1.1.1;
RTB收到Configure-Request报文之后,认为其中包含的IP地址为合法地址,回应一个Configure-Ack报文.
同时,RTB也要向RTA发送Configure-Request报文请求使用地址10.1.1.2,RTA认为此地址合法,回应Configure-Ack报文.

PAP认证

local-user huawei password cipher huawei123命令用于创建一个本地用户,用户名位"huawei",密码位"huawei123",关键字"cipher"表示密码信息在配置文件被加密.
local-user huawei service-type ppp命令用于设置用户"huawei"为PPP用户.
ppp authentication-mode pap命令用于开启PAP认证功能,及要求对端使用PAP认证.
ppp pap local-user huawei password cipher huawei123命令用于在被认证方配置PAP使用的用户名和密码信息.

配置验证

配置CHAP认证模式

local-user huawei password cipher huawei123命令用于创建用户一个本地用户,用户名为"huawei"
密码为"huawei123";关键字"cipher"表示密码信息在配置文件中加密.
local-user huawei service-type ppp命令用于设置用户"huawei"为PPP用户.
ppp authentication-mode chap命令认证方开启CHAP认证的功能,及要求对端使用CHAP.
ppp chap user huawei命令用于在被认证方设置CHAP使用在用户名为"huawei".
ppp chap password cipher huawei123命令用于在设置CHAP使用的密码为"huawei123".

配置验证

本章总结

1,两端都受到Configure-Ack.
2,三次.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle数据库 查看SQL执行计划的几种方法

前言 在日常的运维工作中,SQL优化是DBA的进阶技能,SQL优化的前提是要看SQL的执行计划是否正确,下面分享几种查看执行计划的方法,每一种方法都各有各的好处,可以根据特定场景选择某种方法。 一.使用AUTOTRACE查看执行…

Hbase Shell

一、启动运行HBase 首先登陆SSH,由于之前在Hadoop的安装和使用中已经设置了无密码登录,因此这里不需要密码。然后,切换至/usr/local/hadoop,启动Hadoop,让HDFS进入运行状态,从而可以为HBase存储数据&#…

31-2 智能驾驶系统

智能驾驶功能分类 安全类功能 纵向 FCW/AEB FCTA/FCTB/RCTA/RCTB RVW/RVB 横向 ESA LSS LKA/LDW/ELK 盲区安全辅助 BSD LCA DOW CVW 舒适功能类 纵向 ACC CSA TSR ISA 横向 LCC ILC ALC 横纵向 TJA/HWA NOP 泊车功能 RAP 蓝牙通信,环视超车波 HPA 记忆泊车…

ubuntu20.04_从零LOD-3DGS的复现

环境要求 dependencies:- cudatoolkit11.6- plyfile0.8.1- python3.7.13- pip22.3.1- pytorch1.12.1- torchaudio0.12.1- torchvision0.13.1- tqdm1. 安装conda创建环境 conda create -n lod-3dgs python3.7.132. 安装CUDA11.6和相应cuDNN。 2.1 CUDA CUDA安装参考CUDA10.1…

Linux:网络协议socket

我们之前学的通信是本地进程间通信,如果我们想在网络间通信的话,就需要用到二者的ip地址,分别被称为源IP地址和目的IP地址,被存入ip数据包中,其次我们还需要遵循一些通信协议。 TCP协议:传输层协议&#x…

Leetcode - 143双周赛

目录 一,3345. 最小可整除数位乘积 I 二,3346. 执行操作后元素的最高频率 I 1.差分数组 2.同向三指针 滑动窗口 三, 3348. 最小可整除数位乘积 II 一,3345. 最小可整除数位乘积 I 本题直接暴力枚举,题目求 >n…

Springboot3 配置Swargger3.0版本

一、swagger 版本配置&#xff0c;我用的3.0.0 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.version}</version></dependency>二、说明&#xff1a;springdo…

error MSB3325:无法导入以下密钥文件xxx,该密钥文件可能受密码保护

错误提示信息(类似如下)&#xff1a; error MSB3325: 无法导入以下密钥文件: F:\...\Common.pfx。该密钥文件可能受密码保护。若要更正此问题&#xff0c;请尝试再次导入证书&#xff0c;或手动将证书安装到具有以下密钥容器名称的强名称 CSP: VS_KEY_A65F207BE95F57D0 出现此…

喜报|超维机器人荣获昇腾AI创新大赛铜奖

近日&#xff0c;在备受瞩目的昇腾AI创新大赛中&#xff0c;超维机器人凭借扎实的技术实力和创新产品&#xff0c;荣获大赛铜奖。这一荣誉不仅展现了超维机器人在智能巡检领域的技术创新与突破&#xff0c;也标志着超维机器人的智能巡检解决方案在人工智能领域获得了广泛认可&a…

[[nodiscard]] 使用说明

1 作用 [[nodiscard]] 属性&#xff1a;这个属性可以用于函数或者返回类型。它的作用是告诉编译器&#xff1a;调用这个函数时&#xff0c;它的返回值不应被忽略。如果程序员调用了这样的函数但没有使用它的返回值&#xff0c;编译器会发出警告。这对于那些返回重要状态或错误…

golang分布式缓存项目 Day4 一致性哈希

注&#xff1a;该项目原作者&#xff1a;https://geektutu.com/post/geecache-day1.html。本文旨在记录本人做该项目时的一些疑惑解答以及部分的测试样例以便于本人复习 为什么使用一致性哈希 我该访问谁 对于分布式缓存来说&#xff0c;当一个节点接收到请求&#xff0c;如…

MySQL数据库专栏(四)MySQL数据库链接操作C#篇

摘要 本篇文章主要介绍C#链接MySQL数据库的接口介绍&#xff0c;使用实例及注意事项&#xff0c;辅助类的封装及调用实例&#xff0c;可以直接移植到项目里面使用。 目录 1、添加引用 2、接口介绍 2.1、MySqlConnection 2.2、MySqlCommand 2.3、MySqlDataReader…

借助 Pause 容器调试 Pod

借助 Pause 容器调试 Pod 在 K8S 中&#xff0c;Pod 是最核心、最基础的资源对象&#xff0c;也是 Kubernetes 中调度最小单元。在介绍 Pause 容器之前需要先说明下 Pod 与容器的关系来理解为什么需要 Pause 容器来帮助调试 1. Pod 与 容器的关系 Pod 是一个抽象的逻辑概念&…

UE5 umg学习(四) 将UI控件切换到关卡中

视频资料 7、将UI控件渲染到关卡_哔哩哔哩_bilibili 在前三节里&#xff0c;创建了用户的控件蓝图Widget_BP 目标是运行的时候&#xff0c;开始运行这个蓝图&#xff0c;因此需要在开始事件触发运行 首先&#xff0c;回到主页&#xff0c;点击关卡蓝图 要从事件开始运行时 …

React Hooks在现代前端开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 React Hooks在现代前端开发中的应用 引言 React Hooks …

军工行业运维:监控易引领自主可控新潮流

在军工行业&#xff0c;信息安全和技术创新始终是发展的重中之重。随着信息化建设的不断深入&#xff0c;对监控产品的要求也日益严格。 监控易作为一款高性能、全面性的运维监控解决方案&#xff0c;凭借其国产化、自主可控的特性&#xff0c;以及对军工行业特殊需求的深刻理解…

【操作系统】——调度算法

&#x1f339;&#x1f60a;&#x1f339;博客主页&#xff1a;【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见&#xff1a;【C语言专项】 目录 先来先服务&#xff08;FCFS, First Come First Serve) 短作业优先&#xff08;SJF, Shortest Job Fi…

C++入门基础知识147—【关于C++ 一元运算符重载】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 一元运算符重载的相关内容&#xff0…

【测试框架篇】单元测试框架pytest(1):环境安装和配置

一、pytest简介 Pytest是Python的一种单元测试框架&#xff0c;与Python自带的unittest测试框架类似&#xff0c;但是比 unittest框架使用起来更简洁&#xff0c;效率更高。 二、pytest特点 Pytest是一个非常成熟的Python测试框架,主要特点有以下几点&#xff1a; 非常容易…

【CANOE】【学习】【DecodeString】字节转为中文字符输出

系列文章目录 文章目录 系列文章目录前言一、DecodeString 转为中文字节输出二、代码举例1.代码Demo2.DecodeString 函数说明函数语法&#xff1a;参数说明&#xff1a;返回值&#xff1a;使用示例&#xff1a;示例代码&#xff1a; 说明&#xff1a; 前言 有时候使用的时候&a…