协议分析-IP和ICMP实验(GNS3 && wireshark)

IP和ICMP

实验目标

(1)分析IP头部
(2)分析IP头部变动(MAC地址每段改变,TTL改变,校验和)
(3)IP分片
(4)分析traceroute路由追踪

试验任务

1.使用ping命令,抓包分析IP报文格式。
2.使用更大的数据包ping,抓包分析IP数据包分片情况。
3.使用traceroute命令抓包分析路由追踪。
4.Ping不存在的网络,抓包并分析ICMP主机不可达的回复。
5.ICMP重定向。先配置一项默认路由,让R6收到R4dIP数据包。让R6收到的IP数据包的下一跳地址和发送者在同一个网段,让R6回复ICMP重定向的报文,让R4以后直接发给R5。

拓扑

在这里插入图片描述

参数:
R1:int f0/0 IP:132.0.23.1
R2: int f0/0 IP: 132.0.23.2, int f1/0 IP:132.1.23.2
R3: int f0/0 IP:132.1.23.1

拓扑(ICMP重定向):
在这里插入图片描述

R4: E0/0: 132.0.23.1
R5: E0/0: 132.0.23.2
R6: E0/0: 132.0.23.3

实验过程
  • 1.根据实验参数配置每个接口的IP
    在这里插入图片描述网络号为132.0.23.0和132.1.23.0,其他接口配置过程IP同上。
  • 2.配置环回口和三台路由器的OSPF
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意的是OSPF连接的不同的网络。
    R1的路由表:
    在这里插入图片描述
    有直连的,有通过R2与其他网络学习来的。
    查看R2的OSPF邻接表。
    在这里插入图片描述
    同样R3的邻居只有ID 为2.2.2.2的网络。
    OSPF报文
    在这里插入图片描述
    132.0.23.1 ping 132.1.23.1
  • 分析报文在这里插入图片描述
    IP报文总长度100,头部5X4为20,ICMP报文长度为80.
    两个头部只有TTL和校验和不同。标示位相同。版本号为4(0100),首部长度为5(0101),保留位、不允许分片、更多分片位都为0,未发生变化。TTL因为中间经过了一个路由器,所以减一。
    在这里插入图片描述
    一次ping过程不同的ICMP报文(标志位不同)
    MAC地址发生变化。R1到R2间报文目的MAC成为R2到R3报文的源MAC地址。
    在这里插入图片描述通过每次ICMP报文发一个,查看IP报文。
    在这里插入图片描述
    在这里插入图片描述
    可以看出三次ICMP的标志位不同,而且是递增加一。
分片
  • 先查看接口MTU值,设计产生分片。
    IP报文长度为100,所以可以先发一个长度为200的包,查看分片情况。
    在这里插入图片描述
    在传输ICMP request之前IP分了三片。在这里插入图片描述
    Request报文
    在这里插入图片描述
    三个分片数据部分加起来为180.
    在这里插入图片描述
    三个报文的更多分片位。

在这里插入图片描述
三个报文的分片偏移字段。

如果ping长度为200的而且不分片(Don’t Fragment位 df-bit),发现会因超时而不能进行通信。

路由追踪
  • 从R1追踪到3.3.3.3的路由。在这里插入图片描述

  • 分析报文R1与R2链路
    R2与R3链路
    两条链路上UDP和ICMP报文数量不同,而且ICMP报文一是超时,而是端口不可达两种失败方式。

UDP报文TTL为1.而且使用了较大的端口。

  • 尝试每次发送一个UDP报文。在这里插入图片描述
    这是对两台路由器进行的探测,两台路由器也都回复了ICMP报文,只是报文携带的信息不同。
    在这里插入图片描述
    两个ICMP报文类型不同
    在这里插入图片描述
    两个报文源IP不同,分别是两台路由器。
主机不可达
  • 路由器收到IP数据包,但是本地没有到此数据包目的的路径时就会丢弃数据包并回复ICMP 主机不可达的信息。
  • 开始ping 33.33.33.33,在这里插入图片描述
    显示失败,但是R1到R2间并没有抓到ICMP包。
    在这里插入图片描述
    加一条静态路由,送往R2的f0/0端口。
    在这里插入图片描述
    这时的debug有了回应。
    在这里插入图片描述
    抓包也抓到了ICMP报文。
    在这里插入图片描述
    其中132.0.23.2给132.0.23.1 返回了一个主机不可达的ICMP报文。
    在这里插入图片描述
ICMP重定向
  • 在这里插入图片描述
    关闭R4的路由功能,在R4上先配置一个默认路由(相当于网关)R6的e0/0端口。这样R4通往R5的数据包就会先经过R6。
    在这里插入图片描述
    在R5上设置一个环回口3.3.3.3实现跨网段。
    在这里插入图片描述
    在R6上配置一条路由,即如果有通往3.3.3.0网络的包要转发到132.0.23.2端口(R5)。

