「网工小白必备」全网最详细的网络基础之ARP协议
1. 網絡層
1.1. ARP協議
1.1.1. 前言
1.1.2. ARP的基本概念
Address Resolution Protocol,地址解析協議
通過對方的IP地址去解析對方的MAC地址
1.1.3. ARP的報文
ARP報文格式
硬件類型:標識硬件地址的類型,值為1表示以太網地址
協議類型:表示要映射的協議地址類相關。0x0080表示IP地址類型
硬件地址長度和協議地址長度,對于以太網上的IP地址的ARP請求或應答來說,他們的值分別為6和4
操作類型(op):1表示ARP請求,2表示ARP應答,3表示RARP請求,4表示進行RARP應答
發送方的硬件地址:發送方設備的硬件地址
發送方的協議地址:發送方設備IP地址
目標硬件地址:接收方設備硬件地址
目標協議地址:接收方設備IP地址
ARP請求報文
ARP應答報文
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數據包進行封裝后發送出去
當然更多的資料文檔和往期視頻文件,都可以【】 ,主要也是想給新手小白少走點彎路。
1.1.5. ARP表
設備通過ARP解析到目的MAC地址后,將會在自己的ARP表中增加IP地址到MAC地址的映射表項,以用戶后續到同一目的地報文的轉發
動態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欺騙
1.1.7. 代理ARP
代理ARP的概念
代理ARP(Proxy)就是通過使用一個主機(通常為Router),來作為指定的設備使用自己的MAC地址來對另一臺設備的ARP請求作出應答
通俗來說就是由中間設備來代替其他主機響應arp請求
為什么需要代理ARP
先要了解,路由器的重要功能之一就是把局域網的廣播報限制在該網段內,阻止其擴散,否則會造成廣播風暴
ARP請求是廣播報,他詢問的對象如果在同一個局域網內,就會收到ARP應答。如果詢問對象不在一個局域網內如何處理?路由器就提供了代理ARP為這個問題提供了解決方案
代理ARP的工作機制
兩臺主機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請求報文進行“欺騙”的,所以防火墻會誤以為是正常的請求數據包,不予攔截。因此普通的防火墻很難抵擋這種攻擊
當然更多的資料文檔和往期視頻文件,都可以【點這里】 ,主要也是想給新手小白少走點彎路。
總結
以上是生活随笔為你收集整理的「网工小白必备」全网最详细的网络基础之ARP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flink SQL Client进行Ka
- 下一篇: 登录过gnome主题后无法再登录xfce