← LINUX 分类
LINUX

ARP 与缓存表:局域网通信的第一步

理解 IPv4 局域网中 IP 地址如何解析为 MAC 地址,并用邻居表排查基础网络故障。


本文目录 · 5 节

为什么需要 ARP

IPv4 数据包使用 IP 地址描述通信端点,但以太网帧在同一链路上传输时需要目标 MAC 地址。ARP(地址解析协议)负责在本地广播域中建立这两类地址之间的映射。

一个容易忽略的边界是:如果目标 IP 不在本地子网,主机通常不会解析远端主机的 MAC,而是解析默认网关的 MAC,再把数据帧交给网关转发。

一次解析过程

假设主机 A 要联系同一子网中的主机 B:

  1. A 先查本机邻居缓存。
  2. 没有命中时,A 广播“谁拥有这个 IP”。
  3. B 收到请求后,以单播方式返回自己的 MAC 地址。
  4. A 缓存这条 IP–MAC 映射并发送真正的数据帧。

缓存避免了每个数据包都触发广播。动态条目会随时间老化,过期后按需重新解析,因此第一次通信偶尔比后续通信稍慢是正常现象。

缓存表怎么看

Windows 可以使用:

arp -a
Get-NetNeighbor -AddressFamily IPv4

Linux 推荐使用:

ip neigh show

输出中最值得关注的是目标 IP、对应 MAC、网络接口和状态。动态条目来自正常学习;静态条目可能是手工配置,也可能是广播、组播等系统保留映射。

诊断思路

现象 可以先检查什么
同网段设备无法访问 是否出现目标 IP 的邻居条目
只有首次连接较慢 是否正在进行正常的 ARP 解析
网关偶尔中断 网关 IP 对应的 MAC 是否稳定
地址冲突提示 是否有不同 MAC 反复声明同一 IP

清空缓存只能作为诊断步骤,而不是长期修复。条目重新出现异常时,应继续检查 DHCP、静态地址配置、交换网络或设备本身。

安全边界

传统 ARP 本身没有认证机制,伪造响应可能覆盖现有缓存,这也是 ARP 欺骗能够发生的原因。对于家庭或实验网络,可以关注网关 MAC 的异常变化;在受管理网络中,还可以使用 DHCP Snooping、动态 ARP 检测和终端隔离等措施。

邻居表只反映本机近期直接通信过的链路邻居,不等于完整设备清单。查看和分析自己的网络是正常诊断行为,但不要把主动扫描扩大到未经授权的网络。