本期通信行业搬砖工会继续介绍以太网常用通信技术专题三:ARP技术技术介绍。了解更多通信行业知识,欢迎关注公众号:通信行业搬砖工!
1、IPv4网络中为什么需要ARP协议
实现IP与MAC地址的映射:在TCP/IP协议栈中,IP层使用32位的IP地址来标识设备,而数据链路层则使用48位的MAC地址来唯一标识网络上的每个设备。当数据包需要在不同网络层之间传输时,就需要一个机制来实现IP地址到MAC地址的转换。ARP协议就是完成这一任务的关键技术。
动态学习MAC地址:在大多数情况下,设备的MAC地址是固定的,但IP地址可能会因为网络配置的变化而改变。ARP协议允许设备动态学习网络中其他设备的MAC地址,而无需管理员手动配置。这大大提高了网络的灵活性和可管理性。
支持无连接的网络服务:ARP协议支持无连接的网络服务,这意味着在发送数据之前,发送方不需要与目标设备建立明确的连接。只要发送方知道目标设备的IP地址,它就可以使用ARP协议来解析出对应的MAC地址,并将数据包发送到目标设备。这种无连接的服务模式简化了网络通信的过程,提高了通信效率。
处理网络层与数据链路层之间的通信差异:网络层和数据链路层在通信方式和地址表示上存在差异。网络层使用IP地址进行通信,而数据链路层则使用MAC地址。ARP协议在这两个层次之间起到了桥梁的作用,确保数据包能够顺利地从一个层次传递到另一个层次。
维护网络稳定性和安全性:通过ARP技术,管理员可以配置静态ARP表项,确保特定设备始终使用正确的MAC地址进行通信。这有助于防止ARP欺骗等网络攻击,维护网络的稳定性和安全性。
在局域网中,当主机或其它三层网络设备有数据要发送给另一台主机或三层网络设备时,需要知道对方的网络层地址(即IP地址)。但是仅有IP地址是不够的,因为IP报文必须封装成帧才能通过物理网络发
送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个通过IP地址获取物理地址的协议,以完成从IP地址到MAC地址的映射。地址解析协议ARP即可实现将IP地址解析为MAC地址。
2、ARP协议类型介绍
动态ARP:

静态ARP:

免费ARP(Gratuitous ARP):

Proxy ARP:


总之一句话:每种ARP类型都有其特定的应用场景和配置方法,可以根据网络的具体需求和环境选择合适的ARP类型进行配置。
3、 应用举例(网络材料整理)


VLAN间Proxy ARP

