动态

详情 返回 返回

ARP協議 - 动态 详情

文章首發博客,你可以前往 閲讀原文

ARP(Address Resolution Protocol,地址解析協議)是一種在計算機網絡中用於將IP地址映射到MAC地址的協議。ARP協議通常在局域網中使用,它允許主機查找目標主機的MAC地址,以便在網絡中發送數據包

當一個主機需要向另一個主機發送數據包時,它需要知道目標主機的MAC地址,因為MAC地址是在數據鏈路層使用的地址。如果目標主機的IP地址已知,但是它的MAC地址未知,就需要使用ARP協議進行地址解析

ARP協議是屬於網絡層協議,基於IP協議

掃碼關注公眾號,查看更多最新優質文章

通信過程


假如局域網內有多個主機,當主機A需要和主機C進行通訊時,需要先獲得主機B的mac地址:

  1. 主機A先從自己的ARP緩存表中獲取主機B的mac地址
  2. 當沒有時會想局域網中發送arp廣播請求,路由器等設備接收到arp請求後,會將請求發送給局域網中的每個主機
  3. 當每個主機接收到arp請求後發現目標ip不是自己,就會丟棄掉arp數據包,不做任何迴應
  4. 而真正的主機接收到後,會將自己的mac地址以單播的形式響應給發送端
  5. 路由器等設備也會學習ip,當目標主機響應源主機時,路由器也會維護一份路由表,在路由器的路由表沒有過期時,路由器會直接返回目標主機的mac地址

真實環境抓包情況如下:

ARP首部

  • 硬件類型:2字節,硬件地址類型,值為1時表示以太網
  • 協議類型:2字節,表示映射的協議地址類型,對於IP協議值為0x0800
  • MAC地址長度:1字節,表示MAC地址長度,以字節為單位,此處為6
  • IP協議地址長度:1字節,表示IP的長度,以字節為單位,此處為4
  • 操作類型:2字節,指定本次ARP報文類型。ARP請求(1)、ARP應答(2)、RARP請求(3)、RARP應答(4)
  • 源MAC地址:6字節,發送方的硬件地址
  • 源IP地址:4字節,發送方的IP地址
  • 目的MAC地址:6字節,接收方硬件地址,在請求報文中該字段值全為0,即00:00:00:00:00:00,表示任意地址,等待接收方來補充
  • 目的IP地址:4字節,接收方的IP地址

抓包情況如下:

ARP緩存表

為了避免每次通信都要進行這種轉換,每個設備(如路由器、交換機、網關等)都會在自己的ARP緩存表中存儲已經進行過ARP請求並得到迴應的IP地址和MAC地址的對應關係。當設備需要與該IP地址對應的設備進行通信時,就可以直接從ARP緩存表中獲取對應的MAC地址,而不用再次發送ARP請求

ARP緩存表中的每個條目通常包含以下信息:

  • IP地址:需要轉換為MAC地址的IP地址
  • MAC地址:與IP地址對應的MAC地址
  • 接口:該MAC地址所在的網絡接口
  • 時間戳:上次從目標設備獲取該MAC地址的時間

查看主機維護的arp緩存表:

➜ arp -ae
Address           HWtype  HWaddress           Flags Mask    Iface
192.168.11.11     ether   xx:1b:xx:b5:e2:12   C             ens160
192.168.11.235    ether   xx:ef:xx:5b:d1:a5   C             ens160
192.168.11.194    ether   xx:a4:xx:0a:xx:c5   C             ens160
192.168.11.120    ether   xx:9c:23:xx:b0:xx   C             ens160
gateway           ether   xx:05:a5:xx:9b:8f   C             ens160
192.168.10.1      ether   6e:xx:33:xx:45:xx   C             ens256

ARP緩存表的大小有限,當表滿了時,新的ARP請求會替換最早的條目。此外,由於ARP緩存表中的信息是動態的,因此有時需要手動清除過期的ARP緩存表項

動態ARP表

動態ARP表是由ARP和計算機自動維護的,它會記錄最近進行過通信的IP地址和MAC地址的映射關係,並在一定時間內保持這種關係。當通信終止一段時間後,這些映射關係就會被清除。這種清除機制可以確保ARP表中的信息是最新的,但也可能導致頻繁地進行ARP請求

靜態ARP表

靜態ARP表是由管理員手動設置的,它不會自動更新。管理員可以在靜態ARP表中指定某個IP地址對應的MAC地址,這樣ARP表中就會一直保持這種映射關係,直到管理員手動刪除或更新它。這種方式可以減少ARP請求的次數,提高網絡性能,但需要管理員進行手動維護,可能導致靜態ARP表中的信息不夠實時

RARP

ARP是將IP地址轉換為MAC地址,而RARP(Reverse Address Resolution Protocol,反向地址解析協議)是一種用於將MAC地址轉換為IP地址的協議,與ARP相反

