1 / 62

第 10 章

第 10 章. ARP 與 ICMP. 本章提要. ARP 簡介 ARP 封包格式 ARP 工具程式 ICMP 簡介 各類型的 ICMP 封包 ICMP 工具程式 擷取 ICMP 封包. ARP 簡介. 鏈結層與網路層位址的特性: 鏈結層在傳遞封包時 , 必須利用鏈結層位址 ( 例如:乙太網路 MAC 位址 ) 來識別目的裝置。 網路層在傳遞封包時 , 必須利用網路層位址 ( 例如: IP 位址 ) 來識別目的裝置。 當網路層封包要封裝為鏈結層封包之前 , 必須先取得目的裝置的 MAC 位址。.

Download Presentation

第 10 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 10 章 ARP 與 ICMP

  2. 本章提要 • ARP 簡介 • ARP 封包格式 • ARP 工具程式 • ICMP 簡介 • 各類型的 ICMP 封包 • ICMP 工具程式 • 擷取 ICMP 封包

  3. ARP 簡介 • 鏈結層與網路層位址的特性: • 鏈結層在傳遞封包時, 必須利用鏈結層位址 (例如:乙太網路 MAC 位址) 來識別目的裝置。 • 網路層在傳遞封包時, 必須利用網路層位址 (例如:IP 位址) 來識別目的裝置。 • 當網路層封包要封裝為鏈結層封包之前, 必須先取得目的裝置的 MAC 位址。

  4. ARP 簡介 • 以 IP 為例, 便是將取得 MAC 位址的工作交由 ARP (Address Resolution Protocol, 位址解析協定) 來執行。 • 若以 OSI 模型來說明 ARP 的功能, 便是利用網路層位址, 來取得對應的鏈結層位址。換言之, 如果網路層使用 IP, 鏈結層使用乙太網路, 當我們知道某項裝置的 IP 位址時, 便可利用 ARP 來取得對應的乙太網路 MAC 位址。

  5. ARP 運作方式 • 以 IP 而言, 網路上每部裝置的 IP 與 MAC 位址的對應關係, 並未集中記錄在某個資料庫, 因此, 當 ARP 欲取得某裝置的 MAC 位址時, 必須直接向該裝置詢問。 • ARP 運作的方式相當簡單, 整個過程是由ARP 要求 (ARP Request)與 ARP 答覆(ARP Reply)兩種封包所組成。

  6. ARP 運作的方式 • 為了方便說明, 我們假設有 A、B 兩部電腦。A 電腦已經知道 B 電腦的 IP 位址, 現在要傳送 IP 封包給 B 電腦, 因此必須先利用 ARP 取得 B 電腦的 MAC 位址。

  7. ARP 要求 • A 電腦廣播 ARP 要求封包給區域網路上所有的電腦。

  8. ARP 要求 • ARP 要求封包在鏈結層是屬於廣播封包(亦即乙太網路廣播封包), 因此區域網路上的每一部電腦都會處理到此一封包。 • A 電腦所送出的 ARP 要求封包除了記錄所要解析的 IP 位址 (亦即 B 電腦的 IP 位址) 外, 也會包含 A 電腦本身的 IP 位址與 MAC 位址。

  9. ARP 答覆 • 區域網路內的所有電腦都會收到 ARP 要求的訊息, 並與本身的 IP 位址比對, 判斷自己是否為要求解析的對象。 • 以上例而言, B 電腦為 ARP 要求的解析對象, 因此只有 B 電腦會送出回應的 ARP 答覆封包。

  10. ARP 答覆 • 由於 B 電腦可從 ARP 要求封包中得知A 電腦的 IP 位址與 MAC 位址, 因此 ARP 答覆封包不必再使用廣播的方式, 而是直接在乙太網路封包中, 指定 A 電腦的 MAC 位址為目的位址。 • ARP 答覆封包中最重要的內容當然就是B 電腦的 MAC 位址。A 電腦收到此 ARP 答覆封包後, 即完成 MAC 位址解析的工作。

  11. ARP 的解析範圍 • 由於 ARP 在解析過程中, ARP 要求封包為乙太網路廣播封包, 而路由器會阻擋乙太網路廣播封包, 使該封包無法跨越到其它網路。 • 因此 ARP 僅能解析同一網路內的 MAC 位址, 無法解析其他網路的 MAC 位址。

  12. ARP 與 IP 路由 • 由於 ARP 只能解析同一網路內的 MAC 位址, 因此, 在整個 IP 路由過程中, 會出現多次的 ARP 位址解析。 • 例如:A 電腦要傳送 IP 封包給 B 電腦時, 若途中必須經過兩部路由器, 則總共須進行 3 次 ARP 名稱解析的動作。

  13. 多次 ARP 解析

  14. ARP 快取 • 由於 ARP 要求為鏈結層的廣播封包, 如果經常出現, 勢必造成區域網路的沉重負擔。為了避免此項問題, 在實作 ARP 時, 通常會加入 ARP 快取的設計。 • 快取的英文為 Cache, 意思是將常用 (或是預期將用到) 的資料暫存在讀寫效率較佳的儲存區域, 以加速存取的過程。ARP 快取可將網路裝置的 IP/MAC 位址記錄在本機電腦上 (通常是儲存在記憶體中)。

  15. ARP 快取 • 系統每次要解析 MAC 位址前, 便先在ARP 快取中查看是否有符合的紀錄。若ARP 快取中有符合的紀錄, 便直接使用;若 ARP 快取中找不到符合的紀錄, 才需要發出 ARP 要求的廣播封包。如此, 不僅加快位址解析的過程, 也可避免過多的ARP 要求廣播封包。 • ARP 快取所包含的紀錄, 依產生的方式, 可分為動態與靜態等兩種紀錄。

  16. 動態紀錄 • 當 ARP 完成每筆 IP/MAC 位址的解析後, 便會將結果儲存在 ARP 快取中, 供後續使用, 以避免重覆向同一對象要求位址解析。這些由 ARP 自動產生的紀錄即為動態紀錄。 • 以先前A、B 電腦為例, 當 A 電腦經由ARP 要求和 ARP 答覆取得 B 電腦的MAC 位址後, 便將 B 電腦的 IP 位址與MAC 位址儲存在 A 電腦的 ARP 快取中。

  17. 動態紀錄 • ARP 快取的動態紀錄雖然可提高位址解析的效能, 但也可能產生問題。 • 以先前 A、B 電腦為例, 當 A 電腦的 ARP 快取中有B 電腦 MAC 位址的紀錄時, 若 B 電腦故障、關機或更換網路卡, A 電腦因為無從得知, 仍然會依據 ARP 快取中的紀錄將封包傳送出去。

  18. 動態紀錄 • 這些封包傳送出去後不會有任何裝置加以處理, 就好像是丟到黑洞一樣有去無回, 此種現象稱為網路黑洞。 • 為了避免此種情形發生, ARP 快取中的動態紀錄必須有一定的壽命時間, 超過時間的紀錄便會被刪除。

  19. 靜態紀錄 • 當使用者已知某裝置的 IP/MAC 位址的對應關係後, 可經由手動的方式將之加入ARP 快取中, 此即為靜態紀錄。 • 由於 ARP 快取儲存在電腦的記憶體中, 因此無論是動態或靜態紀錄, 只要重新開機, 全部都會消失。

  20. ICMP 簡介 • IP 在傳送封包時, 只是單純的將 IP 封包送出即完成任務。在傳送過程中若發生問題, 則是由上層的協定來負責確認、重送等工作。 • 但是, 在 IP 路由的過程中若發生問題, 例如:路由器找不到合適的路徑, 或無法將IP 封包傳送出去, 則勢必需要某種機制, 將此狀況通知 IP 封包的來源端。這時候便會用到 ICMP (Internet Control Message Protocol) 這個協定。

  21. ICMP 簡介 • ICMP 屬於在網路層運作的協定, 一般視為是 IP 的輔助協定, 常用來報告錯誤。換言之, 在 IP 路由的過程中, 若主機或路由器發現任何異常, 便可利用 ICMP 來傳送相關的資訊。不過, ICMP 只負責報告問題, 至於要如何解決問題則不是 ICMP 的管轄範圍。

  22. ICMP 簡介 • 除了路由器或主機可利用 ICMP 來報告問題外, 網管人員也可利用適當的工具程式發出 ICMP 封包, 以便測試網路連線或排解問題等等。

  23. 各類型的 ICMP 封包 • 回應要求與回應答覆 • 無法送達目的 • 降低來源端傳送速度 • 重新導向 • 傳送逾時

  24. 回應要求與回應答覆 • 回應要求與回應答覆(Echo Request / Echo Reply) 可說是最常見的 ICMP 封包類型, 可用來排解網路問題, 包括 IP 路由的設定、網路連線等等。

  25. 回應要求與回應答覆的運作方式 • 由於 ICMP 封包都是包裝成 IP 封包的形式來傳送, 因此, 若能完成上述步驟, A 便能確認以下事項: • B 裝置存在, 且運作正常。 • A、B 之間的網路連線狀況正常。 • A、B 之間的 IP 路由正常。

  26. 無法送達目的 • 無法送達目的(Destination Unreachable) 也是常見的 ICMP 封包類型。在路由過程中若出現下列問題, 路由器或目的裝置便會發出此類型的 ICMP 封包, 通知 IP 封包的來源端。 • 路由器無法將 IP 封包傳送出去。 • 例如:在路由表中找不到合適的路徑, 或是連線中斷而無法將封包從合適的路徑傳出。 • 目的裝置無法處理收到的 IP 封包。 • 例如:目的裝置無法處理 IP 封包內所裝載的傳輸層協定。

  27. 無法送達目的-ICMP 表頭 • Code 欄位值可從 0 至 12, 以下僅舉例說明 3 個較常見的值: • 0, Network Unreachable: • 路由器收到 IP 封包後, 在路由表中若找不到合適的路徑, 便會發出 Network unreachable 的訊息給 IP 封包的來源端裝置。

  28. 無法送達目的-ICMP 表頭 • 1, Host unreachable: • 路由器收到 IP 封包後, 若目的位址與路由器在同一個 IP 網路上, 但路由器無法將 IP 封包傳送給目的裝置 (目的裝置未回應路由器的 ARP Request), 便會發出 Host unreachable 的訊息給 IP 封包的來源端裝置。

  29. 無法送達目的-ICMP 表頭 • 2, Protocol unreachable: • 當 IP 封包送達目的裝置後, 若目的裝置無法處理 IP 封包表頭中 Protocol 欄位所指定的協定, 便會發出 Protocol unreachable 的訊息給 IP 封包的來源端裝置。

  30. 無法送達目的-ICMP 表頭 • Unused • 長度為 4 Bytes。本欄位未定義用途, 欄位內容必須為 0。 • IP 表頭與 Payload • 當路由器或目的裝置要發出無法送達目的的封包時, 會將問題封包的 IP 表頭 (長度不定) , 以及 IP Payload 的前 8 Bytes 寫入本欄位。 • IP 封包來源端收到無法送達目的封包後, 可根據本欄位的資訊, 得知是哪一個 IP 封包有問題, 並據此決定因應的措施。

  31. 降低來源端傳送速度 • 當路由器因為來往的 IP 封包太多, 以致於來不及處理時, 便會發出降低來源端傳送速度(Source Quench) 的 ICMP 封包給IP 封包的來源端裝置。 • 在正式文件中並未規定路由器發出降低來源端傳送速度的條件。在實作時, 廠商通常是以路由器的 CPU 或緩衝區的負荷作為衡量標準, 例如:路由器的緩衝區使用量到達 85% 時, 便發出降低來源端傳送速度封包。

  32. 降低來源端傳輸速度-ICMP表頭

  33. 重新導向 • 當路由器發現主機所選的路徑並非最佳路徑時, 會送出 ICMP 重新導向 (Redirect) 封包, 通知主機較佳的路徑。

  34. 重新導向 • 當 A 要傳送 IP 封包給 B 時, 假設最佳路徑是經由 R1 路由器傳送至 B。可是由於某種因素, A 將 IP 封包送至 R2 路由器, 而 R2 路由器從本身的路由表發現, A 至 B 的最佳路徑應經由 R1 路由器, 則 R2 會發出重新導向的 ICMP 封包給 A。 • 但是 R2 只負責告知 A 電腦可能的問題, 至於 A 電腦要如何應變, 則非 ICMP 的管轄範圍。

  35. 重新導向封包的表頭欄位 • Code 欄位值可從 0 至 3, 以下僅說明較常見的值: • 1, Host: • 路由器收到 IP 封包後, 若在路由表中找到更合適的路徑, 便會發出此訊息給 IP 封包的來源端裝置。

  36. 重新導向封包的表頭欄位 • 3, TOS and Host: • 路由器收到 IP 封包後, 若在路由表中找到更符合 IP封包要求的 TOS 路徑, 便會發出本訊息給 IP 封包的來源端裝置。 • Redirect 的 ICMP 資料包含了 Router IP Address和 IP 表頭與 Payload等 2 個欄位。

  37. 重新導向-Router IP Address • 長度為 4 Bytes, 用來通知主機較佳的路由器。以先前的例子而言, 當 R2 路由器傳送 Redirect 封包給 A 主機時, 本欄位便填入 R1 路由器的 IP 位址。

  38. 重新導向-IP 表頭與 Payload • 將 IP 封包的 IP 表頭, 以及 IP Payload 的前 8 Bytes 寫入本欄位, 提供來源端 IP 封包額外的資訊。

  39. 傳送逾時 • IP 表頭記錄了封包的存活時間, 其主要功能是為了防止 IP 封包在不當的路由架構中永無止境地傳送。 • 當路由器收到存活時間為 1 的 IP 封包時, 會將此 IP 封包丟棄, 然後送出傳送逾時 (Time Exceeded) 的 ICMP 封包給 IP 封包的來源裝置。

  40. 傳送逾時 • 此外, 當 IP 封包在傳送過程中發生切割時, 必須在目的裝置重組切割後的 IP 封包。重組的過程中若在指定的時間內未收到全部切割後的 IP 封包, 目的裝置也會發出傳送逾時的 ICMP 封包給 IP 封包的來源裝置。

  41. 傳送逾時-ICMP 表頭 • Code 欄位值可為 0 或 1, 請參考以下說明: • 0, TTL count exceeded: • 當路由器收到 TTL 值為 1 的 IP 封包時, 便會發出此訊息給 IP 封包的來源端裝置。

  42. 傳送逾時-ICMP 表頭 • 1, Fragment reassembly time exceeded: • IP 封包目的裝置重組 IP Fragment 時, 若在指定的時間內未收到全部的 IP Fragment, 便會發出本訊息給 IP 封包的來源端裝置。 • 傳送逾時的 ICMP 資料包含了Unused 與 IP 表頭與 Payload等 2 個欄位:

  43. 傳送逾時-ICMP 表頭 • Unused • 長度為 4 Bytes。本欄位未定義用途, 欄位內容必須為 0。 • IP 表頭與 Payload • 當路由器或目的裝置要發出傳送逾時的封包時, 會將問題封包的 IP 表頭, 以及 IP Payload 的前 8 Bytes 寫入本欄位, 提供 IP 封包來源端額外的資訊。

  44. ICMP 工具程式 • PING:PING 工具程式可用來發出 ICMP 回應要求封包。網管人員可利用 PING 工具程式, 發出回應要求給特定的主機或路由器, 以診斷網路的問題。 • TRACERT:TRACERT 工具程式可找出本機電腦至目的 IP 位址所經過的路由器。

  45. PING • 利用 PING 來診斷網路問題 • PING 的語法與參數 • PING 範例

  46. 利用 PING 來診斷網路問題 • 當您發現網路連線異常時, 可參考下列步驟, 利用 PING工具程式, 由近而遠逐步鎖定問題所在。 1. ping 127.0.0.1 • 127.0.0.1 是所謂的 Loopback 位址。目的位址為 127.0.0.1 的封包不會送到網路上, 而是送至本機的 Loopback 驅動程式。此一動作主要是用來測試本機的 TCP/IP 協定是否正常運作。

  47. 利用 PING 來診斷網路問題 • 2. ping 本機 IP 位址 • 若步驟 1 中本機 TCP/IP 設定正確, 接下來可試試看網路裝置是否正常。若網路裝置有問題 (例如:舊型網路卡的 IRQ 設定有誤), 則不會回應。 • 3. ping 對外連線的路由器 • 也就是 PING 預設閘道(在 Windows 98 稱為通訊閘) 的 IP 位址。若成功, 代表內部網路與對外連線的路由器正常。

  48. 利用 PING 來診斷網路問題 4. ping 網際網路上電腦的 IP 位址 • 您可以隨便找一台網際網路上的電腦, PING 它的 IP 位址。如果有回應, 代表 IP 設定全部正常。 5. ping 網際網路上電腦的網址 • 您可以隨便找一台網際網路上的電腦, PING 它的網址, 例如:www.hinet.net (Hinet 的WWW 伺服器)。如果有回應, 代表 DNS 設定無誤。

  49. PING 的語法與參數 • PING 的語法如下: • PING 的常用參數:

  50. PING 範例 • 若要讓 PING 執行 DNS 反向查詢:

More Related