网络技术-争议层:ARP协议

发布时间 2023-09-18 22:14:41作者: 犯愁の难瓜

ARP协议介绍:

 Address Resolution Protocol 即 地址解析协议 (实际上ARP协议到底在数据链路层还是在网络层,是有争议的,这里不做过多研究)

网络设备有数据要发送给另外一台网络设备时,不仅仅要知道对方的IP地址(IP地址由网络层提供);还需要知道对方的MAC地址(由物理层定义的MAC地址)。

在进行网络通讯时,我们都依靠IP地址进行通讯,此时就会发现对方的MAC地址我们并不知道,这时候ARP协议诞生了。

ARP协议通过发送广播报文的形式来询问对方的MAC地址,然后建立IP地址与MAC地址对应表 例如:

192.168.0.10 0A-00-27-00-00-0D
192.168.0.20 04-92-26-4A-D0-AB
192.168.0.30 00-50-56-C0-00-01

 

ARP工作过程:

主机A在第一次与主机B进行通讯时,主机A只知道主机B的IP地址,但并不知道主机B的MAC地址

此时主机A将发送这样的信息:源IP:主机A、目的IP:主机B;源MAC:主机A、目的MAC:FF-FF-FF-FF-FF-FF

 尤其注意目的MAC,全F即代表发给了局域网(或Vlan)内所有的主机

此时主机A发送的广播,主机B能收到,主机C能收到,主机D能收到

主机B在收到后进行解封装,解封到网络层时,发现目的IP地址竟是自己,因此会回包

与此同时:主机C、主机D收到后也进行解封装,解封到网络层时,发现目的IP并不是自己,因此将此包丢弃。

此时主机A知道了主机B的MAC地址后,将此条IP、MAC对应表记录到自己arp表中(主机B也会将主机A的IP、MAC对应表记录在自己的arp表中),方便下次省略ARP 直接进行通讯

 

以下是抓包中,看到的ARP报文

 可以注意:主机A在发送给主机B时,目标MAC地址全是F (也有可能全是0)

 

查看系统ARP表:

使用arp -a  命令来查看arp表

 使用arp -d 清空arp表

 

ARP欺骗、攻击:

ARP的原理极其简单,回顾一下步骤:

主机A发送个广播请求主机B告知MAC地址 主机B收到信息后,回应了主机A;一切都很正常。

若有这种情况:

主机A发送广播请求主机B告知MAC

但主机B虽然先回复了MAC地址,随后主机C也假装成主机B回应了MAC地址

此时此刻,主机A的arp表会立马被C回复的覆盖掉,这样一来,主机A以后发送目的IP为主机B的信息,信息实际上没有被主机B接收,而是被主机C接收了;这种情况:ARP欺骗就诞生了。

这是在抓包中,看到ARP攻击的包

你会发现,有两台机器是同一个IP,但是MAC地址却不一样,第二个回应者,就是欺骗者。

 

免费ARP:

免费ARP用于探测自身IP地址是否被其他人使用,用于检测IP冲突

免费ARP原理:

主机A的IP地址是:10.1.1.1

主机A会不定时自己问自己:IP为10.1.1.1的主机,你的MAC地址是什么?

如果没有得到任何回应,则表示IP无冲突

若得到了回应,就说明回应者使用了与主机A相同的IP地址

 

 

? 记录时间:2023年9月18日 22点07分

? 参考资料: https://www.bilibili.com/video/BV1Dg4y187bZ?p=12