有了網(wǎng)絡(luò),你我可以隨心所欲地瀏覽全世界的資訊新聞,快捷地收發(fā)郵件信息,與遠(yuǎn)在千里之外的人分享資源,坐在家里買賣商品,使地球村成為可能,這些都已經(jīng)成為了很多人生活的一部分。但人們在發(fā)明計算機(jī)網(wǎng)絡(luò)之初,只是考慮到了網(wǎng)絡(luò)的互聯(lián)互通,而沒有考慮到安全性。這其中有一個比較重要的網(wǎng)絡(luò)協(xié)議ARP,沒有它,IPV4網(wǎng)絡(luò)就無法正常工作,但很多安全問題又因它而起。今天我們就對ARP協(xié)議做一些介紹,希望大家能對ARP協(xié)議有一個較為正確的認(rèn)識。
ARP協(xié)議:
為了工作需要,很多企業(yè)都會建立自己的企業(yè)內(nèi)網(wǎng),我們稱之為局域網(wǎng),如政府部門、機(jī)關(guān)單位、學(xué)校宿舍都對以太網(wǎng)情有獨鐘。在這種網(wǎng)絡(luò)中有兩種地址,一種是IP地址,它是由軟件分配的,可以改變,工作于OSI參考模型的第三層;另一種是MAC地址,也稱為網(wǎng)卡地址,是存儲在種個網(wǎng)卡的,是不可改變的,工作于OSI參考模型的第二層。局域網(wǎng)中的每一臺計算機(jī)都具有這兩種地址。
按照OSI封裝、解封裝的工作過程,必須實現(xiàn)這兩種地址之間的轉(zhuǎn)換,這中間需要用到ARP以及RARP協(xié)議,當(dāng)然我今天的重點是ARP。
ARP協(xié)議,又稱為地址解析協(xié)議,英文全稱是(Address Resolution Protocol)是屬于TCP/IP協(xié)議族的。它的主要作用是網(wǎng)絡(luò)地址轉(zhuǎn)換。
在局域網(wǎng)中,當(dāng)一臺主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到另一臺主機(jī)時,是根據(jù)48bit以太網(wǎng)地址來確定目的接口的。網(wǎng)絡(luò)中實際傳輸?shù)拿恳粠锇心繕?biāo)主機(jī)的介質(zhì)訪問控制子層(Media Access Control,MAC)地址。在以太網(wǎng)中,一個主機(jī)要和另一個主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。而MAC地址可以通過地址解析協(xié)議獲得。所謂“地址解析”就是在IP地址和采用不同網(wǎng)絡(luò)技術(shù)的硬件地址之間提供的動態(tài)映射。ARP協(xié)議就是用來獲取目的主機(jī)的MAC地址的。需要獲取的主機(jī)MAC地址,是存儲在網(wǎng)絡(luò)傳輸數(shù)據(jù)幀中的。
當(dāng)然,還有另外一個協(xié)議是RARP,叫做反向地址解析協(xié)議(Reverse Address Resolution Protocol,RARP),其作用是將MAC地址轉(zhuǎn)換為IP地址。
ARP緩存表:
為了提高通信的效率,網(wǎng)絡(luò)上每臺主機(jī)都有一個ARP緩存表,這也是ARP高效運(yùn)行的關(guān)鍵所在。緩存表中存放了最近的Internet地址到硬件地址之間的映射記錄。用戶可以使用arp–a命令查看本機(jī)ARP緩存內(nèi)容。以主機(jī)A向主機(jī)B發(fā)送數(shù)據(jù)為例,當(dāng)發(fā)送數(shù)據(jù)時,主機(jī)A會在本機(jī)的ARP緩存表中尋找是否有目標(biāo)IP地址。如尋找到,將目標(biāo)主機(jī)MAC地址寫入以太網(wǎng)幀首部加入到輸出隊列等候發(fā)送;否則,主機(jī)A就會在網(wǎng)絡(luò)上發(fā)送一個ARP請求廣播,詢問同一網(wǎng)段內(nèi)主機(jī)B的MAC地址。網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng)該ARP詢問,只有主機(jī)B的ARP層收到這份報文后,才會向主機(jī)A發(fā)送一個ARP應(yīng)答,告知其MAC地址為“00-E0-4C-87-DD-D2”
此時,主機(jī)A將獲得主機(jī)B的MAC地址,就可以向主機(jī)B發(fā)送信息。在發(fā)送信息的同時更新本機(jī)的ARP緩存表,以便下次再向主機(jī)B發(fā)送信息時,直接從ARP緩存表里查找。每臺在第一次登錄網(wǎng)絡(luò)建立網(wǎng)絡(luò)連接時,都要發(fā)送ARP廣播包;如果要訪問的主機(jī)的IP地址和MAC地址在本機(jī)ARP緩存表中不存在,也將向網(wǎng)絡(luò)發(fā)送ARP請求。由此可以根據(jù)每個用戶的既定訪問權(quán)限信息對主機(jī)的ARP緩存表作相應(yīng)改變,從而達(dá)到訪問控制的目的。
但考慮到網(wǎng)絡(luò)的實時變化,ARP高速緩存中的記錄不是一承不變的,而是是動態(tài)變化的,每當(dāng)發(fā)送一個指定地點的數(shù)據(jù)報且高速緩存中不存在當(dāng)前項目時,ARP便會自動添加當(dāng)前項目。ARP緩存采用老化機(jī)制,在一段時間內(nèi)如果表中的某一行沒有被使用,該行就會被刪除,如此可以大大縮小ARP緩存表的長度,加快查詢速度。因此,訪問控制要求所進(jìn)行的ARP緩存改變必須進(jìn)行定時刷新,從而適應(yīng)ARP緩存老化機(jī)制。