ARP
1. ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
2. 如果所要找的主机和源主机不在同一个局域网上,那么就要通过ARP找到一个位于本局域网上的网关路由器的硬件地址,然后把分组发送给这个网关路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
ARP 工作流程:
1、首先,发送方检查自己的ARP缓存表,看是否已经有目标IP地址对应的MAC地址。
2、如果没有找到对应关系,发送方会构造一个ARP请求包。这个包包含了发送方的IP地址和MAC地址,以及目标IP地址。
3、ARP请求包会以广播的形式发送到局域网中的所有设备。
4、网络中的每台设备都会接收到这个ARP请求,但只有IP地址匹配的设备会做出响应。
5、目标设备构造一个ARP响应包,包含自己的MAC地址,并单播发送给请求方。
6、发送方接收到ARP响应后,会更新自己的ARP缓存表,记录IP地址和MAC地址的对应关系。
7、发送方就可以使用这个MAC地址来发送数据包了。
Garp(免费arp)
免费ARP(Gratuitous ARP) 是一种主动发送的 ARP报文,其核心目的是声明或更新网络中设备的IP-MAC映射关系,同时也可用于检测IP地址冲突。与普通ARP请求不同,免费ARP并非为了请求目标设备的MAC地址,而是主动广播自身的地址信息。
-
主机主动广播自己的 IP-MAC 映射关系(非响应请求)
-
源 IP 和目标 IP 地址相同(都是发送者自身 IP)
-
目标 MAC 地址为广播地址
FF-FF-FF-FF-FF-FF
IP 地址冲突检测
-
触发时机:主机获取新 IP 地址时(DHCP 分配/手动配置)
-
工作流程:
-
主机广播免费 ARP:"谁在使用 192.168.1.100?"
-
若收到响应 → IP 冲突 → 停止使用该地址
-
若无响应 → 安全使用该 IP
-
报文:
Address Resolution Protocol (request/gratuitous ARP)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Opcode: request (1)
Sender MAC address: VMware_aa:bb:cc
Sender IP address: 192.168.1.100 # 关键:源/目标IP相同
Target MAC address: 00:00:00_00:00:00
Target IP address: 192.168.1.100 # 关键点
Arp probe
ARP Probe 是一种特殊类型的 ARP(Address Resolution Protocol)请求,主要用于 IPv4地址冲突检测(RFC 5227)。其核心目的是确保设备在配置某个IP地址前,验证该地址是否已被网络上的其他设备占用,从而避免IP冲突。DHCP分配IP前的冲突检测。
RARP
RARP(Reverse Address Resolution Protocol 反向地址解析协议)是 ARP 协议的"逆向"版本,用于解决一个特定问题:当设备知道自己的 MAC 地址但不知道 IP 地址时,如何获取 IP 地址。(逐渐少用)
代理Arp
Proxy ARP,代理 ARP 是一种特殊的 ARP 技术,它允许路由器或特定设备代替其他设备响应 ARP 请求,从而解决跨子网通信问题。网关设备收到此ARP请求,会用自己的MAC地址返回给请求者。
工作流程:
关键特征:
-
透明代理:通信双方不知晓代理存在
-
跨子网响应:路由器响应非本网段的 ARP 请求
-
MAC 地址伪装:路由器使用自己的 MAC 代替目标主机 MAC
移动设备无缝漫游
-
场景:设备在子网间移动时 IP 不变
-
实现:新位置的路由器代理响应 ARP
无线网络中,AP开启arp proxy,是为了防止sta与AP之间的arp广播风暴,占据空口资源。