存在 MAC 伪装的情况下 ARP 回复到哪个地址

网络工程 以太网 协议理论 arp 苹果电脑
2021-08-02 13:38:38

ARP 数据包具有发送方/目标硬件地址的副本。从理论上讲,您可能会遇到设备发送

Layer2: From AA:BB:CC:DD:EE:FF To FF:FF:FF:FF:FF:FF
Layer3: ARP Request From AA:BB:CC:DD:EE:FF To FF:FF:FF:FF:FF:FF LookingFor 10.0.0.1 IAm 10.0.0.2 Proto IPv4 HW Ethernet

但是,伪装后,数据包如下所示:

Layer2: From 00:11:22:33:44:55 To FF:FF:FF:FF:FF:FF
Layer3: ARP Request From AA:BB:CC:DD:EE:FF To FF:FF:FF:FF:FF:FF LookingFor 10.0.0.1 IAm 10.0.0.2 Proto IPv4 HW Ethernet

回复设备是使用二层源信息回复,还是使用ARP报文中的自报信息?

1个回答

ARP 是 OSI 第 2 层之上的协议,它依赖于 ARP 数据包中的内容来做出决定。RFC 826,以太网地址解析协议解释了 ARP 的作用:

数据包接收:

当收到地址解析数据包时,接收以太网模块将数据包交给地址解析模块,该模块通过类似于以下的算法。否定条件表示处理结束并丢弃数据包。

?Do I have the hardware type in ar$hrd?
Yes: (almost definitely)  
  [optionally check the hardware length ar$hln]
  ?Do I speak the protocol in ar$pro?
  Yes:
    [optionally check the protocol length ar$pln]
    Merge_flag := false
    If the pair <protocol type, sender protocol address> is
        already in my translation table, update the sender
        hardware address field of the entry with the new
        information in the packet and set Merge_flag to true.
    ?Am I the target protocol address?
    Yes:
      If Merge_flag is false, add the triplet <protocol type,
          sender protocol address, sender hardware address> to
          the translation table.
      ?Is the opcode ares_op$REQUEST?  (NOW look at the opcode!!)
      Yes:
        Swap hardware and protocol fields, putting the local
            hardware and protocol addresses in the sender fields.
        Set the ar$op field to ares_op$REPLY
        Send the packet to the (new) target hardware address on
            the same hardware on which the request was received.

请注意,在查看操作码之前,<protocol type, sender protocol address, sender hardware address> 三元组已合并到表中。这是基于通信是双向的假设;如果 A 有一些理由与 B 交谈,那么 B 可能有一些理由与 A 交谈。 另请注意,如果 <protocol type, sender protocol address> 对已经存在一个条目,那么新的硬件地址将取代旧的一。相关问题为此提供了一些动力。

概括: ar$hrd 和 ar$hln 字段允许将此协议和数据包格式用于非 10Mbit 以太网。对于 10Mbit 以太网,<ar$hrd, ar$hln> 的值为 <1, 6>。对于其他硬件网络,ar$pro 字段可能不再对应于以太网类型字段,但它应该与正在寻求地址解析的协议相关联。

显然,ARP 会回复 ARP 数据包中的硬件地址,但这并不意味着存在或没有问题(见下文)。


ARP数据包是否实际包含原始MAC地址是未知的,因为伪装可能实际上将ARP数据包修改为包含修改后的MAC地址。MAC 地址转换没有 NAT 和 NAPT 那样的标准,NAT 和 NAPT 实际上为分配给数据包的新 IP 地址修正了传输协议(TCP、UDP 和 ICMP)。什么是说 MAC 地址转换对 ARP 不这样做?这将是包含在 MAC 地址转换中的一个明显部分。这就是实际交换机模型和配置出现问题的地方。没有它,我们就没有基础说 MAC 地址转换对 ARP 做了什么或不做什么,因为它不是标准协议。

还有一个问题是交换机对其 MAC 地址表做了什么。它实际上是将源主机 MAC 地址放入具有该接口的表中,是将修改后的地址放入具有该接口的 MAC 地址表中,还是两者都做?由于没有像 NAT 和 NAPT 那样的 MAC 地址转换标准,同样,除非您解释交换机型号和配置,否则我们无法知道。