TCPIP卷一(2):二层封装之–PPP与FR | 网络之路博客(公众号同名)(其他平台网络之路Blog)
登录
  • 欢迎网络之路博客网站,分享有用的知识点,公众号:网络之路博客,B站:网络之路Blog
  • 如果您觉得本站对您有帮助,那么赶紧使用Ctrl+D 收藏吧,支持我们下
  • 远程技术支持的淘宝店铺已经开张了哦,传送门:需要的朋友可以点击查看

TCPIP卷一(2):二层封装之–PPP与FR

【汇总】TCPIP路由卷一

文档帖子汇总学习视频Book与实验手册学习必备软件
    博主也只是业余时间写写技术文档,请大家见谅,大家觉得不错的话,可以推荐给朋友哦,博主会努力推出更好的系列文档的。如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路博客,http://ccieh3c.com

说明

    之前介绍了以太网二层封装在TCP/IP协议里面工作的过程,其实除了EtherⅡ的封装以外,二层封装还有PPPFR等许多协议,这里注意介绍两个常用到的,PPPFRFR其实在实际中用的并不多了,但是在RS的考试中,任然是必考点,不过这里主要介绍在路由信息有的情况下,二层封装的重要性以及工作过程,为了后续的动态路由协议在FR情况下的不同情况做准备。PPP这里主要介绍下它们协商的过程和一些特性,其余的没什么的了,其实,在卷一中根本没提及过PPP,因为Cisco默认封装的是HDLC,不像H3C和HW一样,默认为PPP

PPP:Point-to-Point protocol,点对点协议

建立、配置及测试数据链路层的链路控制协议 (LCP,Link control Protocol)。它允许通信双方进行协商,以确定不同的选项
其实,PPP协议主要在NA的课程中会涉及到,但是,NP和IE都不会在将PPP的协议了,我们都知道PPP协议有两个控制协议,一个为LCP,一个为NCP。

协议 0021 IP数据报文
协议 C021 链路控制数据
协议 8021 网络控制数据

针对不同的网络层协议的网络控制协议(NCP :Network Control Protocol) 当前定义的有网络层有IP、OSI、AppleTalk.
PPP好处 : 1、支持同步与异步链路

2、支持验证,安全性有保证

3、支持IP地址的协商,扩展性比较灵活。

4、通过LCP来控制链路的建立

5、通过NCP来支持多种网络层协议
tcpip

根据图上定义的IP,并且封装类型为PPP,我们都知道PPP会协商出32位主机路由,通过抓包来分析,它们怎么协商的。

LCP:当接口UP的时候,两端设备会通过LCP向对方发送配置信息报文 (Configure Request),一旦收到一个配置成功信息的包(Configure-Ack ),那么就完成了LCP的建立,如果有验证的话,那么会携带在LCP的字段里面,对方回复了ACK后,就开始交换验证需要的参数,来完成LCP的认证,最后建立LCP的连接 。

tcpip

先看最开始的4个抓包,分别为两个Request,两个ACK。

展开内容查看。

tcpip

code:为Request,注意Options:为0x0x0c5a0c,在查看对应的ACK信息

tcpip

对应的ACK信息,code :ACK,Option也为 0x0x0c5a0c。

这里为双向的,也就是LCP的建立是双方都进行确认的,如果有PAP或者CHAP认证的话,也会在LCP阶段进行完成。

NCP:负责上层网络协议的选择或者多个协议,如果是IP网络的话,那么就会发送 IPCP的 (Configure Request)信息,包含自己的IP地址,当对端收到以后,会回复一个(configure ACK),表示收到了,同时还会记录在路由表中,由于没有携带子网掩码,所以默认为32位主机路由。

tcpip

cdp信息可以忽略掉,是Cisco默认发送的,除了CDP外,有两队request,也有两队ACK。

tcpip

大部分信息跟LCP的内容一致,只是opions包含的是自己的接口IP地址。

tcpip

ACK的内容也基本上一样,只是对应的Options是回应这个IP的。 当回应以后,就会把这个IP地址作为主机路由出现在路由表中。

tcpip

