溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ARP工作原理及解析

發(fā)布時間:2020-06-05 08:00:07 來源:網(wǎng)絡(luò) 閱讀:4516 作者:拼命學(xué) 欄目:網(wǎng)絡(luò)安全


一、ARP包格式分析

工作原理:

在網(wǎng)絡(luò) 通訊時,源主機(jī)的應(yīng)用程序知道目的主機(jī)的IP地址和端口號,卻不知道目的主機(jī)的硬件地址,而數(shù)據(jù)包首先是被網(wǎng)卡接收到再去處理上層協(xié)議的,如果接收到的數(shù) 據(jù)包的硬件地址與本機(jī)不符,則直接丟棄。因此在通訊前必須獲得目的主機(jī)的硬件地址。ARP協(xié)議就起到這個作用。源主機(jī)發(fā)出ARP求,詢問“IP地址是192.168.0.1的主機(jī)的硬件地址是多少,并將這個請求廣播到本地網(wǎng)段(以太網(wǎng)幀首部的硬件地址填 FF:FF:FF:FF:FF:FF表示廣播),目的主機(jī)接收到廣播的ARP請求,發(fā)現(xiàn)其中的IP地址與本機(jī)相符,則發(fā)送一個ARP應(yīng)答數(shù)據(jù)包給源主機(jī), 將自己的硬件地址填寫在應(yīng)答包中。

每臺主機(jī)都維護(hù)一個ARP緩存表,可以用arp -a命令查看。緩存表中的表項有過期時間(一般為20分鐘),如果20分鐘內(nèi)沒有再次使用某個表項,則該表項失效,下次還要發(fā)ARP請求來獲得目的主機(jī)的硬件地址。試想一下如果沒有緩存,我們每發(fā)一個IP包都要發(fā)個廣播查詢地址,豈不是又浪費(fèi)帶寬又浪費(fèi)資源?而且我們的網(wǎng)絡(luò)設(shè)備是無法識別ARP包的真?zhèn)蔚?,如果我們按?/span>ARP的格式來發(fā)送數(shù)據(jù)包,只要信息有效計算機(jī)就會根據(jù)包中的內(nèi)容做相應(yīng)的反應(yīng).

ARP數(shù)據(jù)報格式


ARP工作原理及解析


注意到 源MAC地址、目的MAC地址在以太網(wǎng)首部和ARP請求中各出現(xiàn)一次,對于鏈路層為以太網(wǎng)的情況是多余的,但如果鏈路層是其它類型的網(wǎng)絡(luò)則有可能是必要 的。硬件類型指鏈路層網(wǎng)絡(luò)類型,1為以太網(wǎng),協(xié)議類型指要轉(zhuǎn)換的地址類型,0x0800IP地址,后面兩個地址長度對于以太網(wǎng)地址和IP地址分別為64(字節(jié)),op字段為1表示ARP請求,op字段為2表示ARP應(yīng)答。

以太網(wǎng)首部:

字段                   長度(Byte)          默認(rèn)值                 備注
接收方MAC       6                                                    廣播時, ff-ff-ff-ff-ff-ff
發(fā)送方MAC       6        
Ethertype           2                                                   0x0806       0x0806ARP幀的類型值

ARP包:

字段                     長度(Byte)         默認(rèn)值              備注
硬件類型              2                       0x1             以太網(wǎng)類型值
上層協(xié)議類型       2                       0x0800          上層協(xié)議為IP協(xié)議
MAC地址長度      1                       0x6             以太網(wǎng)MAC地址長度為 6
IP地址長度          1                       0x4             IP地址長度為 4
操作碼                 2                                        0x1表示ARP請求包,0x2表示應(yīng)答包
發(fā)送方MAC          6        
發(fā)送方IP              4        
接收方MAC          6        
接收方IP              4        
填充數(shù)據(jù)              18                            因為物理幀最小長度為64字節(jié),前面的42字節(jié)再加上4CRC校驗字節(jié),還差18個字節(jié)

、 實例解析   

本機(jī)IP192.168.0.1 (c0 a8 00 01)
本機(jī)MAC00-50-56-c0-00-01

目標(biāo)IP192.168.0.2 (c0 a8 00 02)
目標(biāo)MAC00-0c-29-0b-42-7e

1、  Ping 目標(biāo)主機(jī)192.168.0.2時,本機(jī)發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 01 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 02

