返回顶部
首页 > 资讯 > 服务器 >ARP协议详细解析(同网段传输,不同网段传输,免费ARP)
  • 342
分享到

ARP协议详细解析(同网段传输,不同网段传输,免费ARP)

网络服务器网络协议 2023-09-24 06:09:23 342人浏览 薄情痞子
摘要

地址解析协议 (ARP) ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址(Mac地址)的一个tcp/IP协议。ARP是IPv4中必不可少的一种协议,它的主要功能是: 将IP

地址解析协议 (ARP)

  • ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取数据链路层地址(Mac地址)的一个tcp/IP协议。
  • ARP是IPv4中必不可少的一种协议,它的主要功能是:
    • 将IP地址解析为MAC地址;
    • 维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
    • 实现网段内重复IP地址的检测。
  • 请求过程:

ARP的工作原理

  1. 在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的ARP表项,则直接采用该表项中的MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过发送ARP Request报文来获得它。
  2. 学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内(缺省:180s),设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表项会被自动删除。
  3. 如果目标设备位于其他网络,则源设备会在ARP缓存表中查找网关的MAC地址。然后将数据发送给网关。最后网关再把数据转发给目的设备。
  4. 主机1的ARP缓存表中不存在主机2的MAC地址,所以主机1会发送ARP Request来获取目的MAC地址。
  5. ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机1的MAC地址。此时,由于主机1不知道主机2的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。
  6. ARP Request报文中包含发送端MAC地址、发送端IP地址、目的端MAC地址、目的端IP地址,其中目的端MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。
  7. 所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP请求报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。
  8. 主机2会向主机1回应ARP Reply报文。
  9. ARP Reply报文中的发送端IP地址是主机2自己的IP地址,目的端IP地址是主机1的IP地址,目的端MAC地址是主机1的MAC地址,发送端MAC地址是自己的MAC地址,同时操作类型被设置为Reply。
  10. ARP Reply报文通过单播传送。
  11. 主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。如果匹配,ARP报文中的发送端MAC地址和发送端IP地址会被记录到主机1的ARP缓存表中。

实验:

  1. 创建三台pc和一台交换机lsw1,pc1、pc2、pc3,连接在交换机lsw1上,首先将三台主机的IP地址和Mac地址进行配置,然后抓取交换机e0/0/2和e0/0/3两个接口的数据包,在pc1上对pc2进行ping测试,ping通后对e0/0/2和e0/0/3接口的数据包进行对比。

e0/0/2

e0/0/3

在pc1上将pc2、pc3都ping通,使用arp -a命令可以查看ARP缓存表

在交换机上使用display mac-address命令查看mac地址表

  1. ARP在同网段和不同网段的工作过程

通常我们为了缩小广播域都会使用路由器在广播域之间

已上图为例:

  • pc1去解析pc2目标主机进行arp请求时,请求的是目的IP
    • pc1—>>pc2 同网段 —>>arp—>>目的IP
  • pc1去解析pc3目的主机进行arp请求时,请求的是网关Mac
    • pc1—>>pc3 不同网段 —>>arp—>>网关Mac

ARP数据在PC1——路由器(R1)——PC2之间转发具体情况为:

PC1—R1:

源MAC:PC1的MAC地址

目标MAC:广播MAC地址

源IP:PC1的IP地址

目标IP:网关的IP地址

R1—PC2 :

源MAC:路由器的MAC地址

目标MAC:广播MAC地址

源IP:网关的IP地址

目标IP:PC2的IP地址

PC2—R1 :

源MAC:PC2的MAC地址

目标MAC:路由器的MAC地址

源IP:PC2的IP地址

目标IP:网关的IP地址

R1—PC1:

源MAC:路由器的MAC地址

目标MAC:PC1的MAC地址

源IP:网关的IP地址

目标IP:PC1的IP地址

R1:e0/0/1

R1:e0/0/0

免费ARP

免费 ARP(Gratuitous ARP)包是一种特殊的 ARP 请求,它并非期待得到 IP 对应的 MAC 地址,而是当主机启动的时候,发送一个 Gratuitous ARP 请求,即请求自己的 IP 地址的 MAC 地址。

  1. 免费 ARP 包的结构
  • 免费 ARP 报文与普通 ARP 请求报文的区别在于报文中的目标 IP 地址。普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。
  1. 免费 ARP 的作用
  • 免费 ARP 数据包有以下 3 个作用:
    • 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
    • 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
    • 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。
  1. 实验:

首先配置好路由器r1和r2的接口IP地址,然后使用 Wireshark 抓取r2的接口,进行抓包,将r2的接口IP地址改为r1的IP地址,ping该地址,打开wireshark进行数据包分析。

来源地址:https://blog.csdn.net/ZYH2597816991/article/details/130305335

--结束END--

本文标题: ARP协议详细解析(同网段传输,不同网段传输,免费ARP)

本文链接: https://lsjlt.com/news/416767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作