ARP讲解(免费ARP、ARP代理、ARP攻击)

目录

普通ARP与免费ARP

ARP的基本概念

ARP缓存表

普通ARP报文讲解

免费ARP报文讲解

ARP代理讲解

ARP代理类型

路由式ARP案例分析

场景介绍

路由器没有开启ARP代理的情况(PC9无法与PC10通信)

路由器开启ARP代理的情况(PC9与PC10可以通信)

ARP攻击

ARP欺骗攻击 

ARP泛洪攻击

ARP中间人攻击


普通ARP与免费ARP

ARP(Address resolution protocol)地址解析协议

ARP的基本概念

ARP的分类

ARP主要分为普通的ARP、免费ARP和代理ARP(此处主要介绍普通ARP和免费ARP)

普通ARP和免费ARP的作用

1、通过ARP的请求和应答报文,可以根据目的IP地址来解析其对应的MAC地址

2、发送免费ARP请求,可以探测本机的IP地址在广播域内是否冲突、告知其他网络节点自己的IP地址和MAC地址、更新其他网络节点的ARP缓存表

ARP报文中涉及的全0-MAC地址和全F-MAC地址

全F为数据链路层封装的MAC,表示二层广播发送(免费ARP应答的Target MAC也为全F,表示该目的IP对应的MAC为非未知的)

全0为ARP请求报文的Target MAC封住的,表示目的MAC未知

ARP缓存表

用于缓存IP地址和MAC地址的映射关系,动态获取到的ARP条目老化时间为20分钟,1200s

 ARP缓存表和MAC地址表的区别

ARP缓存表缓存的是IP地址和MAC地址之间的关系;MAC地址表缓存的是端口和MAC地址之间的关系

ARP缓存表主要用于自身进行数据转发;MAC地址表用来指导别人进行数据转发

动态ARP老化时间1200s;动态MAC地址老化时间300s

普通ARP报文讲解

什么情况下发送ARP

当主机去访问其它主机时,需要二层封装MAC地址,如果此时本地的ARP缓存表没有目标主机相应的MAC地址,就需要发送ARP报文进行请求

通过案例介绍ARP流程以及ARP的报文结构

案例场景

PC1发送ARP请求(此处ARP报文的Target MAC显示错误,应该为全0)

数据链路层:源MAC为自己PC1的MAC地址,目的MAC为广播MAC
ARP报文:Sender IP为自己PC1的IP地址,Sender MAC为自己PC1的MAC地址
                 Target IP为目的PC2的IP地址,Target MAC为全0(表示该MAC地址未知)

PC2收到后发送ARP应答

数据链路层:源MAC为自己PC2的MAC地址,目的MAC为PC1的MAC
ARP报文:Sender IP为自己PC2的IP地址,Sender MAC为自己PC2的MAC地址
                  Target IP为目的PC1的IP地址,Target MAC为目的PC1的MAC地址

免费ARP报文讲解

什么时候发送免费ARP

1、当设备端口配置IP地址时,都会连续发送三次免费ARP来判断自己所配地址在广播域内是否冲突(如果没有收到免费ARP应答,则表示此地址不冲突)

2、VRRP协议的主设备也会发送免费ARP把报文

免费ARP请求和应答的特点

免费ARP请求也是ARP请求的一种,不同的是免费ARP的发送者和接收者IP地址都是自己

免费的ARP应答也是ARP应答的一种,不同的是免费ARP的发送者和接收者IP地址都是自己,并且接收者的MAC地址为全1

通过案例介绍免费ARP流程以及免费ARP的报文结构

案例场景

PC1发送免费ARP请求

数据链路层:源MAC为自己PC1的MAC地址,目的MAC为广播MAC
ARP报文:Sender IP和Target IP都为自己PC1的IP地址
    Sender MAC为自己PC1的MAC地址,Target MAC为全0(表示该MAC地址未知)

PC2发送免费ARP应答(告知此IP地址已经被自己使用)

数据链路层:源MAC为自己PC2的MAC地址,目的MAC为广播MAC
ARP报文:Sender IP和Target IP都为自己PC2的IP地址
                 Sender MAC为自己PC2的MAC地址,Target MAC为全F


