一.实验目的
1.学习和掌握ICMP协议的基本作用和报文格式 2.理解ICMP协议与IP协议的封装关系 3.学习和掌握ICMP协议的应用和报文格式 4.理解tracertoute工作过程
二.实验拓扑
![image.png](https://img-blog.csdnimg.cn/img_convert/eca755e194b910161c0412baf989dc91.png)
三.实验工具
GNS3和Wireshark抓包分析软件
四.ICMP协议的封装格式
(1)Type 类型值,标识ICMP分组类型 (2)Code 代码值,标识ICMP分组类型的某一种具体分组 (3)Checksum 校验和,用于检验数据包是否完整或是否被修改 (4)Identifier 标识符,标识本进程。当同时与多个目的通信时,通过本字段来区分 (5)Sequence Number 序列号,标识本地到目的的数据包序号,一般从序号1开始
五.实验内容及步骤
1)ping 和Traceroute实验
(1) 按照拓扑图搭建实验环境,并给接口配置对应的IP地址 (2) 启用OSPF协议实现全网可达 R1的OSPF配置 R2的OSPF配置 R3的OSPF配置 (3) 启动抓包软件,抓取R1的F0/0端口的流量 (4) 在R1上ping 12.1.1.2 (5) 结合ICMP报文的封装格式,分析ICMP报文,将下表填写完整。 1)echo request报文结构(type=8,code=0) 2)echo reply报文结构(type=0,code=0) (6) 启动抓包软件,抓取R1的f0/0端口和R2的f0/1的流量 (7) 在R1上traceroute 3.3.3.3 probe 1(设置探测次数) (8) 截获了报文中哪2种ICMP 报文?把不同类型报文填入 ![image.png](https://img-blog.csdnimg.cn/img_convert/15defdf2d9ebfdc9713d8b0fcbd635f0.png) 1)R1路由器上f0/0的第一次探测UDP数据包信息(TTL=1) 2)R2利用ICMP协议返回的TTL超时报文结构(type=11,code=0) 3)R1路由器上f0/0的第二次UDP数据包信息(TTL=2) 4)R2路由器上f0/1的第二次UDP数据包信息(TTL=1) 5)R3路由器上利用ICMP协议返回端口不可达报文的结构(type=3,code=3) 6)R2路由器上利用ICMP协议返回端口不可达报文的结构(type=3,code=3) ![image.png](https://img-blog.csdnimg.cn/img_convert/ff3c3efdaa3a1a33cc0203a9e028c521.png)
2)目标主机不可达
(1)在R1上配置默认路由:ip route 0.0.0.0 0.0.0.0 12.1.1.2,通过命令debug ip icmp 开启ICMP调试功能。 (2)开启抓包工具,抓取R1的f0/0端口流量 (3)在R1上ping 33.33.33.33 (4)分析ICMP目标主机不可达报文(type=3,code=1) ![image.png](https://img-blog.csdnimg.cn/img_convert/dec8e8992161bcfdfe89721567d9706e.png)
3)端口不可达(UDP协议-利用ICMP协议返回端口不可达信息)
(1)开启抓包工具,抓取R1的f0/0端口流量 (2)在R1上通过命令copy tftp: flash: 从3.3.3.3下载资料到本路由器的flash: (3)分析TFTP报文结构 (4)分析UDP端口不可达报文结构(type=3,code=3) ![image.png](https://img-blog.csdnimg.cn/img_convert/2860baacba55c20cbda87d4b17683888.png)
4)端口不可达(TCP协议-利用将TCP头部的reset标志位置1)
(1)开启抓包工具,抓取R1的f0/0端口流量 (2)在R1上,通过命令 telnet 3.3.3.3 80 模拟浏览网页的80端口 (3)分析TCP端口不可达报文 ![image.png](https://img-blog.csdnimg.cn/img_convert/acce580a3ed05bdb57d861c0a6287ceb.png)
5)禁止不可达(由于ACL或防火墙策略原因无法到达目标)
(1)开启抓包工具,抓取R1的f0/0端口流量 (2)在R2上写一个ACL语句,禁止任何主机访问3.3.3.3,并在R2的F0/0入方向调用该ACL (3)在R1 上ping 3.3.3.3 (4)分析ICMP禁止不可达报文(type=3,code=13) ![image.png](https://img-blog.csdnimg.cn/img_convert/742ac7f40e4ec5a9c35ffcaa7132ae06.png)
6)分片不可达
(1)在R2的F0/0入方向取消调用ACL (2)在R1上开启抓包工具,抓取F0/0的流量(需要分片,但是设置了DF位) (3)在R2的F1/0接口通过命令ip mtu 100将mtu 设置为 100 (4)在R1 上ping 3.3.3.3 size 200 df-bit (5)分析ICMP分片不可达报文(type=3,code=4) ![image.png](https://img-blog.csdnimg.cn/img_convert/56cb967e2fb7bf776db492c3bb3142d0.png)
|