您的計算機在網際網路上有兩個地址:一個永久實體地址或介質訪問控制(MAC)地址和一個邏輯網際網路協議或 IP 地址。但是,由於許多計算機會不斷更改 IP 地址,網路如何才能將不同的 IP 與單個 MAC 地址關聯起來呢?
這就是 ARP,正式名稱為地址解析協議。
ARP 的工作是在計算機的 MAC 地址和 IP 地址之間進行轉換,這對任何網路來說都是非常有用的功能。不過,儘管 ARP 很有用,但它也會帶來一些安全風險,包括可能截獲潛在敏感資料的風險。
那麼 ARP 是如何工作的呢?
在本文中,我們將定義 ARP,將其與類似的網路協議進行對比,探討其各種型別和用例,以及在網路中使用它的風險。請繼續閱讀,進一步瞭解這一常見的網路協議,有時甚至是有風險的網路協議。
什麼是 ARP?
地址解析協議或 ARP 是網路將計算機的 IP 地址轉換(或解析)為物理機器地址的常用方法。
由於這兩個地址的長度和格式不同,因此 ARP 對於允許計算機和其他裝置通過網路進行通訊至關重要。要真正理解這一點的重要性,讓我們來快速複習一下這兩種地址型別,以及它們與我們日常網路模型的關係。
ARP 連結計算機的 MAC 地址和 IP 地址
IP 地址與 MAC 地址
您的電腦、智慧手機和其他聯網裝置在網際網路上有兩個地址:IP 地址和 MAC 地址。
但為什麼一臺裝置要有兩個不同的地址呢?
試想一下,您的電腦是一個活動房屋。當移動房屋下線時,它可能會有一個序列號(或其他一些唯一識別符號),將它與其他所有移動房屋區分開來。換句話說,移動房屋可以通過序列號來識別。
活動房屋有唯一的序列號
現在,假設您將活動房屋停放在小區裡。根據您停放的地段,活動房屋會有一個街道地址,比方說 “27 Wbolt Lane”。如果您的活動房屋停放在同一地段,其街道地址仍為 27 Wbolt Lane。不過,您也可以很容易地將它移到路邊,給它一個新的街道地址,比如 “93 Wbolt Lane”。
請注意,在這裡停放活動房屋有兩種形式的標識:序列號和街道地址。在這裡,街道地址告訴了大家移動房屋相對於世界其他地方的位置,而序列號則將移動房屋與同一地段的其他移動房屋區分開來。
計算機的 IP 地址和 MAC 地址的作用完全相同,只是我們例子中的鄰居現在變成了本地網路。
在這裡,計算機的 MAC 地址是其在網路中的唯一物理識別符號,就像移動房屋的序列號是其唯一物理識別符號一樣。因此,MAC 地址通常被稱為實體地址或硬體地址。與序列號一樣,您也無法更改計算機的 MAC 地址。
直接印在硬體上的 MAC 地址(來源:LearnTomato)
與此同時,計算機的 IP 地址是它在網路中的 “街道地址”。當計算機連線到網路時,它就會被分配一個 IP 地址,就像移動房屋停在停車場後會被分配一個街道地址一樣。
但是,如果計算機斷開網路連線,它就會失去 IP 地址,就像移動房屋從地段上移開時會失去街道地址一樣。重新連線網路也等同於將移動房屋停放在其他地方,計算機將獲得一個新的 IP 地址,就像移動房屋將獲得一個新的街道地址一樣。
當然,IP 地址和 MAC 地址與街道地址和序列號還是有很大區別的。
郵遞員可以在不知道移動房屋序列號的情況下將郵件投遞到移動房屋,而網際網路協議(IP)則需要這兩個地址才能將郵件或資料包投遞到正確的計算機上。
MAC 地址和 IP 地址的主要區別(來源:TechTarget)
簡而言之,MAC 地址和 IP 地址以不同的方式識別網路上的裝置。以下是兩者的一些主要區別:
- 地址層不同。MAC 地址和 IP 地址工作在開放系統互連 (OSI) 模型的不同層,該模型描述了資料在計算機之間傳輸時所經歷的各個階段。雖然我們在這裡不會說得太詳細,但 MAC 地址工作在資料鏈路層(或第 2 層),該層直接轉換通過電線傳送的電訊號和邏輯資料。IP 地址工作在更高一層的網路層(或第 3 層),負責處理整個網路的定址和路由,就像在信封上寫地址一樣。
- 本地範圍與全球範圍。MAC 地址用於在 “本地 “範圍內識別不同的裝置,如在辦公樓內共享網路的不同電腦。IP 地址的工作範圍更廣,可控制網際網路上的裝置如何相互定位和通訊。
- 地址格式不同。由於 MAC 地址和 IP 地址工作在不同的層級,做不同的事情,因此它們也有不同的格式。MAC 地址的格式類似於序列號,由 12 個數字組成,每對數字之間用連字元或冒號隔開(00:00:00:00:00:00:00:00:00:00),而典型的 IPv4 地址則是 32 位地址(位元指二進位制數字),由 4 個十進位制數字組成(000.000.000.0000)。雖然你暫時不需要了解具體細節,但請注意,關聯這兩種地址格式是 ARP 的主要功能。
- MAC 地址是永久性的。裝置製造完成後,製造商就會為其分配 MAC 地址。該地址基本上 “嵌入” 到裝置的網路硬體中,使其永久不可更改–就像我們前面提到的移動房屋序列號一樣。IP 地址是臨時性的,在裝置連線到網路時分配。因此,裝置在其生命週期內可以擁有多個不同的 IP 地址。
- 實體地址與邏輯地址。根據上述引申,MAC 地址也被稱為實體地址或硬體地址,而 IP 地址有時(但並不常見)被稱為邏輯地址。
- 分配時間不同。如前所述,MAC 地址在製造時只分配一次。之後,IP 地址可以分配任意次數,只要裝置連線到網路即可。
那麼 ARP 從何而來呢?
由於每臺計算機都有這兩個地址,因此必須有某種方法將一個地址與另一個地址關聯起來,以便將資料包傳送到正確的地方。這就引出了 ARP 的核心功能:將裝置的 MAC 地址與其不斷變化的 IP 地址關聯起來,反之亦然。
讓我們仔細看看它是如何工作的。
ARP 如何工作?
既然我們已經回答了 “什麼是 ARP?”,就讓我們來了解一下它是如何工作的。ARP 維護一個最新的 MAC 地址及其關聯 IP 地址列表。該列表通常由閘道器或路由器維護–基本上,任何負責管理網路和裝置之間資料流的網路交換機都會維護該列表。
為了理解這一點,讓我們來看看下圖。
乙太網網路上的 ARP(來源:Fortinet)
在這裡,左邊的 “主機” 計算機正試圖向右邊的 IP 地址為 34.40.21.20 的計算機傳送資料。要成功向這臺電腦傳送資料,”主機” 電腦需要它的 IP 地址和 MAC 地址。
值得慶幸的是,主機已經有了這臺電腦的 IP 地址。現在它需要的只是這臺電腦的 MAC 地址,這就是 ARP 的作用所在。
網路連線裝置和交換機(本例中為路由器)在其作業系統中維護著一個已知 IP-MAC 地址轉換列表。這個列表被稱為 ARP 快取或 ARP 表,需要不斷更新才能跟上不斷變化的 IP 地址。
當計算機要向一個特定的 IP 地址傳送資訊時,它首先會檢查其 ARP 快取,看看是否有匹配的 MAC 地址。如果沒有匹配的 MAC 地址,它就會傳送請求資料包。
讓我們用圖中的兩臺電腦來說明這一過程:
- 主機計算機檢查其 ARP 快取,檢視是否已經知道 34.40.21.20 的 MAC 地址。如果知道,它就擁有了所需的一切併傳送了資訊。
- 主機傳送請求,獲取 34.40.21.20 的 MAC 地址。
- 路由器收到主機發出的網路地址請求後,會使用 ARP 來查詢 MAC 地址。
- ARP 會嘗試參考路由器現有的 ARP 快取,如果找不到 MAC 地址,它就會向 34.40.21.20 傳送請求。
- 34.40.21.20 會將其 MAC 地址 (A5:22:98:5C:24:93) 發回路由器。
- 路由器更新其 ARP 快取,並將 34.40.21.20 的 MAC 地址發回主機,完成請求。
- 主機向 34.40.21.20 傳送資訊。
雖然這只是一個基本的例子,但它應該能讓你對 ARP 的核心功能有一些瞭解。
ARP 的另一個核心功能是維護(和清除)ARP 快取中的 IP-MAC 轉換。保持 ARP 快取相對清晰不僅是獲取最新資訊的必要條件,還有助於消除不準確或未使用的地址。正如我們稍後將看到的,清除轉換對於防止 IP 地址落入壞人之手也是必要的。
ARP 快取中的條目也可以是動態或靜態的。動態條目是指按照我們已經描述過的方式自動填充的條目。不過,使用者也可以手動指定要永久保留的靜態條目。這對於具有已設定(即靜態)IP 地址的持久網路裝置非常有用。
ARP vs DHCP vs DNS:有什麼區別?
如果你對網路有一定的瞭解,你可能聽說過動態主機配置協議(DHCP)和/或域名系統(DNS)。如果是這樣,您可能還想知道網路中的 ARP 與這些類似協議有何不同。
這些都是不同的流程。雖然它們可能有一些相似之處,但在計算機網路中都發揮著不同的作用。讓我們仔細看看。
- DHCP 與 ARP:ARP 存在的主要原因是 IP 地址總是在網路中不斷變化和重新分配。DHCP 是為主機配置動態 IP 地址的協議,因此被稱為動態主機配置協議。DHCP 還有助於避免衝突,如多臺計算機被分配相同的 IP 地址。
- DNS 與 ARP:ARP 將 IP 地址和 MAC 地址關聯起來,而 DNS 則將 IP 地址和域名(如 “wbolt.com”)關聯起來。所有網站都依靠虛擬主機來託管其網頁、影象和其他任何內容。與其他網路裝置一樣,虛擬主機伺服器也有一個 IP 地址。不過,有了 DNS,訪問網站就不需要輸入主機的 IP 地址了。相反,你只需鍵入一個 URL,如 “www.example.com”,DNS 伺服器就會獲取匹配的 IP 地址,這樣你的網路瀏覽器就可以從虛擬主機請求並提供網頁。
DNS 將域名與 IP 地址相連(來源:GeeksforGeeks)
ARP 的用途和型別
雖然 ARP 看起來像是一個龐大而單一的過程,但它可以通過多種不同的方式來實現。
ARP 的四種主要型別(來源:IPXO)
在解釋什麼是 ARP 時,有四種特殊型別:代理 ARP、無償 ARP、反向 ARP (RARP) 和逆向 ARP (IARP)。每種型別都有不同的使用情況,在某些情況下還具有明顯的優缺點。
什麼是代理 ARP?
代理 ARP 是指由 ARP 配置的交換機(如路由器)處理來自其直接網路以外的裝置/主機的 ARP 請求(即請求 MAC 地址)。交換機會傳送自己的 MAC 地址作為迴應,從而有效地充當其網路中每臺主機的 “代表”。
路由器作為跨網路請求的代理 ARP(來源:Practical Networking)
為了說明問題,讓我們仔細看看上圖。在這裡,中間的綠色路由器為兩個獨立的區域網提供服務: 10.0.0.0/24 和 10.0.4.0/24。
假設主機 B 想要向主機 D 傳送一條資訊。如果主機 D 位於同一個區域網(如主機 A)上,那就沒有問題,但不幸的是,它位於不同的網路上。因此,主機 B 發現自己陷入了一個棘手的境地:如何才能獲得主機 D 的 MAC 地址呢?
幸好有路由器的幫助。當主機 B 向路由器傳送 ARP 請求資訊時,路由器會介入並提供自己的 MAC 地址作為迴應。有了路由器的 MAC 地址,主機 B 就可以向路由器傳送資訊了,而路由器現在就是主機 B 的 “代理”。
如你所想,代理 ARP 在計算機網路中極為常見,其典型用途包括 VPN 連線和防火牆。
不過,代理 ARP 也有一些缺點,其中大部分是由於配置不當造成的。其中一個缺點是增加了向錯誤的地方傳送資訊的風險,因為在僅使用代理 ARP 時,網路外的裝置可能不會意識到配置不當。代理 ARP 還可以作為拒絕服務 (DoS) 攻擊的載體,我們稍後將對此進行探討。
什麼是無償 ARP?
無償 ARP 是指之前未請求的 ARP 響應。換句話說,無償 ARP 是無償傳送 ARP 響應,實際上是向網路上的每臺主機/裝置廣播其 IP 到 MAC 的轉換。這幾乎就像有人傳送 “群發郵件”,讓所有人知道他們更新了聯絡資訊。
主機通過無償 ARP 通知網路更新 MAC 地址(來源:IPCisco.com)
無償 ARP 有幾種有用的應用。首先,它對更新 ARP 快取和對映至關重要,尤其是當有新裝置或節點加入網路時。對於新裝置,免費 ARP 可避免向本地網路中的其他裝置傳送和響應單獨的 ARP 請求。
確保冗餘是免費 ARP 的另一個重要用途。例如,一些冗餘網路可能使用兩個或多個具有相同 IP 地址的路由器。當其中一個路由器發生故障時,”倖存 “的路由器會傳送一個免費 ARP,通知網路向何處傳送資訊。
什麼是反向 ARP (RARP)?
反向 ARP (RARP) 正如其名稱所示。它傳送的是 IP 地址而不是 MAC 地址。
主機傳送 RARP 請求以瞭解其 IP 地址(來源:NetworkLessons)
但為什麼要這樣做呢?網路上的主機不是已經知道 IP 地址了嗎?
並非總是如此。有些主機甚至不知道自己的 IP 地址,這看起來不太可能。這通常是由於主機根本沒有記憶體或空間來儲存自己的 IP 資訊,因此必須請求 RARP 才能進行通訊。請記住,只有 MAC 地址是永久分配的,因此主機可能不知道 MAC 地址以外的任何資訊!
什麼是逆向 ARP(IARP 或 InARP)?
與 RARP 類似,反向 ARP(縮寫為 IARP 或 InARP)也傳送 IP 地址而不是 MAC 地址。但與 RARP 不同的是,反向 ARP 的工作原理與傳統 ARP 完全相同,只是它將 MAC 地址轉換為 IP 地址,而不是將 IP 地址轉換為 MAC 地址。
IARP 對於不斷變化的 IP 地址特別有用(再次感謝 DHCP)。在這種情況下,一臺主機可能知道另一臺主機或路由器的 MAC 地址,而這臺主機或路由器的 IP 地址已經改變。主機只需掌握 MAC 地址,就可以通過 IARP 獲取新的 IP 地址併傳送資訊。
什麼是 ARP 欺騙?
ARP 欺騙也稱為 ARP 中毒,是指黑客向目標網路傳送虛假的 ARP 資訊,試圖將自己的 MAC 地址與網路上的合法 IP 地址連線起來。
黑客如何通過 ARP 欺騙攔截網路流量(來源:OKTA)
如果成功,原本傳送給擁有合法 IP 地址的計算機的資訊就會被髮送給黑客。這樣,黑客就可以發起其他幾種型別的網路攻擊,包括:
中間人(MTM)
中間人(MTM)攻擊是指黑客 “竊聽” 網路流量,可能截獲密碼、銀行資訊等有價值的資料。在 ARP 欺騙攻擊中,黑客利用虛假的 ARP 資訊將網路流量重定向到他們的計算機上,通常將其傳遞給目標接收者,使其看起來像什麼也沒發生過。
會話劫持
會話劫持是指黑客竊取並假冒使用者的會話 ID,這是一種授權使用者在網站上執行某些操作的特殊資料型別。會話 ID 通常由網站以 Cookie 的形式分發,它允許使用者保持登入狀態或訪問儲存的購物車。
通過 ARP 欺騙重定向流量,黑客可以輕鬆訪問會話 ID 並假冒使用者。這意味著他們可以做使用者授權做的任何事情,如訪問登入的銀行賬戶。
拒絕服務(DoS)
拒絕服務(DoS)或分散式拒絕服務(DDoS)攻擊有兩種形式:黑客阻止向主機傳送資訊或黑客向主機傳送過多資訊。後者更為常見。
但無論哪種情況,ARP 欺騙都能讓黑客大規模阻止或傳輸資訊。通過攔截常規網路流量,黑客可以阻止資訊傳送給預定收件人,或將其重定向到單個目標。
小結
在此,我們深入解答了 “什麼是 ARP?” – 的深入解答。ARP 是計算機網路中最常見、最有用的協議之一。有了 ARP,計算機和網路裝置才能將物理 MAC 地址與不斷變化的 IP 地址關聯起來,從而實現我們今天所享受的便捷通訊。
評論留言