除了最常用的ARP协议外,还有其他4种ARP模式,分别是翻转ARP、代理ARP、免费ARP、逆向ARP。
代理ARP(proxy ARP)
当局域网内部主机发起跨网段的ARP请求时,出口路由器/网关设备将自身MAC地址回复该请求时,实现MAC地址代理(善意的欺骗),最终使得主机能够通信(可以ping通跨网段的ip),则过程称为代理ARP。
接收到的的ARP请求若不是发送给本接口的(destination 地址不是本接口),若该接口开启了ARP代理功能,则不会丢弃该ARP,而是会把自身的接口MAC添加到该ARP对应的应答ARP的source MAC;若没开启代理ARP,则收到不是本接口的ARP请求,则会丢弃该请求ARP,不会发送应答ARP。
图解:
使用场景:
没有路由功能的主机
有路由功能,目的地指向本地出口,适用于多台电脑主机分布在不同网段之间
免费ARP(Gratuios ARP)
免费ARP,也叫Gratutious ARP、无故ARP。无故ARP是一个reply响应包,没有请求,无故产生了reply包,reply包的Sender IP和Target IP字段是相同的,相当于是请求自己的IP地址对应的MAC地址。源MAC地址是本机MAC地址,目的MAC地址是广播地址。
设备通过对外发送免费ARP报文使用场景:
1.确定其它设备的IP地址是否与本机的IP地址冲突。当其它设备收到免费ARP报文后,如果发现报文中的IP地址和自己的IP地址相同,则给发送免费ARP报文的设备返回一个ARP应答,告知该设备IP地址冲突。
2.设备改变了硬件地址,通过发送免费ARP报文通知其它设备更新ARP表项。
3.通过dhcp软件修改了ip,会发送一个免费ARP请求包
图解:
Wireshark抓包分析:
免费ARP请求包和响应包:
免费ARP的请求和响应包的Sender IP和Target IP字段都是相同的
正常情况通过dhcp修改IP地址,只会产生一次免费ARP响应包,当出现地址冲突时候,会连续的产生免费ARP响应包,同时会受到其他设备发送的ARP响应包
逆向ARP(Inverse ARP):
比较少见,一般存在于帧中继网络中,用于实现IP和DLCI地址的映射。是一种周期性(60s),向周围发出一个请求、回复的解决方案,不同于其他四种
图解:
Wireshark抓包:
翻转ARP(Reverse ARP):
讨论的少,也很少遇到(RARP)
无盘工作站通过RARP协议来获取IP地址,有了IP地址之后通过TFTP引导加载系统。
自己没有ip地址,但是有mac,通过RARP,向服务器请求获得了IP地址(这个服务器分配给他的),从而获得远程操作系统
图解: