HC110110024 HDLC和PPP原理与配置

0x00 汇总

汇总链接

广域网中经常会使用串行链路来提供远距离的数据传输,高级数据链路控制HDLC(High-Level Data Link Control)和点对点协议PPP( Point to Point Protocol)是两种典型的串口封装协议。
重点放在ppp协议上,后面还有pppoe,学好了ppppppoe就简单了。


0x01 同步和异步

HC110110024 HDLC和PPP原理与配置_第1张图片
串行链路普遍用于广域网中。串行链路中定义了两种数据传输方式:异步和同步。

  • 异步传输是以字节为单位来传输数据,并且需要采用额外的起始位和停止位来标记每个字节的开始和结束。起始位为二进制值0,停止位为二进制值1。在这种传输方式下,开始和停止位占据发送数据的相当大的比例,每个字节的发送都需要额外的开销。
  • 同步传输是以帧为单位来传输数据,在通信时需要使用时钟来同步本端和对端的设备通信。DCE即数据通信设备,它提供了一个用于同步DCE设备和DTE设备之间数据传输的时钟信号。DTE即数据终端设备,它通常使用DCE产生的时钟信号。

同步通信与异步通信区别:

  1. 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
  2. 同步通信效率高;异步通信效率较低。
  3. 同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

同步通信可用于点对多点;异步通信只适用于点对点。


0x02 HDLC应用

ISO制定的HDLC是一种面向比特的通信规则。HDLC传送的信息单位为帧。作为面向比特的同步数据控制协议的典型,HDLC具有如下特点:

  • 协议不依赖于任何一种字符编码集;
  • 数据报文可透明传输,用于透明传输的“0比特插入法”易于硬件实现;
  • 全双工通信,不必等待确认可连续发送数据,有较高的数据链路传输效率;
  • 所有帧均采用CRC校验,并对信息帧进行编号,可防止漏收或重收,传输可靠性高;
  • 传输控制功能与处理功能分离,具有较大的灵活性和较完善的控制功能。
HDLC帧结构

