目錄

簡介

必要條件

需求

採用元件

慣例

背景資訊

代理ARP如何工作？

網路圖表

代理ARP的優點

代理ARP的缺點

相關資訊

簡介

本文檔介紹代理ARP如何幫助子網中的電腦到達遠端子網而無需配置路由或預設網關。

必要條件

需求

本文檔要求您瞭解代理地址解析協定(ARP)和乙太網環境。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco IOS®軟體版本12.2(10b)

- Cisco 2500系列路由器

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

背景資訊

本檔案將說明代理位址解析通訊協定(ARP)的概念。代理ARP是一種技術，透過這種技術，一台主機（通常是路由器）可以應答發往另一台電腦的ARP請求。如果您偽造其身份，路由器就會承擔將資料包路由到「真實」目的地的責任。代理ARP可以幫助子網中的電腦到達遠端子網，而無需配置路由或預設網關。代理ARP在RFC 1027中進行定義。

代理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，因此它會使用自己的MAC地址向主機A回覆。

發件人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應答始終是單播給原始請求者。

收到此 ARP 回覆後，主機 A 會更新其 ARP 表，如下所示：

IP 位址

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。子網A中主機的ARP快取中填充了子網B中所有主機的路由器MAC地址。因此，發往子網B的所有資料包都將傳送到路由器。路由器將這些資料包轉發到子網B中的主機。

主機A的ARP快取如下表所示：

IP 位址

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的主要優點是可以增加到網路中的單個路由器，而不會干擾網路中其它路由器的路由表。

代理ARP必須用於未配置預設網關或沒有任何路由智慧的IP主機的網路。

代理ARP的缺點

主機不知道其網路的物理詳細資訊，假設它是平面網路，如果傳送ARP請求，它們可以到達任何目的地。使用ARP處理一切有缺點。以下是一些缺點：

- 它會增加網段上的ARP流量。

- 主機需要更大的ARP表才能處理IP到MAC地址的對映。

- 安全可能會受到損害。一台機器可以聲稱自己是另一台機器以攔截資料包，這種行為稱為「欺騙」。

- 它不適用於不使用ARP進行地址解析的網路。

- 它不會泛化到所有網路拓撲。例如，連線兩個物理網路的多個路由器。

相關資訊

- IP支援資源

- NAT支援頁面

- 工具與資源

- 思科技術支援與下載