探讨免费ARP数据包

2017-11-07 11:49:40
网络安全和信息化 2017年8期
关键词:IP地址网关路由器

免费ARP数据包对于网络管理者来说并不陌生,检测IP冲突这是大家熟知的一个功能,但随着Windows系统的不断升级,其报文的格式在发生变化,而且ARP的应用也不仅是IP冲突检测这么简单。

图1 源IP和目的IP都是发送主机的IP

图2 源IP为0.0.0.0,目的IP都是发送主机的IP

免费ARP数据包的认识

免费ARP包是标准ARP请求包的特例,目的MAC地址仍是二层广播地址FF-FFFF-FF-FF-FF,源 MAC地址是发送ARP请求主机的MAC地址,然而源IP和目的IP都是发送主机的IP,但这是在Windows XP及之前的数据包格式(如图1)。

从Windows XP版本以后的系统开始,又多了一种源IP是0.0.0.0目的IP都是发送主机的格式(如图2)。而标准ARP请求包的目的IP是所请求的IP,而这就是免费ARP包和标准ARP请求包的区别。

不同的系统及设备发出的免费ARP报文

1.Windows XP:源 IP和目的IP都是发送主机的免费ARP数据包。

2.VISTA:源IP为0.0.0.0,目的IP都是发送主机的免费ARP数据包。

3.Windows 7及以上:发送以上两种免费格式的ARP数据包。

Windows 7首先会广播发送源IP为0.0.0.0的免费ARP数据包,如果没有收到应答包,就表示本地网络内没有IP地址冲突,然后会用正式的IP作为源IP再发送一次免费ARP数据包。

这比这前Windows XP之前要“谨慎”多了,因为在确定IP冲突之前,还不能正式启用这个IP,所以就用0.0.0.0代替。如果收到应答包,就会弹出地址冲突的对话框,就不会有后面正式IP发出的免费ARP数据包了。

4.三层交换机、路由器都可管理网络设备(交换端口)都会发出免费ARP。

注意,普通路由器(无线)WAN端口没有任何免费ARP数据包发出了,面对冲突,只能傻傻等待。

比如TP-LINK普通家用无线路由器的WAN端口配置的IP就不会发送免费ARP了。

这个设计肯定让很多用户不理解,其实路由器的WAN口设计主要是应用在外网连接上的,广域网的数据链路层协议,如HDLC、PPP、ATM等,数据帧封装格式不一样了,而ARP协议只是针对局域网的,MAC地址是在链路层上使用的地址,也就是以太网数据帧上。当然,如果把路由器的WAN端口应用在局域网,肯定不会发送免费的ARP数据包了。

对免费ARP报文的处理

系统和设备都会对两种免费ARP的数据包作出对应的应答包。

注意,如何系统安装了某种网络隐身功能的软件,为了防止网络设备探测到自己,是不会对目的IP是自己的ARP请求数据包作出回应,如果是网关发来的数据包就例外了。

比如,360安全卫士的流量防火墙里就存在一个局域网隐身的功能,它就是采用这种“不予理睬”的原理来实现的。

免费ARP在实际环境中的应用

1.注册报道,冲突检测

当一台主机发送了免费ARP请求报文后,如果收到了ARP响应报文,则说明网络内已经存在使用该IP 的主机,就会重新向DHCP申请IP(或者提示用户IP冲突),如果没有收到ARP响应报文,就会正式启用这个IP,向整个网络宣告自己的到来。

图3 主动发送免费ARP报文

2.确认设备接口地址

一般的设备在网卡地址加载阶段都会向网络中发送免费的ARP报文,也有些安全设备为了安全起见,让设备在加载地址期间不向外发送免费ARP报文,当我们想知道某些设备的接口地址但又没有相应记录可查时,我们就可以利用设备的这种特性,抓取其免费ARP报文,从而分析出其接口使用的IP地址。

3.防止主机ARP表项老化

在实际环境中,当网络负载较大或接收端主机的CPU占用率较高时,可能存在ARP报文被丢弃或主机无法及时处理接收到的ARP报文等现象。这种情况下,接收端主机的动态ARP表项会因超时而被老化,在其重新学习到发送设备的ARP表项之前,二者之间的流量就会发生中断。