4、 ARP地址解析过程
ARP(地址解析协议)的地址解析过程主要涉及到发送端主机和接收端主机之间的交互,以下是其详细步骤:
发送ARP请求:
接收ARP请求并响应:
更新ARP缓存并发送数据:
当发送端主机A需要发送数据给目标主机B时,它首先会查看本地的ARP缓存。如果缓存中没有目标主机B的MAC地址,主机A会发送一个ARP请求广播包到本地网络上的所有主机。
网络上的所有主机都会接收到这个ARP请求包,但只有目标主机B会根据自己的IP地址与ARP请求包中的目标IP地址进行比对。如果比对成功(即目标IP地址与主机B的IP地址一致),主机B会发送一个ARP响应包给主机A。
主机A收到目标主机B的ARP响应包后,会将目标主机B的IP地址和MAC地址插入到本地的ARP缓存中,并将待发送的数据包中的目标MAC地址设置为目标主机B的MAC地址。然后,主机A再次发送数据包给目标主机B。
在整个过程中,ARP协议通过动态或静态的方式建立和维护一个IP地址到MAC地址的映射表,以确保数据包能够在网络层和数据链路层之间正确传输。此外,ARP协议还涉及到一些安全性问题,如ARP欺骗等,需要网络管理员进行适当的安全配置和管理。
请注意,ARP协议是IPv4中网络层必不可少的协议,但在IPv6中已不再适用,而是使用基于ICMPv6协议承载的邻居发现协议(NDP)所替代。
5、 ARP地址解析过程举例
当需要通信的两台主机处于同一网段时,如上图中的Host_1和Host_3,Host_1要向Host_3发送数据。
首先,Host_1会查找自己本地缓存的ARP表,确定是否包含Host_3对应的ARP表项。如果Host_1在ARP表中找到了Host_3对应的MAC地址,则Host_1直接利用ARP表中的MAC地址,对数据报文进行帧封装,并将数据报文发送给Host_3。如果Host_1在ARP表中找不到Host_3对应的MAC地址,则先缓存该数据报文,并以广播方式发送一个ARP请求报文。如上图中所示,OP字段为1表示该报文为ARP请求报文,ARP请求报文中的源MAC地址和源IP地址为Host_1的MAC地址和IP地址,目的MAC地址为全0的MAC地址,目的IP地址为Host_3的IP地址。
Switch_1收到ARP请求报文后,将该ARP请求报文在同一广播域内转发。
同一广播域内的主机Host_2和Host_3都能接收到该ARP请求报文,但只有被请求的主机(即Host_3)会对该ARP请求报文进行处理。Host_3比较自己的IP地址和ARP请求报文中的目的IP地址,当两者相同时进行如下处理:将ARP请求报文中的源IP地址和源MAC地址(即Host_1的IP地址和MAC地址)存入自己的ARP表中。之后以单播方式发送ARP应答报文给Host_1,ARP应答报文内容如上图中所示,OP字段为2表示该报文为ARP应答报文,源MAC地址和源IP地址为Host_3的MAC地址和IP地址,目的MAC地址和目的IP地址为Host_1的MAC地址和IP地址。
Switch_1收到ARP应答报文后,将该ARP应答报文转发给Host_1。Host_1收到ARP应答报文后,将Host_3的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将数据报文进行帧封装,并将数据报文发送给Host_3。
当需要通信的两台主机处于不同网段时,涉及三层转发,如上图中的Host_1和Host_4,Host_1上已经配置缺省网关。
1、Host_1首先会发送ARP请求报文,请求网关gateway的IP地址对应的MAC地址。
2、Host_1收到ARP应答报文后,将数据报文封装并发给网关,再由网关gateway将数据报文发送给目的主机Host_4。
3、Host_1学习网关IP地址对应的ARP表项的过程,以及网关设备学习Host_4的IP地址对应的ARP表项的过程与上述同网段主机Host_1和Host_3之间进行ARP地址解析的过程类似,读者朋友们可以依照上述原理自行推导即可。
6、ARP协议的老化(agetime)机制
首先静态ARP表项不涉及老化时间的概念,因此本章节讲述的是动态ARP回话表项的老化机制。
一个完整的arp条目变化的流程。其中有三个计时器,第一个表示到达delay之后的计时,第二个表示到达reachable的计时,第三个表示条目状态变成stale之后的计时。对于delay和reachable我们不做多解释,重要的状态在于stale。之所以使用stale状态,是因为要减少网络中arp交互的开销,也就是尽量减少arp交互,但当条目变为stale之后,就说明,使用这个条目是不安全的不确定的。但是如果有应用用到这个条目发包,linux内核仍不进行arp交互,而是设立了一个delay的状态,在这个状态的持续过程中,收到了来自邻居的包,那么说明,此条目可用,则转为reachable的状态,如果没有,那么则会真正的进行arp交互,如果还没有,那么说明在这个网络中,此ip已经不对应任何一个mac地址,也没有必要存在了,置为failed。所以可见,linux设计这个缓存机制的目的主要有二,一减少arp交互,二减少条目的增加和删除操作造成的开销。
--------------------------------------------------------

一般情况下从ARP建立的表项之后,转发该IP的最后一个报文开始计时,而且ARP的老化时间是一个可配置的,如果是华为交换机可参考上述配置。
当交换机端口在老化时间内没有再次转发该IP报文来刷新老化时间,当时间超过老化时间后,交换机再次发送探测报文(即ARP请求报文),如果能收到ARP应答报文,则更新该动态ARP表项,本次老化探测结束。如果超过设置的老化探测次数后仍没有收到ARP应答报文,则删除该动态ARP表项。一言以蔽之:从最后一个报文开始倒计时,到达老化时间进行探测,探测成功更新ARP表项,探测失败则删除该ARP动态表项。
注意:在一般情况下,当交换机线卡板的端口,如ge端口、XE端口、CE端口在端口发生链路状态变更(linkstate 从up --> down),那么此时交换机也会删除对应端口的L2/L3转发表和动态ARP表项。
7. ARP协议报文格式和字段介绍
ARP报文格式封装图如下图所示
ARP 字段格式介绍+----------------+----------------+----------------+----------------+| 硬件类型 | 协议类型 | 硬件地址长度 | 协议地址长度 |+----------------+----------------+----------------+----------------+| 操作码 | |+----------------+-----------------------------------------+| 源mac | 源IP |+----------------+----------------+----------------+----------------+| 目的mac | 目的IP |+----------------+----------------+----------------+----------------+
ARP报文各个字段参数意义介绍:

ARP协议介绍到此结束,相信同学们对ARP协议已经有了一定的了解。下期我们继续介绍数据通信领域常用的通信技术,感谢你们的阅读。
作者简介

作者:通信行业搬砖工 云网络高级软件工程师
近14年数通领域行业经验
原华为3Com软件部交换机产品线
现云网络行业从业者
公众号:通信行业搬砖工
更多互联网技术与咨询分享,欢迎关注我们的公众号
通信行业搬砖工
(正文完)
下期预告:网络之路专题三:ARP技术介绍

转载与投稿
文章转载需注明:文章来源公众号:通信行业搬砖工,并且附上链接
文章错误之处,欢迎指导斧正,各位大拿留言交流,探讨技术。

| 温馨提示 |
人到中年
年龄成为悬在头顶的达摩克利斯之剑!
欢迎分享、收藏、点赞、转发、留言交流。
点个在看你最好看

