Proxy ARP
yUmi#sh start
!
Written by yUmis(牛奶咖喱) a.k.a. 紅頭發
Description 歡迎轉po,請保留作者信息
Homepage http://www.show-tym.com
Jun.27th.2004
!
什么是proxy ARP?
proxy ARP就是通過使用一個主機(通常為router),來作為指定的設備對另一設備作出ARP請求的應答
proxy ARP是如何工作的?
設備需求:
Cisco 2500系列的rourer
Cisco IOS Release 12.2(10b)
此主題相關圖片如下:
假設在如上圖的一個環境中,位于子網A的主機A(172.16.10.100)需要發送packet到位于子網B的主機D(172.16.20.200)上去.于是主機A將發送ARP請求給D.當然,為了能夠達到主機D,就需要知道主機D的MAC地址.因此,主機A在它位于的那個子網A上廣播ARP請求,大致內容如下圖:
此主題相關圖片如下:
當然router的e0口也接收到該廣播,但是router默認不會轉發廣播的,所以該ARP請求仍然到達不了主機D.但是router卻知道主機D位于另外一個子網B.于是router應答自己的MAC地址給主機A,如下圖:
此主題相關圖片如下:
注意如上圖,源IP地址為主機D的IP地址,但是源MAC地址是router e0口的MAC地址.這就是發送給主機A的proxy ARP應答(代理人,中間人).這樣的proxy ARP應答一般是作為unicast發送給請求者(主機A)
主機A收到這個proxy ARP應答以后,開始更新自己的ARP table,如下圖:
此主題相關圖片如下:
于是從現在開始,主機A將不把要前往主機D的packet通過router e0口(00-00-0c-94-36-ab)轉發,因為router知道如何到達主機D,它會把packet轉發給主機D
另外,位于子網A的主機的ARP cache,如下圖:
此主題相關圖片如下:
注意上圖,3個IP地址映射到1個MAC地址(router e0口的MAC地址)上,這就說明正在使用proxy ARP
Cisco的router的接口應該配置成能夠接收和應答proxy ARP,當然這個默認是啟用的,不過可以使用一些命令來關閉這個功能,命令如下:
Router# config t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int e 0
Router(config-if)#no ip proxy-arp
Router(config-if)#^Z
Router#
要再次啟用的話,在接口配置模式下使用ip proxy-arp命令即可
proxy ARP有哪些優點?
最主要的一個優點就是能夠在不影響其他router的路由表的情況下在網絡上添加一個新的router,這樣使得子網的變化對主機是透明的
proxy ARP應該使用在主機沒有配置默認網關或沒有任何路由策略的網絡上
proxy ARP帶來的哪些負面影響?
1.增加了某一網段上ARP流量
2.主機需要更大的ARP table來處理IP地址到MAC地址的映射
3.安全問題,比如ARP欺騙(spoofing)
4.不會為不使用ARP來解析地址的網絡工作
5.不能夠概括和推廣網絡拓撲