为了解决上述问题,可以在网关的接口上使能定时发送免费ARP功能。使能该功能后,网关接口上将按照配置的时间间隔周期性发送接口主IP地址和手工配置的从IP地址的免费ARP报文。这样,接收端主机可以及时更新ARP映射表,从而防止了上述流量中断现象。

4.防止VRRP虚拟IP地址冲突

当网络中存在VRRP备份组的时候,需要由VRRP备份组的Master路由器周期性的向网络内的主机发送免费ARP报文,使主机更新本地ARP地址表,从而确保网络中不会存在IP地址与VRRP虚拟IP地址相同的设备。

5.防止仿冒网关的ARP攻击

有些网关设备为了防止内部中毒机器对内部其他机器实施网关的ARP欺骗攻击,其会在一定的时间间隔内向网络中主动发送免费ARP报文,让网络内的主机更新ARP表项中的网关MAC地址信息,从而达到防止或缓解ARP攻击的效果,如图3所示。

注意,本来这个功能设计的初衷是好的,但如果不能正确配置,相反会引发网络不通的故障,而且悄无声息。

比如有个客户反应网络访问异常缓慢,通过抓取数据包分析,发现网络内存在大量免费ARP(IP地 址为192.168.1.1)报文,如图4所示。

从以上数据包分析,如果是客户端电脑设备,应该会提示IP地址冲突,但实际环境中没有发现IP地址冲突的设备,而且根据IP地址192.168.1.1可以判断出这应该是网关路由设备的IP。与网络管理员进一步沟通后,发现正常的网关应该是192.168.1.1,其对应的MAC是74:A3:B7:C0:88:C1。

经过逐步排查,在一间办公室发现了一台无线路由器,是用户为了方便无线上网,私自接入了当无线AP使用了,但它默认的IP刚好是192.168.1.1。最要命的是两台路由器都开启发送免费ARP防止被欺骗的功能。

图4 抓取数据包

图5 交互过程示意

路由器发送免费ARP报文的目的就是防止内部存在伪造默认网关地址192.168.1.1的免费ARP报文实施ARP欺骗的主机,如图3所示,其间隔50毫秒发送了多个免费ARP报文可以保证路由下所有的主机ARP表中网关地址(192.168.1.1)的MAC对应关系维持正确。因为大部分的ARP欺骗的发包频率并不需要非常快。

但是当路由器检测到网络中有其他MAC的免费ARP(192.168.1.1)报文后,其认为是内部主机在实施ARP欺骗行为,因此逐步提高了其发免费ARP报文的频率,而这个动作会在两个路由设备上同步进行,由此导致的后果就是,双方不断的增加其发送免费ARP报文的频率,导致网络中存在大量免费ARP数据包,影响了网络的正常通信。其交互过程示意图大致如图5所示。

最后重新配置了办公室的无线路由器,停用了免费ARP数据包自动发送功能,网络通信恢复正常。

在整个网络协议中,ARP协议虽然没有像TCP/IP那样担任重要的角色,但它对整个网络的平衡运行提供了最基础的保障。

免费的ARP数据包只是ARP协议中一个不起眼的请求数据包,但是在Windows版本的变迁中,对免费ARP数据包的格式做出了不断的改进,足可以看出它对细节的处理是非常精准的。对于一个网络工作者来讲,更有必要去探究网络末稍的细节,让网络更加稳定、高效的运行。

猜你喜欢
IP地址网关路由器
买千兆路由器看接口参数
科教新报(2022年24期)2022-07-08 02:54:21
基于改进RPS技术的IPSEC VPN网关设计
铁路远动系统几种组网方式IP地址的申请和设置
基于SNMP的IP地址管理系统开发与应用
黑龙江电力(2017年1期)2017-05-17 04:25:16
你所不知道的WIFI路由器使用方法?
LTE Small Cell网关及虚拟网关技术研究
移动通信(2015年18期)2015-08-24 07:45:08
应对气候变化需要打通“网关”
太阳能(2015年7期)2015-04-12 06:49:50
一种实时高效的伺服控制网关设计
无线路由器辐射可忽略
巧设路由器,下载更快速