ARP表(Address Resolution Protocol Table) 是网络设备(如计算机、路由器、交换机)中存储的一张动态映射表,其核心功能是将网络层IP地址解析为数据链路层MAC地址。它是实现局域网(LAN)内设备通信的关键数据结构。
核心作用与原理
1. 解决什么问题?
网络设备在同一个局域网内通信时,需要知道目标设备的物理地址(MAC地址) 才能封装数据帧。但应用程序通常使用IP地址(如 `192.168.1.100`)。ARP表就是用来解决“这个IP地址对应的MAC地址是什么?” 的问题。
2. 如何工作?
- 查询ARP表:设备发送数据前,先查本地ARP表。
- 若找到目标IP对应的MAC地址 → 直接封装数据帧并发送。
- 若未找到 → 触发ARP请求。
- ARP请求(广播):设备向局域网内所有设备广播询问:“谁是 `192.168.1.100`?请告诉你的MAC地址!”
- ARP响应(单播):目标设备回复:“我是 `192.168.1.100`,我的MAC是 `00:1A:2B:3C:4D:5E`!”
- 更新ARP表:发起方收到响应后,将 `IP→MAC` 映射记录到ARP表中,后续通信直接使用。
ARP表的关键特性
| 特性 | 说明 |
|------------------|--------------------------------------------------------------------------|
| 动态学习 | 通过ARP请求/响应自动添加记录(无需手动配置)。 |
| 老化机制 | 每条记录有生存时间(通常 120-300秒),超时未使用则删除,防止表项过时。 |
| 静态条目 | 可手动添加永久记录(如 `arp -s 192.168.1.100 00:1A:2B:3C:4D:5E`),避免欺骗攻击。 |
| 局域网内有效 | 仅适用于**同一网段**的设备(跨网段需通过网关转发)。 |
ARP表内容示例
| IP地址 | MAC地址 | 类型 | 接口 |
|------------------|-----------------------|------------|------------|
| `192.168.1.1` | `00:11:22:33:44:55` | 动态 | eth0 |
| `192.168.1.100` | `AA:BB:CC:DD:EE:FF` | 静态 | eth0 |
| `192.168.1.200` | `12:34:56:78:9A:BC` | 动态 | wlan0 |
查看与操作ARP表(命令行示例)
- Windows:
arp -a # 查看所有ARP条目
arp -d 192.168.1.100 # 删除指定条目
arp -s 192.168.1.5 00-50-56-C0-00-08 # 添加静态条目
- Linux/macOS:
arp -n # 查看所有条目(-n禁用IP解析)
ip neigh # 替代命令(更现代)
arp -d 192.168.1.100 # 删除条目
ARP表的实际意义
- 高效通信:避免每次通信都广播查询,提升局域网效率。
- 网络故障排查:
- 若ARP表中无目标IP记录 → 检查物理连接/IP配置。
- 若MAC地址为 `FF:FF:FF:FF:FF:FF`(广播地址)→ 目标设备未响应ARP请求。
- 安全风险:
ARP欺骗(ARP Spoofing):攻击者伪造ARP响应,将自己MAC绑定到他人IP,截获流量。
防御:使用静态ARP绑定、网络设备启用DHCP Snooping或动态ARP检测(DAI)。
与其他“表”的协作
- 路由表:决定数据包是否发送给**网关**(跨网段)或**直连设备**(同网段)。
- MAC地址表:交换机根据目标MAC地址决定从哪个端口转发帧(需依赖ARP表提供MAC地址)。
> 当PC(`192.168.1.2`)访问同网段的服务器(`192.168.1.100`):
> 1. 查路由表 → 目标IP在同一网段 → 直连通信。
> 2. 查ARP表 → 获取服务器MAC地址。
> 3. 交换机查MAC地址表 → 根据MAC找到服务器端口,转发帧。
常见问题
1. 为什么ARP表需要老化?
防止设备更换网卡(MAC改变)或IP冲突导致通信失败。
2. ARP表能跨路由器吗?
不能!ARP只在同一广播域(局域网) 内有效。跨网段通信时,源设备只需知道**网关的MAC地址**。
3. 如何防止ARP欺骗?
- 在关键设备(如服务器)上配置静态ARP绑定。
- 使用企业交换机安全功能(如DAI、IP Source Guard)。
掌握ARP表的工作原理,是理解局域网通信和排查网络故障的基础!