網絡安全中的ARP協議

一,TCP/IP協議之ARP協議的定義

   ARP協議即地址解析協議Address Resolution Protocol,ARP協議是將IP地址與網絡物理地址一一對應的協議。負責IP地址和網卡實體地址(MAC)之間的轉換。也就是將網絡層(IP層,也就是相當於ISO OSI 的第三層)地址解析爲數據連接層(MAC層,也就是相當於ISO OSI的第二層)的MAC地址。如果您對網路七層協定有比較清晰的理解的話應該知道各個層級之間都使用其各自的協定。一張ARP的表,用來支持在MAC地址和IP地址之間的一一對應關係。它提供兩者的相互轉換。

二,ARP協議的工作原理
    在以太網(Ethernet)中,一個網絡設備要和另一個網絡設備進行直接通信,除了知道目標設備的網絡層邏輯地址(如IP地址)外,還要知道目標設備的第二層物理地址(MAC地址)。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。

  當一個網絡設備需要和另一個網絡設備通信時,它首先把目標設備的IP地址與自己的子網掩碼進行"與"操作,以判斷目標設備與自己是否位於同一網段內。如果目標設備在同一網段內,並且源設備沒有獲得與目標IP地址相對應的MAC地址信息,則源設備以第二層廣播的形式(目標MAC地址爲全1)發送ARP請求報文,在ARP請求報文中包含了源設備與目標設備的IP地址。同一網段中的所有其他設備都可以收到並分析這個ARP請求報文,如果某設備發現報文中的目標IP地址與自己的IP地址相同,則它向源設備發回ARP響應報文,通過該報文使源設備獲得目標設備的MAC地址信息。

  如果目標設備與源設備不在同一網段,則源設備首先把IP分組發向自己的缺省網關(Default Gateway),由缺省網關對該分組進行轉發。如果源設備沒有關於缺省網關的MAC信息,則它同樣通過ARP協議獲取缺省網關的MAC地址信息。爲了減少廣播量,網絡設備通過ARP表在緩存中保存IP與MAC地址的映射信息。在一次ARP的請求與響應過程中,通信雙方都把對方的MAC地址與IP地址的對應關係保存在各自的ARP表中,以在後續的通信中使用。ARP表使用老化機制,刪除在一段時間內沒有使用過的IP與MAC地址的映射關係。

    還有當傳送過來的包要傳向一個LAN的主機時,當它到達網關時,網關要求ARP程序找到物理主機或與IP地址相對應的MAC地址。ARP程序在緩存中尋找,如果找到地址,就提供此地址,以便讓此包轉換成相應的長度和格式,以傳送到此主機。如果未找到,ARP程序就在網上廣播一個特殊格式的消息,看哪個機器知道與這個IP地址相關的MAC地址。如果一臺機器發現那是自己的IP地址,它就發送迴應,這樣就指出了相應的地址。ARP程序就更新自己的緩存然後發送此包到迴應的MAC地址。因爲不同協議的相應處理方法不同,所以有不同網絡的地址解析請求。也有反向地址解析協議(RARP)供不知道IP地址的主機從ARP緩存中獲得IP地址。

   我們還是來通過實驗更加深入直觀地瞭解ARP協議的工作原理吧。我們假設有兩臺主機:A機的IP地址是192.168.0.1,MAC地址是52-54-ab-27-82-83 。
B機的IP地址是192.168.0.2,MAC地址是52-54-ab-27-82-84 。
當主機A想與主機B進行通訊時,A機只知道B機的IP地址是192.168.0.2,當數據包封裝到MAC層時他如何知道B  
的MAC地址呢,一般的OS中是這樣做的,在OS的內核中保存一分MAC地址表,就是我們一中介始到的。用arp -a就可以看見這個表的內容了,例如:
C:/>arp -a

Interface: 192.168.0.X on Interface 0x1000002
Internet Address      Physical Address      Type
192.168.0.1           52-54-ab-27-82-83     dynamic


其中表內有IP和MAC地址的對應關係,當要過進行通訊時,系統先查看這個表中是否有相關的表項,如果有就直接使用,如果沒有系統就會發出一個ARP請求包,這個包的目的地址爲ffffffffffff的廣播地址,他的作用就是詢問局域網內IP地址爲192.168.0.2的主機的MAC地址,就像是A在局域網中發信息找一個IP地址爲192.168  
.0.2的主機MAC地址,同樣A機把自已的MAC地址告訴出去是52-54-ab-27-82-83 ,隨後所有主機都會接收到這個包,但只有IP爲192.168.0.2的B纔會響應一個ARP應答包給主機A,B機會回信息給A機說他的MAC地址是52-54-ab-27-82-84   
,好這下主機A就知道B的MAC地址了,於時他就可以封包發送了,同時主機A將B的MAC地址放入ARP緩衝中,隔一定時間就將其刪除,確保不斷更新。

注意,在這個過程中,如果主機A在發送ARP請求時,假如該局域網內有一臺主機C的IP和A相同,C就會得知有一臺主機的IP地址同自已的IP地址相同,於時就蹦出一個IP衝突的對話筐。與ARP相對應的還有一個協議RARP:Reverse  
Address Resolution Protocol,
反向地址解析協議,該協議主要用於工作站模型動態獲取IP的過程中,作用是由MAC地址向服務器取回IP地址。
 

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