1. Address Resolution Protocol(地址解析协议) 概述
- 「ARP 表」用来记录[DIP 和 DMAC]的映射关系
- 「ARP 表项」的默认老化时间是「1200s」
- 在进行「ARP解析」时,[SMAC、SIP 和 DIP]都不会改变
- 用于 MA 网络,「把 IP 地址解析成 MAC 地址」(通过广播形式寻找对应的 MAC 地址,绝大部分情况与「直连通信」相关(广播域内))
在特殊环境中(如 VRRP 主备切换时,终端设备切换转发接口不主动发送 ARP 请求),需要开启[MAC 刷新 ARP 功能],及时更新 ARP 表项的出接口,保证流量转发
2. 工作原理
- [不同网络间的通信或首次发起通信]时,首先需要把 ARP 报文发往直连设备,解析出 IP 对应的 MAC ,[用于二层封装](如果不能解析出对应的MAC地址,则丢弃)
- SMAC 是自身,DMAC 是全 F
- SIP 地址是自身,DIP 地址不变
- 拥有该 IP 地址的设备会单播响应一个报文
3. ARP Message
ARP Message 格式解析
- Ethernet Address of destination:目的 MAC 地址。发送 ARP 请求时,为广播 MAC 地址
- Ethernet Address of sender:源 MAC 地址
- Frame Type:封装的以太帧类型(对于 ARP = 0x0806)
- Hardware Type:硬件地址类型。对于以太网固定为 1
- Protocol Type:源 MAC 地址映射的协议类型
- Hardware Length:MAC 地址字节长度。对于 ARP 协议的 request 和 reply 固定为 6
- Protocol Length:协议地址字节长度。对于 ARP 协议的 request 和 reply 固定为 4
- OP:ARP 的操作类型
- 1 = 请求
- 2 = 应答
- 3 = RARP请求
- 4 = RARP应答
- Ethernet Address of sender:源 MAC 地址
- IP Address of sender:源 IP 地址
- Ethernet Address of destination:目的 MAC 地址。发送 ARP request 时,填充为全 0
- IP Address of Destination:目的 IP 地址
4. 应用方式
1)免费 ARP
- 防止 IP 地址冲突
- VRRP 主备切换时,备设备会发送免费 ARP 告知网络中的设备刷新成切换后的自身 MAC 地址
- DHCP 场景下,Client 拿到 Server 分发的 IP 地址,会发送一个免费 ARP 报文,用于检测 IP 地址是否有冲突
将自身 IP 对应的 MAC 地址进行封装后进行 ARP request(源目 IP 地址都是自身),如果得到回应,那么说明 IP 地址有冲突
2)Proxy ARP
- 解决了目的是同一网段但不同物理网络上的设备互相通信的问题,但会造成大量的 ARP 广播请求和 ARP 表剧增
- 主机上没有配置缺省网关,会发送一个 ARP 请求(请求目的主机的 MAC ),代理设备收到后先检查自身是否能到达目的网络,能到达则进行代理请求
- 开启 Proxy ARP 功能的设备收到这样的请求后,会使用自己的 MAC 作为该 ARP 请求进行回应
使用 Proxy ARP 后,主机应该减小 ARP 老化时间,以尽快让无效的 ARP 失效,减少发给路由器而路由器无法转发的报文