目录

ARP 协议详细总结

ARP协议详细总结

一、核心定义与协议定位

地址解析协议(Address Resolution Protocol,ARP)是TCP/IP协议族的核心基础协议,定义于RFC 826标准,在OSI七层模型中介于数据链路层与网络层之间,是衔接两层通信的关键桥梁。

  • 核心功能:在同一广播域(局域网)内,将32位的IPv4逻辑地址解析为48位的MAC物理地址,为以太网数据帧的封装和二层转发提供目标地址依据。
  • 核心前提:局域网内的以太网通信,最终必须通过MAC地址完成数据帧的精准交付;网络层仅识别IP地址,ARP协议解决了“已知IP、未知MAC”的地址映射问题。
  • 关键限制:ARP仅适用于IPv4网络;IPv6网络中,ARP被基于ICMPv6的邻居发现协议(NDP) 完全替代,NDP解决了ARP的原生安全缺陷,功能更完善。

二、ARP报文标准结构

ARP报文直接封装在以太网数据帧中传输,整体分为以太网帧首部(14字节)ARP报文本体(28字节) 两部分,总最小长度42字节,不足64字节的以太网帧会自动填充补齐。

1. 以太网帧首部

字段 长度 核心含义与取值
目的MAC地址 6字节 ARP请求时为广播地址FF:FF:FF:FF:FF:FF;ARP应答时为请求方的单播MAC地址
源MAC地址 6字节 报文发送方的本机MAC地址
帧类型 2字节 固定为0x0806,标识该帧承载ARP协议报文

2. ARP报文本体(28字节)

字段 长度 核心含义与取值
硬件类型 2字节 标识链路层网络类型,以太网固定为0x0001,令牌环、帧中继等有对应专属编号
协议类型 2字节 标识要解析的上层协议类型,IPv4固定为0x0800,与以太网IP报文的帧类型值一致
硬件地址长度 1字节 硬件地址的字节长度,以太网MAC地址为6字节,固定取值6
协议地址长度 1字节 上层协议地址的字节长度,IPv4地址为4字节,固定取值4
操作类型(OP) 2字节 标识ARP报文类型:1=ARP请求,2=ARP应答,3=RARP请求,4=RARP应答
发送端MAC地址 6字节 报文发送方的本机MAC地址
发送端IP地址 4字节 报文发送方的本机IP地址
目标端MAC地址 6字节 ARP请求时填充00:00:00:00:00:00(地址未知);ARP应答时填充目标主机MAC
目标端IP地址 4字节 待解析的目标IP地址

三、ARP核心工作原理

ARP协议的核心机制是广播请求+单播应答,主机发送IP报文前,会先查询本地ARP缓存,仅当缓存中无对应IP-MAC映射时,才触发ARP解析流程。分为同网段和跨网段两种核心场景。

1. 同一局域网(同网段/同广播域)解析流程

以主机A(192.168.1.10)与主机B(192.168.1.20)通信为例,完整流程分为4步:

  1. ARP广播请求:主机A构造ARP请求报文,操作类型为1,填充自身IP/MAC、目标IP为192.168.1.20、目标MAC为全0;封装以太网帧,目的MAC为全F广播地址,发送到局域网内所有设备。
  2. 广播域内设备筛选:局域网内所有主机都会收到该广播帧,逐一比对报文中的目标IP与本机IP;不匹配的设备直接丢弃报文,仅目标主机B匹配成功并保留报文。
  3. ARP单播应答:主机B构造ARP应答报文,操作类型为2,填充自身IP/MAC、目标IP/MAC为主机A的IP/MAC;封装以太网帧,目的MAC为主机A的单播MAC,直接点对点发送,无需广播。
  4. 缓存更新与数据发送:主机A收到ARP应答后,提取目标IP与MAC的映射关系,更新到本地ARP缓存;后续将待发送的IP报文封装成以太网帧,直接单播发送给主机B,完成通信。

2. 跨网段(不同广播域)解析流程

核心规则:路由器默认不转发二层广播报文,ARP无法直接跨广播域解析远端主机MAC,跨网段通信时,ARP仅用于解析下一跳(默认网关) 的MAC地址。 完整流程:

  1. 发送方主机通过子网掩码判断目标IP与本机不在同一网段,查询本地路由表,确定数据转发的下一跳地址(默认网关IP)。
  2. 发送方查询本地ARP缓存,若网关IP无对应MAC条目,在本地网段发起ARP广播请求,解析网关IP的MAC地址,流程与同网段ARP完全一致。
  3. 网关回复ARP应答,发送方获取网关MAC地址后,将IP报文封装成帧,目的MAC为网关MAC,发送给网关。
  4. 网关收到报文后,根据路由表找到远端目标网段的出接口与下一跳地址;若目标主机在直连网段,网关会在目标网段内发起ARP请求,解析目标主机MAC,最终将报文转发给目标主机。

