原創:計算機網絡-代理ARP功能詳解

一、什麼是代理ARP?

代理ARP就是一臺路由器應答一臺機器要發送至另一臺機器的ARP請求,通過"偽造"身份應答ARP請求來將信息路由到"真實"的目的地。

代理ARP可以幫助同網段中的計算機找到其路由表中擁有的網段,且無需計算機配置默認路由或網關。


二、代理ARP實驗

經常配置接入交換機的工程師可能會發現,有時候接入交換機忘記配置網關。為什麼我還能通過局域網中其他網段也能管理到這臺交換機。跨網關訪問不是必須配置網關嗎?

下面我將通過一個實驗以及數據包分析來解釋,為什麼不設置網關還能跨網段訪問。


1、實驗拓撲

原創:計算機網絡-代理ARP功能詳解


思科設備通過show ip interface 某接口,可以查看該端口是否開啟代理ARP功能。

原創:計算機網絡-代理ARP功能詳解


2、數據報文分析

以下為交換機發送的ARP請求報文及代理路由器發送的ARP響應報文:

原創:計算機網絡-代理ARP功能詳解

原創:計算機網絡-代理ARP功能詳解

交換機在廣播域內請求192.168.2.10/24的MAC地址,如果在路由器2上沒有開啟代理ARP功能,自然在192.168.1.0/24的網絡中不會有192.168.2.10這臺主機,當然也不會收到192.168.2.10這臺主機回覆的ARP響應。但是如果路由器2開啟了代理ARP功能,因為路由器2知道192.168.2.0/24網段如何到達,所以交換機1將收到來自網關192.168.1.1的ARP響應,告知要到達192.168.2.10,可以把數據報文先給我,我給你轉發,具體報文如下圖:

原創:計算機網絡-代理ARP功能詳解

這樣,交換機就可以在沒有配置網關的情況下跨網段訪問其他主機了。


三、常見的代理ARP應用

下面我給大家舉兩個例子必須使用代理arp的應用場景,供大家參考:

1、 NAT端口映射至非出接口地址

原創:計算機網絡-代理ARP功能詳解

在沒有VPN的環境下,企業通常會使用NAT端口映射技術將內部的服務器映射到公網地址上,出差用戶訪問公網地址即可訪問到內部服務器,此時企業路由器出接口必須開啟代理arp,否則端口映射無法訪問。

工作流程:

1、公網計算機訪問映射後的內網服務器地址202.102.134.3。

2、經過互聯網中的路由數據包到達202.102.134.0/29這個網段。

3、運行商網關連接企業路由器的接口在202.102.134.0/29網段中ARP請求202.102.134.3的MAC地址。

4、如果沒有開啟代理ARP,此網段中將沒有202.102.134.3這個地址響應此ARP請求,固202.102.134.3無法訪問。

5、如果開啟代理ARP,企業路由器擁有202.102.134.2地址的路由器出接口接收到ARP請求後,發現自己可以訪問到202.102.134.3,因為202.102.134.3是自己創造出來的一個虛擬地址。

6、企業網路由器通過ARP響應告知運營商網關訪問202.102.134.3可以直接給IP地址為202.102.134.2接口所對應的的MAC地址。

7、數據包交給企業網路由器出接口後由路由器轉發至自己的NAT映射進程後發現NAT映射後指向的地址為內部服務器192.168.1.100,此時,企業路由器通過內網接口將數據包轉發至服務器,傳輸完成。


2、遠端撥號VPN場景

原創:計算機網絡-代理ARP功能詳解

在使用出差用戶使用VPN撥號到企業內部訪問服務器環境下,如果VPN撥號地址池與內網規劃在同一網段,路由器內網接口必須開啟代理arp,否則公網VPN撥號客戶端無法訪問內部服務器。

工作流程:

1、 公網計算機通過VPN撥號後獲得192.168.10.99的地址。

2、通過VPN訪問企業內部服務器,數據包到達服務器後,服務器需要響應VPN客戶端計算機,並向VPN客戶端發送數據包。

3、此時,如果路由器內部接口沒有開啟代理arp功能,內部服務器使用arp在廣播域中發送ARP請求要求告知192.168.10.99這個地址的MAC地址時,將沒有終端響應其ARP請求,所以數據包無法成功發送。因為192.168.10.99是VPN路由器上產生的一個虛擬地址,並沒有對應的MAC地址。

4、如果路由器內部接口開啟了arp功能,當路由器內網接口192.168.10.1接收到此ARP請求後,發現192.168.10.99是路由器自身VPN進程創建的一個虛擬IP地址,此時,企業路由器將響應服務器的ARP請求,並通過ARP響應報文告知服務器訪問192.168.10.99需要把數據包交給IP地址為192.168.10.1的接口所對應的MAC地址即可訪問192.168.10.99。

5、當服務器將數據包交給192.168.10.1後,由路由器內部將數據包發送給VPN進程並由VPN進程轉發至192.168.10.99的VPN客戶端。


以上內容均為本人對所掌握知識的總結歸納所創作的原創文章,希望能給大家的學習過程帶來幫助,如有技術理解錯誤希望能夠及時得到大家的指正,大家共同學習,共同進步。


分享到:


相關文章: