一、实验需求

1.在本地电脑搭建环境进行ARP实验,要求能实现查看ARP请求与回应、ARP代理;
2.分析ARP请求与回应的报文结构;分析免费ARP的报文结构特征
3.实现ARP代理的配置。

二、拓扑搭建

实验环境:GNS3

抓包工具:Wireshark

配置:PC1:ip 172.16.0.1/24

           PC2:ip 172.16.0.2/24

拓扑图:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_网络

三、抓包分析

使用PC1 ping PC2,过程中产生了ARP报文,在PC1与SW的e1口抓到的ARP包如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_wireshark_02

1.分析ARP请求与回应的报文结构

首先分析序号7的ARP报文,报文结构如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_请求报文_03


    首先分析整体报文结构可看出ARP报文是跨四层封装的报文,没有四层报头。接下来分析应用层报文内容,首先可以看出这是一个ARP的request报文,二层类型为Ethernet,长度为6字节;三层类型为IPv4,长度为4字节。该报文是PC1-172.16.0.1发送出去请求目标IP-172.16.0.2的MAC地址的广播类型的报文。

接下来分析序号8的ARP报文,报文结构如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_网络_04


    可以看出该报文大部分结构与上一个报文相同,略微的不同之处在于这个报文是ARP的reply报文,是PC2单播向PC1发送的一个用于告知自己MAC地址的报文。2.分析免费ARP的报文结构特征

依然分析上述抓包列表中的报文,分析序号1报文,结构如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_IP_05

    可以看出该报文与上面的ARP request报文更加类似,同样作为PC1发出的ARP请求报文,两者只有一点不同,上述报文是PC1为请求PC2的MAC广播发送的报文,而这个报文的请求目标IP是PC1本身-172.16.0.1,但是依然是一个目标MAC全F的广播报文。由此可以推断出,这是PC1发出的免费ARP报文,目的在于在网络中检测是否有其他IP地址与自己冲突。

3.实现ARP代理的配置

为实现ARP代理,需要重新搭建拓扑如下:(实验环境与抓包工具不变)

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_请求报文_06

配置如下:
R1:f 0/0:IP 172.16.1.1/24
        f 0/1:IP 172.16.2.1/24
PC1:ip 172.16.1.2/24 网关:172.16.1.1
PC2:ip 172.16.2.2/24 网关:172.16.2.1

完成配置

再次使用PC1 ping PC2,过程中在PC1和R1的f 0/0口抓到ARP包如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_请求报文_07

经过查看这两个报文分别为PC1发出的ARP request报文和PC1收到的ARP reply报文:

请求报文:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_网络_08


回应报文:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_wireshark_09

    可以看出,在PC1 ping PC2的ping包发出前,PC1发出的ARP请求报文并没有直接向PC2请求(因为PC2和PC1不在同一网段),而是请求了网关R1-172.16.1.1的MAC地址,并且得到了网关的回应。

再查看此过程中PC2和R1的f 0/1口网段的抓包情况如下:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_wireshark_10

经查看可以确认是网关R1向PC2发出的ARP请求报文,和PC2向R1返回的ARP回复报文:

请求报文:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_网络_11


回复报文:

ip 冲突用wireshark抓包分析 wireshark抓包及分析arp协议_网络_12


 

    可以看出,此次R1向PC2请求报文并不是普通的ARP请求广播报文,而是向PC2发送的单播报文请求MAC。

    综上分析可以发现,在PC1 ping PC2的过程中,路由器R1在其中起到了ARP代理的作用,它先是回复了PC1的ARP请求报文,又主动向PC2发送了ARP请求报文。在PC1和PC2的通信过程中,虽然PC1并没有直接请求到PC2的MAC地址,但是在二者共同的网关R1上已经同时有了两个PC的MAC,并且它还让两个PC有了自己与其对应的接口的MAC地址。从而使得PC1和PC2能够通过它的代理正常通信。ARP代理配置完成。

实验完毕。