ARP代理讲解

ARP代理类型

代理ARP场景下,设备通过ARP请求获得的MAC地址为ARP代理设备的MAC地址(不是目的IP对应的真实物理地址)

路由式ARP代理(常说的ARP代理就是此类型的)

应用场景

如果ARP请求是从一个网段的主机发往同一网段但不再同一物理网络上(被隔离)的主机,那么连接这两个网络的具有ARP代理功能的设备就会回应该ARP请求,这个过程称为ARP代理

即:需要互通的主机在路由器视角下为不同网段,但是主机两端都互相认为对方为同网段

代理设备代理回应ARP请求的条件

开启ARP代理功能

本地有去往目的IP的路由表

收到该ARP请求的接口与路由表下一跳不是同一个接口

Vlan内ARP代理  

应用场景

需要互通的主机处于相同网段,并属于相同Vlan,但是Vlan内配置了端口隔离的场景

Vlan间ARP代理——后续在Super-Vlan讲解

应用场景

需要互通的主机处于相同网段,但是属于不同Vlan的场景(也就是Super-Vlan场景)

Super Vlan理论讲解与实验配置-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_49864110/article/details/127941250?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127941250%22%2C%22source%22%3A%22m0_49864110%22%7D

路由式ARP案例分析

场景介绍

PC9 ping PC10的通信过程

PC9和PC10不需要配置网关(因为对于这两台设备而言,其互访是同网段互访)

但是AR1认为PC9和PC10为不同网段

路由器没有开启ARP代理的情况(PC9无法与PC10通信)

PC9去访问PC10,发现目的IP与自己为同一网段,此时查看ARP表项,发现没有关于此目的IP的MAC地址;

此时PC9发送的ARP请求广播到达AR1的G0/0/0口之后,无法送达到G0/0/1口(路由器不同接口为不同广播域);

此时PC9和PC10无法通信

路由器开启ARP代理的情况(PC9与PC10可以通信)

第一阶段:PC9学习到PC10的MAC

PC9去访问PC10,发现目的IP与自己为同一网段,此时查看ARP表项,发现没有关于此目的IP的MAC地址;

PC9发送的ARP请求广播到达AR1的G0/0/0口之后,AR1发现接收此报文的接口开启了ARP代理,并且自己有关于该报文目的IP的路由,则此时AR1代替PC10向PC9发送ARP应答报文;PC9收到该应答后建立关于PC10-IP地址的ARP映射;AR1建立关于PC9的映射

具体信息

数据链路层:源MAC为PC9的MAC地址、目的MAC为广播全F

ARP层:Send-IP为PC9的IP地址,Target-IP为PC10的IP地址

              Send-mac为PC9的MAC地址,Target-mac为全0

具体信息

数据链路层:源MAC为G0/0/0的MAC地址、目的MAC为PC9的MAC地址

ARP层:Send-IP为PC10的IP地址,Target-IP为PC9的IP地址

              Send-mac为G/0/0的MAC地址,Target-mac为PC9的MAC地址

具体信息

IP:192.168.2.1   MAC:G0/0/0的MAC地址    

第二阶段:AR1学习PC10的MAC、PC10学习到AR1的MAC

虽然PC之间认为两者为同网段,但是AR1认为PC9和PC10为不同网段,当PC9和PC10进行交互时自身需要重新封装MAC地址,但是此时没有关于PC10的MAC地址映射;因此AR1需要通过自己的地址去请求PC10的MAC地址(向PC10发送ARP请求);

PC10收到后建立关于AR1-G0/0/1地址的ARP映射,并回应ARP应答给AR1;此时AR1建立关于PC10的映射

具体信息

数据链路层:源MAC为G0/0/1的MAC地址,目的MAC为全FF

ARP层:Send-IP为G0/0/1的IP地址,Target-IP为PC10的IP地址

              Send-mac为G/0/1的MAC地址,Target-mac为全0

具体信息

数据链路层:源MAC为PC10的MAC地址,目的MAC为G0/0/1的MAC地址

ARP层:Send-IP为PC10的IP地址,Target-IP为G0/0/1的IP地址

