ARP与免费ARP的区别
arp名词解释

arp名词解释ARP(Address Resolution Protocol)是一种网络通信协议,用于将网络层地址(IP地址)转化为链路层地址(MAC地址)。
ARP的作用是帮助网络设备在进行通信时成功地将数据包从源设备传输到目标设备。
在计算机网络中,每个设备都具有唯一的IP地址来进行通信。
IP地址是在网络层进行使用的,用于在网络中定位设备。
然而,在链路层(物理层和数据链路层)中,设备使用的是MAC地址。
MAC地址是与设备网卡硬件相关联的全球唯一标识符,用于在局域网中寻址。
当一个设备试图与另一个设备进行通信时,它需要知道目标设备的MAC地址。
为了获得目标设备的MAC地址,源设备会通过ARP协议发送一个ARP请求广播,该广播中包含源设备的IP地址。
网络中的所有设备都会接收到这个广播消息。
目标设备在收到该消息后,会回应一个ARP响应,包含自己的MAC地址。
源设备通过接收到的ARP响应获取到目标设备的MAC地址,并将其存储在本地的ARP缓存中,供以后使用。
当源设备想要向目标设备发送数据包时,它会检查本地的ARP缓存来查找目标设备的MAC地址。
如果缓存中没有目标设备的MAC地址,源设备会再次发送ARP请求来获取最新的MAC地址。
目标设备收到ARP请求后,会再次发送ARP响应,包含自己的MAC地址。
源设备获取到目标设备的MAC地址后,就可以将数据包封装在链路层的帧中,并将其发送给目标设备。
ARP协议的核心是通过广播信息来获取目标设备的MAC地址,这使得ARP协议具有一定的开销和安全风险。
由于ARP请求和响应在网络中广播,因此可能会导致网络拥堵。
此外,ARP 协议缺乏身份验证和安全机制,可能会受到ARP欺骗攻击,其中攻击者会发送虚假的ARP响应来欺骗源设备。
为了解决上述问题,还有一些衍生的ARP协议,如Gratuitous ARP(免费ARP)和Proxy ARP(代理ARP)。
Gratuitous ARP用于设备在网络重启或更换MAC地址后,向局域网中所有的设备发送一个包含自己新MAC地址的ARP响应,以更新其他设备的ARP缓存。
交换机Gratuitous-ARP(免费ARP)侦测

Gratuitous ARP,被翻译为“免费ARP”,也被称为“无故ARP”,其实相比于“免费”这个翻译,“无故”会更好理解:“在没有人问自己的情况下,无缘无故自问自答”。
Gratuitous ARP不同于一般的ARP 请求,它并不是期待得到IP相应的MAC地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的IP地址的MAC 地址。
免费ARP有以下两个作用:1.验证IP是否冲突一个主机能够通过它来确定还有一个主机是否设置了同样的IP 地址。
发送主机并不须要一定收到此请求的回答。
假设收到一个回答,表示网络中存在与自身IP同样的主机。
假设没有收到应答,则表示本机所使用的IP与网络中其他主机并不冲突。
2.更换物理网卡假设发送ARP的主机正好改变了物理地址(如更换物理网卡),能够使用此方法通知网络中其他主机及时更新ARP缓存。
免费ARP动作:disable、request、reply,及request和reply,当为disable时,该协议模块不会周期发送免费ARP,request时会定期向外发送免费ARP,免费ARP动作中实际只有disable和request有效,只有在收到request请求时,才会往外发送reply报文。
兆越通讯交换机可以通过发送免费ARP报文来确定网络中其它设备的IP地址是否与自己冲突。
免费ARP报文中携带的源IP和目的IP地址都是交换机本机地址,报文源MAC地址是本机MAC地址。
兆越通讯交换机缺省情况下即可以对接收到的免费ARP报文进行处理,当收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址冲突,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
同时交换机也会通过日志来告知用户网络中出现了IP地址冲突。
缺省情况下,兆越通讯交换机的免费ARP报文发送功能处于关闭状态。
可以通过下面的命令在交换机的路由端口上配置免费ARP 功能。
免费ARP的作用

