1. 程式人生 > >第五章 網路地址到實體地址的對映(ARP)

第五章 網路地址到實體地址的對映(ARP)

網路的互連首先要解決的問題就是網路地址到實體地址的對映,乙太網介面分配的是一個48位的實體地址,而IP地址卻只有32位,因此無法將它編碼到IP地址中。有人建議可以構建一箇中央資料庫儲存所有網路中的網路地址與實體地址對應組,需要時直接去訪問這個中央資料庫即可。可這個中央資料庫的維護又是個更大的難題,更讓人難以接受的是它的安全性。聰明的TCP/IP協議設計人員找到了一種創造性的方法。這個辦法不需要維護什麼中央資料庫,是個動態繫結地址的底層協議,即地址轉換協議ARP(Address Resolution Protocol);

一句話概括ARP的特點:ARP允許主機在只知道同一物理網路上一個目的站IP地址的情況下,找到目的主機的實體地址;

工作過程

ARP工作原理解析

主機A的IP地址為192.168.1.1,MAC地址為0A-11-22-33-44-01;

主機B的IP地址為192.168.1.2,MAC地址為0A-11-22-33-44-02;

當主機A要與主機B通訊時,地址解析協議可以將主機B的IP地址(192.168.1.2)解析成主機B的MAC地址,以下為工作流程:

第1步:根據主機A上的路由表內容,IP確定用於訪問主機B的轉發IP地址是192.168.1.2。然後A主機在自己的本地ARP快取中檢查主機B的匹配MAC地址。

第2步:如果主機A在ARP快取中沒有找到對映,它將詢問192.168.1.2的硬體地址,從而將ARP請求幀廣播到本地網路上的所有主機。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網路上的每臺主機都接收到ARP請求並且檢查是否與自己的IP地址匹配。如果主機發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。

第3步:主機B確定ARP請求中的IP地址與自己的IP地址匹配,則將主機A的IP地址和MAC地址對映新增到本地ARP快取中。

第4步:主機B將包含其MAC地址的ARP回覆訊息直接傳送回主機A。

第5步:主機A收到主機B發來的ARP回覆訊息時,用主機B的IP和MAC地址對映更新ARP快取。本機快取是有生存期,生存期結束後,再次重複上面的過程。主機B的MAC地址一旦確定,主機A就能向主機B傳送IP通訊了。

工作要點:

1.快取記憶體:為了降低通訊的費用,使用ARP的計算機維護著一個快取記憶體,存放最近獲得的IP到實體地址的繫結。

2.軟狀態:資訊會在沒有任何警告的情況下變得失效,假設有兩臺計算機A和B,都連線到同一個乙太網上,A已經發出了一個ARP請求,B做出了應答。再假設應答後B出現故障,計算機A不會接到任何關於該故障的通告,A將繼續把分組傳送給B。為了適應軟狀態,更正錯誤的責任歸於資訊的擁有著。一般情況下,實現軟狀態的協議使用了計時器,當計時器超時後則刪除狀態資訊。

ARP命令:

我的Linux主機下arp命令的顯示結果:

arp命令的主要引數:

ARP欺騙

地址解析協議是建立在網路中各個主機互相信任的基礎上的,它的誕生使得網路能夠更加高效的執行,但其本身也存在缺陷:

ARP地址轉換表是依賴於計算機中高速緩衝儲存器動態更新的,而高速緩衝儲存器的更新是受到更新週期的限制的,只儲存最近使用的地址的對映關係表項,這使得攻擊者有了可乘之機,可以在高速緩衝儲存器更新表項之前修改地址轉換表,實現攻擊。ARP請求為廣播形式傳送的,網路上的主機可以自主傳送ARP應答訊息,並且當其他主機收到應答報文時不會檢測該報文的真實性就將其記錄在本地的MAC地址轉換表,這樣攻擊者就可以向目標主機發送偽ARP應答報文,從而篡改本地的MAC地址表。ARP欺騙可以導致目標計算機與閘道器通訊失敗,更會導致通訊重定向,所有的資料都會通過攻擊者的機器,因此存在極大的安全隱患。

NDP

地址解析協議是IPV4中必不可少的協議,但在IPV6中將不再存在地址解析協議。在IPv6中,地址解析協議的功能將由NDP(鄰居發現協議,Neighbor Discovery Protocol)實現,它使用一系列IPv6控制資訊報文(  ICMPv6)來實現相鄰節點(同一鏈路上的節點)的互動管理,並在一個子網中保持網路層地址和資料鏈路層地址之間的對映。鄰居發現協議中定義了5種類型的資訊:路由器宣告、路由器請求、路由重定向、鄰居請求和鄰居宣告。與ARP相比,NDP可以實現路由器發現、字首發現、引數發現、地址自動配置、地址解析(代替ARP和RARP)、下一跳確定、鄰居不可達檢測、重複地址檢測、重定向等更多功能。

NDP與ARP的區別

  • IPv4中地址解析協議是獨立的協議,負責IP地址到MAC地址的轉換,對不同的資料鏈路層協議要定義不同的地址解析協議。IPv6中NDP包含了ARP的功能,且運行於因特網控制資訊協議ICMPv6上,更具有一般性,包括更多的內容,而且適用於各種資料鏈路層協議;

  • 地址解析協議以及ICMPv4路由器發現和ICMPv4重定向報文基於廣播,而NDP的鄰居發現報文基於高效的組播和單播。