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