ARP工作机制问询:跨网络设备为何无法获取对方MAC地址
ARP工作逻辑与分层规则不冲突的原因说明
这两个表述完全不存在冲突,核心边界在于 ARP的作用范围仅局限在同一个二层广播域(即同一个IP子网)内,永远不会跨三层网络传播,刚好符合「不同网络设备无需知晓对方MAC」的设计要求。
ARP的实际工作逻辑
ARP全称是地址解析协议,作用是把已知的IP地址转换成对应的二层MAC地址,根据通信目标是否和自身在同一子网,工作逻辑分为两种:
- 同子网通信场景
当设备通过子网掩码计算,判定目标IP和自身属于同一个子网时,才会在当前子网内发送广播ARP请求,请求内容携带目标IP,询问该IP对应的MAC地址。该广播请求只会在当前子网内转发,子网外的设备无法收到。同子网内的目标设备收到请求后会单播回复自身MAC,后续双方就可以通过二层帧直接通信。 - 跨子网通信场景
当设备判定目标IP和自身不在同一个子网时,完全不会发送ARP请求查询目标IP对应的MAC,而是会直接发送ARP请求查询本地默认网关(子网出口路由器)的MAC,之后把要发送的报文封装为二层帧,目的MAC填网关的MAC后发送给网关,后续跨网络的转发全程由三层设备完成。整个通信过程中,源终端完全不需要知道远端目标设备的MAC,每一跳设备转发时也只会查询下一跳设备的MAC,不会用到最终目标的MAC。
补充说明:部分网络配置了ARP代理功能,网关会代替跨网的目标设备回复ARP请求,但此时终端收到的MAC仍然是网关的MAC,不是远端设备的真实MAC,依然符合前述规则。
内容的提问来源于stack exchange,提问作者Algo
相关产品推荐
相关产品推荐

