proxy ARP就是通過使用一個主機(通常爲router),來作爲指定的設備對另一設備作出ARP請求的應答
proxy ARP是如何工作的?
設備需求:
Cisco 2500系列的rourer
Cisco IOS Release 12.2(10b)
650) this.width=650;" alt="" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235818691.gif" border="0" />此主題相關圖片如下:
650) this.width=650;" alt="按此在新窗口瀏覽圖片" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235819368.jpg" border="0" />
假設在如上圖的一個環境中,位於子網A的主機A(172.16.10.100)需要發送packet到位於子網B的主機D(172.16.20.200)上去.於是主機A將發送ARP請求給D.當然,爲了能夠達到主機D,就需要知道主機D的MAC地址.因此,主機A在它位於的那個子網A上廣播ARP請求,大致內容如下圖:
650) this.width=650;" alt="" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235818691.gif" border="0" />此主題相關圖片如下:
650) this.width=650;" alt="按此在新窗口瀏覽圖片" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235828205.jpg" border="0" />
當然router的e0口也接收到該廣播,但是router默認不會轉發廣播的,所以該ARP請求仍然到達不了主機D.但是router卻知道主機D位於另外一個子網B.於是router應答自己的MAC地址給主機A,如下圖:
650) this.width=650;" alt="" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235818691.gif" border="0" />此主題相關圖片如下:
650) this.width=650;" alt="按此在新窗口瀏覽圖片" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235832824.jpg" border="0" />
[NextPage]
注意如上圖,源IP地址爲主機D的IP地址,但是源MAC地址是router e0口的MAC地址.這就是發送給主機A的proxy ARP應答(代理人,中間人).這樣的proxy ARP應答一般是作爲unicast發送給請求者(主機A)
主機A收到這個proxy ARP應答以後,開始更新自己的ARP table,如下圖:
650) this.width=650;" alt="" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235818691.gif" border="0" />此主題相關圖片如下:
650) this.width=650;" alt="按此在新窗口瀏覽圖片" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235837214.jpg" border="0" />
於是從現在開始,主機A將不把要前往主機D的packet通過router e0口(00-00-0c-94-36-ab)轉發,因爲router知道如何到達主機D,它會把packet轉發給主機D
另外,位於子網A的主機的ARP cache,如下圖:
650) this.width=650;" alt="" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235818691.gif" border="0" />此主題相關圖片如下:
650) this.width=650;" style="zoom: 90%" alt="按此在新窗口瀏覽圖片" src="http://www.exam8.com/computer/UploadFiles/200505/20050516235840399.jpg" border="0" />
注意上圖,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.不能夠概括和推廣網絡拓撲