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