问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用Wireshark探索ARP协议的工作原理

创作时间:
作者:
@小白创作中心

使用Wireshark探索ARP协议的工作原理

引用
CSDN
1.
https://m.blog.csdn.net/qq_27378595/article/details/144356837

使用工具

  • Wireshark
  • arp: 查看和清除计算机上ARP协议使用的缓存。
  • curl(MacOS)
  • ifconfig(MacOS或Linux): 查看计算机网络接口的状态。
  • route/netstat: 查看计算机使用的路由。
  • 浏览器。

网络设置

ARP用于查找与本地IP地址对应的以太网地址,以便计算机可以向其发送数据包。

捕获数据包

运行以下命令获取自己的以太网地址:

ifconfig  

查找计算机用于访问互联网的本地路由器或默认网关的IP地址:

netstat -r # 或使用 `route -n get default`  

Wireshark设置:

  • 接口:Wi-Fi: en0(MacOS+WiFi)
  • 过滤器:
    arp
  • 取消选中
    promiscuous mode:此模式可用于监听其他计算机发送和接收的数据包

设置完成后,开始捕获数据包。

在命令行窗口运行以下命令:

arp -a # 查看ARP缓存  

sudo arp -d -a # Mac, 清除ARP缓存  
arp -a # 再次查看ARP缓存  

清除本机的缓存之后,再次使用

arp -a  

查看缓存信息发现还有一条信息,这是为什么呢?下面这一段话是对于这一现象的解释。

计算机在需要和某个远程 IP 地址通信时,会自动发送新的 ARP 请求来重新获取该 IP 地址对应的 MAC 地址。这种请求通常是由系统后台的网络活动触发的,例如定时检测网络状态、后台程序通信等。因此,清除条目后,即使在短时间内查看 ARP 表(通过 arp -a),也可能发现该条目已经重新出现在 ARP 表中。

然后打开浏览器,这时Wireshark会捕获到一些分组,实际上我没打开浏览器时就捕获到了一些,可能是后台应用太多了。捕获到了之后就停止捕获,然后进入下一步的探究👀。

分析数据包

我们首先分析发往我们自己电脑的和从我们电脑发出的分组,所以需要先过滤一下。

# 填入自己的 MAC 地址  
eth.addr==10:b5:88:57:d8:0d  

查找并选择一个发往默认网关的ARP请求,检查其字段。ARP数据包有两种类型:请求和响应,我们将依次查看它们。

字段含义:

  • Hardware type 和 Protocol type 分别用来指定底层的网络硬件类型和上层协议的类型。这与ARP从IP到以太网地址的转换相匹配。
  • Hardware and Protocol size 分别设置为6和4,这是以太网和IP地址的字节大小。
  • opcode 标识这是一个Request,根据IP查找MAC的请求。
  • 最后四个字段分别是发送者的MAC和IP以及目标的MAC和IP,但这是我们发送出去的request,此时我们还不知道目标的MAC,所以这一字段是没有被填的。

字段含义:

  • Hardware and Protocol type and sizes 与之前相同。
  • opcode 字段有不同的值,告诉我们这是一个reply。
  • 接下来是四个关键字段,发送者的MAC和IP以及目标的MAC和IP,与之前相同。这些字段与相应的请求相反,因为旧的目标是新的发送者(反之亦然)。现在所有字段都应该被填满,因为两台计算机都提供了它们的地址。

ARP请求和响应

根据下图绘制:

以太网上的ARP细节

  1. 用于表示请求的opcode是什么?回复呢?
    01 表示request,02 表示reply。

  2. ARP请求的头部有多大?回复呢?
    回复:28字节,请求:28字节(或24字节 减去未填写的目标MAC地址)

  3. 在请求中,未知目标MAC地址携带什么值?
    目标MAC地址:00:00:00_00:00:00 (00:00:00:00:00:00)

  4. 表示ARP是高层协议的以太网类型值是什么?

  5. ARP回复是广播(像ARP请求一样)还是不是?
    返回时因为已经知道了双方的IP和MAC,所以不是通过广播,而是直接根据MAC返回。

下面讲述了ARP的工作原理:

ARP数据包封装在以太网帧中,以太网头部字段的值被选择来支持ARP。例如,你可能会想知道ARP请求数据包是如何传递给目标计算机的,以便它可以回复并告诉请求者其MAC地址。答案是ARP请求在以太网层是广播的,因此它被本地网络上的所有计算机接收,包括目标计算机。具体查看请求的目标以太网地址:它被设置为ff:ff:ff:ff:ff:ff,广播地址。因此,目标计算机接收到请求并识别出它是消息的预期接收者;其他接收到请求的计算机知道这不是发给它们的。只有目标计算机用回复进行响应。然而,任何接收到ARP数据包的人都可以从其中学习映射:发送者MAC和发送者IP对。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号