ARP协议:地址解析原理、ARP缓存、ARP欺骗与防护

核心原理:IP地址如何找到MAC地址

在TCP/IP网络中,IP地址用于跨网络寻址,而数据链路层实际传输帧时依赖的是MAC地址。当主机A要向同一广播域内的主机B发送IP数据包时,它必须知道B的MAC地址,否则无法构造以太网帧。ARP(Address Resolution Protocol,地址解析协议)正是解决这一“IP→MAC”映射问题的机制。

ARP工作在数据链路层与网络层之间,其报文不经过IP封装,而是直接封装在以太网帧中。ARP请求报文以广播方式发送(目标MAC为FF-FF-FF-FF-FF-FF),目标IP为待解析地址;拥有该IP的主机收到后,以单播方式回复ARP应答,携带自己的MAC地址。请求方收到应答后,将映射关系写入本机ARP缓存表,后续通信直接查表,不再广播。

ARP地址解析过程 主机A IP: 192.168.1.10 MAC: AA:AA:AA:AA:AA:01 ARP缓存:空 主机B IP: 192.168.1.20 MAC: BB:BB:BB:BB:BB:02 收到请求后回复 二层交换机 广播域内转发 ① ARP请求(广播) "谁是192.168.1.20?请告诉192.168.1.10" ② ARP应答(单播) "192.168.1.20的MAC是BB:BB:BB:BB:BB:02" ③ 更新ARP缓存 192.168.1.20 → BB:BB:BB:BB:BB:02 ④ 后续数据帧直接单播发送

上图展示了ARP的基本交互过程。值得注意的是,ARP请求中同时包含发送方的IP和MAC,因此广播域内所有主机都能学习到发送方的映射关系,无需单独请求。这种“免费ARP”(Gratuitous ARP)机制也常用于IP地址冲突检测或网关故障切换后的通告。

ARP缓存:老化与更新机制

为避免频繁广播,每台主机维护一张ARP缓存表,记录IP与MAC的对应关系。缓存条目分为动态和静态两类:动态条目由ARP交互自动生成,具有生存时间(TTL),典型值为Windows系统2分钟、Linux系统30秒至5分钟(取决于内核配置);静态条目由管理员手工添加,永久有效,用于关键设备(如网关、服务器)的防欺骗保护。

缓存老化是双刃剑:过短导致广播频繁,过长则可能使映射长期失效(如网卡更换、IP重分配)。当条目过期后,主机再次通信会重新发起ARP请求。查看和操作ARP缓存的常用命令如下:

# 查看ARP缓存(Windows / Linux)
arp -a

# 添加静态ARP条目(Windows需管理员权限)
arp -s 192.168.1.1 00-11-22-33-44-55

# Linux添加静态条目
sudo arp -s 192.168.1.1 00:11:22:33:44:55

# 删除指定条目
arp -d 192.168.1.1

ARP欺骗:原理与攻击场景

ARP协议设计时未考虑安全性,任何主机都可以发送ARP应答,且接收方通常不验证应答的真实性。攻击者利用这一缺陷,向目标主机发送伪造的ARP应答,声称“网关IP对应的MAC是攻击者的MAC”,或向网关发送“目标主机IP对应的MAC是攻击者的MAC”,从而实施中间人攻击(MITM)。

典型攻击场景:在公共Wi-Fi环境中,攻击者同时欺骗受害主机和网关,使所有流量经过攻击者网卡。攻击者可以嗅探明文密码、篡改数据内容,甚至将HTTP请求降级为弱加密协议。更隐蔽的是,攻击者只做转发而不修改数据,用户几乎无法感知异常。

ARP欺骗的检测方法包括:使用arp -a检查网关MAC是否与真实网关MAC一致;部署ARP监控工具(如arpwatch)记录IP-MAC变化;在交换机上配置动态ARP检测(DAI),结合DHCP Snooping表过滤非法ARP报文。

防护策略:从终端到网络设备

防护层级 具体措施 适用场景
终端主机 设置静态ARP条目;安装主机防火墙并开启ARP防护 服务器、网关等关键设备
接入交换机 启用DAI(Dynamic ARP Inspection)和DHCP Snooping 企业接入层、园区网络
网关设备 配置IP-MAC绑定表;开启防ARP欺骗功能 路由器、三层交换机
网络监控 部署ARPwatch或IDS规则,实时告警异常映射 中大型网络运维

案例复盘:一次内网断网故障

某公司办公网频繁出现“部分电脑间歇性无法上网”的故障。排查过程如下:

  1. 检查网关连通性:ping 192.168.1.1 丢包严重,但网关本身负载正常。
  2. 查看受害主机ARP缓存:发现网关IP对应的MAC地址为 00:0c:29:xx:xx:xx,与真实网关MAC(思科设备前缀 00:1a:2b)不符。
  3. 在核心交换机上执行 show ip arp,发现同一IP对应多个MAC,确认存在ARP欺骗。
  4. 追踪攻击源:通过交换机端口镜像抓包,定位到一台感染木马的员工电脑,该木马持续发送伪造ARP应答。
  5. 处置:隔离中毒主机,全网清除ARP缓存,并在接入交换机上启用DAI,绑定合法IP-MAC映射。
复盘要点:ARP欺骗的隐蔽性在于攻击者不直接破坏通信,而是“插在中间”窃听或篡改。故障排查时,若发现ping通但网页异常、或网关MAC频繁变化,应优先怀疑ARP欺骗。日常运维中,对关键设备配置静态ARP是最简单有效的终端级防护手段。