ARP协议详解之Gratuitous ARP(免费ARP)
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人!
ARP协议详解之Gratuitous ARP(免费ARP)的更多相关文章
- ARP协议详解之ARP动态与静态条目的生命周期
ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q 每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...
- ARP协议详解
ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...
- ARP协议详解RARP
简单来说,ARP协议是IP地址转换成MAC地址的协议.链路层协议.过程如下: 1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系. 2:当源主机要 ...
- HTTP TCP UDP ICMP IP ARP 协议详解(10.15 第二十一天)
ARP协议 ARP(Address Resolution Protocol)协议 地址解析协议 把网络层的IP地址翻译成在数据链路层寻址的48位硬件地址(MAC地址) 在OSI模型中ARP协议属于链路 ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- ARP协议具体解释之Gratuitous ARP(免费ARP)
ARP协议具体解释之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP.无故ARP.Gratuitous ARP不同于 ...
- 入木三分学网络第一篇--VRRP协议详解第一篇(转)
因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...
- [转]VRRP协议详解
原文地址:VRRP协议详解 文中涉及缩略语 缩略语 英文全名 中文解释 VRRP Virtual Router Redundancy Protocol 虚拟路由器冗余协议 NQA Network Qu ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
随机推荐
- Linux系统下/tmp目录文件重启后自动删除,不重启自动删除10天前的/TMP的文件(转)
/tmp目录文件重启后自动删除现在知道有ubuntu和solaris系统source:http://blog.chinaunix.net/uid-26212859-id-3567875.html经常会 ...
- 基于docker的spark-hadoop分布式集群之一: 环境搭建
一.软件准备 1.基础docker镜像:ubuntu,目前最新的版本是18 2.需准备的环境软件包: (1) spark-2.3.0-bin-hadoop2.7.tgz (2) hadoop-2.7. ...
- python---django中form组件(数据添加前使用自定义方法<django预留扩展点3个>进行验证,以及源码分析)
form组件代码: from app02.models import Userfrom django.core.exceptions import ValidationError class Ajax ...
- python---django中自带分页类使用
请先看在学习tornado时,写的自定义分页类:思路一致: python---自定义分页类 1.基础使用: 后台数据获取: from django.core.paginator import Pagi ...
- nodemon:让node自动重启
nodemon:服务器自动重启工具 当我们修改代码时,node必须要手动重启,但可以按照nodemon. npm install -g nodemon 安装完 nodemon 后,就可以用 nodem ...
- bzoj千题计划287:bzoj1228: [SDOI2009]E&D
http://www.lydsy.com/JudgeOnline/problem.php?id=1228 打SG函数表,找规律: 若n是奇数m是奇数,则SG(n,m)=0 若n是偶数m是偶数,则SG( ...
- HDU 1729 类NIM 求SG
每次有n个盒子,每个盒子有容量上限,每次操作可以放入石头,数量为不超过当前盒子中数量的平方,不能操作者输. 一个盒子算一个子游戏. 对于一个盒子其容量为s,当前石子数为x,那么如果有a满足 $a \t ...
- ie8下jquery改变PNG的opacity出现黑边
复制网上的,没有他们那个类型的博客,所以就直接复制了 这些天在做一个效果,鼠标经过,PNG图片由透明变成不透明,jquery代 码:$(element).animate({"opacity& ...
- iOS-Socket编程体验
CHENYILONG Blog Socket编程体验 Socket编程体验 技术博客http://www.cnblogs.com/ChenYilong/新浪微博http://weibo.com/lu ...
- Oracle PLSql配置
1.安装Oracle客户端或者服务端 2.配置环境变量 <1>.一般如果安装了Oracle客户端或者服务端的话,在环境变种的Path中有Oracle的安装路径(计算机-属性-高级系统设置- ...