亲爱的用户,打开微信,搜索公众号:“风云说通信”,即可免费阅读该文章~~
目录
前言
1. ARP协议介绍
1.1 ARP协议功能
1.2 ARP请求报文
1.3 ARP工作原理
2. ARP 缓存超时
2.1 RARP
3. ARP 攻击
3.1 ARP 攻击分类
前言
首先,我们要搞明白一个问题,为什么需要ARP协议呢?
之前在IP数据报中看到,我们需要在首部填写源地址
和目的地址
,这两个地址是Mac地址
。那什么是Mac地址呢?Mac地址又称物理地址,请注意:不要被 “物理” 二字误导认为物理地址属于物理层范畴,物理地址属于数据链路层范畴。一般在在网卡上。
这是由于A设备给B设备发送数据报时,可能不知道B设备的mac地址,所以就需要通过ARP协议去查找。
-
step1: 每台主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和Mac地址的映射关系。当源主机给目的主机发送数据报,会先检查本地的ARP列表是否存在映射关系,如果有,则直接返回
-
step2:如果没有,则向本地网段发送一个ARP请求的广播包,查询改主机对应的Mac地址
-
step3:此ARP请求中包含了源主机IP地址,源主机Mac地址,目的主机IP地址。网络中的所有主机收到ARP请求后,会检查包中的IP地址是否和自己的IP地址一致,如果不相同就忽略,如果相同则记录下发送端的Mac地址和IP地址添加到自己ARP列表(如果已经存在则更新),并且给源主机发送一个ARP响应数据报,告诉对方自己是要查找的ARP地址。
-
step4: 源主机收到ARP响应后,将得到的目的主机的Mac地址添加到自己的ARP列表中,并利用此信息开始传输数据(如果没有收到ARP响应,表示ARP查询失败
1. ARP协议介绍
ARP 协议的全称是 Address Resolution Protocol(地址解析协议)
,它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。
注意:ARP 只用于 IPv4 协议中,IPv6 协议使用的是 Neighbor Discovery Protocol,译为邻居发现协议,它被纳入 ICMPv6 中。
简而言之,ARP 就是一种解决地址问题的协议,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路上,那么会查找下一跳路由器的 MAC 地址。
1.1 ARP协议功能
-
将一个已知的IP地址解析成MAC地址
-
重复地址检测,检测地址冲突
无故ARP: 当一台设备获取到一个Ip地址时 ,会自动发送一个无故ARP,检测是否有设备已使用了此地址。
1.2 ARP请求报文
1.3 ARP工作原理
-
PC1想发送数据给PC2, 会先检查自己的ARP缓存表,只在终端设备上。
-
如果发现要查找的MAC地址不在表中,就会发送一个 ARP请求广播,用于发现目的地的MAC地址。ARP请求消息中包括PC1的IP地址和MAC地址以及PC2的 IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)
-
交换机收到广播后做泛洪处理,除PC1外所有主机收到 ARP请求消息,PC2以单播方式发送ARP应答, 并在自 己的ARP表中缓存PC1的IP地址和MAC地址的对应关系, 而其他主机则丢弃这个ARP请求消息。
-
PC1在自己的ARP表中添加PC2的IP地址和MAC地址 的对应关系,以单播方式与PC2通信。
1.4 windows当中如何查看arp缓存表(静态arp和动态 arp)
-
查看arp缓存表 :arp -a
-
不加IP清除所有 :arp -d
-
加IP只删除改IP :arp -d [IP]
-
删除arp静态绑定:arp -s IP MAC
动态ARP表项老化:在一段时间内(默认120s)如果表项中的ARP映射关系始终没有使用,则会被删除。通过及时删除不活跃表项,从而提升ARP响应效率。
ARP工作原理(简化):
-
PC1发送数据给PC2,查看缓存有没有PC2的MAC地址。
-
PC1发送ARP请求消息(广播)。
-
所有主机收到ARP请求消息,PC2回复ARP应答(单播),其他主机丢弃。
-
PC1将PC2的MAC地址保存到缓存中,发送数据。
2. ARP 缓存超时
缓存超时通常与 ARP 缓存中的项有关系,arp 命令可以允许管理员设置永不超时。ARP 把保存在高速缓存中的每一映射地址都设置生存时间,一般为 20 分钟。如果是不完整的映射,那么缓存超时时间为 3 分钟,不完整的映射通常会强制发送一条不存在主机的 ARP 请求。
2.1 RARP
与 ARP 相对的,RARP(Reverse Address Resolution Protocol)
是将 ARP 反过来,从 MAC 地址定位 IP 地址的一种协议,将打印机服务器等小型嵌入式设备接入网络时会使用到。
平常我们设置 IP 地址一般会有两种方式,手动设置
和 DHCP 动态获取
但是对于嵌入式设备来说,它没有任何输入接口,也无法通过 DHCP 获取动态地址。
在这种情况下,就要使用到 RARP 了,你需要准备一个 RARP 服务器,在这个服务器上注册设备的 MAC 地址和 IP 地址,然后将设备接入网络,设备会发出一条 IP 和 MAC 地址的查询请求给服务器,服务器会告诉设备其 IP 地址和 MAC 地址。
3. ARP 攻击
ARP 是一种非常不安全的协议,目前已经有很多涉及 ARP 的攻击,最主要的就是使用代理 ARP 功能假扮主机,对 ARP 请求作出应答,通过伪造 ARP 数据包来窃取合法用户的通信数据,造成影响网络传输速率和盗取用户隐私信息等严重危害。
3.1 ARP 攻击分类
ARP 主要攻击方式分为下面这几种
ARP 泛洪攻击
:通过向网关发送大量 ARP 报文,导致网关无法正常响应。首先发送大量的 ARP 请求报文,然后又发送大量虚假的 ARP 响应报文,从而造成网关部分的 CPU 利用率上升难以响应正常服务请求,而且网关还会被错误的 ARP 缓存表充满导致无法更新维护正常 ARP 缓存表,消耗网络带宽资源。ARP 欺骗主机攻击
:ARP 欺骗主机的攻击也是 ARP 众多攻击类型中很常见的一种。攻击者通过 ARP 欺骗使得局域网内被攻击主机发送给网关的流量信息实际上都发送给攻击者。主机刷新自己的 ARP 使得在自己的ARP 缓存表中对应的 MAC 为攻击者的 MAC,这样一来其他用户要通过网关发送出去的数据流就会发往主机这里,这样就会造成用户的数据外泄。欺骗网关的攻击
: 欺骗网关就是把别的主机发送给网关的数据通过欺骗网关的形式使得这些数据通过网关发送给攻击者。这种攻击目标选择的不是个人主机而是局域网的网关,这样就会攻击者源源不断的获取局域网内其他用户韵数据.造成数据的泄露,同时用户电脑中病毒的概率也会提升。中间人攻击
: 中间人攻击是同时欺骗局域网内的主机和网关,局域网中用户的数据和网关的数据会发给同一个攻击者,这样,用户与网关的数据就会泄露。IP地址冲突攻击
: 通过对局域网中的物理主机进行扫描,扫描出局域网中的物理主机的 MAC 地址,然后根据物理主机的 MAC 进行攻击,导致局域网内的主机产生 IP 地址冲突,影响用户的网络正常使用。