免费ARP是指主机发送ARP查找自己的IP地址。
通常,它发生在系统引导期间进行接口配置的时候。
在互联网中,如果我们引导主机bsdi并在主机sun上运行tcpdump命令,可以看到如下所示的分组。
0:0:c0:6f:2d:40 ff:ff:ff:ff:ff:ff arp 60:arp who-has 140.252.13.35 tell 140.252.13.35对于ARP请求中的各个字段来说,发送端的协议地址和目的端的协议地址是一致的:即主机bsdi的地址140.252.13.35。
另外,以太网报头中的源地址0:0:c0:6f:2d:40,正如tcpdump命令显示的那样,等于发送端的硬件地址免费ARP可以有两个方面的作用:1)一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。
主机bsdi并不希望对此请求有一个回答。
但是,如果收到一个回答,那么就会在终端日志上产生一个错误消息“以太网地址:a:b:c:d:e:f发送来重复的IP地址”。
这样就可以警告系统管理员,某个系统有不正确设置。
2)如果发送免费ARP的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接口卡,然后重新启动),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。
一个比较著名的ARP协议事实是,如果主机收到某个IP地址的ARP请求,而且它已经在接收者的高速缓存中,那么就要用ARP请求中的发送端硬件地址对高速缓存中相应的内容进行更新。
主机接收到任何ARP请求都要完成这个操作(ARP请求是在网上广播的,因此每次发送ARP请求时网络上的所有主机都要这样做)。
免费ARP的作用,目前,免费ARP的作用有两种。
第一种就是刚才上面所说的宣告广播的作用,以告诉整个广播域,目前这个IP所对应的MAC地址是什么。
第二种是看看广播域内有没有别的主机使用自己的IP,如果使用了,则在界面上弹出“IP冲突”字样。
普通ARP 请求报文广播发送出去,广播域内所有主机都接收到,计算机系统判断ARP请求报文中的目的IP地址字段,如果发现和本机的IP地址相同,则将自己的MAC地址填写到该报文的目的MAC地址字段,并将该报文发回给源主机。
arping命令详解

arping命令详解⼀、版本arping命令是⽤于发送arp请求到相邻主机的⼯具,arping使⽤arp数据包arping有两个版本,⼀个版本是Thomas Habets这个⼈写的,这个版本有个好处是可以arping <MAC地址>,也就是说我们可以通过MAC地址得到IP。
还有⼀个版本是Linux iputils suite的,这个版本就不能通过MAC地址,解析出IP地址了。
可以使⽤arping -V来查看⾃⼰系统的arping的版本据观察Redhat\CentOS使⽤的是Linux iputils suite版本的,debian使⽤的是Thomas Habets。
注意两个版本的的arping使⽤的参数有很⼤的区别,所以要根据⾃⼰的arping版本去使⽤相应的参数。
不看版本在⽹上抄的命令可能在⾃⼰的系统上⽆法执⾏。
下⾯介绍Linux iputils suite版本的arping命令⽤法。
⼆、语法Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination三、参数释义-A:与-U参数类似,但是使⽤的是ARP REPLY包⽽⾮ARP REQUEST包。
-b:发送以太⽹⼴播帧,arping在开始时使⽤⼴播地址,在收到回复后使⽤unicast单播地址。
-c:发送指定的count个ARP REQUEST包后停⽌。
如果指定了-w参数,则会等待相同数量的ARP REPLY包,直到超时为⽌。
-D:重复地址探测模式,即,Duplicate address detection mode (DAD),⽤来检测有没有IP地址冲突,如果没有IP冲突则返回0。
-f:收到第⼀个响应包后退出。
-h:显⽰帮助页。
-I:⽤来发送ARP REQUEST包的⽹络设备的名称。
-q:quite模式,不显⽰输出。
-U:⽆理由的(强制的)ARP模式去更新别的主机上的ARP CACHE列表中的本机的信息,不需要响应。
ARP学习心得

