cellspacing="0" cellpadding="0" width="100%" border="0">
簡單網(wǎng)絡(luò)管理協(xié)議(SNMP:Simple Network Management Protocol)是由互聯(lián)網(wǎng)工程任務(wù)組(IETF:Internet Engineering Task Force )定義的一套網(wǎng)絡(luò)管理協(xié)議。該協(xié)議基于簡單網(wǎng)關(guān)監(jiān)視協(xié)議(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一個管理工作站可以遠程管理所有支持這種協(xié)議的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài)、修改網(wǎng)絡(luò)設(shè)備配置、接收網(wǎng)絡(luò)事件警告等。 在IP網(wǎng)絡(luò)管理中,主要是針對網(wǎng)絡(luò)設(shè)備(路由器、交換機、防火墻)進行性能故障監(jiān)測管理。為了了解SNMP協(xié)議,首先要了解OID和MIB的定義,這樣才能更好的理解SNMP協(xié)議。 |
|
%20%20%20%20%20%20%20%20
%20%20%20%20
OID
|
|
一個OID是代表一個具體含義的變量,它的格式為用"."分割的數(shù)字,例如1.3.6.1.2.1.1.1就是一個OID,代表設(shè)備系統(tǒng)描述。向設(shè)備發(fā)送對1.3.6.1.2.1.1.0這個變量的SNMP請求,就可以得到這個設(shè)備的描述信息。
|
管理信息庫MIB
|
|
IETF規(guī)定的管理信息庫MIB中定義了可訪問的網(wǎng)絡(luò)設(shè)備及其屬性,由對象識別符(OID:Object%20Identifier)唯一指定。MIB是一個樹形結(jié)構(gòu),SNMP協(xié)議消息通過遍歷MIB樹形目錄中的節(jié)點來訪問網(wǎng)絡(luò)中的設(shè)備。下圖是MIB庫的一個簡單例子:
MIB庫實際上就OID的樹形集合,定義了每個OID代表的具體含義,OID分為2種變量:簡單變量和表變量。簡單變量類似上面講過的1.3.6.1.2.1.1.1,這個變量就是個簡單變量,在具體發(fā)送SNMP請求的時候后面就補上一個".0"。
表變量的意思是該變量會有多個實例。例如交換機接口帶寬,這個變量的OID是1.3.6.1.2.1.2.2.1.5,一個交換機通常會有多個接口,每個具體請求就會補上這個接口的索引,例如1.3.6.1.2.1.2.2.1.5.1代表1號接口的帶寬。下圖是一個交換機的接口列表。
MIB分為公有MIB和私有MIB,公有MIB-2是1990年定義的,所有設(shè)備廠商都支持該MIB庫定義的OID變量,每個廠商還可以補充自己的MIB庫,這就是私有MIB,例如CISCO的私有MIB是1.3.6.4.1.9開始,該節(jié)點下的所有子變量都是CISCO自己定義的。9是CISCO申請唯一廠商編號。
|
|
SNMP原理
|
|
SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對網(wǎng)絡(luò)的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責(zé)回答SNMP管理工作站(主代理)關(guān)于MIB定義信息的各種查詢。SNMP發(fā)送的請求是UDP請求,UDP請求是無連接、輕量級、非安全的請求,所以一般會重試3次保證代理端收到。
|
SNMP 消息類型
|
|
Get%20這是一個請求消息。SNMP%20管理系統(tǒng)使用%20Get%20消息在%20SNMP%20代理上請求有關(guān)%20MIB%20條目的信息。 Getnext請求消息的一個類型,可用于瀏覽代理對象的整個MIB樹。 Getbulk%20請求的一個類型,它指定代理在消息大小限制的范圍內(nèi)盡可能多地傳輸數(shù)據(jù)。 Set%20它用于將更新的%20MIB%20值發(fā)送和分配到代理。 Notify%20(或%20Trap)這是一個未經(jīng)請求的消息,當代理檢測到在受管理主機本地出現(xiàn)特定的事件類型時,代理將向%20SNMP%20管理系統(tǒng)發(fā)送此消息。 SNMP%20事件(或陷阱)是在未經(jīng)請求的情況下發(fā)送到篩選事件的管理站的,因此,會影響網(wǎng)絡(luò)流量。
|
SNMP版本
|
|
目前SNMP經(jīng)過10幾年的發(fā)展,已經(jīng)有三個版本,V1、V2、V3。三個版本的區(qū)別主要在安全機制上。 1.SNMPv1的安全機制 SNMPv1僅僅提供了有限的安全性,即團體的概念。 團體是一個在代理上定義的局部概念。一個代理可以定義若干個團體,每個團體使用唯一的團體名。而每個SNMP團體是一個在SNMP代理和多個SNMP管理者之間定義的認證、訪問控制和轉(zhuǎn)換代理的關(guān)系。%20 在每條SNMPv1信息中都包括community字段,在該域中填入團體名,團體名起密碼的作用。%20SNMPv1假設(shè),如果發(fā)送者知道這個密碼,就認為該信息通過了認證,是可靠的。%20 一條已通過認證的信息對MIB有何訪問權(quán)限主要通過訪問控制來實現(xiàn)。代理為每一個團體定義了一個SNMPv1團體框架文件,該框架文件包括兩部分: ·MIB視域:%20MIB的一個對象子集,每個團體可以定義不同的MIB視域,一個視域中的對象集不必屬于MIB的單個子樹;%20 ·SNMP訪問模式:集合(只讀、讀寫)的一個元素,每個團體只定義一個訪問模式。%20 SNMP團體和SNMP團體框架文件的結(jié)合就成為SNMPv1%20訪問策略。一個通過了認證的信息必然指定了一個團體,那么它就有自己相應(yīng)的團體框架文件,且只能對該框架文件中MIB視域的指定對象進行規(guī)定的操作(只讀或讀寫)。 2.%20SNMPv2的安全機制 SNMPv2具有支持分布式網(wǎng)絡(luò)管理,擴展數(shù)據(jù)類型,可以實現(xiàn)大量數(shù)據(jù)的同時傳輸,豐富故障處理能力,增加集合處理功能,加強數(shù)據(jù)定義語言等特點。 此外,%20SNMPv2還引入了"上下文(context)"的概念。上下文是一個可被SNMPv2實體訪問的被管理對象資源的集合,分為本地上下文和遠程上下文:本地上下文被標識為一個MIB視域,遠程上下文被標識為一個轉(zhuǎn)換代理關(guān)系。%20 使用了上下文的訪問控制策略由以下4個元素組成:%20 ·目標:SNMP參加者,它按主體方的請求執(zhí)行管理操作;%20 ·主體:SNMP參加者,它請求目標方執(zhí)行管理操作;%20 ·資源:管理操作在其上執(zhí)行的管理信息,它可表示為一個本地MIB視域或一個代理關(guān)系,這一項被稱為一個上下文; ·權(quán)限:對于一個特定的上下文可允許的操作,這些操作用可允許的協(xié)議數(shù)據(jù)單元定義,由目標代表主體執(zhí)行。%20 但是,SNMPv2并沒有完全實現(xiàn)預(yù)期的目標,尤其是安全性能沒有得到提高,如:身份驗證(如用戶初始接入時的身份驗證、信息完整性的分析、重復(fù)操作的預(yù)防)、加密、授權(quán)和訪問控制、適當?shù)倪h程安全配置和管理能力等都沒有實現(xiàn)。1996年發(fā)布的SNMPv2c是%20SNMPv2的修改版本,雖然功能增強了,但是安全性能仍沒有得到改善,而是繼續(xù)使用SNMPv1的基于明文密鑰的身份驗證方式。 3.SNMPv3的安全機制 IETF%20SNMPv3工作組于1998年1月提出了互聯(lián)網(wǎng)建議RFC%202271~2275,正式形成SNMPv3。這一系列文件定義了包含SNMPv1,SNMPv2所有功能在內(nèi)的體系框架及包含驗證服務(wù)和加密服務(wù)在內(nèi)的全新的安全機制,同時還規(guī)定了一套專門的網(wǎng)絡(luò)安全和訪問控制規(guī)則。可以說,SNMPv3是在SNMPv2基礎(chǔ)之上增加了安全和管理機制。RFC%202271定義的SNMPv3體系結(jié)構(gòu)體現(xiàn)了模塊化的設(shè)計思想,可以簡單地實現(xiàn)功能的增加和修改。其特點主要有:%20 ·適應(yīng)性強:適用于多種操作環(huán)境,既可以管理最簡單的網(wǎng)絡(luò),實現(xiàn)基本的管理功能,又能夠提供強大的網(wǎng)絡(luò)管理功能,滿足復(fù)雜網(wǎng)絡(luò)的管理需求; ·擴充性好:可以根據(jù)需要增加模塊; ·安全性好:具有多種安全處理模塊。%20 SNMPv3主要有3個模塊:信息處理和控制模塊、本地處理模塊和用戶安全模塊。 1 信息處理和控制模塊 信息處理和控制模塊在RFC%202272中定義,負責(zé)信息的產(chǎn)生和分析,并判斷信息在傳輸過程中是否要經(jīng)過代理服務(wù)器等。 2 本地處理模塊%20 本地處理模塊的主要功能是進行訪問控制,處理打包的數(shù)據(jù)和中斷。訪問控制是指通過設(shè)置代理的有關(guān)信息?使不同管理站的管理進程在訪問代理時具有不同的權(quán)限,在協(xié)議數(shù)據(jù)單元一級完成。常用的控制策略有兩種:限定管理站可以向代理發(fā)出的命令或確定管理站可以訪問代理MIB的具體部分。訪問控制的策略必須預(yù)先設(shè)定。SNMPv3通過使用帶有不同參數(shù)的原語來靈活確定訪問控制方式。%20 3 用戶安全模塊%20 與SNMPv1和SNMPv2相比,SNMPv3增加了3個新的安全機制:身份驗證,加密和訪問控制。其中,訪問控制功能由本地處理模塊完成,而身份驗證和數(shù)據(jù)保密服務(wù)則由用戶安全模塊提供。身份驗證是指代理(管理站)接到信息時必須首先確認信息是否來自授權(quán)的管理站(代理),以及信息在傳輸過程中是否改變。這個功能的實現(xiàn)要求管理站和代理必須共享同一密鑰。管理站使用密鑰計算驗證碼(它是信息的函數(shù)),然后將其加入信息中,而代理則使用同一密鑰從接收的信息中提取出驗證碼,從而得到信息。加密的過程與身份驗證類似,也需要管理站和代理共享同一密鑰來實現(xiàn)信息的加密和解密。%20 SNMPv3使用私鑰(private%20key)和驗證密鑰(authentication%20key)來實現(xiàn)身份驗證和加密功能。