四、ARP缓存机制

ARP缓存(ARP表)是ARP协议高效运行的核心,避免每次通信都重复发起ARP广播,分为动态ARP缓存静态ARP缓存两类。

1. 动态ARP缓存

  • 生成方式:主机通过ARP请求-应答流程自动学习到的IP-MAC映射条目,自动生成、自动老化。
  • 老化机制:每个动态条目都有固定生存时间(TTL),超时后自动清除,再次通信需重新解析。不同系统默认老化时间不同:Windows系统为15-30分钟,Linux系统基础可达时间30秒(实际老化时间30-90秒随机浮动),企业交换机/路由器通常为15-20分钟。
  • 核心特性:无状态更新,主机收到任何ARP应答(无论是否主动发起请求),都会用报文中的IP-MAC映射更新本地缓存,这是ARP高效性的核心,也是其安全缺陷的根源。

2. 静态ARP缓存

  • 生成方式:由管理员手动配置的IP-MAC绑定条目,手动创建、手动删除。
  • 核心特性:无老化时间,永久生效,优先级高于动态ARP条目,不会被伪造的ARP报文覆盖更新。
  • 适用场景:核心服务器、网关、关键网络设备的IP-MAC绑定,是防御ARP欺骗的基础手段。

五、ARP协议家族(扩展类型)

除了基础的正向ARP,还有多种扩展协议,适配不同网络场景:

1. 免费ARP(Gratuitous ARP)

  • 报文特征:特殊的ARP请求报文,发送端IP和目标端IP均为本机IP,目标MAC为全0,以广播形式发送。
  • 核心作用: ① IP地址冲突检测:若收到该报文的应答,说明局域网内存在IP地址冲突,触发告警; ② 刷新局域网ARP缓存:主机开机/IP/网卡变更时发送,通知所有设备更新本机的IP-MAC映射; ③ 冗余协议切换:VRRP、HSRP等网关冗余协议,主备切换时发送免费ARP,通知下游主机更新网关MAC,实现流量无缝切换。

2. 反向ARP(RARP, Reverse ARP)

  • 核心功能:与正向ARP相反,实现MAC地址→IPv4地址的解析。
  • 适用场景:早期无盘工作站,这类设备无存储介质,无法保存自身IP,只能通过MAC地址向RARP服务器请求IP。
  • 现状:已被BOOTP、DHCP协议完全替代,DHCP除了IP分配,还能提供网关、DNS、子网掩码等配置,功能更完善。

3. 代理ARP(Proxy ARP)

  • 核心原理:路由器/三层设备开启代理ARP后,收到跨网段的ARP请求时,会代替目标主机回复ARP应答,将自身出接口的MAC地址告知请求方。
  • 适用场景: ① 未配置默认网关的主机,实现跨网段通信; ② 同一IP网段但划分在不同物理广播域的主机,实现二层互通。
  • 注意事项:代理ARP会隐藏真实网络拓扑,可能导致ARP缓存膨胀,存在一定安全风险,非必要不开启。

4. 逆向ARP(Inverse ARP, IARP)

  • 核心功能:在帧中继、ATM等NBMA(非广播多路访问)网络中,根据二层虚电路(如帧中继DLCI)解析对端设备的IP地址,建立虚电路与IP的映射。
  • 与RARP的区别:RARP是通过自身MAC获取自身IP;IARP是通过二层虚电路获取对端设备IP,应用场景完全不同。

六、安全风险与防御方案

ARP协议的原生设计缺陷(无状态、无身份认证、无条件信任广播报文),导致其存在严重的安全风险,最典型的是ARP欺骗(ARP投毒) 攻击。

1. 核心安全风险:ARP欺骗

  • 攻击原理:利用ARP的无状态特性,攻击者向局域网内的主机/网关持续发送伪造的ARP应答报文,将虚假的IP-MAC映射注入目标设备的ARP缓存中。
  • 常见攻击效果: ① 中间人攻击:攻击者同时伪造网关IP的MAC和受害主机IP的MAC,让双方的流量都经过攻击者转发,实现数据窃听、篡改、会话劫持; ② 网络中断/拒绝服务:攻击者伪造不存在的MAC地址,或向全网发送虚假ARP报文,导致主机无法找到正确的转发地址,造成局域网断网、广播风暴; ③ 恶意流量劫持:通过ARP欺骗实现DNS劫持、HTTP/HTTPS流量重定向,投放恶意内容。

