ARP代理--工作原理

📅 2026/6/17 6:19:07
ARP代理--工作原理
ARP 代理Proxy ARP工作原理详解ARP代理作用arp代理可以让IP地址属于同一网段却不属于同一物理网络的主机间相互通信。例子如图所示开启代理之前PC1ping 10.1.2.2不通开启代理之前PC1ping 10.1.2.2可以通配置命令如下int g0/0/1arp-proxy enable#int g0/0/2arp-proxy enable其他相关命令arp -a 查看PC机的ARP缓存表arp -s 在PC机上绑定IP地址和MAC地址实验结果的详细分析过程一、为什么需要 ARP 代理在您的拓扑中存在一个关键矛盾设备IP 地址 / 掩码自身判断实际网络情况PC110.1.1.2/16认为自己在10.1.0.0/16网段PC2 (10.1.2.2) 和自己同网段实际在左子网10.1.1.0/24PC210.1.2.2/16认为自己在10.1.0.0/16网段PC1 (10.1.1.2) 和自己同网段实际在右子网10.1.2.0/24AR1两个接口都是 / 24知道两个子网是不同物理网络路由器隔开了两个广播域核心问题两台主机都认为对方在同一广播域会直接发 ARP 请求但路由器默认不转发广播包ARP 请求无法跨子网到达。二、完整通信过程PC1 ping PC2阶段 1PC1 发起 ARP 请求PC1 计算10.1.2.2 255.255.0.0 10.1.0.0与自己同网段PC1 发送广播 ARP 请求源MAC: PC1_MAC 目的MAC: FF:FF:FF:FF:FF:FF广播 内容谁是10.1.2.2请告诉10.1.1.2广播包到达 AR1 的 GE0/0/1 接口阶段 2路由器 ARP 代理响应AR1 收到 ARP 请求检查目的 IP 10.1.2.2 不在 GE0/0/1 所在的 10.1.1.0/24 网段查找路由表发现 10.1.2.0/24 在 GE0/0/2 接口可达确认自己开启了 ARP 代理功能AR1 以自己的 MAC 地址代答 ARP 请求这就是代理源MAC: AR1_GE0/0/1_MAC 目的MAC: PC1_MAC 内容10.1.2.2的MAC地址是 AR1_GE0/0/1_MAC阶段 3PC1 发送数据PC1 收到 ARP 响应在 ARP 表中记录10.1.2.2 → AR1_GE0/0/1_MACPC1 将 ICMP 数据包发给路由器以为直接发给 PC2源MAC: PC1_MAC 目的MAC: AR1_GE0/0/1_MAC 源IP: 10.1.1.2 目的IP: 10.1.2.2阶段 4路由器转发 PC2 侧 ARP 代理AR1 解封装查路由表将数据包从 GE0/0/2 转发出去同样的过程在 PC2 侧重复PC2 发 ARP 请求找 10.1.1.2AR1 用 GE0/0/2 的 MAC 代答双向通信建立完成三、ARP 代理的本质ARP 代理 路由器 欺骗 主机对 PC1路由器假装自己是 PC2对 PC2路由器假装自己是 PC1两台主机都以为在直接通信实际所有流量都经过路由器转发ARP 表最终状态PC1 ARP表10.1.2.2 → AR1_GE0/0/1_MAC PC2 ARP表10.1.1.2 → AR1_GE0/0/2_MAC四、典型应用场景主机使用大掩码如您的拓扑/16 掩码但实际划分了多个 / 24 子网无默认网关的主机某些设备不支持配置网关靠 ARP 代理访问其他子网VPN / 专线场景跨广域网的两个站点使用同网段地址迁移过渡期网络改造中 IP 规划变更的过渡方案五、华为设备配置命令[AR1] interface GigabitEthernet 0/0/1 [AR1-GigabitEthernet0/0/1] arp-proxy enable # 开启接口ARP代理 [AR1] interface GigabitEthernet 0/0/2 [AR1-GigabitEthernet0/0/2] arp-proxy enable注意ARP 代理默认关闭需要在路由器的两个接口上都开启才能正常工作。