⑴ ARP地址如何解析
1.首先給大家說說什麼是ARP ARP(Address Resolution Protocol)是地址解析協議,是一種將IP地址轉化成物理地址的協議。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網路層(IP層,也就是相當於OSI的第三層)地址解析為數據連接層(MAC層,也就是相當於OSI的第二層)的MAC地址。 原理:某機器A要向主機B發送報文,會查詢本地的ARP緩存表,找到B的IP地址對應的MAC地址後,就會進行數據傳輸。如果未找到,則廣播A一個ARP請求報文(攜帶主機A的IP地址Ia——物理地址Pa),請求IP地址為Ib的主機B回答物理地址Pb。網上所有主機包括B都收到ARP請求,但只有主機B識別自己的IP地址,於是向A主機發回一個ARP響應報文。其中就包含有B的MAC地址,A接收到B的應答後,就會更新本地的ARP緩存。接著使用這個MAC地址發送數據(由網卡附加MAC地址)。因此,本地高速緩存的這個ARP表是本地網路流通的基礎,而且這個緩存是動態的。
⑵ 如何查看arp緩存表
ARP緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入「arp
-a」就可以查看ARP緩存表中的內容了,如附圖所示。
arp
-a
用「arp
-d」命令可以刪除ARP表中所有的內容;
用「arp
-d
+空格+
<指定ip地址>」
可以刪除指定ip所在行的內容
用「arp
-s」可以手動在ARP表中指定IP地址與MAC地址的對應,類型為static(靜態),此項存在硬碟中,而不是緩存表,計算機重新啟動後仍然存在,且遵循靜態優於動態的原則,所以這個設置不對,可能導致無法上網
⑶ 關於交換機上怎麼查看ARP緩存表
1、點擊開始菜單按鈕。
注意事項:
交換機技術允許共享型和專用型的區域網段進行帶寬調整,以減輕區域網之間信息流通出現的瓶頸問題。已有乙太網、快速乙太網、FDDI和ATM技術的交換產品。
⑷ 網路傳輸中的三張表,MAC地址表、ARP緩存表以及路由表詳解
在闡述這幾張表之前,有必要先說明一下:
1、交換機工作在數據鏈路層
說明:本文出現的交換機指的都是二層交換機,帶路由功能的三層交換機不在討論范圍
2、路由器工作在網路層
3、交換機有MAC地址表,無ARP表,MAC地址表一般存在在交換機中
4、一般情況下,計算機和路由器既有ARP表,也有路由表
MAC地址表 :在交換機中,存有一張記錄區域網主機MAC地址與交換機介面的對應關系的表,交換機就是依據這張表將數據幀轉發到指定的目標主機上。 通過下面的闡述,你會對mac地址表有所了解。
上面是交換機、主機A以及主機B的連接圖,主機A向主機B發送數據幀的詳細過程如下:
1、主機A將一個數據幀發送給交換機,其中源MAC地址為MAC_A,目標MAC地址為MAC_B。
2、交換機收到此數據幀後,首先將數據幀中的源MAC地址MAC_A和對應的介面(介面1) 記錄到MAC地址表中。
3、然後,交換機會檢查自己的MAC地址表中是否有MAC_B的信息。如果有,則從MAC地址表記錄的介面2發送出去;如果沒有,則會將此數據幀從非接收介面(介面1)的所有介面發送出去。
4、這時,區域網中所有主機都會收到此數據幀,但是只有主機B收到此數據幀時會響應這個廣播,並回應一個數據幀,此數據幀中包含主機B的MAC地址MAC_B。
5、當交換機收到主機B回應的數據幀後,也會記錄數據幀中的源MAC地址(也就是MAC_B)和對應介面到MAC表中,此時,交換機就可以把主機A發過來的數據幀發送給主機B了。數據幀的源MAC地址為交換機的MAC地址,目標MAC地址是MAC_B。
上面我們講解了交換機的工作原理,知道交換機是通過MAC地址通信的,但是我們是如何獲得目標主機的MAC地址呢?這時我們就需要使用ARP協議了。ARP協議是工作在網路層的協議,它負責將IP地址解析為MAC地址。在每台主機中都有一張ARP表,它記錄著主機的IP地址和MAC地址的對應關系。還是利用上面的圖來進行闡述。
1、如果主機A想發送數據給主機B,主機A首先會檢查自己的ARP緩存表,查看是否有主機B的IP地址和MAC地址的對應關系。如果有,則會將主機B的MAC地址作為源MAC地址封裝到數據幀中。如果沒有,主機A則會發送一個ARP請求信息,請求的目標IP地址是IP_B,目標MAC地址是MAC地址的廣播幀(即FF-FF-FF-FF-FF-FF),源IP地址為IP_A,源MAC地址是MAC_A。
2、當交換機收到此數據幀之後,發現此數據幀是廣播幀,因此,會將此數據幀從非接收介面的所有介面發送出去。
3、當主機B收到此數據幀後,會校對目標IP地址是否是自己,當發現是目標地址是自己,會將主機A的IP地址和MAC地址的對應關系記錄到自己的ARP緩存表中,同時會發送一個ARP應答,其中包括自己的MAC地址。
4、主機A在收到這個回應的數據幀之後,在自己的ARP緩存表中記錄主機B的IP地址和MAC地址的對應關系。而此時交換機已經學習到了主機A和主機B的MAC地址了。
路由器負責不同網路之間的通信,它是當今網路中的重要設備,可以說沒有路由器就沒有當今的互聯網。在路由器中有一張路由表,記錄著到不同網段的信息。路由表中的信息分為直連路由和非直連路由。
直連路由 :是直接連接在路由器介面的網段,由路由器自動生成。
非直連路由 :不是直接連接在路由器介面上的網段,此記錄需要手動添加或者是使用動態路由生成。
路由表中記錄的條目有的需要手動添加(稱為靜態路由),有的需要動態獲取的(稱為動態路由)。直連路由屬於靜態路由。
路由器是工作在網路層的,在網路層可以識別邏輯地址。當路由器的某個介面收到一個包時,路由器會讀取包中相應的目標的邏輯地址的網路部分,然後在路由表中進行查找。如果在路由表中找到目標地址的路由條目,則把包轉發到路由器的相應介面,如果在路由表中沒有找到目標地址的路由條目,那麼,如果路由配置默認路由,就科舉默認路由的配置轉發到路由器的相應介面;如果沒有配置默認路由,則將該包丟棄,並返回不可到達的信息。這就是數據路由的過程。
如下圖:詳細介紹路由器的工作原理
1、HostA在網路層將來自上層的報文封裝成IP數據包,其中源IP地址為自己,目標IP地址是HostB,HostA會用本機配置的24位子網掩碼與目標地址進行「與」運算,得出目標地址與本機不是同一網段,因此發送HostB的數據包需要經過網關路由A的轉發。
2、HostA通過ARP請求獲取網關路由A的E0口的MAC地址,並在鏈路層將路由器E0介面的MAC地址封裝成目標MAC地址,源MAC地址是自己。
3、路由器A從E0可接收到數據幀,把數據鏈路層的封裝去掉,並檢查路由表中是否有目標IP地址網段(即192.168.2.2的網段)相匹配的的項,根據路由表中記錄到192.168.2.0網段的數據請發送給下一跳地址10.1.1.2,因此數據在路由器A的E1口重新封裝,此時,源MAC地址是路由器A的E1介面的MAC地址,封裝的目標MAC地址則是路由器2的E1介面的MAC地址。
4、路由B從E1口接收到數據幀,同樣會把數據鏈路層的封裝去掉,對目標IP地址進行檢測,並與路由表進行匹配,此時發現目標地址的網段正好是自己E0口的直連網段,路由器B通過ARP廣播,獲知HostB的MAC地址,此時數據包在路由器B的E0介面再次封裝,源MAC地址是路由器B的E0介面的MAC地址,目標MAC地址是HostB的MAC地址。封裝完成後直接從路由器的E0介面發送給HostB。
5、此時HostB才會收到來自HostA發送的數據。
總結:路由表負責記錄一個網路到另一個網路的路徑,因此路由器是根據路由表工作的。
至此,三張表介紹完畢。
⑸ 如何查看arp表
1、打開桌面,點擊「開始」,在開始中點擊「運行」,具體如圖所示。
⑹ 解釋ARP緩存表
在區域網的管理維護中,網管可能經常碰到用戶之間不能互訪,或者不能上網際網路的問題,一般是IP地址設置錯誤、相關軟體設置錯誤、網線網卡或其他網路產品壞了。但有時在排除以上可能後,問題仍然存在。這個時候我們可以研究一下用戶計算機上的ARP緩存表是否有問題.區域網中計算機之間的通信,都是通過正確的ARP表來進行數據通信,而且都是系統自動建立維持的。
1.自己的緩存表有錯誤
比如在圖1中,PC 1中的ARP緩存表有這樣一個記錄。
IP地址:192.168. 0.9
MAC地址:00-aa-00-62-c6-09
很顯然,這時PC 1是無法訪問PC 2上的數據,但是它可以和PC 3通信,也可以通過Router上網際網路。那麼這樣一個記錄是如何來的呢?這時我們應該想到區域網內有惡意程序或者有人在人為操縱。因為一般來講ARP表是系統自動維護的,但也可以人為製作一個ARP數據包更新緩存表。比如上例中:如果PC 3向PC 1發送一個ARP數據包,告訴它PC 2的MAC地址是00-aa-00-62-c6-09 ,那麼在PC 1里就有一個錯誤的記錄。如果PC 3不停地發送,那麼PC 1就一直保持這樣一個錯誤記錄,也就一直不能訪問PC 2上的數據。如果忽略這個錯誤就會出現,PC 1能訪問除PC 2以外的其他任何一台計算機,能上網,而就是無法訪問PC 2,但相應的設置又正確無誤,想不出來問題到底出在哪裡。
2.對方的緩存表有錯誤
如果PC 1中的ARP緩存表是正確的記錄。
IP地址:192.168. 0.9
MAC地址:00-aa-00-62-c6-08
而PC 3向PC 2不停地發送一個ARP數據包,告訴它錯誤的PC 1的MAC地址,在PC 2的ARP緩存表就一直保持這樣一個記錄。
IP地址:192.168. 0.2
MAC地址:00-aa-00-62-c6-09
PC 2就無法訪問PC 1。
應對措施
目前,對於這種通過ARP數據包欺騙、破壞緩存表沒有很好的應對措施。通過實踐我認為有以下幾種方法可以應對一下。
1.手動更新ARP緩存表
比如上例中,在PC 1中執行「Arp -a 192.168. 0.9 00-aa-00-62-c6-08」的命令。
但如果有程序在不停地發送錯誤的ARP數據包,這種方法就無法應付了。
2.查出元兇
在PC 1上,執行ping 192.168.0.9 -t的命令,然後讓別人在中心機房把網線一根根拔掉,一旦發現能夠ping通後,就能通過那條網線,順藤摸瓜揪出搞破壞的元兇了。這是最笨也是最實用的方法
⑺ 清除ARP緩存的方法
1、按下鍵盤上的Windows+R組合鍵,在出現的運行窗口中輸入cmd,然後點擊確定。
⑻ 什麼是arp緩存表
arp_tbl是一個類型為struct
neigh_table的全局變數,它是一個ARP的緩存表,也稱為鄰居表。協議棧通過ARP協議獲取到的網路上鄰居主機的IP地址與MAC地址的對應關系都會保存在這個表中,以備下次與鄰居通訊時使用,同時,ARP模塊自身也會提供一套相應的機制來更新和維護這個鄰居表
⑼ ARP 協議
網路設備有數據要發送給另一台網路設備時,必須要知道對方的網路層地址(即IP地址)。IP地址由網路層來提供,但是僅有IP地址是不夠的,IP數據報文必須封裝成幀才能通過數據鏈路進行發送。數據幀必須要包含目的MAC地址,因此發送端還必須獲取到目的MAC地址。通過目的IP地址二獲取的MAC地址的過程是由ARP(Address Resolution Protocol)協議來實現的。
數據鏈路層在進行數據封裝的時候,需要目的MAC地址。
一台網路設備要發送數據給另外一台網路設時,必須要知道對方的IP地址。但是,僅有IP地址是不夠的,因為IP數據報文必須封裝成幀才能通過數據鏈路層進行發送,而數據幀必須要包含目的MAC地址,因此發送端還必須獲取到目的MAC地址。每一個網路設備在數據封裝前都需要獲取下一跳的MAC地址。IP地址由網路層來提供,MAC地址通過ARP協議來獲取。ARP協議是TCP/IP協議簇中的重要組成部分,ARP能夠通過目的IP地址發現目標設備的MAC地址,從而實現數據鏈路層的可達性。
ARP數據包格式:
關於ARP協議屬於2層還是3層的討論:
https://networkengineering.stackexchange.com/questions/5064/on-which-layer-of-the-osi-model-does-the-arp-protocol-belong
這里有句話很好:OSI只是一個模型,沒有任何一個協議是完全屬於哪一層的。
我們看幀結構,ARP數據直接包含在Ethernet_II中,我個人認為它可以歸納於二層。
網路設備通過ARP報文來發現目的MAC地址。ARP報文中包含以下欄位:
1)Hardware Type:硬體地址類型,一般為乙太網;
2)Protocol Type:表示三層協議地址類型,一般為IP;
3)Hardware Length和Protocol Length為MAC地址和IP地址的長度,單位是位元組; (這個理論上可以不要,因為前面已經確定了硬體類型和協議類型)
4)Operation Code指定了ARP報文的類型,包括ARP request和ARP reply;
5)Source Hardware Address 指的是發送ARP報文的設備MAC地址;
6)Source Protocol Address指的是發送ARP報文的設備IP地址;
7)Destination Hardware Address指的是接收者MAC地址,在ARP request報文中,該欄位值為0;
8)Destination Protocol Address指的是接受者的IP地址。
通過ARP協議,網路設備可以建立目標IP地址和MAC地址之間的映射。網路設備通過網路層獲取到目的IP地址之後,還要判斷目的MAC地址是否已知。
網路設備一般都有一個ARP緩存(ARP Cache),ARP緩存用來存放IP地址和MAC地址的關聯信息。在發送數據前,設備會先查找ARP緩存表。如果緩存表中存在對方設備的MAC地址,則直接採用該MAC地址來封裝幀,然後將幀發送出去。如果緩存表中不存在相應的信息,則通過發送ARP request報文來獲得它。學習到的IP地址和MAC地址的映射關系會被放入ARP緩存表中存放一段時間。在有效期內,設備可以直接從這個表中查找目的MAC地址來進行數據封裝,而無需進行ARP查詢。過了這段有效期,ARP表現會被自動刪除。
如果目標設備位於其他網路則源設備會在ARP緩存表中查找網關的MAC地址,然後將數據發送給網關,網關再把數據轉發給目的設備。
在本例中,主機A的ARP緩存表中不存在主機C的MAC地址,所以主機A會發送ARP Request來獲取目的MAC。ARP request報文封裝在以太幀中。幀頭中的源MAC地址為發送端主機A的MAC地址。此時,由於主機A不知道主機C的MAC地址,所以目的MAC地址為廣播地址 FF-FF-FF-FF-FF-FF 。ARP request 報文中包含源IP地址,目的IP地址,源MAC地址,目的MAC地址,其中目的MAC地址的值為0。ARP request報文會在整個網路上傳播,該網路中所有主機包括網關都會接受到此ARP request 報文。網關會阻止該報文發送到其他網路上。
所有主機接收到該ARP request報文後,會檢查它的目的協議地址(一般是 00-00-00-00-00-00-00 與所有的匹配)欄位與自身的IP地址是否匹配。如果不匹配,則該主機將不會響應該ARP request報文。如果匹配,則該主機會將ARP報文中的源MAC地址和源IP地址信息記錄到自己的ARP緩存表中,然後通過ARP Reply報文進行響應。
主機C會向主機A回應ARP Reply報文。 ARP Reply 報文中的源協議地址是主機C自己的IP地址,目標協議地址是主機A的IP地址,同事Operation Code被設置為reply。ARP Reply報文通過單播傳送。
主機A收到ARP Reply以後,會檢查ARP報文中目的MAC地址是否與自己的MAC匹配。如果匹配,ARP報文中的源MAC地址和源IP地址會被記錄到主機A的ARP緩存表中。ARP表項的老化超時時間預設為1200秒(20min)。
位於不同網路的網路設備在不配置網關的情況下,能夠通過ARP代理實現相互通信。
在上述例子的組網中,主機A需要與主機B通信時,目的IP地址與本機的IP地址位於不同網路,但是由於主機A未配置網關,所以它會將以廣播形式發送ARP request報文,請求主機B的MAC地址。但是,廣播報文無法被路由器轉發,所以主機B無法收到主機A的ARP請求報文,當然也就無法應答。
在路由器上啟用代理ARP功能,就可以解決這個問題。啟用代理ARP後,路由器收到這樣的請求,會查找路由表,如果存在主機B的路由表項,路由器將會使用自己的G0/0/0介面的MAC地址來回應該ARP request。主機A收到ARP reply後,將以路由器的G0/0/0介面MAC地址作為目的MAC地址進行數據轉發。
免費ARP可以用來探測IP地址是否沖突。
主機被分配了IP地址或者IP地址發生變化後,必須立刻檢測其所分配的IP地址在網路上是否是唯一的,以避免地址沖突。主機通過發送ARP request報文來進行地址沖突檢測。
主機A將 ARP request 廣播報文中的目的IP地址欄位設置為自己的IP地址,該網路中所有主機包括網關都會接收到此報文。當目的IP地址已經被某一個主機或網關使用時,該主機或網關就會回應 ARP reply 報文。通過這種方式,主機A就能探測到IP地址沖突了。
總結:
1.網路設備在什麼情況下回發送ARP request?
源設備在發送數據給目的設備前,會首先查看自身的ARP緩存,查找ARP緩存是否在目的設備的IP地址和MAC地址的映射。如果存在則直接使用,如果不存在則會發送ARP request。
2.網路設備什麼時候會產生免費ARP?
當網路上的一個設備被分配了IP地址或者IP地址發生變化後,可以通過免費ARP來檢查IP地址是否沖突。