yeslab官方 发表于 2020-4-9 12:23:51

【YESLAB】HDLC和PPP协议实验

学霸笔记 | HDLC和PPP协议实验
                                 原创 学霸-卜同学YESLAB


Ppp和hdlc
串行链路常用的协议有ppp和hdlc,其中hdlc为思科私有协议,但是现在华为也都支持,hdlc协议报文简单,但无法支持认证,ppp可以支持认证。

实验目的
使用hdlc和ppp模式配置串行链路,观察两种协议报文以及ppp认证过程
实验拓扑



实验步骤
一、hdlc协议
1、修改两台路由器 互联接口封装协议为hdlc,抓包观察hdlc数据包特点。

配置命令:
AR1
interface Serial1/0/0
link-protocol hdlc
p add 10.0.12.1 30
AR2
nterface Serial1/0/0
link-protocol hdlc
ip address 10.0.12.2 255.255.255.252
2、抓包分析hdlc协议报文


Hdlc原为思科私有协议,该协议有三种帧类型,分别为信息帧、监控帧、无编号帧(但抓包里没有看到!!!)通过抓包可以看到默认情况下每10秒中发送一次keepalive报文,该报文中还包含了outgoing seq和returned seq。

3、一端配置为借用loopback接口地址方式:
interface Serial1/0/0
link-protocol hdlc
ip address unnumbered interface LoopBack0

配置使用dis ip inter bri可以看到此接口ip地址与loopback0 的接口地址相同,但是使用此地址ping 10.0.12.2 无法ping通。使用手工方式配置可以ping通,不知道是不是模拟器有bug,需进一步验证。


二、ppp协议
1、修改两个路由器使用ppp协议封装,抓包观察ppp协议基本格式.

AR1配置:
interface Serial1/0/0
link-protocol ppp
ip address 10.0.12.1 255.255.255.252
AR2配置:
interface Serial1/0/0
link-protocol ppp
ip address 10.0.12.2 255.255.255.252
抓包如下:

从抓包可以看到ppp链路协商建立的两个阶段,第一个阶段为lCP阶段,主要协商链路控制的参数,LCP阶段双发发送config request报文,收到对方config request报文后回复config ACK报文,其中request报文如下:



从抓包可以看出config request报文中包含address、control、protocol、code、identifier、length、option等参数,在这些参数中重点为option参数,里边包含了mru为1500(华为串行链路默认为1500与以太网mtu保持一致)还有随机魔术字,通过对比报文可以发现,在回复config ACK报文中的魔术字与收到的request中魔术字相同。另外config request报文中code值为0X01,config ACK中code值为0X02.

2、分析第二阶段IPCP交互报文


IPCP协商与LCP协商类似,都发送请求包回复确认包,与LCP最大的不同是option选项中没有MRU和魔术字,改为了本端的ip地址,在串行链路中数据封装与以太中不同,不使用mac地址因而也就没有了arp,因此通过此中方式可以获取到对端的IP地址,正因此原理,在ppp链路上两端配置IP地址可以不在同一网段同样可以通信。可以尝试将AR1的ip地址配置为192.168.0.1/30,测试效果如下:

协商稳定后两个路由器会以10秒为周期发送echo request和echo reply, 并且周期稳定后魔术字不变,使用同一个魔术字。








3、配置ppp认证,ppp有pap和chap两种认证 类型,其中pap为明文认证,chap为md5认证,首先使用pap验证,配置如下:

local-user huawei password cipher Huawei@123
local-user huawei service-type ppp
interface Serial 1/0/0
ppp authentication-mode pap
配置后将接口shutdown再undo shut,观察抓取报文如下:









通过报文可以看出,AR1配置了认证后config request的option选择中会有认证相关的信息,由于AR2未配置认证,所以回复了rejected报文,此时rejected报文的option选项中只包含了认证相关部分,意思说明此部分参数我不识别。同时AR1也回复了config ACK报文,AR1在回复ACK报文时与之前无差别。其实从此时报文中还可以发现有IPCP的报文,说明AR2未配置认证但收到了ACK报文进入到了IPCP的交互。

4、将AR2 的串行接口配置pap认证,之后将端口shut和undo shut观察报文交互情况如下:
ppp pap local-user huawei password cipher Huawei@123





通过抓包发现配置了pap认证后只是第一阶段LCP交互报文的option选项中增加了4个字节的认证信息,其它没有变。并且在双方发送和回复报文后又增加了一个认证的请求和确认,同时在认证请求报文中可以看到用户名密码,因此pap认证方式不够太安全。

5、将ppp认证方式改为chap认证方式,配置如下:
ppp authentication-mode chap
ppp chap user huawei
ppp chap password cipher Huawei@123


通过抓包可以看到,在LCP协商完成后会有chap协商的内容,首先认证方AR1会以name、identifier id和随机数发过去,AR2在回复中同样有name和hash后的随机数,AR1收到对比正确后回复了ack报文。相比pap明文认证方式,chap认证使用了md5进行hash,这种方式更加安全,交互报文比pap多一次。


在操作过程中将端口shutdown后从抓包软件中发现还会触发发送termination request和terminal ack报文,此报文应该是用来主动断开连接的。
另外在配置了认证后ping测试产生的icmp报文还是可以获取,因此ppp认证只是对于建立链路生效,后边传输数据还是明文(默认不添加其它配置)。

实验总结
1、hdlc协议原为思科私有协议,现在华为设备也支持,hdlc协议报文简单,但是无法加密。

2、ppp协议分为两个阶段,分别为lcp和ncp阶段,lcp为链路控制协议,用来建立拆除ppp数据链路,NCP阶段为网络层控制协议,用于对不同的网络层协议进行连接建立和参数协商,最重要的是option选项中会有自己端口IP地址,此阶段完成了以太网中arp的工作。

3、ppp协议有两种认证方式,分别为pap和chap,最大区别为pap为明文方式,而chap为密文,相比更加安全。ppp的认证方需要在aaa中添加用于ppp认证的账号和密码,并且在接口下开启认证方式。而被认证方不需要在aaa中配置,只在接口中配置相应的账号和密码即可。

4、ppp认证只用户ppp链路建立使用,一旦建立完成后期数据还是明文方式,通过抓包还可以看到相应的信息。

【了解新网工课程加课程顾问微信】

siren 发表于 2020-7-3 10:31:30

{:6_267:}

yusenyi 发表于 2020-7-12 10:43:24

好东西 收藏了

杰瑞 发表于 2020-7-13 17:57:59

给大家推荐一个免费的论文查重网站PaperFree:https://www.paperfree.cn

人心乱妖刀 发表于 2020-7-19 14:33:55

{:6_267:}{:6_267:}
页: [1]
查看完整版本: 【YESLAB】HDLC和PPP协议实验