一、基础定义
ARP:Address Resolution Protocol,地址解析协议
- 作用:已知目标 IP 地址,获取目标主机 MAC 地址
- 工作层级:数据链路层 ↔ 网络层之间(属于三层辅助协议,封装在二层帧里传输)
- 适用环境:同一个广播域(同一网段)
反向协议:RARP(已知 MAC 查 IP,现在基本淘汰)
二、为什么需要 ARP?
IP 负责跨网段寻址(三层),但以太网传输数据,必须依靠 MAC 地址封装帧。 举例: 主机 A(192.168.1.10)要发给主机 B(192.168.1.20)数据
- A 知道 B 的 IP:192.168.1.20
- A 不知道 B 的网卡 MAC 地址
- 无法构造二层以太网帧,所以发送 ARP 请求查询 MAC
三、ARP 完整工作流程(重点!必考)
拓扑:同一网段 主机 A:IP 192.168.1.10 MAC AA-AA-AA 主机 B:IP 192.168.1.20 MAC BB-BB-BB
1)ARP 请求报文(广播帧)
- 源 MAC:AA-AA-AA(主机 A 网卡 MAC)
- 目标 MAC:FF:FF:FF:FF:FF:FF(广播 MAC,网段所有设备接收)
- 源 IP:192.168.1.10
- 目标 IP:192.168.1.20
内容:请问 192.168.1.20 的 MAC 地址是什么?
广播特点:广播域内所有主机都会收到这条报文
- 主机 C、D 收到:对比目标 IP 不是自己,直接丢弃报文,不回复
- 主机 B 收到:目标 IP 和自身 IP 匹配,准备回复
2)ARP 应答报文(单播帧!考点)
主机 B 组装应答直接发给主机 A:
- 源 MAC:BB-BB-BB
- 目标 MAC:AA-AA-AA(直接单播,不需要广播)
- 源 IP:192.168.1.20
- 目标 IP:192.168.1.10
内容:192.168.1.20 的 MAC 地址是 BB-BB-BB
3)缓存写入
主机 A 收到应答,把 IP-MAC 映射存入 ARP 缓存表,后续通信直接查表,不用反复广播查询。
四、ARP 缓存表
操作系统 / 交换机、路由器都会维护 ARP 缓存 Windows 查看命令:
cmd
arp -a
Linux 查看:
bash
运行
arp -n
特点:
- 缓存有老化时间(Windows 默认 2 分钟,超时自动删除条目)
- 分为动态 ARP(自动学习,可老化) 、静态 ARP(手动绑定,永久生效)
五、跨网段通信时 ARP 怎么工作?【极易混淆考点】
场景:PC (192.168.1.10) 访问外网服务器 (8.8.8.8) ✅ PC 不会直接查询 8.8.8.8 的 MAC! 正确逻辑:
- PC 判断目标 IP 不在本地网段
- PC 发起 ARP 请求:查询网关的 MAC 地址
- 数据包二层目标 MAC = 网关 MAC,三层目标 IP 依旧是 8.8.8.8
口诀:跨网段通信,ARP 只查网关 MAC,不查远端服务器 MAC!
六、常见攻击与安全(考试 / 运维常考)
1. ARP 欺骗(ARP 中毒)
原理:伪造 ARP 应答报文,欺骗局域网主机 攻击者发送虚假 ARP 消息: 网关IP → 攻击者MAC 结果:所有主机上网流量全部经过攻击者主机,可以抓包监听流量。
防御手段
- 静态 ARP 绑定(IP+MAC 固化)
- 交换机部署 DAI(Dynamic ARP Inspection,动态 ARP 检测)
- 开启端口安全
七、经典考点总结(选择题高频)
- ARP 作用:IP 地址 → MAC 地址
- ARP 请求:广播 ;ARP 应答:单播
- ARP 报文封装在以太网帧(二层)
- 跨网段访问,ARP 解析网关 MAC,不是目标服务器 MAC
- ping 不通不代表 ARP 失败;ARP 正常只能证明二层互通
- ARP 仅在同一个广播域生效,无法穿越路由器(路由器隔离广播域)
八、易错题辨析
❌ 错误:ARP 可以跨路由器查询 MAC
✅ 正确:路由器不转发广播帧,ARP 广播无法跨网段
❌ 错误:访问外网服务器,主机 ARP 查询服务器 MAC
✅ 正确:只查询网关 MAC