ARP 与 MAC 地址:局域网中的设备如何找到彼此
ARP 如何将 IPv4 地址解析为 MAC 地址,交换机如何转发帧,以及如何诊断常见的本地网络故障。
您将学到什么
学以致用的知识。
- 将 ARP、MAC 表和路由放到同一数据包流程中理解
- 区分广播、单播和网关地址解析
- 利用表项和抓包诊断 ARP 与二层故障
直接前往相关章节
ARP 将 IPv4 下一跳映射为本地网络中的 MAC 地址。访问远程目标时,主机解析的是网关,而不是远端服务器的 MAC;交换机则另行按 VLAN 和端口学习源 MAC 地址。
MAC 地址与 ARP 交换过程
以太网接口通常使用 48 位、以十六进制表示的 MAC 地址,例如 AA:BB:CC:11:22:33。厂商地址本来应当唯一,但本地管理、虚拟或手动更改的地址可能不同,也可能重复。以 00:1A:2B:3C:4D:5E 为例,前一部分对应厂商分配,后一部分对应设备部分。
主机知道目标 IPv4 地址 192.168.1.5,却不知道其本地 MAC 时,会向 FF:FF:FF:FF:FF:FF 广播 ARP 请求。该地址的拥有者通常以单播回复自己的 MAC,例如 AA:BB:CC:DD:EE:FF。发送方会暂时缓存这一映射,避免每发送一帧都重复广播。arp -a 可显示本地 ARP 缓存;示例缓存中可以包含 192.168.1.1 和 192.168.1.55 的动态条目。
主机解析的是本地下一跳
目标位于自身子网内时,IPv4 主机解析目标的 MAC;目标位于远程子网时,则解析默认网关的 MAC。以太网帧先到达路由器,由其转发 IP 包,并为下一网段构造新的二层报文头。
ARP 请求以广播形式停留在本地 VLAN 内,回复通常是单播。ARP 缓存保存 IP 到 MAC 的映射。交换机则独立地在 CAM 或 MAC 表中,按 VLAN 和端口学习源 MAC 地址。
ARP 可以解释看似属于 IP 的问题
主机 IP 设置正确,却无法访问邻居或网关时,应检查 ARP 缓存、VLAN、端口状态和 MAC 表。未完成的条目表示请求没有得到响应。可能原因包括错误掩码或 VLAN、目标离线、端口安全限制或二层环路。
免费 ARP(Gratuitous ARP)用于通告主机自身映射,可支持冗余切换或地址变更等场景。重复的 IPv4 地址可能使映射来回变化,形成间歇且难以复现的故障。
在不可信网段中保护 ARP
ARP 没有内置身份验证。同一网段中的攻击者可以宣告错误映射,重定向流量。网络分段、接入控制和动态 ARP 检查可降低风险,但检查功能依赖正确的 DHCP Snooping 绑定或静态绑定。
静态 ARP 条目扩展性差,不能作为通用解决方案。应限制二层域的范围、保护交换机端口,并监控异常映射变化。
实用检查清单
- 01
检查地址、掩码,以及目标应在本地还是应通过网关到达。
- 02
对比针对性连接测试前后的 ARP 缓存。
- 03
检查预期设备的 MAC 表项、VLAN 和物理端口。
- 04
抓取请求、回复和实际使用的 MAC 地址。
- 05
调查重复 IP、端口安全与防欺骗措施。
常见问题
为什么电脑不知道互联网服务器的 MAC 地址?
MAC 地址适用于本地二层网段。电脑把帧发给网关,每个路由器再为下一段链路构造新的二层报文头。
IPv6 用什么替代 ARP?
IPv6 使用 ICMPv6 邻居发现,包括邻居请求和邻居通告。它承担相关任务,但不使用 ARP 的报文格式。
相关产品与服务
Bissolux 能如何提供帮助
将指南中的建议落实为具体行动。下单前请核对服务范围、价格与不包含的项目。
广告 · Bissolux