全部課程
發(fā)布時間: 2017-10-28 22:47:54
?1、概述
地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議。主機(jī)發(fā)送信息時將包含目標(biāo)IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息,其他主機(jī)收到應(yīng)答報文時不會檢測該報文的真實性就會將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報文,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯誤的主機(jī),這就構(gòu)成了一個ARP欺騙。ARP命令可用于查詢本機(jī)ARP緩存中IP地址和MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。
2、ARP的工作過程:
1) 當(dāng)主機(jī)x和主機(jī)y在同一個網(wǎng)段中時:
首先主機(jī)x會查找自己的ARP緩存表,而這個表在windows系統(tǒng)中是使用ARP –A命令來進(jìn)行查看的,如果存在主機(jī)y的ip地址與MAC地址之間的映射,那么可以直接使用這個關(guān)系中MAC地址對ip數(shù)據(jù)包進(jìn)行封裝。
如果在緩存表中沒有找到這個關(guān)系,那么主機(jī)x以廣播的方式發(fā)送一個ARP的請求報文,使得本網(wǎng)絡(luò)中的每一個主機(jī)都能收到這個報文, 這個ARP報文中,包含主機(jī)x的源ip地址和源MAC地址,以及目的ip地址,目的MAC地址中內(nèi)容是全為f的廣播地址。
主機(jī)y收到這樣的報文后,將主機(jī)x發(fā)送的ARP的x的ip和MAC的對應(yīng)關(guān)系存入自己的緩存中,同樣將構(gòu)造一個相應(yīng)的ARP報文,將自己的MAC地址放到報文中,單播會主機(jī)x。
主機(jī)x收到這個相應(yīng)報文后,將自己的緩存表中添加主機(jī)y的MAC地址與ip地址的對應(yīng)關(guān)系,然后進(jìn)行數(shù)據(jù)發(fā)送。
2)當(dāng)主機(jī)x和主機(jī)y不在同一個網(wǎng)段中時:
如果主機(jī)x不知道網(wǎng)關(guān)的MAC地址,(也就是說在主機(jī)x的緩存表中沒有網(wǎng)關(guān)的MAC地址映射)那么主機(jī)x先構(gòu)造一個ARP的廣播的請求報文,請求網(wǎng)關(guān)的MAC地址,進(jìn)而獲得網(wǎng)關(guān)的MAC與ip的對應(yīng)關(guān)系。
如果主機(jī)x的緩存中已經(jīng)有了網(wǎng)關(guān)的MAC地址與ip地址之間的關(guān)系了,那么將主機(jī)x發(fā)給主機(jī)y的ARP報文中的目的MAC地址的位置填寫網(wǎng)關(guān)的MAC地址,發(fā)給網(wǎng)關(guān)。
如果在網(wǎng)關(guān)的ARP緩存表中有y的MAC地址,則網(wǎng)關(guān)直接將來自主機(jī)x的報文中的目的MAC地址字段填寫主機(jī)y的MAC地址直接發(fā)給主機(jī)y。
如果在網(wǎng)關(guān)的緩存中不存在主機(jī)y的MAC地址,那么網(wǎng)關(guān)繼續(xù)以廣播的方式發(fā)送一個ARP的請求報文,請求主機(jī)y的MAC地址,然后,主機(jī)y相應(yīng)單播回自己的MAC地址,其他主機(jī)不響應(yīng),這里的過程就是相同的網(wǎng)段中的ARP的建立的過程了。
通過以上兩種方式,就建立起了ARP的解析的過程。