YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第1张图片


image.png

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第2张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第3张图片

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


3、一端配置为借用loopback接口地址方式:

interface Serial1/0/0

 link-protocol hdlc

 ip address unnumbered interface LoopBack0

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第4张图片

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

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第5张图片

二、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

抓包如下:

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第6张图片

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

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第7张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第8张图片

从抓包可以看出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交互报文

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第9张图片


YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第10张图片

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

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第11张图片

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

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第12张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第13张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第14张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第15张图片

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


[AR1-aaa]local-user huawei password cipher Huawei@123

[AR1-aaa]local-user huawei service-type ppp

[AR1]interface Serial 1/0/0

[AR1-Serial1/0/0]ppp authentication-mode pap

配置后将接口shutdown再undo shut,观察抓取报文如下:

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第16张图片


YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第17张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第18张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第19张图片

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


4、将AR2 的串行接口配置pap认证,之后将端口shut和undo shut观察报文交互情况如下:

[AR2-Serial1/0/0]ppp pap local-user huawei password cipher Huawei@123

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第20张图片

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第21张图片

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

YESLAB 华为数通学霸日记 | HDLC和PPP协议实验_第22张图片

在操作过程中将端口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链路建立使用,一旦建立完成后期数据还是明文方式,通过抓包还可以看到相应的信息。