郑州大学计算机网络实验08 ICMP协议探索和分析

实验八:ICMP协议探索和分析

【实验目的】

1、掌握ICMP协议数据格式;

2、掌握ICMP信息报文和差错报告报文的常见种类;

3、理解ICMP差错报文的产生条件。

【实验步骤与结果记录】

要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)

步骤1:创建虚拟网络拓扑。

1.使用script3.1.sh 脚本,创建如图所示的网络拓扑结构。

在Linux中,该虚拟网络拓扑的实现如图所示。

运行脚本,创建虚拟网络拓扑。

2.执行Linux命令,ip netns list 查询已经建立的NS列表,在所有NS内执行 ifconfig -a 命令查看NS内的网络接口配置,执行Linux命令 brctl show 查看交换机桥接状态,验证网络拓扑。

步骤2:为虚拟网络拓扑中的各路由器配置静态路由。

1. 使用script3.2.sh 脚本,为各路由器配置静态路由。

步骤3:关闭网卡offload功能,将运输层封装时需要的计算还给CPU

1. 使用script3.3.sh 脚本,关闭网卡offload功能。

步骤4:修改路由表、MTU等参数,创造ICMP差错报告报文的产生条件

1.执行如下Linux命令,在路由器RA上删除默认路由。创造ICMP网络不可达差错报告报文的产生条件。

ip netns exec RA route del default gw 192.168.99.1

2.执行如下Linux命令,在路由器RA上修改接口tapRA_RC的MTU值为1000字节;在路由器RC上修改接口tapRC_RA的MTU值为1000字节。创造ICMP需要分片差错报告报文的产生条件。

ip netns exec RA ifconfig tapRA_RC mtu 1000
ip netns exec RC ifconfig tapRC_RA mtu 1000

3.执行如下Linux命令,在路由器RC中,用iptables设置规则,拒绝(REJECT)转发并丢弃目的地址为192.168.57.190(ns57B)的IP数据报。创造ICMP管理禁止报文的产生条件。

ip netns exec RC iptables -I FORWARD -d 192.168.57.190 -j REJECT

4.执行如下Linux命令,在主机ns57A上删除到网络前缀192.168.57.128/26的路由。创造ICMP重定向差错报告报文的产生条件。

ip netns exec ns57A route del -net 192.168.57.128/26

步骤5:打开两个终端窗口,分别模拟主机ns56A和主机ns57A

1.打开一个终端窗口,利用Linux命令bash将本窗口模拟成主机ns56A的终端  执行以下命令。

ip netns exec ns56A bash

执行上述命令后,Linux将在网络命名空间ns56A中开启bash交互,之后输入的Linux命令均在ns56A中执行,相当于模拟了主机ns56A的终端。

2.然后输入 ifconfig -a ,确认是否成功模拟成主机ns56A。

为了避免混淆,可以改变终端窗口名字。

3. 再打开一个终端窗口,利用Linux命令bash将本窗口模拟成主机ns57A的终端  执行以下命令  

ip netns exec ns57A bash

模拟主机ns57A的终端。

4.然后输入ifconfig -a ,确认是否成功模拟成主机ns57A,并修改终端名。

步骤6:在主机ns56A上启动Wireshark,在接口tap56A上启动抓包。在主机ns57A上启动Wireshark,在接口tap57A上启动抓包。

1.新开一个终端窗口,执行如下命令,在主机ns56A上后台启动Wireshark。

ip netns exec ns56A wireshark &

2.在Wireshark窗口中选择接口tap56A,启动抓包。

3.执行如下命令,在主机ns57A上后台启动Wireshark。

ip netns exec ns57A wireshark &

4.在Wireshark窗口中选择接口tap57A,启动抓包。

步骤7:在主机ns56Ans57A上,使用nping工具发送UDP用户数据报到其他目的主机,利用步骤4中的配置,得到多种ICMP差错报告报文。

1.在主机ns56A的模拟终端中,执行如下命令,封装1400字节UDP数据,从主机ns56A发往目的IP地址为192.168.100.1的主机的4499端。

