TCP/IP之ARP协议简略介绍

本篇文章主要针对入门新手,尽量能用简略的语言复述,避免用过于官方话术,因为对于萌新来说,那些太官方的话语不容易看懂,所有本人尽力用口语化叙述,只要理解了其中的内涵意思,再看官方话术就比较容易的多。主要讲述ARP协议的主要功能。本文章仅仅是IPv4的内容,IPv6有不同之处。

ARP(Address Resolution Protocol)地址解析协议:

(1)如果一台主机要将一个帧(需要发送的数据,数据链路层把网络层传下来得数据封装成帧)发送到另一台主机,仅仅是知道目的主机的IP地址是不够的,还需要目的主机的硬件地址(MAC地址,每台主机刚出厂就有对应独一无二的硬件地址)。这时就需要一个协议将IP地址和MAC地址相对应,ARP协议就出现了。ARP协议提供了IP地址和硬件地址之间的映射。

(2)ARP查询使用数据链路层的广播帧发送,会被所有主机接收。IP地址匹配的主机直接向请求主机返回响应。IP地址不匹配的主机主动丢弃ARP查询。

(3)ARP高效运行主要是维护每个主机和路由器上的ARP缓存(或表),为每个接口从IP地址到硬件地址的最新映射(如图一) 

(4)ARP还有一个兄弟,就是RARP。RARP协议(反向地址解析协议),顾名思义是和ARP做相反的事情,也就是通过硬件地址映射IP地址。不过RARP已经很少使用了,而且需要系统管理员手动配置,所以了解一下就可以了。

(图一)每隔秒级就发送一个ARP帧

1、ARP帧格式:

 

1、硬件类型(hardware type):指硬件地址类型,对于以太网,该值为1(IEEE 802.3通常是以太网,除了以太网还有其他类型,其他类型很少见,如IEEE 802.xxx)。

2、协议类型(protocol type):指映射的协议地址类型,有IPv4和IPv6(现在主要都是IPv4)。

3、硬件大小(hardware size):硬件地址的字节数,值为6。

4、协议大小(protocol size):协议地址的字节数,值为4

5、Op(Opcode):指出该操作是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)。

6、后面四个地址,与名字的意思一样。

wireshark抓包:

ff:ff:ff:ff:ff:ff 是广播地址(需要广播给每台主机)。00:00:00:00:00:00是目的硬件地址(因为不清楚对方的MAC地址,所以全为0)

2、代理ARP:

代理ARP也称为混杂ARP或ARP黑客,使一个系统(通常是一台专门配置的路由器)可回答不同主机的ARP请求(它使ARP请求的发送者认为做出响应的系统就是目的主机,但实际上目的主机可能在其他地方或不存在)。ARP代理不常见,仅供了解有该功能。

3、免费ARP:

1、为了一台主机确定其他主机是否配置了和自己相同的IPv4地址,便发生一个免费ARP,其实该主机并不期望得到应答。如果它接收到了一个应答能,通常显示的错误信息“从以太网地址......发生的重复IP地址”,这就是对系统管理员和用户的警告,告诉已经有相同的IP地址(意思是比如我现在用的IP地址是192.168.1.2,如果其他主机也是192.168.1.2,那么就地址冲突了,便无法使用该地址,并显示警告)。

2、如果发送免费ARP的主机已经改变了硬件地址,那么收到该帧的主机的缓存中的条目会更新与该帧的硬件地址一致(意思是如果一台主机收到一个ARP请求,则缓存条目更新为ARP请求中发送方的硬件地址)。

虽然免费ARP提供了警告,但实际上并没有对这种错误地址提供解决机制(除了警告,实际由系统管理员完成)。为了解决这个问题,描述了IPv4地址冲突检测(ACD)。

3、ADC定义了ARP探测分组和ARP通告分组。ARP探测分组是一个ARP请求,其中发送方的地址被置为0(发送者相当于没有IP地址),ARP探测分组用于查看一个候选IP地址是否被其他主机所使用。ARP通告与ARP探测相同,除了其发送方地址和目的地址为候选IP地址外,它用于通告发送方使用候选IP地址的意图。

4、与ARP相关的攻击:

1、最直接的就是使用代理ARP功能假扮主机,对发送者ARP请求做出应答。

2、ARP欺骗(ARP毒化):通过欺骗局域网内主机的网关MAC地址,使访问者主机错以为攻击者更改后的MAC地址是网关的MAC,可能导致网络不通(假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4, 网关 G 192.168.1.1。正常情况下,A和B通信需要经过网关G,而C不会知道他们通信的内容,当C要ARP欺骗时,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为自己的MAC地址,A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP欺骗了)。

总结:讲述了ARP在协议族的作用,主要起IP地址与MAC地址的映射。免费ARP则是检测自己使用的IP地址是否在局域网内还有其他主机在使用。本篇文章内容并不多,但却尤为重要,需要多多研读。

如果有什么讲解得不好的地方,或者想问的问题都可以在下方评论区评论哟!

发布了31 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/q759451733/article/details/84303385