Ping 3.3.3.3 ,出现ICMP重定向报文。提示通往3.3.3.3的网关是132.0.23.2。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验分析
IP头部变化
  • 通过132.0.23.1 ping 132.1.23.1过程中的ICMP报文头部可以得出,一次ping过程中会发出多个ICMP报文,这时每一个报文标志位不同,但是连续,通过R2路由器后的ICMP的TTL减一,因为跨了网段。其中校验和位也发生变化(因为数据包经过一个路由器都要重新计算一下首部检验和)因为TTL发送变化,所以校验和肯定会发生变化。但是头部中如版本号,长度,保留位等没有变化。
  • 在这里插入图片描述
MAC地址变化:
  • MAC地址是用来识别数据链路层中相连的结点。MAC地址每段链路都会改变,因为报文到达路由器之后,为了转发他,路由器会先除去二层的MAC信息,根据报文的IP地址查找路由表,找到这个IP转发路径之后要再次封装报文,而此时封装的时候用的源MAC就是转发端口的MAC地址,此时MAC地址就发送了变化,所以每次经过不同的链路MAC地址会改变。
  • 在这里插入图片描述
    就像这两个MAC地址,链路1上的目的IP成了转发链路2上报文的源MAC地址。
分片
  • 如果数据包大小比MTU大,而且不分段标志位为0,表示可以分段。这次实验中设置的MTU为100.所为除去长度为20的头部大小,而且要是8的整数倍,所以这里可以是80.
    在这里插入图片描述
    在这里插入图片描述
    前面两段是IP报文,最后一片是ICMP报文(More fragment=0),而且Data部分重组了所以分片,显示所有数据长度。最后一片之前的所有分片中More fragment位都是1.偏移量为 0 是第一片。
    重组的时候按照相同的ID然后根据偏移量进行重组。
    在这里插入图片描述
路由追踪
  • 每次探测发送一个UDP报文。可以从抓包中看出R1一共发送了两个UDP报文,然后有两个ICMP回复报文,但是内容不同,一个是超时,一个是端口不可达。
  • 在这里插入图片描述
    在这里插入图片描述
    过程:

1.从源地址发出一个UDP报文,TTL设置为1.
2.到达一个路由器,TTL - -。
3.TTL如果变为0而且不是目的地址,则此时路由器回复一个ICMP报文,包括IP包的源地址,内容和路由器的IP地址。
在这里插入图片描述
在这里插入图片描述
从抓包的内容可以看出,之前的UDP包封装在ICMP reply报文中返回到源地址。

4.源路由器收到这样reply报文,得到了路由信息。
5.再次发UDP探测包,TTL加1。(因为本拓扑中R1到R3只有一个路由器,所以UDP探测包发了两个就成功到达目的地址)。
6.目的地址收到UDP报文,而此时IP地址可以对应,但是UDP目的端口是33435,目的地址收到大于30000的目的端口返回一个ICMP reply报文,内容是端口不可达。
7.源路由器收到Port Unreachable的ICMP报文知道找到了目的地址,停止路由追踪。

在这里插入图片描述
R2与R3链路上UDP及ICMP报文少的原因是开始的UDP报文TTL到0了不能通过路由器R2。

主机不可达
  • 开始的时候R1 ping R3,因为报文首先在R1中也会路由,但是R1中并没有到33.33.33.33的路由,所以R1找不到正确的路径就直接丢包,不会传出去,所以开始的时候并没有在R1与R2之间的链路上抓到ICMP报文。
    在这里插入图片描述
    给R1添加一条默认路由0.0.0.0 0.0.0.0,当有点数据包找不到路由信息就通过默认路由发到132.0.23.2.所以第二次再抓包发现了ICMP报文。
    在这里插入图片描述
  • 但是在数据包到了R2之后,R2也不知道怎么转发,所以丢包并且给R1回复一个ICMP reply报文,告诉他主机不可达。
    对每个ICMP request报文,R2的132.0.23.2 端口都会回复一个reply报文,将ICMP request报文封装在返回的ICMP报文中,ICMP reply报文Type 为3.code 为1 (host unreachable)。
    在这里插入图片描述
ICMP 重定向
  • R1要和R3通信,但是开始的时候R1中先配置了一条路由,即要去3.3.3.0 网络要通过132.0.23.3的端口。R1 ping R3,开始的第一条ICMP报文到达R2后,R2根据开始配置的路由将数据包转发出去,这时发现这个收到数据包的接口和转发数据包的接口是一个,而且R2的下一跳还是和R3在同一个网络,所以这时R2会进行ICMP重定向,从抓到的重定向报文中可以看出有一个gateway address 字段,即告诉R1以后要去R3可以直接通过132.0.23.2,而不用通过R2进行转发。
  • 在这里插入图片描述
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值