免费ARP
Ø 免费ARP的格式:(arp报文中目标ip地址是自己地址)
免费ARP报文与普通ARP请求报文的区别在于普通的ARP请求报文,其ARP封装内的“目的IP地址”是其他机器的IP地址,而免费ARP的请求报文,其ARP封装内的“目的IP地址”是其自己的IP地址。免费ARP的封装格式如下图所示:
图 免费ARP报文的封装格式图示
Ø 免费ARP在实际环境中的一些应用:
免费ARP主要用于检测IP地址冲突。当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机。
在实际的工作环境中,免费ARP除了用于检测地址冲突之外,我们还可以用于以下几个方面:
1,利用免费ARP确认设备接口地址:(网卡获取ip地址时,查询网络中是否有相同ip地址的设备,防止网络中相同ip地址冲突)
一般的设备在网卡地址加载阶段都会向网络中发送免费的ARP报文(也有些安全设备为了安全起见,让设备在加载地址期间不向外发送免费ARP报文),当我们想知道某些设备的接口地址但又没有相应记录可查时,我们就可以利用设备的这种特性,抓取其免费ARP报文,从而分析出其接口使用的IP地址。这个方法曾数次在用户处使用,效率很高,效果非常明显。
2,使用免费ARP报文,更新某些设备的ARP表项。(主从设备的替换,更新上级路由的arp表)
在《TCP/IP详解卷1》的第四章中,有讲到使用免费ARP报文,更新其他主机设备的ARP表项的应用,在我们的工作环境中最常见的应用可能是网关设备双机热备的应用场景,网关在双机热备的工作模式下,由主设备切换到备用设备时,与之相连的设备的ARP表项需要由以前主设备的MAC地址更新为现在主设备(切换前的从设备)的MAC地址,这时,一般从设备在切换为主设备时,就利用向网络中发送免费ARP请求报文,达到让其他设备更新ARP表项的效果。下面这个图示说明了这个切换的过程:
图 双机热备模式下主从设备切换利用免费ARP的过程
3,利用免费ARP的攻击(将arp源MAC地址改为错误MAC地址)
在实际环境中,如果构造网关地址的免费ARP报文,并将ARP的源MAC地址设为任何非网关的MAC地址,再把构造的这个虚假的网关免费ARP报文向网络中发送,那么所有接收到这个免费ARP报文的主机都会更新自己的ARP表项中网关地址对应的MAC地址,导致这些主机的数据报文全部会被转发到错误的MAC地址上,从而实现了ARP欺骗的攻击。
4,网关设备利用免费ARP防止ARP攻击(正常的网关设备一定时间内会向网络发出免费arp报文,告诉大家自己的ip地址)
有些网关设备为了防止内部中毒机器对内部其他机器实施网关的ARP欺骗攻击,其会在一定的时间间隔内向网络中主动发送免费ARP报文,让网络内的主机更新ARP表项中的网关MAC地址信息,从而达到防止或缓解ARP攻击的效果。
ARP表的更新和老化
Ø ARP表的更新的条件(1、arp请求 / 免费arp报文 2、本地存在该ip对应的ARP表项)
在实际的环境中,只有同时满足以下两个条件时,设备的ARP表项才会更新:
1,设备收到来自某IP的ARP请求包或免费ARP包;
2,设备的现有ARP表项中已经存在该IP对应的ARP表项。
其他的非ARP报文不会对设备的ARP表项产生影响。
Ø ARP表的老化时间(不同厂家配置的arp表老化时间不一样)
不同的系统对ARP表的老化时间设定不太一样,在Windows2000/XP环境中,ARP表项的老化时间是2分钟,95/98以及NT环境下为10分钟,在大部分Cisco交换机中,该值是5分钟,华为的设备一般为20分钟……这些值可以通过系统注册表或设备的某些命令进行设置,具体设置的命令和参数请自行参考相关文档。
Ø ARP表老化时间定时器的重置
满足以下任一条件时,设备的ARP表项的老化时间定时器会重置:
1,设备相应的ARP表项更新时;
2.,设备调用(引用)ARP表项转发数据后。
Ø 如果ARP更新存在问题我们如何解决?(通过手动静态绑定arp表项)
在实际的环境中,经常遇到某些设备的ARP表项更新速度非常慢,甚至ARP学习存在问题,从而导致我们的网络连接出现异常,我们如何解决?
解决的方式就是在ARP表学习或更新出现异常的时候,在该设备上手动静态绑定ARP表项。