摘要:在局域网通信中,我们通常使用 IP 地址访问设备,但二层以太网传输依赖 MAC 物理地址。ARP(地址解析协议)就是实现 IP 地址向 MAC 地址转换的核心协议。本文通俗讲解 ARP 完整工作流程、内网与外网场景下的行为差异、ARP 缓存机制、ARP 欺骗安全风险,同时整理运维排查命令,帮助理解内网通信原理,定位 “IP 能 ping 通却无法访问” 类网络故障。
在家庭 WiFi、企业内网中,我们习惯使用 IP 访问电脑、打印机、服务器。很多人会有疑问:已经有 IP 地址,为什么网络还需要 MAC 地址?ARP 协议就是用来解决这个问题,它是局域网通信必不可少的底层基础。
一、IP 地址与 MAC 地址的分工
IP 地址(逻辑地址):好比网络世界的门牌号,例如192.168.1.20,工作在网络层,用来标识全网范围内主机,可跨路由器、跨网段,IP 可以手动修改或由 DHCP 动态分配。
MAC 地址(物理地址):网卡出厂固化的硬件编号,格式类似3c‑52‑82‑1a‑9f‑0b,工作在数据链路层。同一个局域网内部,交换机依靠 MAC 地址,把数据帧转发到对应设备的网口。
当程序发起网络访问,只知道目标 IP,但交换机二层转发必须填写目标 MAC,ARP 协议(Address Resolution Protocol,地址解析协议),就是用来完成同一局域网内 IP → MAC 的解析翻译。
关键边界:ARP 仅作用于当前局域网 / VLAN,不能跨路由器直接解析外网服务器的 MAC 地址。
二、ARP 完整工作流程
举个场景:本机 IP 为192.168.1.10,需要访问内网设备192.168.1.50。
查询本机 ARP 缓存设备优先读取本地 ARP 缓存表,查看是否已经保存该 IP 对应的 MAC 映射。缓存命中,直接复用 MAC,无需网络请求。ARP 动态缓存自带老化过期时间,到期自动删除旧记录,适配设备换网卡、IP 重分配、设备上下线等场景,同时减少局域网广播报文数量。
发送 ARP 广播请求缓存没有记录,则发出 ARP 广播帧,目标 MAC 填写广播地址ff‑ff‑ff‑ff‑ff‑ff,向局域网所有设备喊话:“谁的 IP 是 192.168.1.50,请把你的 MAC 地址回复给 192.168.1.10”。交换机将广播报文转发给局域网全部端口。
目标设备单播应答内网所有主机收到报文,核对目标 IP;不是自己的 IP 直接丢弃报文;匹配 IP 的设备,以单播方式,单独向发起请求的主机回复 ARP 应答,报文中携带自身 IP 与 MAC 地址。
更新 ARP 缓存,正式传输数据本机收到应答报文,把192.168.1.50和对应 MAC 写入 ARP 缓存。后续发送数据包时,IP 头部保留目标 IP,以太网帧头部填写目标 MAC,交换机根据 MAC 转发到正确设备。
三、访问外网时,ARP 解析的是网关 MAC
当访问公网地址,例如8.8.8.8,目标 IP 不在本机所在局域网网段。主机通过子网掩码判断目标属于外网,数据包不会直接广播查询公网服务器,而是交给默认网关(路由器)转发出去。
示例:本机192.168.1.10,网关192.168.1.1,访问8.8.8.8
判断8.8.8.8不属于本地网段,数据包交给网关处理;
ARP 广播查询:谁是192.168.1.1,获取路由器网口 MAC;
本机发出以太网帧:帧头目标 MAC 为路由器 MAC,IP 包内目标 IP 依旧是 8.8.8.8;
路由器接收报文,剥离二层帧头,根据路由表继续向互联网转发。
核心规律:
同网段内网通信:ARP 解析目标主机的 MAC;
访问外网跨网段:ARP 只解析本地网关的 MAC。
IP 地址是端到端全程不变的最终目标;MAC 地址仅代表当前链路的下一跳设备,数据包每经过一台路由器,外层二层 MAC 地址就会被改写,内部 IP 始终不变。
四、ARP 协议的安全缺陷:ARP 欺骗(ARP 投毒)
ARP 协议原始设计没有身份校验机制,主机收到 ARP 应答报文就直接更新本地缓存,不验证报文是否为自己询问过的设备,这就带来 ARP 欺骗攻击风险。
攻击者接入同一个局域网,持续伪造 ARP 响应报文,对外宣称:“网关 IP 的 MAC 地址是攻击者本机网卡”。局域网主机收到虚假报文后,ARP 缓存被篡改,原本发往路由器的上网流量全部发送到攻击者主机。攻击者可以实现流量嗅探、中间人篡改、断网拒绝服务等攻击效果。
分为两种攻击模式:
单向欺骗:只欺骗终端主机,终端出站流量经过攻击者;
双向欺骗:同时欺骗终端与网关,双向全部流量流经攻击者,完成完整中间人攻击。
企业网络防护手段
IP‑MAC 静态绑定:在主机或者网关做静态 ARP 条目,固定 IP 与 MAC 映射关系,不接受动态 ARP 应答篡改;