ARP(地址解析协议)全面解析
一、基础概念
- 定义
ARP(Address Resolution Protocol)用于通过IP地址解析对应的MAC地址,实现局域网内设备通信。 - 核心作用
- 建立IP地址与MAC地址的映射关系
- 维护本地ARP缓存表(动态/静态条目)
二、ARP报文结构
字段 | 长度 | 说明 |
---|---|---|
硬件类型(Hardware) | 2字节 | 链路层类型(如以太网:0x0001) |
协议类型(Protocol) | 2字节 | 网络层协议(IPv4:0x0800) |
硬件地址长度 | 1字节 | MAC地址长度(以太网:0x06) |
协议地址长度 | 1字节 | IP地址长度(IPv4:0x04) |
操作码(Opcode) | 2字节 | 1=请求,2=响应,3=RARP请求,4=RARP响应 |
源MAC地址 | 6字节 | 发送方MAC地址 |
源IP地址 | 4字节 | 发送方IP地址 |
目标MAC地址 | 6字节 | 接收方MAC地址(请求时为全0) |
目标IP地址 | 4字节 | 待解析的IP地址 |
三、ARP工作流程
- 请求与响应
- 缓存机制
- 动态条目:自动学习,默认老化时间120-300秒
- 静态条目:手动绑定,永久有效
# Windows查看ARP表
arp -a
# Linux查看ARP表
ip neigh show
四、ARP类型
类型 | 场景 | 特点 |
---|---|---|
普通ARP | 已知目标IP,未知MAC | 目标MAC字段为0 |
代理ARP | 路由器代答跨网段请求 | 启用命令:arp-proxy enable |
免费ARP | 主动广播自身IP-MAC映射 | 用于IP冲突检测 |
反向ARP(RARP) | 已知MAC,请求IP(已被DHCP替代) | 常用于无盘工作站 |
五、ARP攻击与防御
- 常见攻击
- ARP欺骗:伪造IP-MAC映射,劫持流量
- ARP泛洪:发送大量ARP报文耗尽设备资源
- 防御措施
- 静态绑定:
# Cisco静态ARP绑定
arp 192.168.1.100 0011.2233.4455 ARPA
# 华为静态ARP绑定
arp static 192.168.1.100 00-11-22-33-44-55
- **动态检测**:
* **DAI(Dynamic ARP Inspection)**:基于DHCP Snooping绑定表过滤非法ARP
# Cisco启用DAI
ip arp inspection vlan 10
* **ARP防火墙**:工具如Arpwatch实时监控告警
六、抓包分析示例
ARP请求报文
Frame 1: 42 bytes on wire (336 bits)
Ethernet II, Src: 00:11:22:33:44:55, Dst: ff:ff:ff:ff:ff:ff
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Opcode: request (1)
Sender MAC: 00:11:22:33:44:55
Sender IP: 192.168.1.2
Target MAC: 00:00:00:00:00:00
Target IP: 192.168.1.1
七、进阶应用
- ARP与网络排障
- 使用
arping
测试目标可达性:
- 使用
arping -I eth0 192.168.1.1
- 清除ARP缓存:
arp -d 192.168.1.1 # 删除特定条目
ip neigh flush dev eth0 # 清空整个接口缓存
- SDN中的ARP优化
- 控制器集中维护ARP表,减少广播风暴
- OpenFlow交换机直接查询控制器获取MAC
八、厂商配置示例
华为设备启用DAI
dhcp enable
dhcp snooping enable
vlan 10
arp anti-attack check user-bind enable # 启用ARP与绑定表校验
掌握ARP机制是网络工程师的基础技能,深入理解可有效提升网络安全性和排障效率。