以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 50 56 c0 00 01(本機(jī))
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01Request
數(shù)據(jù)內(nèi)容:告訴IPc0 a8 00 02的目標(biāo)主機(jī),本機(jī)的IPc0 a8 00 01,MAC
00 50 56 c0 00 01,請更新,并將你的MAC發(fā)送給我。

目標(biāo)主機(jī)回應(yīng)本機(jī)的ARP數(shù)據(jù)包為
00000000 : 00 50 56 c0 00 01 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 02 00 0c 29 0b 42 7e c0 a8 00 02
00000020 : 00 50 56 c0 00 01 c0 a8 00 01

以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:00 50 56 c0 00 01
以太網(wǎng)數(shù)據(jù)包發(fā)送源: 00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 02Reply
數(shù)據(jù)內(nèi)容:告訴MAC    00 50 56 c0 00 01 的主機(jī),你的IPMAC我已經(jīng)收到,我的MACIP00 0c 29 0b 42 7e c0 a8 00 02,請保存更新。



2、  修改系統(tǒng)IP時(未發(fā)生IP沖突的情況下),發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 03
00000020 : 00 00 00 00 00 00 c0 a8 00 03

以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 0c 29 0b 42 7e(本機(jī))
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01Request
數(shù)據(jù)內(nèi)容:告訴IPc0 a8 00 03的主機(jī),本機(jī)的MACIP00 0c 29 0b 42 7e c0 a8 00 03。由于網(wǎng)絡(luò)內(nèi)沒有c0 a8 00 03 主機(jī),所以此數(shù)據(jù)包將不會有回應(yīng),此時,局域網(wǎng)交換機(jī)將會刷新緩存,使你的IPMAC對應(yīng)起來。

3  修改系統(tǒng)IP時(發(fā)生IP沖突的情況下),發(fā)送的ARP數(shù)據(jù)包為
00000000 : ff ff ff ff ff ff 00 0c 29 0b 42 7e 08 06 00 01
00000010 : 08 00 06 04 00 01 00 0c 29 0b 42 7e c0 a8 00 01
00000020 : 00 00 00 00 00 00 c0 a8 00 01

以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:ff ff ff ff ff ff(全網(wǎng))
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 01Request
數(shù)據(jù)內(nèi)容:告訴IPc0 a8 00 01的主機(jī),本機(jī)的MACIP00 0c 29 0b 42 7e c0 a8 00 01。由于網(wǎng)絡(luò)內(nèi)已經(jīng)有c0 a8 00 01 主機(jī),將會發(fā)生沖突。這時將收到ARP Reply數(shù)據(jù)包。

接收的ARP數(shù)據(jù)包為
00000000 : 00 0c 29 0b 42 7e 00 50 56 c0 00 01 08 06 00 01
00000010 : 08 00 06 04 00 02 00 50 56 c0 00 01 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 01

以太網(wǎng)數(shù)據(jù)包發(fā)送目的地:00 0c 29 0b 42 7e
以太網(wǎng)數(shù)據(jù)包發(fā)送源:00 50 56 c0 00 01
以太網(wǎng)數(shù)據(jù)包數(shù)據(jù)包內(nèi)容類型:08 06ARP數(shù)據(jù)包)
ARP數(shù)據(jù)包類型:00 02Reply
數(shù)據(jù)內(nèi)容:告訴MAC00 0c 29 0b 42 7e的主機(jī),本機(jī)的MACIP00 50 56 c0 00 01c0 a8 00 01。這時MAC 42 7e c0 a8 00 01的主機(jī)收到這個包后,并知道他的IP與其它主機(jī)沖突了。

4、  偽造ARP數(shù)據(jù)包
向目標(biāo)MAC發(fā)送偽造的ARP Reply,告知一個假的信息,達(dá)到欺騙的目的。
本機(jī)真實IP為:192.168.0.1(c0 a8 00 01)
本機(jī)真實MAC為:00-50-56-c0-00-01
偽造的MAC為:11-11-11-11-11-11

欺騙目標(biāo):
IP為:192.168.0.2(c0 a8 00 02)
MAC00-0c-29-0b-42-7e

偽造的數(shù)據(jù)包如下:
Packet length60
00000000 : 00 0c 29 0b 42 7e 11 11 11 11 11 11 08 06 00 01
00000010 : 08 00 06 04 00 02 11 11 11 11 11 11 c0 a8 00 01
00000020 : 00 0c 29 0b 42 7e c0 a8 00 02(剩余部分用0填補(bǔ))

 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI