「網工小白必備」全網最詳細的網絡基礎之ARP協議

1. 網絡層

1.1. ARP協議

1.1.1. 前言

20154904fd520d32e24c3b30ef763635.jpeg524740a0cb6df902a26839175e30f42e.jpg

1.1.2. ARP的基本概念

Address Resolution Protocol,地址解析協議

通過對方的IP地址去解析對方的MAC地址

1.1.3. ARP的報文

ARP報文格式


d362d468b166e0b1519010fa2ec5a849.jpeg

硬件類型:標識硬件地址的類型,值爲1表示以太網地址

協議類型:表示要映射的協議地址類相關。0x0080表示IP地址類型

硬件地址長度和協議地址長度,對於以太網上的IP地址的ARP請求或應答來說,他們的值分別爲6和4

操作類型(op):1表示ARP請求,2表示ARP應答,3表示RARP請求,4表示進行RARP應答

發送方的硬件地址:發送方設備的硬件地址

發送方的協議地址:發送方設備IP地址

目標硬件地址:接收方設備硬件地址

目標協議地址:接收方設備IP地址

ARP請求報文

f8bb4024a769684634b2e2e2623429a6.jpeg

ARP應答報文

36bda98a20a7f879ab1fa2f5d520366b.jpeg

1.1.4. ARP的工作過程

假設主機A和C在同一個網段,主機A要向主機C發送信息,具體的地址解析過程如下:

主機A首先查看自己的ARP表,確定其中是否包含有主機C對應的ARP表項。如果找到了對應的MAC地址,則主機A直接利用ARP表中的MAC地址,對IP數據包進行幀封裝,並將數據包發送給主機C

如果主機A在ARP表中找不到對應的MAC地址,則將緩存該數據報文,然後以廣播方式發送一個ARP請求報文。ARP請求報文中的發送端IP地址和發送端MAC地址爲主機A的IP地址和MAC地址,目標IP地址和目標MAC地址爲主機C的IP地址和全0的MAC地址。由於ARP請求報文以廣播方式發送,該網段上的所有主機都可以接收到該請求,但只有被請求的主機(即主機C)會對該請求進行處理

主機C比較自己的IP地址和ARP請求報文中的目標IP地址,當兩者相同時進行如下處理:將ARP請求報文中的發送端(即主機A)的IP地址和MAC地址存入自己的ARP表中。之後以單播方式發送ARP響應報文給主機A,其中包含了自己的MAC地址

主機A收到ARP響應報文後,將主機B的MAC地址加入到自己的ARP表中以用於後續報文的轉發,同時將IP數據包進行封裝後發送出去

6a11aeaea113a6da6852fabd4af66833.jpeg


35d89e373db6314e46b2fcf1c729c9d1.jpeg


9d4a4d6ea109a49eb7f25ff826cd74a3.jpeg


1.1.5. ARP表

設備通過ARP解析到目的MAC地址後,將會在自己的ARP表中增加IP地址到MAC地址的映射表項,以用戶後續到同一目的地報文的轉發

047bd2898a48a1c6711d96aec8a323b9.jpeg


2898158d53fdd0d92b95f3025dae519a.jpeg


當然我還有很多整理好的資料文檔和視頻文件,【 點這裏】 獲得更多資料文檔 往期教學視頻,主要也是想給新手小白少走點彎路。


動態ARP表

動態ARP表項由ARP協議通過ARP報文自動生成和維護,可以被老化,可以被新的報文更新,可以被靜態ARP表項覆蓋。

當到達老化時間、接口down時會刪除相應的動態ARP表項

靜態ARP表

靜態ARP表項通過手工配置和維護,不會被老化,不會被動態ARP表覆蓋

配置靜態ARP表項可以增加通信的安全性。靜態ARP表項可以限制和指定IP地址的設備通信時只使用指定的MAC地址,此時***報文無法修改此表項的IP地址和MAC地址的映射關係,從而保護了本設備和指定設備之間的正常通信

ARP表的更新和老化

ARP表的更新條件

在實際環境中,只有同時滿足兩個條件時,設備的ARP表項纔會更新

1. 設備收到來自某IP的ARP請求包或免費ARP包

2. 設備的現有ARP表項中已經存在該IP對應的ARP表項

ARP表的老化時間

不同的系統對ARP表項的老化時間設定不太一樣,在Windows2000/xp環境中,ARP表項的老化時間是2分鐘;大部分Cisco交換機中,該值爲5分鐘,華爲的設備一般是20分鐘。

ARP表老化時間定時器

滿足以下任一條件時,設備的ARP表項的老化時間定時器會充值

1. 設備響應的ARP表項更新時