2
ARP工作原理
1
ARP工作原理
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A 主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP 请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地 网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP 地址与自己的IP地址不匹配,它将丢弃ARP请求。
4
ARP常用命令
①arp -a或arp –g 用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是 UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp -a(a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。 ②arp -a Ip 如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相 关的ARP缓存项目。 ③arp -s Ip 物理地址 可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持 有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。 ④arp -d Ip 使用该命令能够人工删除一个静态项目。
1
ARP工作原理
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映 射添加到本地ARP缓存中。 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP 缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦 确定,主机A就能向主机B发送IP通信了。
免费ARP的格式

免费ARP的格式免费ARP报文与普通ARP请求报文的区别在于普通的ARP请求报文,其ARP封装内的“目的IP地址”是其他机器的IP地址,而免费ARP的请求报文,其ARP封装内的“目的IP地址”是其自己的IP 地址。
免费ARP的封装格式如下图所示:免费ARP报文的封装格式图示免费ARP在实际环境中的一些应用免费ARP主要用于检测IP地址冲突。
当一台主机发送了免费ARP 请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机。
在实际的工作环境中,免费ARP除了用于检测地址冲突之外,我们还可以用于以下几个方面:1,利用免费ARP确认设备接口地址一般的设备在网卡地址加载阶段都会向网络中发送免费的ARP报文(也有些安全设备为了安全起见,让设备在加载地址期间不向外发送免费ARP报文),当我们想知道某些设备的接口地址但又没有相应记录可查时,我们就可以利用设备的这种特性,抓取其免费ARP报文,从而分析出其接口使用的IP地址。
这个方法曾数次在用户处使用,效率很高,效果非常明显。
2,使用免费ARP报文,更新某些设备的ARP表项在《TCP/IP详解卷1》的第四章中,有讲到使用免费ARP报文,更新其他主机设备的ARP表项的应用,在我们的工作环境中最常见的应用可能是网关设备双机热备的应用场景,网关在双机热备的工作模式下,由主设备切换到备用设备时,与之相连的设备的ARP表项需要由以前主设备的MAC地址更新为现在主设备(切换前的从设备)的MAC地址,这时,一般从设备在切换为主设备时,就利用向网络中发送免费ARP请求报文,达到让其他设备更新ARP表项的效果。
下面这个图示说明了这个切换的过程:双机热备模式下主从设备切换利用免费ARP的过程3,利用免费ARP的攻击在实际环境中,如果构造网关地址的免费ARP报文,并将ARP的源MAC地址设为任何非网关的MAC地址,再把构造的这个虚假的网关免费ARP报文向网络中发送,那么所有接收到这个免费ARP报文的主机都会更新自己的ARP表项中网关地址对应的MAC地址,导致这些主机的数据报文全部会被转发到错误的MAC地址上,从而实现了ARP欺骗的攻击。
GARP( 免费ARP)概念

免费ARP的概念免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址,报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。
设备通过对外发送免费ARP报文来实现以下功能:l 确定其它设备的IP地址是否与本机的IP地址冲突。
当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
l 设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。
1. 免费ARP报文学习功能的作用使能了免费ARP报文学习功能后,设备会根据收到的免费ARP报文中携带的信息(源IP地址、源MAC地址)对自身维护的ARP表进行修改。
设备先判断ARP表中是否存在与此免费ARP报文源IP地址对应的ARP表项:l 如果没有对应的ARP表项,设备会根据该免费ARP报文中携带的信息新建ARP表项;l 如果存在对应的ARP表项,设备会根据该免费ARP报文中携带的信息更新对应的ARP表项。
关闭免费ARP报文学习功能后,设备不会根据收到的免费ARP报文来新建ARP表项,但是会更新已存在的对应ARP表项。
如果用户不希望通过免费ARP报文来新建ARP表项,可以关闭免费ARP报文学习功能,以节省ARP表项资源。
2. 定时发送免费ARP功能的作用定时发送免费ARP功能可以及时通知下行设备更新ARP表项或者MAC地址表项,主要应用场景如下:(1) 防止仿冒网关的ARP攻击如果攻击者仿冒网关发送免费ARP报文,就可以欺骗同网段内的其它主机,使得被欺骗的主机访问网关的流量,被重定向到一个错误的MAC地址,导致其它主机用户无法正常访问网络。
为了尽量避免这种仿冒网关的ARP攻击,可以在网关的接口上使能定时发送免费ARP功能。
使能该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。
ARP(地址解析协议)

ARP(地址解析协议)⽬录1. ARP 概述地址解析协议,即 ARP(Address Resolution Protocol),是根据IP地址获取物理地址的⼀个TCP/IP协议。
它是IPv4中⽹络层必不可少的协议,不过在IPv6中已不再适⽤,并被邻居发现协议(NDP)所替代。
主机发送信息时将包含⽬标IP地址的ARP请求⼴播到⽹络上的所有主机,并接收返回消息,以此确定⽬标的物理地址;收到返回消息后将该IP地址和物理地址存⼊本机ARP缓存中并保留⼀定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建⽴在⽹络中各个主机互相信任的基础上的,⽹络上的主机可以⾃主发送ARP应答消息,其他主机收到应答报⽂时不会检测该报⽂的真实性就会将其记⼊本机ARP缓存;由此攻击者就可以向某⼀主机发送伪ARP应答报⽂,使其发送的信息⽆法到达预期的主机或到达错误的主机,这就构成了⼀个ARP欺骗。
ARP命令可⽤于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
相关协议有RARP、代理ARP。
⽹络层使⽤的是 IP 地址,但在实际⽹络的链路上传输数据帧时,最终还必须使⽤该⽹络的硬件地址。
但 IP 地址和下⾯的⽹络的硬件地址由于格式不同⽽不存在简单的映射关系。
此外,⼀个⽹络上可能会经常会有新主机加⼊进来,或撤⾛⼀些主机。
更换⽹络适配器也会使主机的硬件地址改变。
地址解析协议 ARP 解决的⽅法是:在主机ARP⾼速缓存中应存放⼀个从IP地址到硬件地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)。
注意:ARP是解决同⼀局域⽹中主机或者路由器的IP地址和硬件地址的映射问题,在每⼀台主机中都有⼀个ARP⾼速缓存(ARP cache),⾥⾯存储本主机所知道本局域⽹中其他主机的IP地址与硬件地址的映射表2. ARP 协议⼯作原理当主机 A 向本局域⽹上的某台主机 B 发送 IP 数据报时,就先在其 ARP ⾼速缓存中查看有⽆主机 B 的 IP 地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARP与免费ARP的区别
一般的ARP,广播到整个网络,而如果目的地址不是本机,会被收到的主机直接丢弃,那为什么免费ARP没有被丢弃?反而更新了映射缓存?是什么机制呢?
这是因为免费ARP报文发送端【IP地址】和【目标IP地址】都是本机IP地址!!!报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。
2、免费ARP
免费ARP报文是一种特殊的ARP报文,该报文中携带的发送端IP地址和目标IP地址都是本机IP地址,报文源MAC地址是本机MAC地址,报文的目的MAC地址是广播地址。
设备通过对外发送免费ARP报文来实现以下功能:
# 确定其它设备的IP地址是否与本机的IP地址冲突。
当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
# 设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。
PC发送免费ARP
case1:PC通过DHCP申请地址,在获取到IP地址后,会发送免费ARP,目的用于探测同一网段时候存在相同的IP地址终端,防止IP冲突。
case2:PC的MAC地址发生变化后,会发送免费ARP,用于刷新同网段其他终端保存该PC的ARP表现。
这个是那本经典的TCP/IP红宝书上讲的,但是小编不了解什么情况下,PC的MAC地址会发生变化。
case3:服务器进行虚拟化后(Vmware、XEN),但VM迁移后,会发送RARP、ARP报文,这个不是免费ARP。
case4:同一网段存在相同IP的两个终端,单一个终端收到另外一个终端的ARP请求报文,原味SenderIP为自身IP,这时会发送免费ARP。
(这个是小编印象中的,不一定是这样,有环境,你可以实践下)
网络设备Router发送免费ARP:
case1:vlanif接口shutdown/no shutdown后,会发送免费arp。
case2:VRRP的master会定时发送免费arp,单VRRP发生主备切换时也会发送免费arp。
目的用于刷新下面的二层交换机的mac表项。
case3:Router的三层接口收到op为1、2,SenderIP为selfIP的免费arp,会发送op为2的免费arp。
目前遇到以上这些情况,应该还是有其他情况存在的。
总之要记住免费arp的两个作用,对于其他情况也就很好分析了。
免费arp的作用1:告诉同网段的其他主机、接口,我的mac地址发生了变化。
作用2:告知同网段存在IP地址冲突。