在局域网中,不论你是访问打印机还是浏览网页,第一步其实都是“问路”——而这个问路的过程,靠的就是 ARP 协议。它负责把我们知道的 IP 地址翻译成真正用于通信的 MAC 地址。
一. 什么是 ARP?
ARP(Address Resolution Protocol)是地址解析协议。它的作用很简单:
已知对方 IP 地址,向局域网请求它的 MAC 地址。
这个解析过程发生在二层网络(数据链路层)和三层网络(网络层)之间,是 TCP/IP 协议栈中不可缺少的一环。
如下ARP工作流程图: PC1 想与 PC2 通信(知道 IP,不知道 MAC)
ARP 的关键行为:
- ARP 请求是 广播,即发给局域网中所有主机(目的 MAC 是 FF:FF:FF:FF:FF:FF)
- ARP 响应是 单播,即只有目标主机回应请求者
- 每台主机有一个 ARP 缓存表,记录已知的 IP-MAC 映射,避免频繁广播
ARP 在通信中的作用: 我们发送的数据帧,都需要一个目标 MAC。IP 地址只是逻辑地址,真正让网卡能发出去的数据,得靠 MAC 地址。ARP 就是 IP 到 MAC 的“翻译官”。没有 MAC 地址,局域网通信就没法进行。
二. 上手实践
神唱一直都觉得光看原理不实践等于白看,那么接下来以 eNSP 为例去看看他是如何运作的:
首先我们查看PC1的arp:
可以看到此时的ARP表都是空的,然后我们使用PC1去请求 PC2:
通过抓包可以发现,刚开始请求的时候回去ARP询问 谁是192.168.1.20,告诉192.168.1.10, 然后第二条回应的就是 192.169.1.20对应的MAC地址是 54-89-98-F5-2F-D4。
现在我们再来看看PC1和交换机的ARP表:
可以发现PC1有了PC2的地址和MAC的对应信息了。
小知识:动态的ARP都是有生存时间的,也就是过段时间后这条记录就没有了。
三、ARP 欺骗
ARP 也有“软肋”——因为它信任任何响应,没有验证机制。攻击者可以伪造 ARP 响应,把自己冒充成网关,形成中间人攻击(Man-in-the-Middle)。
防范方法:
- 使用静态 ARP 表;
- 开启 ARP 防攻击机制;
- 在三层交换或安全设备上设置 IP-MAC 绑定。
四、小结
- ARP 是连接 IP 与 MAC 的桥梁;
- 每次局域网通信,第一步都是先找 MAC 地址;
- ARP 请求是广播,响应是单播;
- 交换机只转发,不解析;
- 安全环境下建议配合静态 ARP 或防攻击设置。