对多生成树协议路径中icmp数据报的详细探讨
实验拓扑图如下:
先说一下这个拓扑图。这个图实际上是模拟大型园区的网络架构。从上到下一次为外网;核心层;汇聚层;接入层。
首先,接入层最简单。它连接的是终端设备,也是日常我们接触最多的。实验中这一层PC机的地址分配运用了DHCP动态分配技术。这层的交换机也是较便宜的二层交换机。
其次,中间4个三层交换机构成汇聚层。顾名思义这一层相当于流量的汇聚地,通常是终端设备的默认网关所在。(本实验下面分4个vlan,默认网关分别设在SW5H和SW6上)
这一层可以使得内网中的各个vlan实现互通。由于网关设备对整个网络的畅通很关键,因此在汇聚层通常会采用多台交换机实现冗余备份。(实验中运用的VRRP,)
为了保证网络的高可靠性,他们之间往往通过冗余的链路互联,这样一来,也有可能导致二层环路,我们通常用mstp生成树技术来解决这一问题。(在实验中二层的交换机都设置了mstp,vlan10,20放在实例1;vlan 30 40放在实例2,实例1和实例2分左右两路,两边交换机互为主次)
另外,汇聚层也是接入层和核心层之间的桥梁,因此汇聚层的设备还需部署三层协议(如OSPF协议),用来实现与核心层设备的通信。(这里部署的是ospf协议,应用在交换机SW5,6和核心层的路由器R1,R2上)
上面两台路由器构成核心层,作用就是转发数据。为了和最下面的主机连通,也部署了ospf协议。现实应用中,核心层的机器肯定是最贵的。
最后,最上面的属于外网,主要是实验内外网转换的。
这次先说说ICMP数据报吧!
(红线部分是数据帧经过的路线;源IP:192.168.1.252 ; 目标IP:192.168.5.2)
通常为了测试MSTP中流量负载均衡的设置是否正确 畅通,标准做法就是用ping命令测试。它的网络排错的一个重要手段。Ping命令遵守的是ICMP协议。ICMP协议也称网络控制报文协议。ICMP协议也称网络控制报文协议它用于TCP/IP网络中发送控制消息,为网络中各种异常现象提供反馈,了解这些信息有助于运维工程师准确定位问题节点,然后采取适当的措施解决。Ping命令是icmp协议中最常用的一个方式。Ping命令的工作原理如下:
首先,当我们执行命令<ping 192.168.5.2>;ping命令会发送一份名为<Echo request>的请求报文给目标主机;如果网络畅通,目标主机就会向源主机发一个回复报文<Echo request>,以此来显示两台主机之间网络是通的。整个过程都是基于ICMP协议进行的,因此有必要深入了解一下这个协议,下面我通过抓包来进一步分析。在交换机SW7的 GE0/0/2(蓝点处)抓包,截图如下:
TTL(time to live),是防止数据报在网络中时间太长,当其为0时,就会被最后一个路由器丢弃。
在源地址和目标地址分别抓取回复报文可以看出,它的TTL最大为255,在起始地TTL值为255,在终点TTL值为254。原因是网段变化了一次,即从5,0网段变为1.0网段,相当于经过了一个路由器。
同理在源地址和目标地址分别抓取请求报文可以看出,它的TTL最大为128,在起始地TTL值为128,在终点TTL值为127。原因和前者一样,这个从1,0网段变为5.0网段,也相当于经过了一个路由器。
网上也有说法说,不同操作系统TTL值不同,如window系统是255,Linux系统是128,等等。但模拟器上请求和返回一个是128,一个是255.这个我查资料也没找出原因。可能因为它就是个模拟器吧!哈哈。
下面是国庆放假没事硬是整个翻译了一遍,各位也可以没事儿看看。
一、帧 3052: 线路上74字节(592比特),74字节 获取(592比特)
到达时间:1970/1/2 04:04:20.458000000
为什么是1970年,因为相关国际组织规定1970年1月1日0时0秒是标准世界时,这儿用月2日应该和东西半球时间分区有关,华为模拟器应该是没有调时间,所以就默认标准世界时了。
Epoch time(一种计时方法,从标准世界时开始算):72260.458000000秒
【来自以前捕获帧的时间增量:0.858000000秒】
【来自以前显示帧的时间增量:1219.834000000秒】
【自第一帧或参考帧以来的时间:1219.834000000秒】
帧序号:3052
帧长度:74字节(592比特)
捕获长度:74字节(592比特)
【帧被标记:无】
【帧被忽略:无】
【帧里面的协议:以太网:IP:icmp:数据部分】(这个应该是按照封装的顺序写的)
【着色的协议名字:icmp】
【着色的字符串:icmp || icmpv6】
二、以太网2,源:华为Te_4f:62:26(4c:1f:cc:4f:62:26),目标:华为Te_64:36:6a(00:e0:fa:64:36:6a)
目标地址:华为Te_64:36:6a(00:e0:fa:64:36:6a)
(
.... ...0 .... .... .... .... = IG 比特:单个地址(单播)(Mac地址第一个字节最后一位是0,代表单播)
.... ..0 . .... .... .... .... = IG 比特:全球独有地址(出厂默认)
)
源:华为Te_4f:62:26(4c:1f:cc:4f:62:26)
(
.... ...0 .... .... .... .... = IG 比特:单个地址(单播)
.... ..0 . .... .... .... .... = IG 比特:全球独有地址(出厂默认)
)
类型:IP (0X0800)
三、以太网协议,源:192.168.1.252,目标:192.168.5.2
版本号:4
头部长度:20字节
区分服务区域:0X00 (DSCP(区分服务代码点) 0X00: 默认:ECN(电子通信网络):0X00)
(
0000 00.. = 区分服务代码点:默认:(0x00)
.... ..0. = 电子通信网络-线缆传输 (ECT): 0
.... ...0 = 电子通信网络-CE: 0
)
总长度:60字节
标识符:0x8299(33433)
标志:0X02(不分片)
(
0... .... = 存储字节:没有设置
.1.. .... = 不分片:设置
..0. .... = 更多分片:没有设置
)
片偏移量:0
TTL:127
协议:ICMP(1)
头部校验值:0XF0D8 【正确】
源地址:192.168.1.252
目标地址:192.168.5.2
网络控制报文协议
类型:8(ping命令请求报文)
代码(code):0 (进一步划分icmp类型;0-15表示不同意思,0被命令ping占用)
校验值:0X828e 【正确】
标识符:0Xff82
***:1133(0X046d)
***:(LE):27908(0X6d04)
数据(32字节)
(
数据:08090ab0c......
【长度:32字节】
)
唉累死了!回头看看猫都睡了。这个综合实验其实有许多要讲的,下次可以说说stp路径选择。之前也在网上找过,但很少有合适的。费了好大劲只能自己边想边做边总结啦!