當一個網絡設備啓動時,它通常知道自己的MAC地址,但不知道自己的IP地址。此時,設備可以向網絡中的RARP服務器發送一個RARP請求,請求服務器將自己的MAC地址轉換為IP地址;RARP服務器將在自己的RARP表中查找該MAC地址對應的IP地址,並將IP地址返回給設備;由於DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)的出現,RARP協議已經逐漸被淘汰。DHCP協議可以動態地分配IP地址和其他網絡配置信息,而不需要依賴於RARP服務器

代理ARP

代理ARP(Proxy ARP)是一種網絡協議,它允許一個主機為另一個主機響應ARP請求,從而實現兩個不在同一子網內的主機之間的通信。代理ARP通常在路由器或交換機等設備上實現,這些設備會監視網絡中的ARP請求,並根據需要向其他子網中的主機發送ARP響應

當一個主機需要與另一個不在同一子網內的主機通信時,它會向本地網段的網關發送ARP請求,請求網關的MAC地址。如果網關啓用了代理ARP功能,並且知道目標主機的MAC地址,它就會響應ARP請求,將目標主機的MAC地址發送給源主機,源主機就可以使用該MAC地址向目標主機發送數據包

ARP欺騙

ARP可以説是最不安全的協議,傳播中沒有身份驗證,對於網絡中的任意主機都可以接收到發送者的arp包,因此可以假裝成目標主機並返回給源主機錯誤的mac地址,當源主機發送數據時就會將數據發送到錯誤的主機上,造成數據泄露等安全問題

ARP欺騙示意圖:

主機A想要和主機C進行通信,發送的ARP數據包被hacker截取後,偽造成主機C,將自己的mac地址發送給主機A,主機A就會將hacker的mac地址存到自己的arp緩存表中,這樣以後發送到主機C的數據全都會發送到hacker的主機上

ARP欺騙會造成數據的泄露,假如網頁上沒有使用https證書,數據都會以明文的形式傳輸,很容易泄露數據。如下圖:當在網頁上提交表單,通過抓包工具就可以看到數據內容

如何防範ARP欺騙?

  1. 使用靜態ARP表:靜態ARP表是手動配置的ARP表,可以避免ARP欺騙攻擊。管理員可以在網絡設備上手動配置每個設備的MAC地址和IP地址的對應關係,從而限制ARP欺騙攻擊
  2. 使用動態ARP檢測工具:動態ARP檢測工具可以檢測網絡中的ARP欺騙攻擊,並且可以發出警報或者自動阻止攻擊。例如,ARPwatch、ARPdefender等工具可以幫助管理員實時監控網絡中的ARP請求和響應,從而及時發現並防止ARP欺騙攻擊
  3. 使用加密協議:使用加密協議可以保護網絡中的通信,從而避免ARP欺騙攻擊。例如,使用SSL、TLS等加密協議可以保護Web應用程序的通信,從而避免中間人攻擊
  4. 使用虛擬專用網絡(VPN):使用VPN可以將網絡流量加密並隧道化,從而避免ARP欺騙攻擊。VPN可以將本地網絡與遠程網絡之間建立一個安全的隧道,從而保護網絡通信的安全

ARP泛洪

ARP泛洪(ARP Flooding)是一種網絡攻擊方法,它利用ARP協議的特性向網絡中廣播大量的虛假ARP請求,從而導致網絡中所有主機的ARP緩存被污染

ARP泛洪攻擊的原理是攻擊者向網絡中發送大量虛假的ARP請求包,每個ARP請求包都包含一個虛假的IP地址和MAC地址。當網絡中的其他主機接收到ARP請求包時,它們會更新自己的ARP緩存,將虛假的MAC地址與IP地址映射起來。這樣,當這些主機向虛假IP地址發送數據包時,數據包會被髮送到錯誤的MAC地址,從而無法到達真正的目標主機。如果攻擊者攔截這些數據包並篡改它們,就可以實現中間人攻擊或拒絕服務攻擊等行為

為了防止ARP泛洪攻擊,可以採取以下幾種措施:

  • 使用靜態ARP表:在網絡中使用靜態ARP表,將每個IP地址與MAC地址手動映射起來,這樣可以避免ARP緩存被污染。但是,靜態ARP表的管理比較困難,需要手動進行維護
  • 使用ARP防火牆:在網絡中使用ARP防火牆,對所有的ARP請求和響應進行過濾和驗證,可以有效地防止ARP欺騙和ARP泛洪攻擊
  • 使用網絡安全設備:在網絡中使用網絡安全設備,例如交換機和路由器等,可以對ARP請求和響應進行監控和過濾,從而保護網絡安全

總結

ARP協議用來將IP地址映射為mac地址,ARP協議是個非常不安全的協議,因此很容易稱為攻擊的漏洞,為了防範ARP攻擊,要採取必要的措施來防止攻擊

參考文獻

  • 計算機網絡(自定向下方法第7版)
  • TCP/IP詳解 卷1:協議(原書第2版)
user avatar tianmiaogongzuoshi_5ca47d59bef41 头像 aqiongbei 头像 ayuan01 头像 yixiyidong 头像 weidewei 头像 it1042290135 头像 zhaodawan 头像 cbuc 头像 potato1314 头像 shimiandeshatanku 头像 snowwolfarden 头像 bencjl 头像
点赞 36 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.