ARP(地址解析协议)用于 IPv4 局域网中根据下一跳 IPv4 地址查询链路层地址,常见以太网场景下就是 MAC 地址。IP 负责标识网络层端点,链路层帧则需要本链路的目的 MAC,ARP 填补了这两层地址之间的映射。
发送方先检查 ARP 缓存。若没有目标映射,它会在本地链路广播 ARP 请求:“谁拥有这个 IP?”拥有该地址的设备返回 ARP 应答,发送方缓存映射并把 IP 数据包封装进发往该 MAC 的帧。缓存有老化机制,具体时间由系统实现和配置决定。
关键点是:若目标 IP 不在本机子网,主机不会解析远端服务器的 MAC,而是解析默认网关接口的 MAC,把 IP 包交给网关转发。每个路由跳点都重新使用本链路的二层地址;端到端 IP 地址通常保持不变(NAT 等会改写的情况除外)。ARP 只在本地广播域工作,不会被路由器当普通广播转发。
ARP 解析异常时,可同时检查本机地址规划、VLAN、网关可达性和邻居缓存。操作系统会把 IPv4 邻居映射展示为 ARP/neighbor 表;清理缓存可能触发重新解析,但如果根因是交换网络隔离或重复 IP,清缓存只会暂时改变现象。代理 ARP 等网络配置会让设备代替其他地址应答,因此实际观测也要结合网关策略理解。
常见追问
ARP 请求为什么通常是广播?
发送方尚不知道目标 MAC,无法定向发送帧,因此在当前链路广播询问。目标主机收到后可单播回复。
访问外网时 ARP 查询谁?
通常查询默认网关在本地链路上的 MAC,而不是公网服务器的 MAC。路由器之后再为下一跳做相应的二层封装。
ARP 缓存有什么作用?
避免每个 IP 包都重新广播查询,减少链路开销。映射会过期或更新,避免长期保留失效信息。
ARP 有什么安全风险?
传统 ARP 缺少强认证,局域网攻击者可能伪造应答造成错误映射(ARP 欺骗)。交换网络隔离、动态 ARP 检查等措施可缓解,但依部署环境而定。