簡介
本檔案將說明代理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。
必須將思科的介面配置為接受和響應代理ARP。預設情況下啟用。其 no ip proxy-arp
必須在連線到ISP路由器的路由器介面上配置命令。代理ARP可以在每個介面上使用介面配置命令單獨禁用 no ip proxy-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進行地址解析的網路。
-
它不會泛化到所有網路拓撲。例如,連線兩個物理網路的多個路由器。
相關資訊