nping --udp -p4499 -g40321 -c1 --data-length 1400 192.168.100.1

注:主机192.168.100.1所属的网络前缀,在实验拓扑图中不存在。

2.在主机ns56A的模拟终端中,执行如下命令,封装1400字节UDP数据,从主机ns56A发往目的IP地址为192.168.57.250的主机的4499端口。

nping --udp -p4499 -g40321 -c1 --data-length 1400 192.168.57.250

注:主机192.168.57.250在实验拓扑图中不存在。

3.在主机ns56A的模拟终端中,执行如下命令,封装1400字节UDP数据,从主机ns56A发往目的IP地址为192.168.57.254(ns57C)的主机的4499端口。

nping --udp -p4499 -g40321 -c1 --data-length 1400 192.168.57.254

注:主机192.168.57.254中,UDP的4499端口未打开。

4.在主机ns56A的模拟终端中,执行如下命令,封装800字节UDP数据,从主机ns56A发往目的IP地址为192.168.57.190(ns57B)的主机的4499端口。

nping --udp -p4499 -g40321 -c1 --data-length 800 192.168.57.190

注:目的地址为192.16.57.190的IP数据报会被途径的路由器RC丢弃。包含800字节UDP数据的IP分组,经过RA向RC转发时,不会被RA分片。

5.在主机ns56A的模拟终端中,执行如下命令,封装1400字节UDP数据,并设置IP首部的不许分片位为1,从主机ns56A发往目的IP地址为192.168.57.126(ns57A)的主机的4499端口。

nping --udp -p4499 -g40321 -c1 --data-length 1400 -df 192.168.57.126

注:不许分片且超过1000字节的IP数据报,不能通过RA-RC链路。

6.在主机ns57A的模拟终端中,执行如下命令,封装1400字节UDP数据,从主机ns57A发往目的IP地址为192.168.57.190(ns57B)的主机的4499端口。

nping --udp -p4499 -g40321 -c1 --data-length 1400 192.168.57.190

注:ns57A的默认路由不是到192.168.57.190去的最佳路由。

步骤8:在两个Wireshark窗口中停止抓包,保存抓包结果并分析截获的数据。分析ICMP差错报告报文的常见种类,理解这几种ICMP差错报告报文产生的条件。

分别保存tap56A和tap57A的抓包结果,分析数据。

步骤9:在主机ns56A的接口tap56A重新启动抓包。在主机ns56A上,利用ping命令测试到主机ns57C的连通性,捕获并分析ICMP回显请求和回显应答报文。

1.在Wireshark窗口中选择接口tap56A,重新启动抓包。

2.在主机ns56A的模拟终端中,执行如下命令,发送两次ICMP回显请求,测试到主机n57C的连通性。

ping -c 2 192.168.57.254

3.在Wireshark中停止抓包,保存抓包结果文件并分析抓包结果。

保存抓包结果,分析数据。

【问题与分析】

1.分析步骤7和步骤8保存的实验结果,截图并填写表8.1。

该数据报即为7.1发送的IP数据报。

源IP,目的IP,总长度等按照数据填写即可。

该数据即为7.1收到的ICMP差错报告报文。

按照图表数据填写即可,其他几个步骤同理。

表8.1 ICMP差错报告报文分析

步骤

字段

步骤7-(1)

发送的IP数据报

Wireshark分配的编号

3

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.100.1

IP总长度

1428

收到的ICMP差错报告报文

Wireshark分配的编号

4

IP首部

源IP地址

192.168.56.246

目的IP地址

192.168.56.126

IP总长度

576

ICMP首部

类型

3

代码

0

ICMP报文类型(文本描述)

Network unreachable

产生该差错报告报文的原因分析

Destination unreachable  Network unreachable

步骤7-(2)

发送的IP数据报

Wireshark分配的编号

7

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.250

IP总长度

1428

收到的ICMP差错报告报文

Wireshark分配的编号

8

IP首部

源IP地址

192.168.56.254

目的IP地址

192.168.56.126

IP总长度

576

