本文地址:https://www.cnblogs.com/lsgxeva/p/9220949.html
一、什么是SNMP
SNMP:“簡單網絡管理協議”,用於網絡管理的協議。SNMP用於網絡設備的管理。SNMP的工作方式:管理員需要向設備獲取數據,所以SNMP提供了 “讀”操作;管理員需要向設備執行設置操作,所以SNMP提供了“寫”操作;設備需要在重要狀況改變的時候,向管理員通報事件的發生,所以SNMP提供了 “Trap”操作。
二、SNMP背景
SNMP 的基本思想:為不同種類的設備、不同廠家生產的設備、不同型號的設備,定義為一個統一的接口和協議,使得管理員可以是使用統一的外觀面對這些需要管理的網 絡設備進行管理。通過網絡,管理員可以管理位於不同物理空間的設備,從而大大提高網絡管理的效率,簡化網絡管理員的工作。
三、SNMP結構概述
SNMP 被設計為工作在TCP/IP協議族上。SNMP基於TCP/IP協議工作,對網絡中支持SNMP協議的設備進行管理。所有支持SNMP協議的設備都提供 SNMP這個統一界面,使得管理員可以使用統一的操作進行管理,而不必理會設備是什么類型、是哪個廠家生產的。如下圖,
四、SNMP支持的網管操作
對於網絡管理,我們面對的數據是設備的配置、參數、狀態等信息,面對的操作是讀取和設置;同時,因為網絡設備眾多,為了能及時得到設備的重要狀態,還要求設備能主動地匯報重要狀態,這就是報警功能。如下圖,
- Get:讀取網絡設備的狀態信息。
- Set:遠程配置設備參數。
- Trap:管理站及時獲取設備的重要信息。
五、SNMP的實現結構
在具體實現上,SNMP為管理員提供了一個網管平台(NMS),又稱為管理站,負責網管命令的發出、數據存儲、及數據分析。被監管的設備上運行一個SNMP代理(Agent)),代理實現設備與管理站的SNMP通信。如下圖,
管理站與代理端通過MIB進行接口 統一,MIB定義了設備中的被管理對象。管理站和代理都實現了相應的MIB對象,使得雙方可以識別對方的數據,實現通信。管理站向代理申請MIB中定義的 數據,代理識別后,將管理設備提供的相關狀態或參數等數據轉換為MIB定義的格式,應答給管理站,完成一次管理操作。
已 有的設備,只要新加一個SNMP模塊就可以實現網絡支持。舊的帶擴展槽的設備,只要插入SNMP模塊插卡即可支持網絡管理。網絡上的許多設備,路由器、交 換機等,都可以通過添加一個SNMP網管模塊而增加網管功能。服務器可以通過運行一個網管進程實現。其他服務級的產品也可以通過網管模塊實現網絡管理,如 Oracle、WebLogic都有SNMP進程,運行后就可以通過管理站對這些系統級服務進行管理。
根據管理者和被管理的設備在網絡管理操作中的不同職責,SNMP定義了3種角色。如下圖,
網絡管理系統:又稱管理站、NMS。是系統的控制台,向管理員提供界面以獲取與改變設備的配置、信息、狀態、操作等信息。管理站與Agent進行通信,執行相應的Set和Get操作,並接收代理發過來的警報(Trap)。
代 理:Agent是網絡管理的代理人,負責管理站和設備SNMP操作的傳遞。介於管理站和設備之間,與管理站通信並相應管理站的請求,從設備獲取相應的數 據,或對設備進行相應的設置,來響應管理站的請求。代理也需要具有根據設備的相應狀態使用MIB中定義的Trap向管理站發送報告的能力。
代 理服務器:Proxy是一種特殊的代理,在不能直接使用SNMP協議的地方,如:異種網絡、不同版本的SNMP代理等情況,Proxy代替相關設備向管理 站提供一種外觀,為設備代理SNMP協議的實現。Proxy做了異種網絡或不同版本代理和相應SNMP數據請求的轉換工作。如下圖,
附:管理信息庫MIB:定義了設備上可以使用的管理信息。代理和管理站使用MIB作為統一的數據接口通信。
六、SNMP的技術內容
如下圖,
七、SNMP的發展歷史
- 1989年—— SNMPv1
- 1991年—— RMON(Remote Network Monitoring 遠程網絡監視),它擴充了SNMP的功能,包括對LAN的管理及對依附於這些網絡的設備的管理。RMON 沒有修改和增加SNMPv1,只是增加了SNMP監視子網的能力。
- 1993年—— SNMPv2(SNMPv1的升級版)
- 1995年—— SNMPv2正式版,其中規定了如何在基於OSI的網絡中使用SNMP
- 1995年—— RMON擴展為RMON2
- 1998年—— SNMPv3,一系列文檔定義了SNMP的安全性,並定義了將來改進的總體結構,SNMPv3可以和SNMPv2、SNMPv1一起使用。
八、SNMP的技術術語
- SNMP:Simple Network Management Protocol(簡單網絡管理協議),是一個標准的用於管理基於IP網絡上設備的協議。
- MIB:Management Information Base(管理信息庫),定義代理進程中所有可被查詢和修改的參數。
- SMI:Structure of Management Information(管理信息結構),SMI定義了SNMP中使用到的ASN.1類型、語法,並定義了SNMP中使用到的類型、宏、符號等。SMI用 於后續協議的描述和MIB的定義。每個版本的SNMP都可能定義自己的SMI。
- ASN.1:Abstract Syntax Notation One(抽象語法定義)。用於定義語法的正式語言,在SNMP中定義SNMP的協議數據單元PDU和管理對象MIB的格式。SNMP只使用了ASN.1中 的一部分,而且使用ASN.1的語言特性定義了一些自定義類型和類型宏 ,這些組成了SMI。
- PDU: Protocol Data Unit(協議數據單元),它是網絡中傳送的數據包。每一種SNMP操作,物理上都對應一個PDU。
- NMS: Network Management System,網絡管理系統,又名網絡管理站,簡稱“管理站”。它是SNMP的總控機,提供統一的用戶界面訪問支持SNMP的設備,一般提供UI界面,並 有統計、分析等功能,是網管系統的總控制台。NMS是網絡管理操作的發起者。
- Agent: 是SNMP的訪問代理,簡稱“代理”,為設備提供SNMP能力,負責設備與NMS的通信。
- Proxy: 代理服務器,對實現不同協議的設備進行協議轉換,使非IP協議的設備也能被管理。
- Trap: 是由設備主動發出的報警數據,用於提示重要的狀態的改變。
- BER: Basic Encoding Rule,基本編碼規格。描述如何將ASN.1類型的值編碼為字符串的方法。它是ASN.1標准的一部分。BER編碼將數據分成TLV三部分,T為Tag 的縮寫,是類型標識;L為Length的縮寫,標識類型的長度;V為Value的縮寫,標識數據內容。按照TLV的順序對數據進行編碼,生成字節流。 SNMP使用BER將SNMP的操作請求和應答編碼后進行傳輸,並用於接收端進行解碼。
九、綜合上述(總結)
1.SNMP現有幾個版本
SNMP共有v1,v2,v3這三個版本:
- v1和v2都具有基本的讀、寫MIB功能。
- v2增加了警報、批量數據獲取、管理站和管理站通信能力。
- v3在v2的基礎上增加了USM,使用加密的數據和用戶驗證技術,提高了安全性。
- 另外,RMON是SNMP的一個重要擴展,為SNMP增加了子網流量、統計、分析能力。現有兩個版本: Rmon:提供了OSI七層網絡結構中網絡層和數據鏈路層監視能力。Rmon2:提供了OSI七層網絡結構中網絡層之上各層的監視能力。
2.ASN.1、BER、SMI、MIB、PDU的關系
- ASN.1:高級的數據描述語言。描述數據的類型、結構、組織、及編碼方法。包括符號和語法兩部分。SNMP使用ASN.1描述PDU和管理學對象信息庫MIB。
- BER:ASN.1 的基本編碼規則。描述具體的ASN.1對象如何編碼為比特流在網絡上傳輸。SNMP使用BER作為編碼方案,數據首先先經過BER編碼,再經由傳輸層協議 (一邊是UDP)發往接收方。接收方在SNMP端口上收到PDU后,經過BER解碼后,得到具體的SNMP操作數據。
- SMI:是SNMP的描述方法。規定了使用ASN.1子類型、符號。ASN.1功能強大,但SNMP只用到了其中很小一部分,對於這一部分內容的描述,限定了范圍,即為SMI。SMI規定了使用到的ASN.1類型、宏、符號等。SMI是ASN.1的一個子集和超集。
- MIB: 是SNMP中使用到的管理信息庫。定義了數據格式、類型、順序、意義等,使用SMI中定義的類型和ASN.1中的基本類型對對象進行描述,是一個使用 SMI描述的管理信息庫。每一類關心的事件都有一組MIB,比如網絡接口有一顆MIB樹,TCP有一顆MIB樹,UDP也有一顆MIB樹。
- PDU:是SNMP的協議數據單元。PDU是基本的通信格式,使用ASN.1描述,使用BER編碼,通過傳輸層協議傳送。
3.比較規范的SNMP背景
SNMP作為一種過渡技術以其簡單易用的特性被廣泛使用,使用的網絡產品提供對SNMP的支持。SNMP還擴展了具有遠程管理功能的RMON,使得管理人員可以對整個子網進行管理,而不是對整個子網內的設備進行管理。