2. 設備調用ARP表項轉發數據後

1.1.6. 免費ARP

免費ARP的概念

免費ARP指主機發送ARP查找自己的IP地址,通常發生在系統引導期間進行接口配置時,與標準ARP的區別就是免費ARP將目的IP地址封裝爲自己的IP地址,即向網絡中請求自己的MAC地址

免費ARP的作用

檢測地址衝突

正常情況下發送免費ARP請求不會收到ARP應答,如果收到一個ARP應答,則說明網絡中存在與本機相同的IP地址的主機,發生了地址衝突

更新其他主機高速緩存中舊的硬件地址

如果發送免費ARP的主機正好改變了硬件地址,如更換了接口卡

其他主機接收到這個ARP請求的時候,發現自己的ARP高速緩存表中存在對應的IP地址,但是MAC地址不匹配,那麼就需要利用接收到的ARP請求來更新本地的ARP高速緩存表項

網關利用免費ARP防止ARP***

有些網關設備在一定的時間間隔內向網絡主動發送免費的ARP報文,讓網絡內的其他主機更新ARP表項中的網關MAC地址信息,以達到防止或緩解ARP***的效果

利用免費ARP進行ARP***

ARP協議並不只在發送了ARP請求才接收ARP應答,計算機只要收到ARP應答數據包,就會使用應答包中的IP和MAC地址對本地的ARP緩存進行更新

主機可以虛構免費ARP應答,將ARP的源MAC設置爲錯誤的MAC地址,並把這個虛假的免費ARP應答發送到網絡中,那麼所有接收到這個免費ARP應答的主機都會更新本地ARP表項中相應IP地址對應的MAC地址

更新成功後,這些主機的數據報文就會被轉發到錯誤的MAC地址,從而實現了ARP欺騙

b3bc6c5d978b4abdaa86c6a902c2c531.jpeg

1.1.7. 代理ARP

代理ARP的概念

代理ARP(Proxy)就是通過使用一個主機(通常爲Router),來作爲指定的設備使用自己的MAC地址來對另一臺設備的ARP請求作出應答

通俗來說就是由中間設備來代替其他主機響應arp請求


e3fa906fd6a9c86a0484db524294066a.jpeg

爲什麼需要代理ARP

先要了解,路由器的重要功能之一就是把局域網的廣播報限制在該網段內,阻止其擴散,否則會造成廣播風暴

ARP請求是廣播報,他詢問的對象如果在同一個局域網內,就會收到ARP應答。如果詢問對象不在一個局域網內如何處理?路由器就提供了代理ARP爲這個問題提供瞭解決方案

代理ARP的工作機制

1d63de1ef567aa4b537eb5bc19977736.jpeg

兩臺主機A和B處於同一網段但不同的廣播段(不在同一物理網絡)時,主機A發送ARP請求主機B的MAC地址時,因爲路由器不轉發廣播報的原因,ARP請求只能達到路由器。

如果路由器使用了ARP代理功能,並知道主機B屬於它連接的網絡,那麼路由器就用自己接口MAC地址代替主機B的MAC地址來對主機A進行ARP應答。主機A接收ARP應答,但並不知道代理ARP的存在

代理ARP的優缺點

優點

代理ARP能在不影響路由表的情況下添加一個新的Router,使子網對該主機變得透明化。

一般代理ARP應該使用在主機沒有配置默認網關或沒有任何路由策略得網絡上

缺點

從工作過程可以看到,這其實是一種ARP欺騙

通過兩個物理網絡之間的路由器的代理ARP功能其實互相隱藏了物理網絡,這導致無法對網絡拓撲進行網絡概括

代理ARP增加了使用它的那段網段的ARP流量,主機需要更大的ARP緩存空間,也不會爲不使用ARP進行地址解析的網絡工作

1.1.8. ARP***

ARP***的原理

ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的進行。基於ARP協議的這一工作特性,***向對方計算機不斷髮送有欺詐性質的ARP數據包,數據包內包含有與當前設備重複的Mac地址,使對方在迴應報文時,由於簡單的地址重複錯誤而導致不能進行正常的網絡通信


受到ARP***產生的現象

不斷彈出“本機的XXX段硬件地址與網絡中的XXX段地址衝突”的對話框。

計算機不能正常上網,出現網絡中斷的症狀

注:因爲這種***是利用ARP請求報文進行“欺騙”的,所以防火牆會誤以爲是正常的請求數據包,不予攔截。因此普通的防火牆很難抵擋這種***

當然我還有很多整理好的資料文檔和視頻文件,【 點這裏】 獲得更多資料文檔 往期教學視頻,主要也是想給新手小白少走點彎路。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章