0x0806 ARP协议分析
一、基本概念
ARP(Address Resolution Protocol) 即地址解析協(xié)議,用于實(shí)現(xiàn)從IP地址到MAC地址映射。
?
二、 ARP工作流程
2.1 同一網(wǎng)段ARP工作流程分析
1.? PC1 要和PC3 通行,首先查看自己的ARP表,查看其中是否包含PC3的MAC地址信息,如果找到對(duì)應(yīng)關(guān)系,直接利用ARP表中的MAC地址對(duì)IP數(shù)據(jù)包進(jìn)行封裝。并將數(shù)據(jù)包發(fā)送給PC3。
2. 如果PC1在ARP表中未找到PC3對(duì)應(yīng)的MAC地址,則先緩存數(shù)據(jù)報(bào)文,然后利用廣播方式(目標(biāo)MAC地址FF:FF:FF:FF:FF:FF)發(fā)送一個(gè)ARP報(bào)文請(qǐng)求,ARP請(qǐng)求中的發(fā)送端MAC地址分別是PC1的IP地址和MAC地址,接收端的IP地址為PC3的IP地址,MAC地址全為0,因?yàn)锳RP請(qǐng)求報(bào)文是以廣播方式發(fā)送,所以該網(wǎng)段上的所有主機(jī)都可以接收到該請(qǐng)求包,但只有其IP地址與目的IP地址一致的PC3才會(huì)對(duì)該請(qǐng)求進(jìn)行處理。
3. PC3將ARP請(qǐng)求報(bào)文中的發(fā)送端(即PC1)的IP地址和MAC地址存入自己的ARP表中。然后以單播方式向PC1發(fā)送一個(gè)ARP相應(yīng)報(bào)文,應(yīng)答報(bào)文中就包含了自己的MAC地址,也就是原來在請(qǐng)求報(bào)文中要請(qǐng)求的目的MAC地址。
4. PC1收到來自PC3的ARP響應(yīng)報(bào)文之后,將PC3的MAC地址加入到自己的ARP表中以用于后續(xù)報(bào)文的轉(zhuǎn)發(fā),同時(shí)將原來緩存的IP數(shù)據(jù)包再次修改(在目的MAC地址字段填上PC3的MAC地址)后發(fā)送出去。
?2.2 跨網(wǎng)段的ARP地址解析流程
?
?
三、協(xié)議格式
?
以太網(wǎng)目的地址: 目的主機(jī)的硬件地址。目的地址全為1表示廣播地址
以太網(wǎng)源地址:源主機(jī)的硬件地址
幀類型:ARP:0x0806、 RARP:0x8035
硬件類型:表示硬件地址類型,ARP當(dāng)前可用硬件類型如下
| 類型 | 含義 | 備注 | 類型 | 含義 | 備注 |
| 0x001 | 以太網(wǎng) | ? ? ? ? ? ? ? ? ? ? ? ? ? | 0x0012 | 本地網(wǎng) | ?? ? ? ? ? ? ? ? ? ? ? |
| 0x002 | 實(shí)驗(yàn)性以太網(wǎng) | ? | 0x0013 | 超鏈路 | ? |
| 0x003 | 業(yè)務(wù)無線電AX.25 | ? | 0x0014 | SMDS | ? |
| 0x004 | Proteon ProNet令牌環(huán) | ? | 0x0015 | 幀中繼 | ? |
| 0x005 | ChaosNET | ? | 0x0016 | ATM | ? |
| 0x006 | IEEE 802網(wǎng) | ? | 0x0017 | HDLC(高級(jí)數(shù)據(jù)鏈路控制) | ? |
| 0x007 | ARCnet | ? | 0x0018 | 未指定 | ? |
| 0x008 | 超信道 | ? | 0x0019 | 異步傳輸模式 | ? |
| 0x009 | Lanstart | ? | 0x0020 | 串行線路 | ? |
| 0x0010 | Autonet短地址 | ? | 0x0021 | 異步傳輸模式 | ? |
| 0x0011 | Local talks | ? | ? | ? | ? |
協(xié)議類型:IP類型:0x0800
硬件地址長(zhǎng)度:對(duì)于以太網(wǎng)II來說,MAC地址作為硬件地址,因此該字段值為十六進(jìn)制06
協(xié)議地址長(zhǎng)度:對(duì)于IPv4來,IP地址長(zhǎng)度位32個(gè)字節(jié),因此該字段值為十六進(jìn)制04
操作類型:ARP定義了兩種操作:0x0001(請(qǐng)求)、0x0002(應(yīng)答)
發(fā)送端以太網(wǎng)地址:對(duì)于以太網(wǎng)II來說,MAC地址作為硬件地址
發(fā)送端IP地址:對(duì)于IPv4來, 值為IPv4地址
目的以太網(wǎng)地址:對(duì)于以太網(wǎng)II來說,MAC地址作為硬件地址
目的IP地址:對(duì)于IPv4來, 值為IPv4地址
? ? ? ?
四、協(xié)議分析
4.1 普通ARP
即通過ip地址獲得MAC地址,即網(wǎng)絡(luò)中通過IP尋找對(duì)應(yīng)MAC地址信息。
1. 請(qǐng)求包
解析:
鏈路層解析:
主機(jī)(54 89 98 ec 0f 66) 向局域網(wǎng)內(nèi)發(fā)送廣播(ff ff ff ff ff ff), 使用類型類型為 ARP (0806)
網(wǎng)絡(luò)層解析:??
該數(shù)據(jù)包的硬件地址類型為以太網(wǎng)(00 01), 使用IPv4(08 00)協(xié)議類型, 其中硬件地址長(zhǎng)度為6個(gè)字節(jié)(以太網(wǎng)MAC地址長(zhǎng)度), 協(xié)議地址長(zhǎng)度為4字節(jié)(IPv4地址長(zhǎng)度);該數(shù)據(jù)包為ARP請(qǐng)求包(0001),? 數(shù)據(jù)包內(nèi)容為 宿主機(jī)MAC地址為54 89 98 ec 0f 66 ,IP地址為 192.168.1.2(c0 a8 01 02) 向網(wǎng)絡(luò)(ff ff ff ff ff ff)中請(qǐng)求IP地址為192.168.1.4(c0 a8 01 04的mac地址。該網(wǎng)絡(luò)中主機(jī)收到該數(shù)據(jù)包請(qǐng)求根據(jù)包中發(fā)送方地址信息,更新自己ARP表信息,若該IP地址為自己IP地址,則對(duì)請(qǐng)求方進(jìn)行回復(fù),若非自己IP地址,則丟棄。
2. 響應(yīng)包
解析:
鏈路層解析:
主機(jī)(54 89 98 49 3a 78) 向主機(jī)發(fā)送響應(yīng)消息(54 89 98 ec 0f 66), 使用類型類型為 ARP (0806)
網(wǎng)絡(luò)層解析:??
該數(shù)據(jù)包的硬件地址類型為以太網(wǎng)(00 01), 使用IPv4(08 00)協(xié)議類型, 其中硬件地址長(zhǎng)度為6個(gè)字節(jié)(以太網(wǎng)MAC地址長(zhǎng)度), 協(xié)議地址長(zhǎng)度為4字節(jié)(IPv4地址長(zhǎng)度);該數(shù)據(jù)包為ARP響應(yīng)包(0002),? 數(shù)據(jù)包內(nèi)容為 宿主機(jī)MAC地址為54 89 98 49 3a 78,IP地址為 192.168.1.4(c0 a8 01 04) 向主機(jī)(54 89 98 ec 0f 66)發(fā)出的ARP請(qǐng)求數(shù)據(jù)包進(jìn)行響應(yīng),接收方收到該響應(yīng)包更新系統(tǒng)ARP表。
4.2 免費(fèi)ARP
免費(fèi)ARP報(bào)文與普通ARP請(qǐng)求報(bào)文的區(qū)別在于普通的ARP請(qǐng)求報(bào)文,其ARP封裝內(nèi)的“目的IP地址”是其他機(jī)器的IP地址,而免費(fèi)ARP的請(qǐng)求報(bào)文,其ARP封裝內(nèi)的“目的IP地址”是其自己的IP地址。免費(fèi)ARP的數(shù)據(jù)包格式如下圖所示:
免費(fèi)ARP在實(shí)際環(huán)境中的一些應(yīng)用
1.??免費(fèi)ARP主要用于檢測(cè)IP地址沖突
當(dāng)一臺(tái)主機(jī)發(fā)送了免費(fèi)ARP請(qǐng)求報(bào)文后,如果收到了ARP響應(yīng)報(bào)文,則說明網(wǎng)絡(luò)內(nèi)已經(jīng)存在使用該IP 的主機(jī)。
2.?利用免費(fèi)ARP確認(rèn)設(shè)備接口地址
一般的設(shè)備在網(wǎng)卡地址加載階段都會(huì)向網(wǎng)絡(luò)中發(fā)送免費(fèi)的ARP報(bào)文(也有些安全設(shè)備為了安全起見,讓設(shè)備在加載地址期間不向外發(fā)送免費(fèi)ARP報(bào)文),當(dāng)我們想知道某些設(shè)備的接口地址但又沒有相應(yīng)記錄可查時(shí),我們就可以利用設(shè)備的這種特性,抓取其免費(fèi)ARP報(bào)文,從而分析出其接口使用的IP地址。
3.?使用免費(fèi)ARP報(bào)文,更新某些設(shè)備的ARP表項(xiàng)
4. 利用免費(fèi)ARP的攻擊
5. 網(wǎng)關(guān)設(shè)備利用免費(fèi)ARP防止ARP攻擊
4.3 代理ARP
代理ARP是ARP協(xié)議的一個(gè)變種。對(duì)于沒有配置缺省網(wǎng)關(guān)的計(jì)算機(jī)要和其他網(wǎng)絡(luò)中的計(jì)算機(jī)實(shí)現(xiàn)通信,網(wǎng)關(guān)收到源計(jì)算機(jī)的 ARP 請(qǐng)求會(huì)使用自己的 MAC 地址與目標(biāo)計(jì)算機(jī)的 IP地址對(duì)源計(jì)算機(jī)進(jìn)行應(yīng)答。代理ARP就是將一個(gè)主機(jī)作為對(duì)另一個(gè)主機(jī)ARP進(jìn)行應(yīng)答。它能使得在不影響路由表的情況下添加一個(gè)新的Router,使得子網(wǎng)對(duì)該主機(jī)來說變得更透明化。同時(shí)也會(huì)帶來巨大的風(fēng)險(xiǎn),除了ARP欺騙,和某個(gè)網(wǎng)段內(nèi)的ARP增加,最重要的就是無法對(duì)網(wǎng)絡(luò)拓?fù)溥M(jìn)行網(wǎng)絡(luò)概括。代理ARP的使用一般是使用在沒有配置默認(rèn)網(wǎng)關(guān)和路由策略的網(wǎng)絡(luò)上的。
1. 基本實(shí)現(xiàn)
?
2. 數(shù)據(jù)解析
1.?在主機(jī)192.168.2.2 上ping 主機(jī) 192.168.3.2 抓取數(shù)據(jù)包如下,?
解析: 主機(jī)192.168.2.2 與主機(jī) 192.168.3.2 進(jìn)行通行,先向發(fā)送廣播包,請(qǐng)求網(wǎng)關(guān)MAC地址,網(wǎng)關(guān)收到該廣播后發(fā)送單播給請(qǐng)求方告知自己的MAC地址信息
?
抓取 192.168.3.0/24 網(wǎng)絡(luò)側(cè)數(shù)據(jù)包如下?
?
? 解析: 網(wǎng)關(guān)收到192.168.2.1 發(fā)送給192.168.3.2的信息,先檢查自身MAC地址表若沒有192.168.3.2 的MAC地址信息,則在192.168.3.0 網(wǎng)段進(jìn)行廣播請(qǐng)求192.168.3.2 的MAC地址信息,192.168.3.2收到網(wǎng)關(guān)的ARP請(qǐng)求信息,向網(wǎng)關(guān)發(fā)送單播告知自己的MAC地址信息。
?
五、ARP常用命令
| 功能 | Mac | ?Windows | Linux | ?Huawei | H3C | Cisco | Ruijie |
| 查看ARP表 | arp -a | ?arp -a | arp -a | display arp all | ? | show mac-address-table | |
| 清理ARP表 | arp -ad | ? | ? | reset arp all | ? | clear arp | ? |
轉(zhuǎn)載于:https://www.cnblogs.com/onlycat/p/11340872.html
總結(jié)
以上是生活随笔為你收集整理的0x0806 ARP协议分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给 DataGrid 的删除信息添加提示
- 下一篇: Go 快速入门