Appearance
Appearance
Address Resolution Protocol 用于动态发现第 3 层(协议)地址与第 2 层(硬件)地址之间的映射。一个典型用途是将 IP 地址(例如 192.168.0.10)映射到底层 Ethernet 地址(例如 01:02:03:04:05:06)。你通常会在一次通信开始时看到 ARP 数据包,因为 ARP 正是发现这些地址的方式。
ARP 可用于 Ethernet 和其他 LAN、ATM,以及许多其他底层物理地址(IANA 网站上的 ADDRESS RESOLUTION PROTOCOL PARAMETERS 文档中的硬件类型列表至少包含 33 种硬件类型)。
ARP 用于在链路本地第 2 层地址和第 3 层地址之间动态构建和维护映射数据库。在常见情况下,此表用于将 Ethernet 映射到 IP 地址。该数据库称为 ARP_Table。此表中的动态条目通常会被缓存,并带有最长 15 分钟的超时,这意味着一旦主机为某个 IP 地址执行过 ARP,它会在接下来的 15 分钟内记住该映射,直到需要再次对该地址执行 ARP。
ARP 的一个特殊之处在于,由于它试图减少/限制用于 ARP 的网络流量,主机必须使用接收到的任何 ARP 数据包中的所有可用信息来更新其 ARP_Table。因此,有时主机发送 ARP 数据包并不是为了发现映射,而是为了利用 ARP 的这个副作用,向另一台主机的 ARP 表中预加载一个条目。这些特殊的 ARP 数据包称为 Gratuitous_ARPs,Wireshark 会检测此类 ARP 中最常见的版本,并在数据包摘要窗格中标记出来。
在分析捕获时,Gratuitous_ARPs 比通常想象的更重要。因此,不要一开始就忽略它们,或者立即从捕获中过滤掉 ARP。请考虑这样一点:普通主机在链路恢复或接口被启用后,做的第一件事通常就是发送 Gratuitous_ARP,这意味着几乎每当我们在网络上看到 Gratuitous_ARP 时,发送它的那台主机刚刚经历过链路抖动,或者其接口刚被禁用/启用。这在排查网络问题时是非常有用的信息。但请记住,只有当你的捕获设备与发出 ARP 数据包的主机处于同一个 Broadcast Domain 中时,你才能看到这些 Gratuitous_ARPs(或任何其他 ARP)。
一些病毒会发送大量 ARP 流量,试图发现可感染的主机;请参阅 ArpFlooding 页面。
RFC 826 "An Ethernet Address Resolution Protocol" 于 1982 年 11 月发布。
第 2 层协议:
ATM:ARP 可以使用 ATM 作为其传输机制。
Ethernet:ARP 可以使用 Ethernet 作为其传输机制。分配给 ARP 流量的 Ethernet 类型是 0x0806。
其他 LAN:ARP 也可以用于 Token Ring、FDDI 和 IEEE 802.11;使用相同的分配类型。
……以及更多!
第 3 层协议:
IP:ARP 可以将 IP 地址映射到第 2 层地址。
IPv6:ARP 被 Neighbor Discovery 取代(参见 RFC4861)XXX - 添加/重定向到更多信息
(幻灯片由 Jeff Carrell - @JeffCarrell_v6 提供)
ARP dissector 功能完整。
Detect ARP request storms: 尝试检测 ARP 请求的过高速率(默认:FALSE)
Number of requests to detect during period: 在周期内需要达到多少请求数才表示发生风暴(默认:30)
Detection period (in ms): 可检测数据包风暴的时间周期,单位为毫秒(默认:100)
Detect duplicate IP address configuration: 尝试检测 IP 地址的重复使用(默认:TRUE)
Register network address mappings: 尝试根据 ARP 请求/响应将物理地址解析为主机名(默认:TRUE)
static ei_register_info ei[] = { { &ei_seq_arp_dup_ip, { "arp.duplicate-address-detected", PI_SEQUENCE, PI_WARN, "Duplicate IP address configured", EXPFILL }}, { &ei_seq_arp_storm, { "arp.packet-storm-detected", PI_SEQUENCE, PI_NOTE, "ARP packet storm detected", EXPFILL }}, { &ei_atmarp_src_atm_unknown_afi, { "arp.src.atm_afi.unknown", PI_PROTOCOL, PI_WARN, "Unknown AFI", EXPFILL }}, };SampleCaptures/arp-storm.pcap 示例捕获文件存在问题。未包含响应。 (启用 Detect ARP request storms,并将 Detection Period 增加到 1000 ms)
完整的 ARP 显示过滤字段列表可在显示过滤器参考中找到
只显示基于 ARP 的流量:
arp仅按 ARP 数据包过滤很少使用,因为这样看不到任何 IP 或其他数据包。不过,它可以作为更大过滤字符串的一部分使用。
捕获时可以过滤 ARP 协议。
只捕获基于 ARP 的流量:
arp或:
ether proto \arp只捕获 ARP 数据包很少使用,因为这样不会捕获任何 IP 或其他数据包。不过,它可以作为更大过滤字符串的一部分使用。
说明请参阅 RFC5227 "IPv4 Address Conflict Detection" (示例流量截图 - 在较旧版本的 Wireshark 中,生成字段在为 false 时也会显示)
如果主机检测到向某个条目对应主机发送数据包时出现问题,那么 ARP 表中的条目会在什么事件下被移除/替换?我认为在这种情况下不需要等 15 分钟。- Ulf Lamping
能否有人解释 ARP flooding 以及针对 ARP 层的其他攻击如何捕获并非发往捕获主机的数据包?- Ulf Lamping
Imported from https://wiki.wireshark.org/AddressResolutionProtocol on 2020-08-11 23:11:04 UTC