HCIE华为数通实验室|Path MTU机制
实验目标:
理解Path MTU机制
观察IPv6的分片
实验拓扑:
实验步骤:
本实验需要在实验七的基础之上来完成。
完成实验七后,确保在AR6上的RIPng路由表为以下内容:
步骤1:在AR6的S1/0/0口使用Wireshark进行抓包,并在AR6上通过ping测试连通性。
备注:Payload length不包含基本头部长度。
步骤2:在AR1的G0/0/0口通过以下命令修改其MTU值为1400。
修改完毕后,继续在AR6上使用同样的命令进行ping测试;
再去打开Wireshark查看内容;
发现在发送1500大包的时候,在AR1上发生丢包,同时AR1产生了type类型为2(Packet Too big)的差错报文,在该差错报文中明确表明能够容忍的MTU为1400。
此时AR6得到了差错报文,立即记录MTU值1400,在AR6上可以通过以下命令查看。
步骤3:继续在AR6上通过同样的命令ping测试;
被分成了两个帧:一个总长度为1404,一个总长度为160,具体的三层payload如下图所示;
1404这个帧的三层Payload length为1360,由于增加了Fragment头部,所以时间有效数据为1360-8=1352字节。
160长度的帧中的三层payload长度为116,由于此帧存在一个Fragment分配报头和ICMPv6头部,所有有效数据为116-8-8=100byte。
所以两个帧的总的有效数据为1352+100=1452,正是我们测试ping测的数据大小。
此时会发现每片都不会超过PMTU值的大小。
步骤4:保证AR6上存在PMTU 1400的情况下,修改AR3的G0/0/1口的MTU为1300。并继续在AR6上进行ping测试。
发现ping测无法通信,此时打开Wireshark观察抓包情况;
由于修改了MTU为1300,原来的分片超出了1300,此时在AR3上发生了丢包,AR3向着AR6回复Packet Too Big的差错报文。此时AR6上的PMTU值记录为1300,如下显示;
继续在AR6上ping测试并查看抓包情况;
测试可以通信。
分片每片不会大于1300,以此类推。
相关阅读