博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ARP协议详解之Gratuitous ARP(免费ARP)
阅读量:5167 次
发布时间:2019-06-13

本文共 2528 字,大约阅读时间需要 8 分钟。

ARP协议详解之Gratuitous ARP(免费ARP)

Gratuitous ARP(免费ARP)

Gratuitous ARP也称为免费ARP,无故ARP。Gratuitous ARP不同于一般的ARP请求,它并非期待得到IP对应的MAC地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的IP地址的MAC地址。

免费ARP的产生

免费ARP数据包是主机发送ARP查找自己的IP地址。通常,它发生在系统引导期间进行接口配置的时候。这里可以使用Wireshark捕获主机启动时候的数据,以验证是否发送Gratutious arp数据包。这里捕获到的数据包,如图1.21所示。

 

 

图1.21  Gratuitous ARP包

从该界面可以看到第44、45、47数据包都是Gratuitous ARP包。

免费ARP的作用

免费ARP有两个方面的作用。分别如下所示:

1.验证IP是否冲突

一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。发送主机并不需要一定收到此请求的回答。如果收到一个回答,表示网络中存在与自身IP相同的主机。如果没有收到应答,则表示本机所使用的IP与网络中其它主机并不冲突。

【实例1-176】通过使用Wireshark捕获数据包,分析是否有IP冲突的情况。实验环境如图1.22所示。

 

 

图1.22  验证IP是否冲突

(1在主机A上配置一个IP地址为192.168.7.8。然后重新启动主机A。

(2在主机A启动时,这里也将主机B的IP地址修改为192.168.7.8。

(3此时看Wireshark获取到的数据包,如图1.23所示。

 

 

图1.23  免费ARP包

从该界面主要分析91、92帧。如下所示:

(1从91帧中可以看到MAC地址为00:23:8b:c4:05:bf的主机(主机A),向这个局域网发送免费ARP广播包。告诉局域网中所有的主机,它请求使用192.168.7.8。

(2)92帧表示MAC地址为00:19:21:3f:c3:e5的主机(主机B),向整个局域网发送ARP广播包。告诉局域网中所有的主机,192.168.7.8的MAC地址是00:19:21:3f:c3:e5(主机B)。意思是主机B已经使用了192.168.7.8。

从这两个数据包,可以看出主机B响应了主机A发送的免费ARP包,表示网络中存在与A有相同IP的主机。所以A主机启动后,将会看到如图1.24所示的窗口。

 

 

图1.24  IP冲突提示

从该窗口的提示信息中可以看到本机的IP地址与网络上其他系统的IP地址冲突。

2.更换物理网卡

如果发送ARP的主机正好改变了物理地址(如更换物理网卡),可以使用此方法通知网络中其它主机及时更新ARP缓存。

【实例1-18】下面验证更换物理网卡后,发送免费ARP的请求包。具体操作步骤如下所示:

本例中使用的实验环境,如图1.25所示。在该环境中,主机A和主机B的IP、MAC地址已经标出。在实验之前这两台主机已经能正常通行,也就是说它们分别有对方的ARP条目。其中,主机A的操作系统为Kali Linux;主机B为Windows 7。

 

 

图1.25  验证免费ARP

(1)查看主机A的ARP缓存表。执行命令如下所示:

 

  • root@kali:~# arp
  • Address                 HWtype  HWaddress           Flags Mask            Iface
  • 192.168.1.2              ether   00:23:8b:c4:05:bf             C                  eth0

 

从输出的信息中,可以看到该缓存表中有一条ARP条目。其中IP地址为192.168.1.2,MAC地址为00:23:8b:c4:05:bf。

(2修改主机B的MAC地址。如下所示:

在桌面上右键单击“网络”|“属性”,打开网络和共享中心。在该界面单击“更改适配器设置”命令,将显示如图1.26所示。 

 

图1.26  网络连接  图1.27  本地连接 属性 

在该界面右键单击“本地连接”|“属性”,将显示如图1.27所示的界面。 

在该界面单击“配置”按钮,将显示如图1.28所示的界面。在该界面选择“高级”选项卡,如图1.29所示。 

 

图1.28  Realtek PCLe GBE Family Controller属性   图1.29  高级设置 

在该界面的属性一览中找到“网络地址”(有的系统是Locally Administered Address或Network Address),然后单击“值”,并输入要更改的MAC地址(这里输入的MAC地址间不需要使用“-”符号)。

(3查看Wireshark捕获的数据包,如图1.30所示。

 

 

图1.30  免费ARP广播包

从该界面可以看到有三个免费ARP包,分别是11、15、18。这三个包都是MAC地址为00:19:21:3f:c3:e4的主机向局域网中其它主机发送的免费ARP包,告诉其它主机它将使用192.168.1.2的IP地址。免费ARP包中的数据,如图1.31所示。

 

 

图1.31  免费ARP广播包

从该界面可以看到第三行信息为ARP协议(请求/免费ARP)信息。从中可以查看的发生方的MAC地址、IP地址及目标MAC地址、IP地址。这里的目标MAC地址是00:00:00:00:00:00,表示这是一个ARP广播请求。局域网中其它的计算机都会收到。如果有某主机中记录了相关该地址的ARP条目将会被更新。

(4查看主机中的ARP缓存表。如下所示:

 

  • root@kali:~# arp
  • Address                  HWtype  HWaddress           Flags Mask            Iface
  • 192.168.1.2                ether   00:19:21:3f:c3:e4              C                eth0

 

从输出的信息中可以看到,地址为192.168.1.2的ARP条目的MAC地址更新为00:19:21:3f:c3:e4。

本文选自:ARP协议全面实战手册——协议详解、攻击与防御大学霸内部资料,转载请注明出处,尊重技术尊重IT人!

转载于:https://www.cnblogs.com/daxueba-ITdaren/p/4618614.html

你可能感兴趣的文章
文件方式实现完整的英文词频统计实例
查看>>
ListControl的用法
查看>>
单个SWF文件loading加载详解(转)
查看>>
Python3 指定文件夹下所有文件(包括子目录下的文件)拷贝到目标文件夹下
查看>>
SQLServer中的CTE通用表表达式
查看>>
ural 1133. Fibonacci Sequence
查看>>
压缩图片
查看>>
SDK登录cognos
查看>>
内存知识整理。
查看>>
redis—Spring中redis缓存的简单使用
查看>>
[VC]关于ocx打包为cab的使用
查看>>
面向对象高级编程(1)-使用__slots__
查看>>
软件测试-HW03
查看>>
linux第1天 fork exec 守护进程
查看>>
Ajax原理学习
查看>>
最新最潮的24段魔尺立体几何玩法(2016版)
查看>>
C# 3.0 LINQ的准备工作
查看>>
CodeForces - 449D Jzzhu and Numbers
查看>>
mysql批量插入更新操作
查看>>
静态代码审查工具FxCop插件开发(c#)
查看>>