
从数据包中,我知道这台MAC地址为00:22:22:22:22:22的计算机正在请求关于分配给哪个MAC地址192.160.100.20的信息(数据包1-4)
然后有两个数据包(ID 5,6),我不完全明白。 我猜测机器要求IP,然后把它的MAC地址分配给它。 我对吗? 你能否分别提供关于包5和包6的什么是精确的信息?
这个系统可能会运行一个默认的configuration。 免费ARP回复通常用于安装和/或更新networking中其他系统的ARPcaching中的条目。 在这种情况下,系统广播ARP应答,2秒后发送类似目的的ARP请求。 第二个是因为一些操作系统拒绝免费ARP答复,但仍然嗅探networking的ARP请求,并使用其中的发件人信息来更新他们的ARPcaching。 在这种情况下,预期用途是让备份服务器通过强制networking设备的其余部分更新其ARPcaching并开始与新提出的机器交谈来接pipe失败的IP。
如果你有兴趣, fake的相应代码行是277-304 :
if [ "${IFCONFIG}" = "TRUE" ]; then # Setup the target interface, route and send gratuitous arp /sbin/ifconfig "$TARGET_INTERFACE" $SPOOF_IP netmask $SPOOF_NETMASK \ broadcast $SPOOF_BROADCAST \ || die "Could not bring up interface" /sbin/route add -host $SPOOF_IP "$TARGET_INTERFACE" \ || warn "Could not add local route" fi # Get the mac address to use set_MACADDR $TARGET_INTERFACE #Send gratutious arp log "Sending endless Gratuitous Arp." while [ 1 ]; do /usr/sbin/send_arp \ ${SPOOF_IP} ${MACADDR} \ ${SPOOF_IP} ${MACADDR} \ ${TARGET_INTERFACE} ${MACADDR} FF:FF:FF:FF:FF:FF reply \ || die "Could not send gratuitous arp" sleep $ARP_DELAY /usr/sbin/send_arp \ ${SPOOF_IP} ${MACADDR} \ ${SPOOF_IP} 00:00:00:00:00:00 \ ${TARGET_INTERFACE} ${MACADDR} FF:FF:FF:FF:FF:FF request \ || die "Could not send gratuitous arp" sleep $ARP_DELAY done
在无限ARP欺骗循环中使用的/usr/sbin/send_arp是一个小的C程序,它是假的一部分,用于发送欺骗性ARP。
它也可以是地址parsing机制的一部分。 当一个networking主机认为它拥有一个给定的IP时,它会向networking广播一个免费ARP,以强制可能具有相同IP的其他机器发生冲突。 例如,当它收到与自己的IP地址匹配的ARP消息时,Windows会显示臭名昭着的泡泡通知,说明networking上存在地址冲突。 这由DHCP客户端使用,以评估其他networking主机是否持有DHCP服务器提供的IP地址。