目录

简介

先决条件

要求

使用的组件

规则

背景信息

代理 ARP 如何工作？

网络图

代理 ARP 的优点

代理 ARP 的缺点

相关信息

简介

本文档介绍代理ARP如何帮助子网中的计算机到达远程子网，而无需配置路由或默认网关。

先决条件

要求

本文档要求您了解代理地址解析协议(ARP)和以太网环境。

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 思科IOS®软件版本12.2(10b)

- Cisco 2500 系列路由器

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

背景信息

本文档解释了代理地址解析协议 (ARP) 的概念。代理 ARP 是一种技术，即一台主机（通常是路由器）应答要发送至另一台机器的 ARP 请求。如果您伪造其身份，则路由器会承担将数据包路由到“真实”目标的责任。代理 ARP 可以帮助子网中的计算机到达远程子网，而无需配置路由或默认网关。RFC 1027 中定义了代理 ARP。

代理 ARP 如何工作？

下面是代理 ARP 如何工作的示例：

网络图

网络图

子网A上的主机A (172.16.10.100)需要向子网B上的主机D (172.16.20.200)发送数据包。如图所示，主机A有一个/16子网掩码。这意味着主机 A 相信它能够直接连接到整个 172.16.0.0 网络。当主机 A 需要与它相信能够直接连接的任何设备进行通信时，它将向目标发送一个 ARP 请求。因此，当主机 A 需要向主机 D 发送数据包时，主机 A 相信主机 D 是直接连接的，因此它向主机 D 发送一个 ARP 请求。

为了访问主机 D (172.16.20.200)，主机 A 需要主机 D 的 MAC 地址。

因此，主机 A 在子网 A 中广播一个 ARP 请求，如下显示：

发送方 MAC 地址

发送方 IP 地址

目标 MAC 地址

目标 IP 地址

00-00-0c-94-36-aa

172.16.10.100

00-00-00-00-00-00

172.16.20.200

在此 ARP 请求中，主机 A (172.16.10.100) 请求主机 D (172.16.20.200) 发送其 MAC 地址。然后，该 ARP 请求数据包封装在一个以太网帧中，并将主机 A 的 MAC 地址作为源地址，将广播地址 (FFFF.FFFF.FFFF) 作为目标地址。由于 ARP 请求是一种广播，因此它能够访问子网 A 中的所有节点（包括路由器的 e0 接口），但不能访问主机 D。由于默认情况下路由器不转发广播，因此广播不会到达主机 D。

由于路由器知道目标地址 (172.16.20.200) 在另一个子网上，并且能访问主机 D，因此它向主机 A 回复自己的 MAC 地址。

发送方 MAC 地址

发送方 IP 地址

目标 MAC 地址

目标 IP 地址

00-00-0c-94-36-ab

172.16.20.200

00-00-0c-94-36-aa

172.16.10.100

这是路由器发送到主机 A 的代理 ARP 应答。代理 ARP 应答数据包封装在一个以太网帧中，并将路由器的 MAC 地址作为源地址，将主机 A 的 MAC 地址作为目标地址。ARP 应答总是单播到原始请求方。

主机A收到此ARP应答后，更新其ARP表，如下所示：

IP Address

Mac 地址

172.16.20.200

00-00-0c-94-36-ab

从现在起，主机 A 将它希望发送至 172.16.20.200（主机 D）的所有数据包转发到 MAC 地址 00-00-0c-94-36-ab（路由器）。因为路由器知道如何到达主机 D，所以路由器将数据包转发给主机 D。子网 B 上所有主机的路由器 MAC 地址都存放在子网 A 中主机的 ARP 缓存中。因此，目标为子网 B 的所有数据包都发送到路由器。路由器将这些数据包转发给子网 B 中的主机。

下表显示了主机 A 的 ARP 缓存：

IP Address

Mac 地址

172.16.20.200

00-00-0c-94-36-ab

172.16.20.100

00-00-0c-94-36-ab

172.16.10.99

00-00-0c-94-36-ab

172.16.10.200

00-00-0c-94-36-bb

注意：多个IP地址映射到一个MAC地址，即此路由器的MAC地址，它表明代理ARP正在使用中。

必须配置 Cisco 的接口，才能接受和响应代理 ARP。默认情况下启用该接口。必须在连接到ISP路由器的路由器接口上配置no ip proxy-arp命令。可以使用接口配置命令no ip proxy-arp 在每个接口上单独禁用代理ARP，如下所示：

Router# configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)# interface ethernet 0

Router(config-if)# no ip proxy-arp

Router(config-if)# ^Z

Router#

要在接口上启用代理ARP，请发出ip proxy-arp接口配置命令。

注意：当子网A上的主机B (172.16.10.200/24)尝试向子网B上的目标主机D (172.16.20.200)发送数据包时，它会查看其IP路由表并相应地路由数据包。主机 B (172.16.10.200/24) 不对主机 D IP 地址 172.16.20.200 进行 ARP，因为它与主机 B 以太网接口 172.16.20.200/24 上配置的地址属于不同的子网。

代理 ARP 的优点

代理 ARP 的主要优点是它可以添加到网络上的单个路由器，而不会干扰网络上其他路由器的路由表。

如果 IP 主机没有配置默认网关，或者没有任何路由智能功能，则必须在网络中使用代理 ARP。

代理 ARP 的缺点

主机并不知道其网络的物理细节，它们假定它是一个平面网络，如果发送ARP请求，它们可以到达任何目的地。当您使用ARP进行所有操作时，都存在缺点。下面是一些缺点：

- 它增加了网段中的 ARP 流量。

- 主机需要更大的 ARP 表才能处理 IP 到 MAC 地址的映射。

- 安全性可能遭到破坏。为了拦截数据包，某台计算机可能会假借另一台计算机的名义，这是一种“欺骗”行为。

- 它不适用于不使用 ARP 进行地址解析的网络。

- 它不通用于所有网络拓扑。例如，连接两个物理网络的多个路由器。

相关信息

- IP 支持资源

- NAT 支持页

- 工具与资源

- 思科技术支持和下载