2. 主流防御方案

防御方案 实现原理 适用场景
静态ARP绑定 手动在主机/网关上配置核心IP与MAC的永久静态条目,禁止动态更新,优先级高于动态条目 核心服务器、网关,小规模局域网
动态ARP检测(DAI) 交换机结合DHCP Snooping生成的IP-MAC-端口绑定表,校验每一个ARP报文的合法性,直接丢弃非法报文 中大型企业局域网,接入层交换机
端口安全 交换机端口限制允许接入的MAC地址数量和具体地址,禁止伪造MAC地址的报文通过 接入层终端管控,防止非法设备接入
VLAN广播域隔离 将局域网划分为多个小的广播域,缩小ARP欺骗的影响范围,隔离攻击风险 中大型网络,按部门/业务划分网段
主机ARP防火墙 终端安装ARP防火墙软件,拦截非法ARP报文,校验应答的合法性 个人终端、未做网络层管控的局域网

七、相关协议对比

协议 核心功能 适用场景 现状
正向ARP IPv4地址→MAC地址解析 以太网局域网IPv4通信 广泛使用,IPv4网络必备
RARP MAC地址→自身IPv4地址解析 早期无盘工作站 已淘汰,被DHCP完全替代
代理ARP 代理跨网段ARP应答,实现跨网段二层互通 无网关主机、跨物理网段同IP通信 小众场景使用,不推荐默认开启
NDP(邻居发现协议) IPv6地址→MAC地址解析,替代ARP、ICMP路由发现、重定向等功能 IPv6网络 IPv6网络必备,完全替代ARP

八、常用运维命令与故障排查

1. 常用ARP运维命令

  • Windows系统
    • arp -a:查看本地所有ARP缓存条目
    • arp -d *:清空本地所有动态ARP缓存
    • arp -s 192.168.1.1 00-11-22-33-44-55:静态绑定IP与MAC地址
  • Linux系统
    • arp -n:查看ARP缓存(数字格式,不解析域名)
    • ip neigh:Linux推荐使用的邻居表(ARP表)查看命令,替代传统arp命令
    • arp -d 192.168.1.1:删除指定ARP条目
    • ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0 nud permanent:配置永久静态ARP条目
  • 企业网络设备
    • 华为/H3C:display arp 查看ARP表;arp static 192.168.1.1 0011-2233-4455 配置静态ARP
    • 思科:show arp 查看ARP表;arp 192.168.1.1 0011.2233.4455 arpa 配置静态ARP

2. 常见ARP故障排查思路

  • 故障1:同网段主机无法ping通 排查步骤:① 用arp -a/ip neigh查看ARP缓存,是否有目标IP条目,MAC地址是否正确;② 无条目则检查两端防火墙是否拦截ARP报文、交换机VLAN配置是否正确、是否在同一广播域;③ 条目错误则清空缓存重新解析,检查是否存在IP冲突或ARP欺骗。
  • 故障2:同网段可通、无法访问外网 排查步骤:① 查看ARP缓存中网关IP对应的MAC地址,与网关实际MAC对比是否一致;② 若MAC错误,大概率存在ARP欺骗或IP冲突;③ 清空ARP缓存重新解析,检查网关是否开启ARP防护、交换机是否拦截非法ARP报文。
  • 故障3:ARP条目频繁刷新、通信不稳定 排查步骤:① 检查局域网内是否存在ARP攻击,开启DAI/端口安全防护;② 检查网络是否存在环路,导致广播报文重复转发;③ 检查主机网卡、交换机端口是否存在硬件故障。

九、核心特性补充说明

  1. 无状态特性:ARP无需建立连接,无需验证请求合法性,收到应答即更新缓存,这是其高效性的核心,也是安全缺陷的根源。
  2. 广播域限制:ARP广播报文仅能在同一个广播域内传播,路由器默认不转发二层广播报文,跨网段通信必须依赖网关或代理ARP。
  3. 二层协议属性:ARP报文直接封装在以太网帧中,不经过IP层封装,无IP头部,是链路层的辅助协议,不属于传统意义上的网络层/传输层协议。
  4. 明文传输:ARP报文以明文形式传输,无加密、无认证机制,极易被嗅探和伪造,是局域网安全防护的重点对象。