Send-mac为PC10的MAC地址,Target-mac为G/0/1的MAC地址

具体信息

IP:192.168.2.254   MAC:G0/0/1的MAC地址

第三阶段:PC10学习到PC9的MAC

在AR1去请求PC10的MAC地址的同时(即PC9建立PC10的ARP映射表后),PC9就封装ICMP报文发送给PC10;

当报文到达AR1后,AR1发现目MAC为自己,并且目的IP存在于路由表中;于是AR1将此PC9传递过来的报文重新封装发给PC10(AR1通过第二阶段获得了PC10的MAC)

#########################

PC10收到ICMP报文后,需要进行回应;回应时PC10发现PC9为自己同网段地址,但是自身没有关于PC9的ARP映射,则此时PC9发送ARP请求报文

PC10发送的ARP请求广播到达AR1的G0/0/1口之后,AR1发现自己接收此报文的接口有关于该报文目的IP的路由,则此时AR1代替PC9向PC10发送ARP应答报文;

PC10收到该应答后建立关于PC9-IP地址的ARP映射

具体信息

数据链路层:源MAC为PC10的MAC地址,目的MAC为全F

ARP层:Send-IP为PC10的IP地址,Target-IP为PC9

Send-mac为PC10的MAC地址,Target-mac为全0

具体信息

数据链路层:源MAC为G0/0/1的MAC地址、目的MAC为PC10的MAC地址

ARP层:Send-IP为PC9的IP地址,Target-IP为PC10的IP地址

Send-mac为G/0/1的MAC地址,Target-mac为PC10的MAC地址

具体信息

IP:192.168.1.1  MAC:G0/0/1的MAC地址

此时PC9和PC10就可以完成通信


ARP攻击

ARP欺骗攻击 

ARP协议的缺陷
1、设备不对收到的ARP请求检验,就将报文中相应的MAC地址和IP地址建立映射
2、设备发送ARP请求后,对于收到的ARP响应不做校验,将报文中相应的MAC地址和IP地址建立映射
3、设备发送ARP请求广播包,整个网络都收到该报文

针对ARP协议的缺陷诞生出ARP欺骗攻击

ARP欺骗的目的(造成的影响)

信息监听与转发、信息拦截、信息篡改

ARP欺骗的具体原理
1、ARP伪造同网段其他主机(欺骗主机)

  • 设备1去请求设备2的MAC地址,发送ARP广播,设备3伪造设备2的应答包发送给设备1(伪造包的源IP为设备2的地址、源MAC为设备3的MAC);此时设备1对应设备2 IP地址的MAC地址就是设备3
  • 但是如果此时设备1收到设备2发来的ARP应答包,就会更新ARP表项(此时ARP表项就变为正确的ARP表项了)
  • 但是如果设备3一直发送伪造的ARP应答,就可以保证设备1的ARP表项关于设备2 IP地址对应的MAC大部分时间都是设备2的;此时设备1发送给设备2的消息都发送给了设备3

2、ARP伪造网关(欺骗网关)

  • PC2向PC1发送伪造的ARP应答(源IP为网关,MAC地址为伪造设备),PC1发给网关的数据就被PC2窃取,然后PC2将信息篡改发送给真正的网关

ARP欺骗的解决方式
    静态配置ARP表项
    在交换机上做IP和MAC地址绑定(检验正确的数据包才可以通过)
    划分Vlan(只是减少ARP欺骗的范围)

ARP泛洪攻击

发送大量ARP请求/应答报文,使得设备的ARP表溢出,CPU负荷过重,造成设备难以响应正常服务(限制接口学习数量、静态配置ARP表项等)

ARP中间人攻击

中间人攻击就是同时欺骗局域网内的主机和主机的网关(通过发送假的ARP报文将主机/用户的IP地址与自己的MAC绑定),使得主机和网关的数据都会发送给同一个攻击者, 进行信息的篡改和泄露

具体流程为:客户端数据包经过中间人,再由中间人转发给服务器

ARP中间人攻击其实也就是利用ARP进行欺骗,所以也可以通过防范ARP欺骗的方法来防范ARP中间人攻击

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静下心来敲木鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值