ARP緩存中包含一個或多個表,它們用于存儲IP地址及其經(jīng)過解析的MAC地址。ARP命令用于查詢本機ARP緩存中IP地址-->MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。如果在沒有參數(shù)的情況下使用,ARP命令將顯示幫助信息。常見用法arp -a或arp –g用于查看緩存中的所有項目。-a和-g參數(shù)的結(jié)果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP緩存中所有項目的選項,而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統(tǒng)的-g選項。arp -a Ip如果有多個網(wǎng)卡,那么使用arp -a加上接口的IP地址,就可以只顯示與該接口相關(guān)的ARP緩存項目。arp -s Ip 物理地址可以向ARP緩存中人工輸入一個靜態(tài)項目。該項目在計算機引導(dǎo)過程中將保持有效狀態(tài),或者在出現(xiàn)錯誤時,人工配置的物理地址將自動更新該項目。arp -d Ip使用該命令能夠人工刪除一個靜態(tài)項目。
ARP欺騙地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個主機互相信任的基礎(chǔ)上的,它的誕生使得網(wǎng)絡(luò)能夠更加高效的運行,但其本身也存在缺陷:ARP地址轉(zhuǎn)換表是依賴于計算機中高速緩沖存儲器動態(tài)更新的,而高速緩沖存儲器的更新是受到更新周期的限制的,只保存最近使用的地址的映射關(guān)系表項,這使得攻擊者有了可乘之機,可以在高速緩沖存儲器更新表項之前修改地址轉(zhuǎn)換表,實現(xiàn)攻擊。ARP請求為廣播形式發(fā)送的,網(wǎng)絡(luò)上的主機可以自主發(fā)送ARP應(yīng)答消息,并且當(dāng)其他主機收到應(yīng)答報文時不會檢測該報文的真實性就將其記錄在本地的MAC地址轉(zhuǎn)換表,這樣攻擊者就可以向目標主機發(fā)送偽ARP應(yīng)答報文,從而篡改本地的MAC地址表。ARP欺騙可以導(dǎo)致目標計算機與網(wǎng)關(guān)通信失敗,更會導(dǎo)致通信重定向,所有的數(shù)據(jù)都會通過攻擊者的機器,因此存在極大的安全隱患。防御措施
不要把網(wǎng)絡(luò)安全信任關(guān)系建立在IP基礎(chǔ)上或MAC基礎(chǔ)上(RARP同樣存在欺騙的問題),理想的關(guān)系應(yīng)該建立在IP+MAC基礎(chǔ)上。
設(shè)置靜態(tài)的MAC-->IP對應(yīng)表,不要讓主機刷新設(shè)定好的轉(zhuǎn)換表。
除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對應(yīng)表中。
使用ARP服務(wù)器。通過該服務(wù)器查找自己的ARP轉(zhuǎn)換表來響應(yīng)其他機器的ARP廣播。確保這臺ARP服務(wù)器不被黑。
使用“proxy”代理IP的傳輸。
使用硬件屏蔽主機。設(shè)置好路由,確保IP地址能到達合法的路徑(靜態(tài)配置路由ARP條目),注意,使用交換集線器和網(wǎng)橋無法阻止ARP欺騙。
管理員定期用響應(yīng)的IP包中獲得一個RARP請求,然后檢查ARP響應(yīng)的真實性。
管理員定期輪詢,檢查主機上的ARP緩存。
使用防火墻連續(xù)監(jiān)控網(wǎng)絡(luò)。注意有使用SNMP的情況下,ARP的欺騙有可能導(dǎo)致陷阱包丟失。
若感染ARP病毒,可以通過清空ARP緩存、指定ARP對應(yīng)關(guān)系、添加路由信息、使用防病毒軟件等方式解決。
地址解析協(xié)議是根據(jù)IP地址獲取物理地址的協(xié)議,而反向地址轉(zhuǎn)換協(xié)議(RARP)是局域網(wǎng)的物理機器從網(wǎng)關(guān)服務(wù)器的ARP表或者緩存上根據(jù)MAC地址請求IP地址的協(xié)議,其功能與地址解析協(xié)議相反。與ARP相比,RARP的工作流程也相反。首先是查詢主機向網(wǎng)路送出一個RARP Request廣播封包,向別的主機查詢自己的IP地址。這時候網(wǎng)絡(luò)上的RARP服務(wù)器就會將發(fā)送端的IP地址用RARP Reply封包回應(yīng)給查詢者,這樣查詢主機就獲得自己的IP地址了。
地址解析協(xié)議工作在一個網(wǎng)段中,而代理ARP(Proxy ARP,也被稱作混雜ARP(Promiscuous ARP) [9-10] )工作在不同的網(wǎng)段間,其一般被像路由器這樣的設(shè)備使用,用來代替處于另一個網(wǎng)段的主機回答本網(wǎng)段主機的ARP請求。例如,主機PC1(192.168.20.66/24)需要向主機PC2(192.168.20.20/24)發(fā)送報文,因為主機PC1不知道子網(wǎng)的存在且和目標主機PC2在同一主網(wǎng)絡(luò)網(wǎng)段,所以主機PC1將發(fā)送ARP協(xié)議請求廣播報文請求192.168.20.20的MAC地址。這時,路由器將識別出報文的目標地址屬于另一個子網(wǎng)(注意,路由器的接口IP地址配置的是28位的掩碼),因此向請求主機回復(fù)自己的硬件地址(0004.dd9e.cca0)。之后,PC1將發(fā)往PC2的數(shù)據(jù)包都發(fā)往MAC地址0004.dd9e.cca0(路由器的接口E0/0),由路由器將數(shù)據(jù)包轉(zhuǎn)發(fā)到目標主機PC2。(接下來路由器將為PC2做同樣的代理發(fā)送數(shù)據(jù)包的工作)。代理ARP協(xié)議使得子網(wǎng)化網(wǎng)絡(luò)拓撲對于主機來說時透明的(或者可以說是路由器以一個不真實的PC2的MAC地址欺騙了源主機PC1)。