关闭主机路由的特性,在有时候,我们不希望它出现主机路由,那么可以通过在接口下输入 no peer neighbor-route,总有人说关闭后,主机路由还在,这是因为PPP的两个控制阶段已经协商完毕,这时候必须让它们重新协商才行,就是shutdown接口,然后在开启。

tcpip

这样,主机路由就消失了。

keepalive:在建立后,PPP会每10s发送一次keealive包,来探测对方的存在,通过LCP的Echo request,那么对方必须回复一个Echo reply来确认双方存在,如果3个包还没有收到回复,那么就会断开连接。这也是PPP为什么能作于计费的一个特性。

tcpip

帧中继 : Frame relay :在数据链路层用简化的方法传送和交换数据单元的快速分组交换技术。
帧中继特点 : 1、帧中继协议以帧的形式传递数据信息

2、帧中继协议是面向连接的交换技术

3、帧中继可以在一条物理链路上提供多虚链路

4、帧中继链路层完成统计复用、帧透明传输和错误检测等功能

5、帧中继提供一套合理的带宽管理和防止拥塞的机制

tcpip

IP地址信息、接口信息如图所示。

一:帧中继交换机的搭建

Cisco-FR(config)#frame-relay switching :开启FR交换机功能

Cisco-FR(config)#interface s1/0
Cisco-FR(config-if)#encapsulation frame-relay :封装帧中继
Cisco-FR(config-if)#frame-relay intf-type dce :FR的类型为DCCE
Cisco-FR(config-if)#frame-relay route 102 interface s1/1 201 做静态映射,带有DLI 102的数据包从s1/1的201出去
Cisco-FR(config-if)#frame-relay route 103 interface s1/2 301 静态映射,带有DLCI 103的数据包从S1/2 301出去
Cisco-FR(config-if)#clock rate 64000 在GNS3或小凡上不需要敲入,但是在PT和真机都需要
Cisco-FR(config-if)#no shutdown

Cisco-FR(config)#interface s1/1
Cisco-FR(config-if)#encapsulation frame-relay
Cisco-FR(config-if)#frame-relay intf-type dce
Cisco-FR(config-if)#clock rate 64000
Cisco-FR(config-if)#frame-relay route 201 interface s1/0 102
Cisco-FR(config-if)#no shutdown

Cisco-FR(config)#interface s1/2
Cisco-FR(config-if)#encapsulation frame-relay
Cisco-FR(config-if)#frame-relay intf-type dce
Cisco-FR(config-if)#frame-relay route 301 interface s1/0 103
Cisco-FR(config-if)#clock rate 64000
Cisco-FR(config-if)#no shutdown

二、客户端配置帧中继的接入端

Cisco-R1(config)#int s1/0
Cisco-R1(config-if)#encapsulation frame-relay
Cisco-R1(config-if)#frame-relay map ip 12.1.1.2 102 broadcast
Cisco-R1(config-if)#frame-relay map ip 12.1.1.3 103 broadcast

Cisco-R2(config)#int s1/0
Cisco-R2(config-if)#encapsulation frame-relay
Cisco-R2(config-if)#frame-relay map ip 12.1.1.1 201 broadcast

Cisco-R3(config)#int s1/0
Cisco-R3(config-if)#encapsulation frame-relay
Cisco-R3(config-if)#frame-relay map ip 12.1.1.1 301 broadcast

注意:这里接口都是没有shutdown的,注意是为了等会查看帧中继之间的协商过程

boardcost参数的含义:在帧中继中,依靠的是DLCI号来传递的,那么本身不具备有广播的能力,这个参数的含义是,一旦加上了这个参数的PVC,一个广播或者组播的数据过来,那么就会像这些有boardcost参数的PVC下都复制一份发送出去,来实现广播和组播的效果。也就是把一个广播变成多个单播发送出去。

三:分析FR与接入端直接的协商过程,以及map下的各种状态。

tcpip

Cisco-FR上的每个PVC的状态都是inacive的,表示接入端的静态映射或者接口出现了故障问题

1、开启Cisco-R1的s1/0接口,抓包分析接入端和FW的端口协商状态

tcpip

