【计算机网络】整理笔记01-ARP
1.ARP地址请求协议
根据IP协议地址获取物理地址的一个协议。
如何解决IP地址和网络地址之间的映射关系?
ARP通过在主机的高速缓存中维护一个IP地址到物理地址的映射表(ARP高速缓存),并且该表是动态更新的
当主机A需要向本局域网上的某台主机发送IP数据报时,首先在本机的ARP高速缓存查看是否包含主机B的IP地址,如有,就在ARP高速缓存中查找出对应的
硬件地址,再把这个硬件地址写入到MAC帧中,然后通过局域网把MAC帧发送给硬件地址。
也有可能找不到主机B的IP地址的项目,也有可能主机B才入网,或者主机A才加电,其高速缓存为空。在这种情况下,主机A自动运行ARP,按照如下步骤找出主机B的硬件地址。
1.ARP进程在本局域网上广播发送ARP请求分组
2.在局域网上所有主机运行的ARP进程都会收到该ARP请求分组
3.主机B的IP地址与ARP请求分组中要询问的IP地址一致,就收下该ARP请求分组,并向主机A发送ARP相应分组,同时在响应分组中写入自己的硬件地址。
由于其他的所有主机的IP地址都与ARP请求分组中所有要查询的IP地址不一致,因此都不会理睬这个ARP分组.
4.主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
当主机A向主机B发送数据包时,会将自己的IP地址到硬件地址的映射写入到请求分组中,当主机B收到主机A的ARP请求分组时,就会把这几A的这一地址映射写入主机B的
ARP高速缓存中,以后主机B向A发送数据报时就十分方便了。
ARP对保存在高速缓存中的每一个映射地址项目都设置了生存时间(例如:10-20mins),超时就会删除该映射。
为什么要设置超时时间?
例如主机A和B通信.A的高速缓存中有B的硬件地址,但是B更换了网络适配器,此时B的硬件地址发生了改变。
假定此时A和B仍需通信。A在ARP高速缓存中找到了B之前的硬件地址,并使用该硬件地址向B发送数据帧。
但是B原先的硬件地址已经失效了,因此A无法找到主机B。但是过了一段不长的生存时间,A的ARP高速缓存中
删除了B原来的硬件地址,A重新广播发送ARP请求分组,又找到了B。
ARP请求协议在跨局域网中通信的流程
主机A访问位于另一个局域网的主机C,两个局域网之间通过路由器R通信,
主机A发送给主机C的数据报是需要通过路由器R转发的。
主机A首先通过ARP获取路由器R的硬件地址,将数据报发送给路由器R,路由器R用类似的方法解析出主机C的硬件
地址,最终将数据报交付给主机C
ARP帧格式
2.代理ARP
代理ARP是ARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机作为对另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。
2.1proxy ARP是如何工作的
2.2proxy ARP有哪些优点
2.3proxy ARP带来的哪些负面影响
3.免费ARP
3.1什么是免费ARP?
免费ARP,也叫Gratutious ARP、无故ARP。这种ARP不同于一般的ARP请求,它的Sender IP和Target IP字段是相同的,相当于是请求自己的IP地址对应的MAC地址。
发送免费ARP的主机或者设备,往往并不希望收到一个ARP应答。因为若是收到了,说明网络上有人使用相同的IP,这会造成IP冲突。
免费ARP是一个广播ARP请求报文
3. 2哪些场景中可以出现免费ARP?
主机/系统启动期间,进行网口/接口配置时产生;
网卡进行了某些配置变动,导致网口重新启动(如插拔网线,自动获取IP地址,手动更改IP地址、掩码、网关等参数)。在实际研究过程中,win10系统的电脑网线插拔时,能出现免费ARP请求报文,但是win7的电脑同样操作,我未抓到免费ARP;
路由器等设备定期更新免费ARP,以防止不法者进行ARP欺骗(只能一定程度上防止)
3.3. 免费ARP作用
3.3.1 验证IP是否冲突
一个主机可以这个免费ARP来确定同一个网络中,是否有其他设备使用了这个IP地址。若是发送者收到一个回答,表示网络中存在与自身IP同样的主机;若是没有收到应答,则表示本机所使用的IP与网络中其他主机并不冲突。
3.3.2 双机热备
很多系统采用双机热备机制,一个为主设备,一个为从设备,两者MAC地址不同(设为MAC1和MAC2),但是通过某种软件,让其对外的IP是相同的(设为IP)。正常情况下: 主设备正常工作,从设备空闲,网络中的客户机的ARP缓存条目为: MAC1--IP;但是当某个时刻主设备出故障,从设备就接管主设备的工作,且从设备立即广播免费ARP请求报文,让网络中的客户机及时更新ARP缓存表: MAC2--IP,这样客户机的业务不会收到影响
3.3.3 网关定期刷新
这个主要是用在网关设备(如路由器)上。网关定期发布免费ARP,告诉网内所有主机自己的IP--MAC对应关系,让网内主机定期收到这个免费ARP请求,进而重置ARP老化时间等
4.ARP欺骗
ARP欺骗与MITM
MITM,全称为Man In The Middle,即中间人。地址解析协议是建立在网络中各个主机互相信任的基础上的,它的诞生使得网络能够更加高效的运行,但其本身也存在缺陷。ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关 系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送 ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器。攻击者再对目标和网关之间的数据进行转发,则可作为一个“中间人”,实现监听目标却又不影响目标正常上网的目的。
具体攻击实现
具体的中间人攻击,大体上可以分为以下几个步骤:
1. 对目标主机进行ARP欺骗,声称自己是网关。
2. 转发目标的NAT数据到网关,维持目标的外出数据。
3. 对网关进行ARP欺骗,声称自己是目标主机。
4. 转发网关的NAT数据到目标主机,维持目标的接收数据。
5. 监听劫持或者修改目标的进入和外出数据,从而实现攻击。
其中1,3都是ARP欺骗;2,4都是转发,下面会分别说到。
5.参考文章
- 谢希仁.计算机网络
- https://www.cnblogs.com/zhuimengle/p/5936083.html
- https://www.cnblogs.com/lipx9527/p/9438024.html
- https://www.cnblogs.com/pannengzhi/p/4838971.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!