ARP(Address Resolution Protocol,地址解析协议)是一种网络层协议,用于在局域网(LAN)中将网络层地址(如IPv4地址)解析为链路层地址(如以太网MAC地址)。ARP协议是IPv4网络中的一部分,它允许设备在只知道目标设备的IP地址时,能够找到该设备在局域网中的物理地址(MAC地址),从而能够发送数据帧。
在以太网中,数据传输所依赖的是MAC地址,而非IP地址。
场景:在同一网络下,主机A需要向主机B传输数据
请求过程:
主机A会先检查自身的ARP缓存表,查看是否拥有目的主机B的MAC地址。如果有,则直接使用该MAC地址进行数据帧的封装。如果没有,主机A则会向局域网中的所有主机发送一个ARP请求包(这个ARP请求会询问:“谁拥有这个IP地址?”)
响应过程:
局域网中所有设备都会收到这个ARP请求,但只有目标设备(主机B)会响应。同时主机B会将主机A的IP地址和MAC地址存储到自身的ARP缓存表,然后发送一个ARP响应给主机A,告诉它自己的MAC地址。
数据发送:
最后主机A收到主机B返回的ARP响应包后,会将主机B的IP地址和MAC地址存储到自身的ARP缓存表上,然后使用这个MAC地址来封装数据帧,并通过局域网发送给主机B。



为了减少网络中的ARP请求数量,大多数操作系统都会维护一个ARP缓存表。这个表存储了最近解析的IP地址到MAC地址的映射。当设备想要发送数据给另一个设备时,它首先会检查ARP缓存表中是否已经有该设备的映射。如果有,就直接使用缓存中的MAC地址;如果没有,才发送ARP请求。

动态ARP表是通过ARP协议自动学习和构建的。当网络设备需要知道某个IP地址对应的MAC地址时,它会发送一个ARP请求广播到网络上。网络上知道该IP地址的设备(或者拥有该IP地址的设备本身)会回应一个ARP应答,其中包含该IP地址对应的MAC地址。请求设备接收到应答后,就会将这个IP到MAC的映射关系存储在它的ARP表中。动态ARP表会随时间而更新,当长时间没有通信或接收到新的ARP应答时,旧的条目可能会被删除或覆盖。
静态ARP表是管理员手动配置的,通常用于固定IP地址的环境或特殊网络配置中。在静态ARP表中,管理员直接指定IP地址和MAC地址的映射关系,并且这些映射关系不会被ARP协议自动更改或删除。静态ARP表对于控制网络流量、确保网络安全性以及减少ARP欺骗等攻击的风险特别有用。例如,在网络设备的配置文件中明确指定特定IP地址应该使用哪个MAC地址,可以确保即使收到ARP欺骗信息,设备也不会更改其ARP表中的条目。
免费ARP(Gratuitous ARP),也被称为无故ARP,是ARP(地址解析协议)的一种特殊形式。与普通ARP请求报文不同,免费ARP的请求报文中的“目的IP地址”是其自己的IP地址,而不是其他机器的IP地址。
检测IP地址冲突
:
- 当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP地址的主机,从而可以及时发现并解决IP地址冲突问题。
宣告和确认IP地址
:
- 在设备(如计算机、服务器等)的网卡地址加载阶段,它们通常会发送免费ARP报文来宣告自己的IP地址和MAC地址,以确认该IP地址在广播域内是否已被其他设备使用。
更新ARP缓存表
:
- 在某些场景下,如网关设备双机热备时,当主设备切换到备用设备时,备用设备会发送免费ARP请求报文,以更新其他设备ARP缓存表中的网关MAC地址信息,确保网络通信的连续性。
免费ARP报文的封装格式与普通ARP报文类似,但关键区别在于“目的IP地址”字段。在免费ARP报文中,该字段被设置为发送者自己的IP地址。此外,接收者的MAC地址在免费ARP应答中通常被设置为全F(即广播MAC地址),表示该ARP应答是广播发送的。
由于免费ARP报文是广播发送的,且不需要进行身份验证,因此存在一定的安全隐患。例如,攻击者可以构造虚假的免费ARP报文来欺骗网络中的其他设备,导致ARP缓存表被错误更新,进而引发数据泄露或通信中断等安全问题。为了防范此类攻击,可以采取设置MAC地址和IP地址绑定、将交换机上某些端口设置为信任端口等措施来增强网络的安全性。
代理ARP主要用于解决跨网段通信时ARP请求无法直接到达目标设备的问题。当两个主机分别位于不同的物理网络(如不同的子网或VLAN)且需要通信时,如果它们之间没有直接的路由或网关配置,那么可以通过启用代理ARP的路由器或交换机来间接实现通信。
当主机A需要知道主机B的MAC地址时,如果它们不在同一广播域内,主机A会发送ARP请求。此时,如果网络中有启用代理ARP的设备,该设备会代替主机B应答ARP请求,使用自己的MAC地址作为响应,从而实现主机A到主机B的数据传输。
优点:
- 可以在不改变路由表的情况下添加新的路由。
- 使得子网对主机来说变得更透明化。
- 在某些情况下,可以简化网络配置和管理。
缺点:
- 增加了网络中的ARP流量,可能导致网络拥塞。
- 存在一定的安全风险,代理ARP其实是一种ARP欺骗。
- 无法对网络拓扑进行准确的网络概括。
ARP攻击的原理在于利用ARP协议设计时缺乏安全验证的漏洞,通过伪造ARP数据包来窃取合法用户的通信数据或造成网络故障。攻击者会持续不断地发出伪造的ARP响应包,更改目标主机ARP缓存中的IP-MAC条目,使得目标主机在发送数据时错误地将数据包发送给攻击者,从而实现中间人攻击或导致网络中断。
ARP攻击的主要方式包括路由欺骗和网关欺骗。路由欺骗是指攻击者伪造路由信息,使得目标主机将数据包发送给错误的路由路径;网关欺骗则是指攻击者伪造网关的MAC地址,使得目标主机在发送数据包时错误地将数据包发送给攻击者控制的设备。
本文作者:zzz
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!