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