登錄

地址解析協(xié)議

百科 > 計算機 > 地址解析協(xié)議

1.什么是地址解析協(xié)議

  地址解析協(xié)議(ARP)為IP地址到對應的硬件地址之間提供動態(tài)映射。ARP用于將計算機的網(wǎng)絡地址(IP地址32位)轉化為物理地址(MAC地址48位)[RFC826].ARP協(xié)議是屬于鏈路層的協(xié)議,在以太網(wǎng)中的數(shù)據(jù)幀從一個主機到達網(wǎng)內的另一臺主機是根據(jù)48位的以太網(wǎng)地址(硬件地址)來確定接口的,而不是根據(jù)32位的IP地址。內核(如驅動)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。當然,點對點的連接是不需要ARP協(xié)議的。

2.ARP的原理[1]

  1.ARP的高速緩存技術

  ARP高效運行的關鍵是每臺使用ARP的主機中都有一個ARP高速緩存。ARP在緩存中存放了最近被解釋的IP地址到MAC地址之間的映射記錄,以減少廣播量。由于多數(shù)網(wǎng)絡通信都要連續(xù)發(fā)送多個報文,所以高速緩存大大提高了ARP的效率。ARP緩存總是為本地子網(wǎng)保留硬件廣播地址(0xffffffffffffh)作為一個永久項。此項使主機能夠接受ARP廣播,當查看緩存時,該項不會顯示。另外,在ARP請求報文中還放人信源機的IP地址和MAC地址的映射,以防止信宿機接著為信源機的MAC地址再來一次ARP請求,形成死鎖。信源機在廣播自己的地址映射時,網(wǎng)絡上所有主機都可以將它存人自己的緩存。在新機入網(wǎng)時,主動廣播自己的地址映射,以減少其他主機對該新主機的ARP請求廣播。ARP協(xié)議使用一個數(shù)據(jù)結構atp—table的表。表中每個條目描述一個IP和物理地址的對應。這些條目在IP地址需要轉換的時候創(chuàng)建,隨著時間推移變得陳舊的時候被刪除。

  ARP表包含一個指針(arp—tables向量表)的表,把arp—table的條目鏈接在一起。這些條目被緩存,以加速對它們的訪問。每一個條目用它的IP地址的最后兩個字節(jié)做表的索引進行查找,然后跟蹤這個條目鏈,直到找到正確的條目。Linux也緩存從atp—table條目預先建立的硬件頭,用hhcache數(shù)據(jù)結構的形式進行緩存。網(wǎng)絡拓撲結構不斷變化,IP地址可能被重新分配到不同的硬件地址。例如,一些撥號服務為它建立的每一個連接分配一個IP地址。為了讓ARP表中包括最新的條目,每當需要分配一個新的條目而ARP表到達了它的最大尺寸的時候,就查找最舊的條目并刪除它們,從而更新緩存表。每個動態(tài)ARP高速緩存項的生存時間從被創(chuàng)建時開始算起為10min。2min內未用則刪除。緩存容量滿時,刪除最老的記錄。

  ARP高速緩存保存有動態(tài)項和靜態(tài)項。動態(tài)項是自動添加和刪除的,而靜態(tài)ARP項是永久的,可用TCP/IP工具ARP手工加載。靜態(tài)ARP高速緩存項用于防止向路由器和服務器IP地址發(fā)出ARP請求。通過添加靜態(tài)ARP項可減少ARP請求訪問主機的次數(shù)。當網(wǎng)絡接口配置改變時,應手工更新靜態(tài)ARP項。對于一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。當系統(tǒng)收到一份目的端為本機的ARP請求報文后,它就把硬件地址填進去,然后用兩個目的端地址分別替換兩個發(fā)送端地址,并把操作字段置為2,最后把它發(fā)送回去。在ARP背后有一個基本概念,那就是網(wǎng)絡接口有一個硬件地址(一個48bir的值,以標識不同的以太網(wǎng)或令牌環(huán)網(wǎng)絡接口),在硬件層次上進行的數(shù)據(jù)幀交換必須使用正確的硬件地址。因此,僅僅知道主機的IP地址并不能讓內核發(fā)送一幀數(shù)據(jù)給主機。內核(如以太網(wǎng)驅動程序)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。

  ARP的功能是在32bitlP地址和采用不同網(wǎng)絡技術的硬件地址之間提供動態(tài)映射。點對點鏈路不使用ARP。當設置這些鏈路時(一般在引導過程進行),必須告知內核鏈路每一端的IP地址,并不涉及像以太網(wǎng)地址這樣的硬件地址。

  2.ARP高速緩存超時設置

  在ARP高速緩存中的表項一般都要設置超時值。從伯克利系統(tǒng)演變而來的系統(tǒng)一般對完整的表項設置超時值為20min,而對不完整的表項(例如在以太網(wǎng)上對一個不存在的主機發(fā)出ARP請求)設置超時值為3min。當這些表項再次使用時,這些實現(xiàn)一般都把超時值重新設為20min.

  3.ARP命令

  ARP高速緩存在ARP的運行過程中非常關鍵。高速緩存中的每一項內容都有一個定時器,根據(jù)它來刪除不完整和過時的表項。ARP命令加上參數(shù)—a可顯示ARP高速緩存中的所有內容。超級用戶可以用參數(shù)-d來刪除ARP高速緩存中的某一項內容(可以在運行一些例子之前使用該命令格式,以看清楚ARP的交換過程)。另外,可以通過參數(shù)—s來增加高速緩存中的內容。這個參數(shù)需要主機名和以太網(wǎng)地址:對應于主機名的IP地址和以太網(wǎng)地址被增加到高速緩存中。新增加的內容是永久性的(比如,它沒有超時值),除非在命令行的末尾附上關鍵字temp。位于命令行末尾的關鍵字pub和,s參數(shù)一起,可以使系統(tǒng)起著主機ARP代理的作用。系統(tǒng)將回答與主機名對應的IP地址的ARP請求,并以指定的以太網(wǎng)地址作為回答。如果廣播的地址是系統(tǒng)本身,那么系統(tǒng)就為指定的主機名起著委托ARP代理的作用。

3.ARP的使用[2]

  為了查看受害機器的ARP表,我們所使用的命令非常類似于在Windows實時響應中所使用的命令:

  victim#./arp—an

  從受害系統(tǒng)上返回的ARP表如下:

  ?(192.168.1.1,at00:BD:81:43:07:03[ether]on ethO

  結果顯示了IP地址為192.168.1.1的網(wǎng)絡接口具有MAC地址00:BD:81:43:07:03。其他信息將有助于在不能控制IP地址時,在網(wǎng)絡上追蹤IP地址為192.168.1.1的機器??梢詸z查每一臺機器,直至發(fā)現(xiàn)MAC地址為06:BD:8l:43:07:03的機器。

  警告:在許多操作系統(tǒng)中,具有足夠特權的用戶可以修改他自己的MAC地址(和IP地址)。在Windows或Unix機器中,這一行為是可能的。

4.ARP的功能

  從邏輯Internet地址到對應的物理硬件地址需要進行翻譯。

5.查看ARP緩存表的方法

  ARP 緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp -a”就可以查看ARP 緩存表中的內容了。用“arp -d”命令可以刪除ARP 表中某一行的內容;用“arp -s”可以手動在ARP 表中指定IP 地址與MAC 地址的對應。

評論  |   0條評論