1 / 58

SNMP

SNMP. Dr. Hsiang-Fu Yu National Taipei University of Education Original by 台灣培生教育出版股份有限公司. Overview. 組成網路管理系統的元件 SNMP 封包的欄位 SNMP 協定的資料單元 (Protocol Data Unit, PDU) MIB tree 的結構 MIB-2 object 及 object identifier SNMP 指令示範 SNMP 的安全設定.

karli
Download Presentation

SNMP

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. SNMP Dr. Hsiang-Fu Yu National Taipei University of Education Original by 台灣培生教育出版股份有限公司

  2. Overview • 組成網路管理系統的元件 • SNMP 封包的欄位 • SNMP 協定的資料單元 (Protocol Data Unit, PDU) • MIB tree 的結構 • MIB-2 object 及 object identifier • SNMP 指令示範 • SNMP 的安全設定

  3. Management Station/Management Agent Communication • 網路管理環境中的基本元件 • Management application • Management process • SNMP • Management MIB • Communication architecture • Agent process • Agent MIB

  4. Management Station/Management Agent Communication (cont.)

  5. Management Application • 存取位於 management agent 中的資訊 • 呈現的資料常對映部份或全部 ISO 網路管理類別 • 這些類別包括 fault management、configuration management、performance management、security management及accounting management • 某些 NMS 應用程式提供與類別相關的分析,並且以圖形表示 • 本書使用的 NMS 是由 Apptitude 公司提供的 Meterware/Analyzer

  6. Management Process (管理程序) • 由一個或多個管理程序所組成,這些管理程序是應用層的程式 • 例如某個管理程序從 MIB 資料結構存取管理應用程式所請求的 MIB 變數,然後傳送給 SNMP 模組

  7. Management Station SNMP • SNMP 封包包含 • Version number • Community string • SNMP command • Variables

  8. Management Agent SNMP • Management station 傳送訊框給 agent 的 MAC 層 • 附加的封包傳送給 TCP/IP 協定處理 • SNMP 的封包傳送給應用層的 SNMP 模組 • SNMP 程序解壓縮 MIB 變數後,再傳送給適當的 agent process

  9. Agent Process • 映射變數到某個子系統,子系統設定該變數值 • 傳回變數值給 SNMP • SNMP 建立 SNMP 標頭,並傳送標頭、變數、及變數值給 TCP/IP 傳輸層 • MAC 層建立訊框,並傳送訊框給management station,然後傳送變數值給 management application

  10. Management Station/Management Agent Communication (cont.) • 執行網路管理的重要元件 • Management station 的 MIB 以及其中儲存的 MIB 變數 • 請求、顯示、及分析 MIB 值的 management application • 建立請求及回覆訊息的 SNMP。 • Management agent 的 agent process。將請求的變數傳給子系統,子系統設定變數值,然後再送給 SNMP 模組 • 目前的 SNMP 有三種版本,SNMPv1 是網路上的普及版本

  11. SNMP 封包 • Version • Management station 及 management agent 所使用的 SNMP 版本 • 本書以 SNMP 代表 SNMPv1,在版本欄位中,以“0”編碼表示 SNMP 第一版

  12. SNMP 封包 (cont.) • Community Name • 是 SNMP 的密碼 • Management station 及 management agent 必須使用相同的 community name,否則訊框會被棄置 • Management agent 可以使用 community name 來管制 management station 存取 MIB 變數值,兩者也必須使用相同的 SNMP 版本,否則訊框會被棄置 • SNMP 的群體名稱沒有加密,所以沒有防止網路入侵的安全措施。SNMPv3 則對此多所改良

  13. SNMP 封包 (cont.) • Protocol Data Unit (PDU) for the SNMP Get-Request, Get-Next-Request and Set-Request • Request ID • 整數,是 management station 送到 agent 的請求識別碼 • Management agent 送出的回覆也使用此欄位,讓 management station 的 SNMP 可以將請求及回覆建立關聯

  14. PDU (cont.) • Error Status • 在“Get-Request”訊息,這個欄位的值是0 • 在“Get-Response”訊息,management agent 使用這個欄位通知 management station,以此得知是否收到正確 PDU • 若發生 錯誤,本欄位將回覆“非0”的值。本欄位有六個可能的值 • noError = 0 • tooBig = 1 = “PDU has too many bytes” • noSuchName = 2 = “there is no object with this name” • badValue = 3 = “integer identifying the PDU type is bad” • readOnly = 4 = “incorrect implementation of SNMP” • genErr = 5 = “unspecified errors of other types”

  15. PDU (cont.) • Error Index • 整數,由1開始 • 在“Get-Response”訊息,當 VarBindList 引起 Error Status 欄位出現錯誤碼時,Error Index 指示 VarBindList 中的第一個錯誤變數 • 對 Management station 請求的 PDU 而言,“Error Status”及“Error Index”的值均為0 • VarBindList • 一連串 Variable ID 與 Variable Value 的組合

  16. VarBindList • Variable ID • Contain the Object Identifier of the variable defined in SMI • The Object Identifier defines the path to the object in the MIB tree • Variable Value 可能是整數、8進位字串或 IP 位址。 • Management station 可以在一個請求封包中請求很多變數值,所以 VarBindList 可以包含若干欄位的組合,每個請求值對應到一欄位

  17. SNMP 指令 • SNMP 定義5種指令,括號中的數字對應其相關的 PDU 種類 • Get-Request(0) • 請求 management agent 的 MIB,提供一個值或一組值 • Get-Next-Request(1) • 請求提供 MIB 樹中,比現有的 Object Identifier 的詞彙順序更大的下一個 Object Identifier 的值 • Management station 不斷使用這個指令,可以“走”過全部的 MIB tree,得到所有變數的值,而不必指定任何變數的Identifier • Get-Response(2) • Management agent 將請求值回覆給 management station

  18. SNMP 指令 (cont.) • Set-Request(3) • 設定(或更改)management agent 中 MIB 的值 • Trap(4) • Management agent 主動傳送訊息給management station。警告訊息由 agent 的alarm/event 組合來啟動。目的是通知management station 可能發生需要網路管理員採取行動的事件

  19. SNMP Trap PDU • Enterprise • 包含由授權廠商為發出警告訊息的設備子系統所定義 Object Identifier • Agent Address • 網路設備的 IP 位址

  20. SNMP Trap PDU (cont.) • Generic Trap Number • 以整數代表 SNMP RFC 1157 所定義7種警告 • Specific Trap Number • 代碼;management station 也許需為設備建立專用MIB,以了解此碼含意 • Time Stamp • 設備 agent 自啟動後經過的時間,精確度達0.01秒 • VarBindList • 包含圖6.4中的全部或部份資訊以及其他可以用來解決問題的資訊,例如:Object Identifier 以及識別特定錯誤的相關值

  21. Structure of Management Information (SMI) • 為了讓 management agent 找到請求值,必須提供 agent process 可以使用的資料結構 • Agent process 可以使用該資料結構,映射Object Identifier 到設備子系統的儲存值 • MIB 有階層式的樹狀結構,MIB 的每個物件都有一個 Object Identifier,即圖6.4中的Variable ID • Object Identifier 定義物件在樹狀結構中的位置。每個物件都有個名稱。也可以定義相關物件的群組

  22. SMI (cont.)

  23. SMI (cont.) • 每個物件都有型別(如整數),而型別可以是 simple 或 constructed • Simple 型別的物件只包含一個值 • Constructed 型別的物件包含其他 simple 物件,而 constructed 型別中的 simple 物件可以有不同的型別

  24. SMI (cont.) • SMI 使用部分的 Abstract Syntax Notation One (ASN.1) 來正式定義 MIB 物件 • RFC 1155 • ANS.1 描述物件的型別,並定義物件的格式,包括物件名稱、型別,例如: • 是否可被 management station 存取; • 若可存取,其型別就可能是唯讀、可讀-寫、或不可存取

  25. SMI (cont.) • SMI object tree 的部分物件是由樹根開始 • 樹中的每個節點包含物件的名稱及識別碼 • 識別碼由一組數字組成,其中以點號(.)分開 • 識別碼定義由樹根到物件的路徑,數字0表示根節點 • 圖6.6特別標示方塊所指示的路徑可以組成物件名稱為 sysDescr(1)的識別碼:1.3.6.1.2.1.1.1

  26. SMI (cont.)

  27. SMI (cont.) • MIB 中擁有很多物件,均可依照上述方法來識別,因此該物件樹便可無限深入 • MIB 物件是相關的,例如包含網路設備介面資訊的物件可放在同一個群組 • 現在 MIB 的標準為 MIB-2 • MIB-2 原本包括10個群組,後來又新增了13個群組,稱為 extensions • system、interfaces、address translation(at)、internet protocol(ip)、internet control management protocol(icmp)、transmission control protocol(tcp)、unreliable datagram protocol(udp)、exterior gateway protocol(egp)、transmission、simple network management protocol(snmp)

  28. SMI (cont.) • MIB-2 的物件無法滿足所有使用者及廠商的需求,所以很多廠商為其設備建立專用的MIB • 這些 MIB 列在 private(4) 節點的子節點Enterprise 節點之下,如圖6.6所示 • 在使用者取得廠商提供的 MIB 後,會編譯該物件並載入 management station 中,以存取設備中的更多物件 • MIB 的一個重要 extension 是遠端監視(RMON)。RMON 的物件包含網路區段的流量資訊

  29. SMI (cont.) • 為瞭解如何識別及取得 MIB 值,以及資料擷取的過程,先來認識較普遍的例子 ─ 從 table 取得物件值 • 為了讓討論實際且有趣,將使用表6.1的 IP Routing Table 為例子。展開圖6.6中的 MIB-2(1)物件,用以顯示 ipRouteTable 物件,結果如圖6.7

  30. ipRoute Dest (1) ipRoute ifindex (2) ipRoute Metric 1 (3) ipRoute Metric 2 (4) ipRoute Metric 3 (5) ipRoute Metric 4 (6) ipRoute NextHop (7) ipRoute Type (8) ipRoute Protocol (9) ipRoute Age (10) ipRoute Mask (11) ipRoute Metric 5 (12) ipRoute Info (13) 10.3.4.3 1 10.3.4.4 2 10.3.4.5 3 SMI (cont.) • Table 6-1: ipRouteTable = 1.3.6.1.2.1.4.21

  31. SMI (cont.)

  32. SNMP 指令實例 • ip 是原 mib-2 的10個物件之一 • group (9) 是保留給 OSI 的 MIB 物件 • ip 物件包含23個物件,ipRouteTable 為其一 • ipRouteTable 包括 ipRouteEntry(1)物件,這個物件又包含了13個 column object • ipRouteTable 物件的 instance (實體)是表格中所有的值;column object 的實體是某一行的一個值

  33. Get-Request 指令實例 • 假設 management station 要存取 column object ipRouteNextHop 的實體,需要提供以下 Object Identifier 給 SNMP • ipRouteTable 的識別碼是1.3.6.1.2.1.4.21 • ipRouteEntry 的識別碼是1.3.6.1.2.1.4.21.1 • ipRouteNextHop 的識別碼是1.3.6.1.2.1.4.21.1.7

  34. Get-Request 指令實例 (cont.) • SNMP 使用 index object (指標物件)來選擇列 • 指標物件可以是一個或多個 column objects • ipRouteTable 使用一個指標物件,即 ipRouteDestination • 需要 ipRouteNextHop 實體時,因為 ipRouteDestination 指標物件的值是10.3.4.5,所以管理站提供下列的實體識別碼給 SNMP:1.3.6.1.2.1.4.21.1.7.10.3.4.5

  35. Get-Request 指令實例 (cont.) • 某一列的某一個 column object 的實體識別碼是這 column object 的識別碼後加上這一列的指標物件實體所組成 • 在本例中,此 column object 的識別碼是1.3.6.1.2.1.4.21.7,這一列的指標物件實體是10.3.4.5

  36. Get-Request 指令實例 (cont.) • 使用 SNMP 應用程式的指令行介面時,在命令列符號之後輸入下面的指令 • Get-Request(1.3.6.1.2.1.4.21.1.7.10.3.4.5)或 • Get-Request(ipRouteNextHop.10.3.4.5) • 這指令將產生1.3.6.1.2.1.4.21.1.7.10.3.4.5,這個識別碼可放在圖6.4的 Variable ID 欄中

  37. Get-Request 指令實例 (cont.) • 若需要這一列的更多實體,例如: ipRouteifIndex 及 ipRouteNextHop,可以輸入下列指令 • Get-Request(1.3.6.1.2.1.4.21.1.2.10.3.4.5,1.3.6.1.2.1.4.21.1.7.10.3.4.5)或 • Get-Request(ipRouteifIndex.10.3.4.5,ipRouteNextHop.10.3.4.5) • The instance of a simple object is indicated by appending “.0” • Ex. sysDescr.0

  38. Get-Next-Request 指令實例 • Get-Next-Request 會照詞彙順序 (lexicographical) 取得下一物件 • “getnext sysDescr.0”指令會得到1.3.6.1.2.1.1.2.0,這是 sysObjectID.0 的物件識別碼 • 這個值也等於1.3.6.1.4.1.311.1.1.3.1.3 • 在 SMI 樹中,這是 enterprises 分支(1.3.6.1.4.1)上節點的值。Enterprises 的表示數字是311,即 IBM • 從回覆值得知:IBM IntelliStation 伺服器中網路管理子系統的 IAB 授權值是 311

  39. Get-Next-Request 指令實例 (cont.) • 使用“Get-Request”指令時,若請求的物件沒有值,得到的回覆會是“空白”或錯誤訊息 • 使用“Get-Request”存取很多數值時,若某個請求物件沒有值,就不會有回覆值 • “Get-Next-Request”指令可以克服這個問題 • Ex, Get-Next-Request (sysDescr, sysObjectID, sysUpTime) • Get-Response((sysDescr.0 =值), (sysObjectID.0 =值),(sysUpTime.0 =值)).

  40. Get-Next-Request 指令實例 (cont.) • 假設這個設備所請求的 sysDescr 是錯的或是請求的管理站不能存取這個物件,給予下列相同指令時 • Get-Next-Request (sysDescr, sysObjectID, sysUpTime) • Agent 送出的“Get-Response”將是 • Get-Response ((sysObjectID.0 =值), (sysObjectID.0 =值), (sysUpTime.0 =值)). • 依照下列的詞彙順序,“Get-Response”送回第一個(sysObjetID.0 =值),因為這是無效 sysDescr之後的下一個有值物件 • SysDescr 〔1.3.6.1.2.1.1.1〕 • SysDescr.0 〔1.3.6.1.2.1.1.1.0〕 • sysObjectID 〔1.3.6.1.2.1.1.2〕 • sysObjectID.0 〔1.3.6.1.2.1.1.2.0〕

  41. Get-Next-Request 指令實例 (cont.) • 使用下列指令時 • Get-Next-Request(sysDescr.1, sysObjectID, sysUpTime) • 因為 sysDescr.1 不是有效的實體識別碼,“Get-Next-Request”指令依照詞彙順序,得到下一個物件,也就是 sysObjetID.0。另外兩個請求的物件是對的,所以如預期取得正確值 • “Get-Next-Request”指令的特性是可以依照詞彙順序,由任何點取得 MIB 中的所有值。

  42. Get-Next-Request 指令實例 (cont.) • 因為 SNMP 無法回覆表中所有的值或任一列的所有值時,SNMP 依照詞彙順序,回覆下一個可以取得的物件實體 • Ex. Get-Next-Request (ipRouteDestination.10.3.4.5) • Get-Response (ipRouteifIndex.10.3.4.5 = 1)

  43. Set 指令 • Set 指令寫入物件的值。例如,若要改變設備的 sysContact,可以使用下面的指令 • Set-Request (sysContact = 名稱) • Get-Response (sysContact =名稱) • 這兩個指令的 VarBindList 都是“sysContact|名稱” • 也可使用 SNMP 的“Set-Request”來增加或刪除表格中的一列。但結果和 management agent 的實作有關。

  44. Security • Authentication 為 SNMP 安全的第一道防線 • community name 認證 management station 及 agent 之間的訊息 • Receiver 的資料庫中必須有 sender 使用的 community name ,否則訊息會被丟棄 • community name 定義 SNMP 群體表示一個 agent 與一組 management stations 間的關係 • 數個 management stations 可以存取一個 agent 的訊息。同理,一個 agent 可傳送警告訊息給數個 management stations

  45. Security (cont.) • Authorization 提供第二道安全保護防線,決定 management station 對 MIB 物件的使用權限 • SNMP access mode 決定一組權限,agent 可以選擇唯讀或讀-寫模式存取 MIB 物件 • 另一組權限是由 MIB view 所決定。MIB view 是一組 MIB 物件,可以限制 management station 使用 SNMP access mode 來存取物件 • SNMP community profile 定義為 SNMP access mode 及 MIB view 的組合 • SNMP access policy 定義為 SNMP Community 及 SNMP Community Profile 的組合

  46. Security (cont.)

  47. Security (cont.) • Agent 必須維護 a table of SNMP Access Policy, 這個表格映射 community name 到 SNMP Access Policy • 當 agent 收到訊息後,以訊息中的 community name 檢視這個表格。若存在則 management station 依照對應的存取政策來存取 MIB 物件 • MIB Access 與 SNMP Access Mode 不同,MIB Access 被定義在 RFC 1155 (SMI),作為 MIB Object 被存取權限的選項 • MIB Access 和 SNMP Access Mode 的效果如下表

  48. SNMP Access Mode MIB Access Resolution Read-Only Read-Only Object available for Get and Trap operations Read-Write Object available for Get and Trap operations Write-Only Object available for Get and Trap operations but the value is implementation dependent Not-accessible Object is unavailable Read-Write Read-Only Object available for Get and Trap operations Read-Write Object available for Get, Set and Trap operations Write-Only Object available for Get, Set and Trap operations but the value is implementation dependent for Get and Trap operations Not-Accessible Object is unavailable Security (cont.) • Table 6-3: Resolution of SNMP Access Mode and MIB Access

  49. SNMP NMS 應用程式 • 大多數 NMS 都包含瀏覽 MIB 的應用程式。這個程式提供 MIB 圖形化外觀,可以清楚顯示回覆的物件值 • 反白顯示物件後,再點選“Get”按鈕,就可以建立“Get-Request”或“Get-Next-Request”指令 • 傳送指令到 SNMP 後, SNMP 將建立正確的 PDU,再把 PDU 傳送給反白顯示設備的 agent • “Set”按鈕(右上的藍/紅按鈕)可以更改反白顯示的 MIB 物件值。結果將傳送到視窗的底部面板

  50. SNMP 的訊息捕捉 • 封包有三種型別:IP、UDP 及 SNMP • SNMP 使用 UDP 做為傳輸層協定,以減少管理訊框的經常成本 • 表6.4列出“Get-Next-Request”訊息的解碼以供比較,這些資料也顯示在圖6.13的 SNMP 部份

More Related