ICMP首部

类型

3

代码

1

ICMP报文类型(文本描述)

Host unreachable

产生该差错报告报文的原因分析

Destination unreachable  Host unreachable

步骤7-(3)

发送的IP数据报

Wireshark分配的编号

11

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.254

IP总长度

1428

收到的ICMP差错报告报文

Wireshark分配的编号

12

IP首部

源IP地址

192.168.57.254

目的IP地址

192.168.56.126

IP总长度

576

ICMP首部

类型

3

代码

3

ICMP报文类型(文本描述)

Port unreachable

产生该差错报告报文的原因分析

Destination unreachable  Port unreachable

步骤7-(4)

发送的IP数据报

Wireshark分配的编号

17

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.190

IP总长度

828

收到的ICMP差错报告报文

Wireshark分配的编号

18

IP首部

源IP地址

192.168.56.250

目的IP地址

192.168.56.126

IP总长度

576

ICMP首部

类型

3

代码

3

ICMP报文类型(文本描述)

Port unreachable

产生该差错报告报文的原因分析

Destination unreachable  Port unreachable

步骤7-(5)

发送的IP数据报

Wireshark分配的编号

23

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.126

IP总长度

1428

收到的ICMP差错报告报文

Wireshark分配的编号

24

IP首部

源IP地址

192.168.56.246

目的IP地址

192.168.56.126

IP总长度

576

ICMP首部

类型

3

代码

4

ICMP报文类型(文本描述)

Fragmentation needed

产生该差错报告报文的原因分析

Destination unreachable  Fragmentation needed

步骤7-(6)

发送的IP数据报

Wireshark分配的编号

3

IP首部

源IP地址

192.168.57.126

目的IP地址

192.168.57.190

IP总长度

1428

收到的ICMP差错报告报文

Wireshark分配的编号

4

IP首部

源IP地址

192.168.57.1

目的IP地址

192.168.57.126

IP总长度

576

ICMP首部

类型

5

代码

1

ICMP报文类型(文本描述)

Redirect for host

产生该差错报告报文的原因分析

Redirect   Redirect for host

2.分析步骤9保存的实验结果,截图并填写表8.2。 

该报文为第一个发送的ICMP报文,按照数据填写即可。

该报文为第一个收到的ICMP报文。

按照图中数据填写即可。

第二次发送与接收的报文同理。

表8.2 ICMP信息报文分析

步骤

字段

步骤9-(2)

第1次

发送的

ICMP报文

Wireshark分配的编号

1

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.254

IP总长度

84

TTL

64

ICMP首部

类型

8

代码

0

标识符(BE)

4492

序列号(BE)

1

收到的

ICMP报文

Wireshark分配的编号

2

IP首部

源IP地址

192.168.57.254

目的IP地址

192.168.56.126

IP总长度

84

TTL

61

ICMP首部

类型

0

代码

0

标识符(BE)

4492

序列号(BE)

1

步骤9-(2)

第2次

发送的

ICMP报文

Wireshark分配的编号

3

IP首部

源IP地址

192.168.56.126

目的IP地址

192.168.57.254

IP总长度

84

TTL

64

ICMP首部

类型

8

代码

0

标识符(BE)

4492

序列号(BE)

2

收到的

ICMP报文

Wireshark分配的编号

4

IP首部

源IP地址

192.168.57.254

目的IP地址

192.168.56.126

IP总长度

84

TTL

61

ICMP首部

类型

0

代码

0

标识符(BE)

4492

序列号(BE)

2

标识符和序列号的作用

标识符用于将一系列相关的ICMP报文进行分组。当主机或路由器发送多个ICMP请求报文时,可以使用相同的标识符来标记它们属于同一组请求。在接收端可以根据标识符将相应的响应与对应的请求关联起来

序列号用于标识ICMP报文在一组相关报文中的顺序。当发送多个ICMP请求报文时,可以为每个报文分配一个递增的序列号。在接收端可以根据序列号确定报文的顺序,以便正确地处理和响应这些报文。

注:表中BE代表大端字节序。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值