ARP 协议超详细讲解(适合网工考试 / 运维理解)

一、基础定义

ARP:Address Resolution Protocol,地址解析协议

  • 作用:已知目标 IP 地址,获取目标主机 MAC 地址
  • 工作层级:数据链路层 ↔ 网络层之间(属于三层辅助协议,封装在二层帧里传输)
  • 适用环境:同一个广播域(同一网段)

反向协议:RARP(已知 MAC 查 IP,现在基本淘汰)

二、为什么需要 ARP?

IP 负责跨网段寻址(三层),但以太网传输数据,必须依靠 MAC 地址封装帧。 举例: 主机 A(192.168.1.10)要发给主机 B(192.168.1.20)数据

  1. A 知道 B 的 IP:192.168.1.20
  2. A 不知道 B 的网卡 MAC 地址
  3. 无法构造二层以太网帧,所以发送 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

特点:

  1. 缓存有老化时间(Windows 默认 2 分钟,超时自动删除条目)
  2. 分为动态 ARP(自动学习,可老化) 、静态 ARP(手动绑定,永久生效)

五、跨网段通信时 ARP 怎么工作?【极易混淆考点】

场景:PC (192.168.1.10) 访问外网服务器 (8.8.8.8) ✅ PC 不会直接查询 8.8.8.8 的 MAC! 正确逻辑:

  1. PC 判断目标 IP 不在本地网段
  2. PC 发起 ARP 请求:查询网关的 MAC 地址
  3. 数据包二层目标 MAC = 网关 MAC,三层目标 IP 依旧是 8.8.8.8

口诀:跨网段通信,ARP 只查网关 MAC,不查远端服务器 MAC!

六、常见攻击与安全(考试 / 运维常考)

1. ARP 欺骗(ARP 中毒)

原理:伪造 ARP 应答报文,欺骗局域网主机 攻击者发送虚假 ARP 消息: 网关IP → 攻击者MAC 结果:所有主机上网流量全部经过攻击者主机,可以抓包监听流量。

防御手段

  1. 静态 ARP 绑定(IP+MAC 固化)
  2. 交换机部署 DAI(Dynamic ARP Inspection,动态 ARP 检测)
  3. 开启端口安全

七、经典考点总结(选择题高频)

  1. ARP 作用:IP 地址 → MAC 地址
  2. ARP 请求:广播 ;ARP 应答:单播
  3. ARP 报文封装在以太网帧(二层)
  4. 跨网段访问,ARP 解析网关 MAC,不是目标服务器 MAC
  5. ping 不通不代表 ARP 失败;ARP 正常只能证明二层互通
  6. ARP 仅在同一个广播域生效,无法穿越路由器(路由器隔离广播域)

八、易错题辨析

❌ 错误:ARP 可以跨路由器查询 MAC

✅ 正确:路由器不转发广播帧,ARP 广播无法跨网段

❌ 错误:访问外网服务器,主机 ARP 查询服务器 MAC

✅ 正确:只查询网关 MAC

相关推荐
众壹新能源科技16 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..16 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划16 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason16 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特17 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A17 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
考拉讲支付17 小时前
母婴亲子服务平台分账架构设计:多场景多方分账与合规清结算实践
大数据·运维·人工智能·微信小程序·架构·微信公众平台
LateFrames17 小时前
“场控软件” 如何容错与运维
运维·容错·led大屏·播控系统·场控软件
あ-17 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu17 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip