1. Address Resolution Protocol(地址解析协议) 概述


  • 「ARP 表」用来记录[DIP 和 DMAC]的映射关系
  • 「ARP 表项」的默认老化时间是「1200s」
  • 在进行「ARP解析」时[SMAC、SIP 和 DIP]都不会改变
  • 用于 MA 网络,「把 IP 地址解析成 MAC 地址」(通过广播形式寻找对应的 MAC 地址,绝大部分情况与「直连通信」相关(广播域内))

    在特殊环境中(如 VRRP 主备切换时,终端设备切换转发接口不主动发送 ARP 请求),需要开启[MAC 刷新 ARP 功能],及时更新 ARP 表项的出接口,保证流量转发

2. 工作原理


  1. [不同网络间的通信或首次发起通信]时,首先需要把 ARP 报文发往直连设备,解析出 IP 对应的 MAC ,[用于二层封装](如果不能解析出对应的MAC地址,则丢弃)
    • SMAC 是自身,DMAC 是全 F
    • SIP 地址是自身,DIP 地址不变
  2. 拥有该 IP 地址的设备会单播响应一个报文

    3. ARP Message


image.png
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 地址是否有冲突

image.png

将自身 IP 对应的 MAC 地址进行封装后进行 ARP request(源目 IP 地址都是自身),如果得到回应,那么说明 IP 地址有冲突

2)Proxy ARP

  • 解决了目的是同一网段但不同物理网络上的设备互相通信的问题,但会造成大量的 ARP 广播请求和 ARP 表剧增
    • 主机上没有配置缺省网关,会发送一个 ARP 请求(请求目的主机的 MAC ),代理设备收到后先检查自身是否能到达目的网络,能到达则进行代理请求
    • 开启 Proxy ARP 功能的设备收到这样的请求后,会使用自己的 MAC 作为该 ARP 请求进行回应

      使用 Proxy ARP 后,主机应该减小 ARP 老化时间,以尽快让无效的 ARP 失效,减少发给路由器而路由器无法转发的报文

3)VLAN Inner Proxy ARP

  • 解决相同 VLAN 内,且互为隔离的网络上主机之间的互通问题

    • 一般用于端口隔离和 MUX VLAN ,实现三层互通

      4)VLAN Inter Proxy ARP

  • 解决不同 VLAN 之间,且同为一个网络内的主机的三层互通问题

    • 一般用于 Super VLAN ,实现三层互通