HC110110024 HDLC和PPP原理与配置_第2张图片
完整的HDLC帧由标志字段(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列字段(FCS)等组成。

  • 标志字段为01111110,用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符。
  • 地址字段携带的是地址信息。
  • 控制字段用于构成各种命令及响应,以便对链路进行监视与控制。发送方利用控制字段来通知接收方来执行约定的操作;相反,接收方用该字段作为对命令的响应,报告已经完成的操作或状态的变化。
  • 信息字段可以包含任意长度的二进制数,其上限由FCS字段或通讯节点的缓存容量来决定,目前用得较多的是1000-2000比特,而下限可以是0,即无信息字段。监控帧中不能有信息字段。
  • 帧检验序列字段可以使用16位CRC对两个标志字段之间的内容进行校验。

HDLC有三种类型的帧:

  • 信息帧(I帧)用于传送有效信息或数据,通常简称为I帧。
  • 监控帧(S帧)用于差错控制和流量控制,通常称为S帧。S帧的标志是控制字段的前两个比特位为“10”。S帧不带信息字段,只有6个字节即48个比特。
  • 无编号帧(U帧)简称U帧。U帧用于提供对链路的建立、拆除以及多种控制功能。

以上都是PPT上的,其实都不用管,重点为是地址字段,里面填写的是全1,而且只有目的地址,要记住,串行链路是没有MAC地址的。
HC110110024 HDLC和PPP原理与配置_第3张图片
配置还是挺简单的。在ENSP中模拟实现时,记得添加模块。
HC110110024 HDLC和PPP原理与配置_第4张图片
HC110110024 HDLC和PPP原理与配置_第5张图片
用上面测试ping了一下,抓个包,结果每次看着都比较想笑,在最早学思科的时候,老师跟我们讲,思科的hdlc是cisco hdlc,对普通的进行了改进,思科和华为不能用hdlc对接,后来教华为的时候发现当年老师好像骗了我们,华为明明用的也是相同的协议。。。哈哈,当然我也没仔细去研究,没啥用。
HC110110024 HDLC和PPP原理与配置_第6张图片


0x03 PPP

PPP协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。PPP协议有如下优点:

  • PPP既支持同步传输又支持异步传输,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步传输,SLIP仅支持异步传输。
  • PPP协议具有很好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  • PPP提供了LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
  • PPP提供了各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
  • PPP提供了认证协议:CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
  • 无重传机制,网络开销小,速度快。
PPP链路建立过程

HC110110024 HDLC和PPP原理与配置_第7张图片
对于PPP链路建立过程的描述如下:

  • Dead阶段也称为物理层不可用阶段。当通信双方的两端检测到物理线路激活时,就会从Dead阶段迁移至Establish阶段,即链路建立阶段。
  • 在Establish阶段,PPP链路进行LCP参数协商。协商内容包括最大接收单元MRU、认证方式、魔术字(Magic Number)等选项。LCP参数协商成功后会进入Opened状态,表示底层链路已经建立。
  • 多数情况下,链路两端的设备是需要经过认证阶段(Authenticate)后才能够进入到网络层协议阶段。PPP链路在缺省情况下是不要求进行认证的。如果要求认证,则在链路建立阶段必须指定认证协议。认证方式是在链路建立阶段双方进行协商的。如果在这个阶段再次收到了Configure-Request报文,则又会返回到链路建立阶段。
  • 在Network阶段,PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。只有相应的网络层协议协商成功后,该网络层协议才可以通过这条PPP链路发送报文。如果在这个阶段收到了Configure-Request报文,也会返回到链路建立阶段。
  • NCP协商成功后,PPP链路将保持通信状态。PPP运行过程中,可以随时中断连接,例如物理链路断开、认证失败、超时定时器时间、管理员通过配置关闭连接等动作都可能导致链路进入Terminate阶段。
  • 在Terminate阶段,如果所有的资源都被释放,通信双方将回到Dead阶段,直到通信双方重新建立PPP连接。

具体的字段这里就不多说了,内容有点多,IA理解起来有点难度,加上用的也少,可以放在以后再来重点学习。

HC110110024 HDLC和PPP原理与配置_第8张图片
配置也不难,重点还是放在验证上。

pap

HC110110024 HDLC和PPP原理与配置_第9张图片
PAP认证的工作原理较为简单。PAP认证协议为两次握手认证协议,密码以明文方式在链路上发送。
LCP协商完成后,认证方要求被认证方使用PAP进行认证。

  • 被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方。
  • 认证方收到被认证方发送的用户名和密码信息之后,根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配,如果匹配,则返回Authenticate-Ack报文,表示认证成功。否则,返回Authenticate-Nak报文,表示认证失败。
    HC110110024 HDLC和PPP原理与配置_第10张图片
chap

HC110110024 HDLC和PPP原理与配置_第11张图片
CHAP认证过程需要三次报文的交互。为了匹配请求报文和回应报文,报文中含有Identifier字段,一次认证过程所使用的报文均使用相同的Identifier信息。

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

使用CHAP认证方式时,被认证方的密码是被加密后才进行传输的,这样就极大的提高了安全性。
HC110110024 HDLC和PPP原理与配置_第12张图片

IPCP静态地址协商

HC110110024 HDLC和PPP原理与配置_第13张图片
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动态地址协商

HC110110024 HDLC和PPP原理与配置_第14张图片
两端动态协商IP地址的过程如下:

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

HC110110024 HDLC和PPP原理与配置_第15张图片
AR2配置

[AR2]ip pool PPP_POOL  	//创建PPP分配地址池
[AR2-ip-pool-PPP_POOL]network 12.1.1.0 mask 24
[AR2-ip-pool-PPP_POOL]int s1/0/0
[AR2-Serial1/0/0]link-protocol ppp 
[AR2-Serial1/0/0] ip address 12.1.1.2 255.255.255.0 
[AR2-Serial1/0/0] remote address pool PPP_POOL      //指定对端的地址池,此命令比较特殊,需要单独记忆

AR1配置

[AR1]int s1/0/0
[AR1-Serial1/0/0] link-protocol ppp
[AR1-Serial1/0/0] ip address ppp-negotiate

检查结果
HC110110024 HDLC和PPP原理与配置_第16张图片
注意拿到的地址是32位,而不是24位的。

再来看下路由表
HC110110024 HDLC和PPP原理与配置_第17张图片
会发现有对端接口的32位主机路由,这个是由于静态协商的结果。这个路由可厉害了,当你把AR1的接口IP改为21.1.1.1/24时,你会发现两个不同的网段的直连环境,可以直接通信。
HC110110024 HDLC和PPP原理与配置_第18张图片
当然,这个主机路由也可以不加载在路由表中的,不过模拟器可能不支持。
HC110110024 HDLC和PPP原理与配置_第19张图片

你可能感兴趣的:(#,HCIE-RS)