LMI:Local Management interface 本地管理接口:在帧中继中与路由器之间,路由器(DTE)发送status enquiry(探测请求包) 而帧中继的一般为DCE 回复status,来保证双方是否链路正常{这里注意的是,发送请求包只能是DTE端,而DCE只能回复。这也是为什么帧中继交换知道客户的链路正常和DLCI号(在enquiry中会携带)

tcpip

携带了DLCI号,但是,不知道为什么用wirehark抓包显示是错误的。

再次看,FW上PVC的状态

tcpip

注意:这里active是针对output DLCI号,这里102和103的都为active了。

再看,Cisco-R1上PVC的状态

tcpip

都为inacive状态,为什么? 因为FW上面针对102去往201,103去往301的状态为inactive,也就是说201和301的PVC接入端链路出现了问题,或者没有正确配置静态映射,导致在staus enquiry中携带的DLC与帧中继的DLCI号对应上。

inactive状态:对端的链路出现了故障

deleted状态:本地静态指定的DLCI号不在帧中继中存在。

问题来啦,那么Cisco-R1是怎么知道对方出现了故障或者配置不正确呢?
其实,很简单,是FW告诉Cisco-R1的。

帧中继每30s,会把自己PVC status发送给路由器,当路由器收到后,如果本地静态指定了DLCI号 与帧中继发送过来的一致,那么就会处于两个状态,一个为inactive,这个状态是因为帧中继中映射的出方向处于inactive的状态,所以觉得也没有必要发送数据过去,当对端处于active时,那么本地状态也会为active。

tcpip

抓包里面携带了PVC的status,但是,DLCI的HIGH和LOW不知道为什么是这样现实。

还可以通过debug frame-reply lmi 查看

tcpip

status 0x00代表active,如果是0x02的话,就代表inactive

3、LMI的类型

LMI:也有三种类型 cisco | ansi | q933a 如果没有指定是通过协商来决定的,当一个接口up的时候,会同时发送这三种类型的LMI给帧中继,优先Cisco,最终协商的是cisco。LMI的类型是针对Cisco-FR来说的,也就是说FW指定了为什么,那么协商的时候就是指定的类型,否则默认是cisco

tcpip

把Cisco-R1的LMI类型改为ansi,再次抓包

Cisco-FR(config-if)#frame-relay lmi-type ansi

tcpip
tcpip

接入端发送了一个enquiry的请求,类型为LMI ,但是FW回应的是Q.933 的Staus,紧接着接入端也发送Q.933的enquiry的请求了。

四:invrse ARP的工作原理
也许在配置帧中继的时候,最喜欢敲的一个命令就是no arp frame-relay和no frame-relay inverse-arp,是否真的有必要敲这句话呢?
其实,可以发现我在配置帧中继的时候,没有敲过这句话,因为接入端只要配置了静态map的时候,那么它就不会发送inverse ARP来动态获取DLCI号了。

Cisco-R1(config-if)#no frame-relay map ip 12.1.1.2 102 broadcast
Cisco-R1(config-if)#no frame-relay map ip 12.1.1.3 103 broadcast

这时候,把Cisco-R1的静态映射给去掉,然后,在Cisco-R2和Cisco-R1抓包,查看是否会发送ARP请求 (在Cisco-R1上之前抓包查看过,只有enquiry的包,没有ARP,因为它有静态map存在。)

tcpip

这时候,就是简单的Cisco-R1——-FR———–Cisco-R2,都通过ARP获取映射,来分析下原理

inverse ARP 原理:当Cisco-R1封装了FR,接口UP的时候,就会发送LMI的探测包,当收到帧中继的LMI回复的时候,这个回复包会携带这个接口属于的DLCI号,这时候Cisco-R1就会发送inverse ARP请求,请求的内容包含 发送者的硬件地址为0,源IP为Cisco-R1目的硬件地址(任意值) 目的IP为0.0.0.0 DLCI号为102(FR通过LMI回复包得到),然后发送到FR上,FR查看本地DLCI对应关系,102置换成201,发送给Cisco-R2 ,Cisco-R2也收到了LMI的回复包,知道DLCI号为201,当收到ARP请求时候,它就知道去往Cisco-R1走201出去,并且会回复ARP请求,源地址为自己,硬件地址还是为0,目的地址为Cisco-R1,目的硬件地址为任意值,通过DLCI号 201发送出去,FR收到后 对应DLCI映射关系,从102发出,到达Cisco-R1,Cisco-R1就会在动态的在map中显示去往Cisco-R2 从DLCI号102出去,状态为active dynamic。 Cisco-R2获取去往Cisco-R1的原理也是一样的,并且Cisco-R1 与 Cisco-R2 几乎同时发起inverse ARP请求。 在实际环境中除了Full Mash环境,否则不要用inverse ARP,会造成DLCI与地址解析错误,显示为0.0.0.0与DLCI号的显示,解决办法,关闭no frame-rely inverse-arp no arp frame-rely 然后保存 重启。 clear frame-relay inarp 也无效。这也是RS CCIE考试中容易遇到的问题。

tcpip

案例分析:二层封装的重要性

这个也是这次要说明的主题,其实很多人都有个误区,认为只要学习到对方的路由,就会认为数据包能够正常转发了,之前分析过在以太网环境下,如果通过ARP获取的MAC地址信息不对的话,那么不管是否有路由存在,那么通信是不正常的。

tcpip

环境很简单,运行RIPv2,在Cisco-R2与Cisco-R3上面只有一个静态map就是关于Cisco-R1的12.1.1.1的,现在的测试就是,当RIP收敛完全以后,是否能ping通3.3.3.3。 配置省略了,这里主要讨论封装问题。

tcpip
tcpip

发现路由已经收敛完成了。

tcpip

不同,为什么? 我们可以发现关于3.3.3.3的下一跳是12.1.1.3,而Cisco-R2本身就一个静态map关于12.1.1.1的,所有在有路由的情况下,它想发送数据包出去,但是二层封装的时候,发现没有关于12.1.1.3的封装信息,也就是DLCI号。

tcpip

通过debug信息,它提示encapsulaion failed,封装失败。
解决办法就是在Cisco-R2和Cisco-R3上在添加静态映射,这里注意DLCI号是可以复用的,也就是说,12.1.1.1和12.1.1.3都是从201发送出去,至于对方是否转发这数据包,Cisco-R2本身是不关心的,它只看是否有映射。 当前,这里Cisco-R1是有Cisco-R3的映射的,所以,Cisco-R1代为转发了。
Cisco-R2(config-if)#frame-relay map ip 12.1.1.3 201 broadcast

Cisco-R3(config-if)#frame-relay map ip 12.1.1.2 301 broadcast

tcpip

这个问题,很容易在动态路由协议中出现的,包括OSPF、EIGRP、RIP、ISIS(它还需要映射CLNS地址)

总结:这次只要介绍了二层封装,关于PPP和FR的协商过程,和一些主要的地方, 特别是需要明白二层封装的重要性,只有这样才会在以后的工作中或者考试中快速的进行排错。

下载对应文档

百度盘下载博客资源汇总与学习思路
如果下载地址失效,请联系博主或者在下面留言,谢谢。下面也有其他您需要的资源推荐哦

关于博客资源下载说明

首先,感谢大家对网络之路博客的支持,本站所有资源都是开放下载,不做任何限制,资源都是上传在百度盘,分为两种类型:
(1)第一种是书籍PDF与视频类,全部放在博客分享,觉得对大家学习有帮助的博主会收集好、然后以博主的经验整理分类后排序好分享出来。
(2)第二种是技术性文章与视频,全部放在公众号(网络之路博客)/B站(网络之路Blog)发布,以博主原创为主,主要分享系列为主,由浅入深的带大家了解工作中常用到的一些网络技术,当然也会分享一些比较经典的案例。
(3)分享资源有涉及到您的利益以及版权问题,请联系博主,24小时候内删除。
想第一时间收到最新更新内容吗,点击获取~~~

点击查看详情

(广告)博主自主原创最新实战课程

点击查看详情


(广告)远程技术支持(设备调试),有搞不定的找我,价格实惠,为您解决实际工作上的问题

远程技术调试与技术支持,点击查看详情


原创与收集的内容,允许转载,转载时请务必以超链接形式标明文章原始出处,博客地址http://ccieh3c.com。

喜欢 (4)
[]
分享 (0)
公众号:网络之路博客(其他平台网络之路Blog)
分享一些自己懂的技术知识点,希望对大家有帮助。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址