假设局域网中有A、B、C三台计算机,A的IP地址是:192.168.1.100,MAC地址是:1A-2A-3A-4A-5A-6A;B的IP地址是:192.168.1.200,MAC地址是:1B-2B-3B-4B-5B-6B;C的IP地址是:192.168.1.250,MAC地址是:1C-2C-3C-4C-5C-6C.
ARP正常工作
现在A要和B通信,A首先会发出一个ARP广播数据抱(即向192.168.1.0-192.168.1.255这个范围内的所有设备发送数据包),获取B的MAC地址。数据包中会包含源IP(A的IP)、源MAC(A的MAC)、和目标IP(B的IP);B接收到A发出的ARP广播后,发现目标IP地址就是与自己的IP地址相同,然后会给A回复一个ARP单播数据包,把自己的MAC地址信息添加在里面。
A收到B的恢复后,得知B的MAC地址,然后就可以直接向B传输数据了,同时电脑A会建立一个ARP映射表,把192.168.1.200与1B-2B-3B-4B-5B-6B物理地址对应起来。B在收到A的广播包后,也会建立一张ARP映射表,把A的IP:192.168.1.100和MAC:1A-2A-3A-4A-5A-6A对应起来。之后如果A还需要和B进行通信,会先查自己的ARP表,获取B的MAC地址。
ARP欺骗攻击
假设计算机C是ARP攻击源,当A和B通信时,A发出一个ARP广播数据包,寻找IP地址是192.168.1.200的目标设备的MAC地址,C接收到A的数据包后,C会给恢复一个伪造的ARP数据包,告诉A IP地址是192.168.1.200的目标设备的MAC地址是1C-2C-3C-4C-5C-6C,或者伪造一个不存在的MAC地址,如1D-2D-3D-4D-5D-6D。A收到C伪造的ARP恢复数据包后,获得一个假的MAC地址,然后A就开始往这个假的MAC地址发送数据,使得A无法真正的与B进行通信。
ARP攻击为什么会掉网
出现掉网的现象是局域网中的某一台设备在进行ARP欺骗,而且还是欺骗的网关的MAC地址。如局域网的计算机A要上网,会先把数据包发送给网关,因此需要先知道网关的MAC地址。所以会先发送一个ARP广播好询问网关的MAC地址,中了ARP病毒的计算机会给A返回一个价格网关MAC地址,使得A的上网数据包根本无法传输给网关,自然就不能够上网了,出现掉网的现象。