ARP 协议(Address Resolution Protocol,地址解析协议)是计算机网络中非常核心的协议之一,尽管它工作在较底层,但它的作用对网络通信至关重要。下面我将为你详细讲解 ARP 的概念、原理、结构、过程、安全问题与扩展协议。


一、ARP 协议概述

✅ 定义:

ARP(Address Resolution Protocol)是一种位于网络层与链路层之间的协议,用于将 IP 地址解析为对应的 MAC 地址,从而完成局域网内的通信。

✅ 所处位置:

  • OSI 模型中:第三层(网络层)辅助第二层(数据链路层)
  • 应用于 IPv4 网络,IPv6 使用的是 NDP(Neighbor Discovery Protocol)

二、为什么需要 ARP?

计算机通信通常以 IP 地址为目标,但实际的数据包是通过 MAC 地址在局域网中传输的。因此:

  • 目标已知 IP 地址,但不知道 MAC 地址时
  • ARP 就负责“翻译”:将 IP 地址 → MAC 地址

三、ARP 工作原理

✅ 主要工作流程:

假设主机 A(IP:192.168.1.10)想向 B(IP:192.168.1.20)发送数据:

  1. 查ARP缓存表(本地缓存是否已有目标IP的MAC地址)

  2. 缓存没有?发ARP请求广播:

    • 向全网广播:谁是192.168.1.20?请把你的MAC告诉我
    • MAC地址为:FF:FF:FF:FF:FF:FF(全网广播)
  3. 目标主机回应ARP响应单播:

    • 192.168.1.20在这里,我的MAC是00:1A:2B:3C:4D:5E
  4. 主机A缓存结果,并发出数据帧

    • 将 MAC 地址写入缓存表(一般保存几分钟)

四、ARP 报文结构(简化)

字段 描述
硬件类型 通常为 1(以太网)
协议类型 通常为 0x0800(IPv4)
硬件地址长度 通常为 6(MAC 地址长度)
协议地址长度 通常为 4(IPv4地址长度)
操作类型 1为请求,2为响应
发送者MAC地址 请求者的MAC
发送者IP地址 请求者的IP
目标MAC地址 请求中为空,响应中为目标
目标IP地址 要解析的IP地址

五、ARP 表(缓存)

主机会维护一个ARP缓存表,用来存储已解析的IP和MAC的映射。

查看命令:

  • Windows: arp -a
  • Linux/macOS: arp -n

缓存策略:

  • 每条记录有效期约1~20分钟(依操作系统而定)
  • 若设备重启或超过有效期,需重新发送 ARP 请求

六、ARP 的几种变种

1. Gratuitous ARP(自问自答 ARP)

  • 目的主机主动广播自己IP对应的MAC
  • 用于:IP冲突检测、热备切换(如VRRP)、ARP缓存更新

2. Proxy ARP(代理 ARP)

  • 路由器或防火墙替另一设备回应ARP请求
  • 用于跨子网通信时隐藏网络结构

3. Reverse ARP(RARP)

  • 已知 MAC,反查 IP(现已淘汰)

七、安全风险与攻击方式

✅ 1. ARP 欺骗(ARP Spoofing / ARP Poisoning)

攻击者伪装成网关或主机,向受害者发送伪造的ARP响应,实现中间人攻击(MITM)。

✅ 举例:

攻击者伪造:

192.168.1.1 → 攻击者MAC

所有人都将数据发给攻击者,从而实现:

  • 网络嗅探(抓包)
  • 数据篡改
  • 会话劫持

✅ 2. ARP泛洪攻击

攻击者向交换机发送大量不同的ARP包,导致MAC表混乱,交换机转为广播转发,形成“广播风暴”。


八、防御与加强

安全技术 描述
静态 ARP 表 手动配置固定映射,不能被欺骗(小型场景适用)
DHCP Snooping + ARP Inspection 绑定IP-MAC关系,丢弃伪造ARP包
VLAN隔离 减少广播域范围,隔离风险
网络访问控制(802.1X) 验证身份后才允许通信

九、ARP 与 IPv6 的区别

IPv4 IPv6
使用 ARP 使用 NDP(Neighbor Discovery Protocol)
依赖广播 依赖多播
容易被伪造 NDP结合IPSec可提供安全性

十、总结

关键点 内容
协议作用 IP地址 → MAC地址映射
使用层级 网络层与链路层之间(第3层与第2层)
使用方式 广播请求 + 单播响应
安全问题 ARP欺骗、伪造、泛洪攻击
防御手段 静态绑定、Snooping、NAC、防火墙等

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