ARP协议

ARP协议,将IP地址解析为MAC地址

ARP协议的具体内容在RFC826文档中,链接地址 https://tools.ietf.org/html/rfc826

MAC地址属于第二层 数据链路层,IP地址属于第三层 网络层,ARP协议用于将第二第三层连接起来,将IP地址解析出对应的MAC地址,以保证通信。

根据RFC文档关于ARP协议的描述,主要存在两种ARP包,请求包和响应包

ARP协议过程

1、主机A要给主机B发送消息,在A的本地ARP缓存中查找B的MAC地址

2、如果没找到,则发布ARP广播到所有主机,请求包中包含本机A的IP地址,A的MAC地址,目标主机B的IP地址,以及目标B的MAC地址(以全00代替)

3、网络中主机查看A发送的ARP广播,如果满足A的Target IP,则发送ARP响应;如果不是A的Target IP,则丢弃此包。主机C、D丢弃此包

4、主机B中IP地址满足,则将主机A的IP地址和MAC地址添加到B的本地ARP缓存中

5、主机B向A发送包含主机B的MAC地址的ARP响应包

6、主机A收到响应后,更新本地ARP缓存,之后建立与B的通信

ARP缓存表可以使用命令 arp -a进行查看

ARP缓存表存在过期时间,默认为120秒,过期后重复ARP请求响应过程。

wireshark分析ARP协议

1、ARP请求包

1)在Frame帧中,此数据包大小为42bytes

2)在Ethernet中设置目的地址为全FF,即广播地址,Source地址是本机的MAC地址

3)ARP协议请求包中,设置硬件类型、协议类型、硬件地址长度、协议长度、操作码(1表示ARP Request),然后是本机MAC,本机IP地址,目标MAC为全00(表示未知),目标IP地址

2、ARP响应包

1)Frame,此响应包大小为46 bytes

2)Ethernet中,目标地址为ARP请求主机的MAC地址,源地址变为响应ARP地址的主机B的MAC地址,这是从B到A的单播包

3)ARP响应包包括硬件类型、协议类型、硬件地址长度、协议长度、操作码(2表示ARP Reply),主机B的MAC地址和IP地址,目标主机A的MAC和IP地址

比较Request和Reply包的区别,主要有以下几点

Request是广播,Reply是单播

Request操作码为1,表示请求;Reply操作码为2,表示响应

Request目标MAC地址为全00,表示目标MAC未知;Reply源MAC地址就是费劲力气要得到的目标主机B的MAC地址

Gratuitous ARP

关于ARP的一个特性:免费ARP(Gratuitous ARP),主机发送ARP查找自己的IP地址,通常用于系统引导期间进行接口配置或IP地址发生变化的时候。

1)用于检测网络中是否存在另一个主机设置了相同的IP地址。如果收到响应则表示网络中存在相同IP地址主机。

2)用于更新网络中主机的ARP缓存。网络中IP地址经常会变化,而MAC地址通常不变,当某主机IP地址变化,则网络中其他主机的ARP缓存都需要重新更新,这时需要发生IP变化的主机向网络中广播ARP包,强制其他主机更改ARP缓存映射。

免费ARP广播包内容解析

1)Frame帧中,此包大小为60 bytes

2)Ethernet中,目标地址是全FF的广播地址,在源地址中增加了一个全0的Padding

3)ARP包中,因为源IP地址和目标IP地址相同,所以解析为Gratuitous ARP协议,源MAC地址为本机MAC地址,目标MAC地址为全00的未知MAC地址

ARP攻击的几种方式

1、ARP洪泛攻击

向网关发送大量的ARP报文,导致网关无法正常响应。发送ARP Request,然后发送大量伪造的ARP Reply,充塞网络流量,耗尽网关CPU,填充错误的ARP缓存表。

2、ARP欺骗主机

主机更新自己ARP缓存表使得以前缓存中网关MAC为攻击者MAC,相当于冒充网关,可以检测到流经网关的所有流量信息。

3、ARP欺骗网关

把别的主机发送给网关的数据通过欺骗使得网关将这些数据发送给攻击者。

4、中间人攻击

同时欺骗网关和主机,夹在两者中间,可以同时监听到主机和网关的所有通信内容。

5、IP地址冲突攻击

对局域网物理主机扫描得到MAC地址,根据MAC地址伪造ARP包,使得IP地址产生冲突,影响正常用户网络使用。

您可能还喜欢...