SNMP協(xié)議基礎(chǔ)_第1頁(yè)
SNMP協(xié)議基礎(chǔ)_第2頁(yè)
SNMP協(xié)議基礎(chǔ)_第3頁(yè)
SNMP協(xié)議基礎(chǔ)_第4頁(yè)
SNMP協(xié)議基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SNMP協(xié)議基礎(chǔ)1 SNMP協(xié)議及網(wǎng)絡(luò)管理介紹21.1什么是SNMP?21.1.1 SNMP 版本31.1.2 管理端和agent31.1.3 SMI和MIBs42 SNMP V1和SNMP V242.1 SNMP 和 UDP52.2 SNMP community52.3 管理信息結(jié)構(gòu)52.3.1 OID命名62.3.2 OID的描述72.4 V2版本中的SMI擴(kuò)展132.5進(jìn)一步了解MIB-II152.6 SNMP 操作172.6.1 get172.6.2 getnext202.6.3 getbulk232.6.4 set操作252.6.5 get, getnext, getbulk, 以及set 錯(cuò)誤響應(yīng)262.6.6 SNMP trap272.6.8 SNMP inform292.6.9 SNMP report292.7 RMON293 SNMP V3303.1 SNMPv3的變化303.1.1 SNMPv3引擎313.1.2 SNMPv3 應(yīng)用程序313.2 USM323.3. VACM341 SNMP協(xié)議及網(wǎng)絡(luò)管理介紹當(dāng)今由路由器、交換機(jī)、服務(wù)器組成的復(fù)雜的網(wǎng)絡(luò),確保所有的設(shè)備正常運(yùn)行且處于最佳狀態(tài)確實(shí)是一件非常令人膽怯的事情。簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)可以幫助解決這個(gè)問題。隨著人們對(duì)IP設(shè)備管理標(biāo)準(zhǔn)的需求日益增長(zhǎng),SNMP協(xié)議在1988年正式推出,利用SNMP只需一些“簡(jiǎn)單”的操作便可實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)設(shè)備的遠(yuǎn)程管理。接下來(lái)內(nèi)容將會(huì)介紹SNMP是如何工作的,結(jié)合一些實(shí)例進(jìn)行講解。本節(jié)主要介紹SNMP和網(wǎng)絡(luò)管理。雖然SNMP是本文的重點(diǎn),加強(qiáng)對(duì)網(wǎng)絡(luò)管理概念的理解,對(duì)于使用SNMP管理網(wǎng)絡(luò)也非常有幫助。1.1什么是SNMP? SNMP的核心是幫助管理員簡(jiǎn)化對(duì)一些支持SNMP設(shè)備設(shè)置的操作(也包括這些信息的收集)。例如,使用SNMP可以關(guān)閉路由器的一個(gè)端口,也可以查看以太網(wǎng)端口的工作速率。SNMP還可以監(jiān)控交換機(jī)的溫度,在出現(xiàn)過高現(xiàn)象進(jìn)行報(bào)警。SNMP通常和管理路由器相關(guān)聯(lián),實(shí)際上SNMP可以用于管理很多類型的設(shè)備。SNMP的前身是間單網(wǎng)關(guān)管理協(xié)議(SGMP),SGMP是為了管理互聯(lián)網(wǎng)絡(luò)上的路由器開發(fā)的。遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控(RMON)是為了幫助我們理解網(wǎng)絡(luò)自身是如何工作的,以及單臺(tái)設(shè)備是如何對(duì)整個(gè)網(wǎng)絡(luò)產(chǎn)生影響的,RMON不僅可用于監(jiān)控局域網(wǎng)的流量,也可以用于廣域網(wǎng)接口。我們將在第2節(jié)詳細(xì)闡述RMON.1.1.1 SNMP 版本IETF負(fù)責(zé)定義互聯(lián)網(wǎng)流量監(jiān)管的標(biāo)準(zhǔn),這里面包括SNMP。IETF發(fā)行的RFCs,對(duì)IP領(lǐng)域中的眾多協(xié)議進(jìn)行了詳細(xì)的闡述,最初提交的文檔是標(biāo)準(zhǔn)的提案,然后進(jìn)入草案狀態(tài)。當(dāng)最后的草案被認(rèn)可后,這個(gè)草案被賦予標(biāo)準(zhǔn)狀態(tài),雖然極少有完全被認(rèn)同的標(biāo)準(zhǔn)。另外還有2個(gè)成為標(biāo)準(zhǔn)過程中的文檔狀態(tài):歷史文檔和試驗(yàn)文檔,分別指被更新的RFC取代的文檔和還未最終成為標(biāo)準(zhǔn)的文檔。下面列舉了一些當(dāng)前的SNMP版本以及相應(yīng)的IETF狀態(tài)信息。1)SNMP V1是SNMP協(xié)議的最初版本。在RFC 1157種進(jìn)行定義。SNMP V1的安全性通過和密碼沒有什么區(qū)別的community,SNMP應(yīng)用程序知道community便可獲得訪問設(shè)備管理信息的權(quán)限。有三種community:只讀、讀寫以及trap。需要注意的是雖然SNMP V1是早期版本,不過依然是眾多廠家實(shí)現(xiàn)SNMP基本方式。2)SNMP V2通常被指是基于community的SNMP V2,基于community的SNMPv2從技術(shù)上成為SNMPv2c,不過全文中,我們都稱作為SNMPv2。SNMPv2由RFC 3416, RFC 3417, 以及RFC 3418進(jìn)行定義。3)SNMP version 3 (SNMPv3 ) 是最新版本的SNMP. 它對(duì)網(wǎng)絡(luò)管理最大的貢獻(xiàn)在于其安全性。增加了對(duì)認(rèn)證和密文傳輸?shù)闹С?。?002年,最終由草案變成完全標(biāo)準(zhǔn)。以下的RFC定義了SNMPv3標(biāo)準(zhǔn): RFC 3410, RFC 3411, RFC 3412, RFC 3413, RFC 3414, RFC 3415, RFC 3416, RFC 3417, RFC 3418, 以及RFC 2576.SNMPv3將在第3章進(jìn)行詳細(xì)對(duì)待。1.1.2 管理端和agent前面曾模糊地提到支持SNMP的設(shè)備和網(wǎng)絡(luò)管理工作站。接下來(lái)看看它們到底是怎么回事。SNMP有2個(gè)主體:管理端和agent。管理端指的是運(yùn)行了可以執(zhí)行網(wǎng)絡(luò)管理任務(wù)軟件的服務(wù)器,通常被稱作為網(wǎng)絡(luò)管理工作站(NMS),NMS負(fù)責(zé)采樣網(wǎng)絡(luò)中agent的信息,并接受agent的trap。采樣,顧名思義,就是查詢agent(路由器、交換機(jī)、Unix服務(wù)器等等)中的信息。借助于這些信息,系統(tǒng)可以判斷是否出現(xiàn)了某種故障。Trap就是agent主動(dòng)告訴NMS發(fā)生了的事情。Trap的傳送屬于實(shí)時(shí)的,不是NMS查詢的響應(yīng)。NMS會(huì)對(duì)收到的信息會(huì)進(jìn)行判斷,有必要的話在做出相應(yīng)的動(dòng)作。例如,當(dāng)網(wǎng)絡(luò)出口的Internet線路斷掉,路由器將會(huì)發(fā)送Trap信息給NMS,NMS收到可以進(jìn)行一些動(dòng)作,比如以告警的方式通知管理員。注意:這個(gè)動(dòng)作作必須NMS支持,而且要提前定義好。Agent是運(yùn)行在可網(wǎng)絡(luò)設(shè)備上的軟件??梢允且粋€(gè)獨(dú)立的程序(在Unix中叫守護(hù)進(jìn)程),也可以是已經(jīng)整合到操作系統(tǒng)中(比如:銳捷路由器的RGNOS,或者UPS中的底層操作系統(tǒng))。如今,大多數(shù)IP設(shè)備都植入了SNMP agent,目的是為系統(tǒng)管理員管理設(shè)備提供方便。Agent可以通過不同的方式為NMS提供管理信息。例如:路由器上的agent可以跟蹤每個(gè)接口的狀態(tài),哪個(gè)端口是UP的,哪個(gè)是down的等等。NMS可以查詢每個(gè)接口的狀態(tài),一旦出現(xiàn)down掉,便可以立刻采取行動(dòng)。Agent在出現(xiàn)異常情況時(shí),可以發(fā)送trap給NMS。1.1.3 SMI和MIBs管理信息結(jié)構(gòu)(SMI)定義了管理對(duì)象以及管理對(duì)象的表現(xiàn)形式。 Agent具有一份可跟蹤對(duì)象的列表。路由器接口具備一些不同狀態(tài)標(biāo)志(例如:up,down)。基本管理信息(MIB)可以理解成為agent維護(hù)的管理對(duì)象數(shù)據(jù)庫(kù),MIB中定義的大部分管理對(duì)象的狀態(tài)和統(tǒng)計(jì)信息都可以被NMS訪問。SMI提供一種定義(采用SMI格式)管理對(duì)象的方式,而MIB用于定義對(duì)象自身。 MIB給管理對(duì)象起了一個(gè)名字,并且做出具體的解釋。第2章會(huì)對(duì)MIB和SMI進(jìn)行詳細(xì)的描述。所有的Agent都使用被稱作為MIB-II的MIB(RFC1213進(jìn)行定義)。這個(gè)標(biāo)準(zhǔn)定義了端口統(tǒng)計(jì)(接口速率,MTU,發(fā)送的字節(jié)數(shù),接收的字節(jié)數(shù)等等)信息以及系統(tǒng)自身描述信息(系統(tǒng)位置,聯(lián)系方式,等等)。MIB-II的主要目的是為TCP/IP提供通用管理信息,并不包含廠家自身定義的信息。注意:MIB-I是MIB的早期版本,已被升級(jí)版MIB-II所取代。MIB-II定義的是為TCP/IP服務(wù)的,那么其它類型的信息應(yīng)該如何被定義的呢?首先,有很多草案或者提議標(biāo)準(zhǔn)已經(jīng)開發(fā)出來(lái),用于管理幀中繼、ATM、FDDI及一些服務(wù)(郵件、DNS等等)。以下列舉了一些相關(guān)的RFC:ATM MIB (RFC 2515)Frame Relay DTE Interface Type MIB (RFC 2115)BGP Version 4 MIB (RFC 1657)RDBMS MIB (RFC 1697)RADIUS Authentication Server MIB (RFC 2619)Mail Monitoring MIB (RFC 2789)DNS Server MIB (RFC 1611)其次,只有這些MIB是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)檫@個(gè)原因,廠商或者個(gè)人可以定義私有的MIB。例如,廠商新推出一款路由器,這款路由器可能具備一些非常重要的新特性,非常值得監(jiān)控,但標(biāo)準(zhǔn)的MIB中并不存在。因此,廠商只能開發(fā)出相對(duì)應(yīng)的的私有MIB。2 SNMP V1和SNMP V2本節(jié)將對(duì)SNMP進(jìn)行詳細(xì)地描述,特別是針對(duì)SNMPv1和SNMPv2的特性(對(duì)SNMPv3只會(huì)簡(jiǎn)略地提到,SNMPv3將在第3節(jié)進(jìn)行詳細(xì)描述)。學(xué)習(xí)完這節(jié)后,你將懂得SNMP是如何發(fā)送和接收信息的,什么是SNMP community,如何閱讀MIB文件,我們還會(huì)對(duì)第1節(jié)中提到的MIB-II、和RMON進(jìn)行詳細(xì)的描述。2.1 SNMP 和 UDPSNMP采用UDP協(xié)議在管理端和agent之間傳輸信息。 SNMP采用UDP 161端口接收和發(fā)送請(qǐng)求,162端口接收trap,執(zhí)行SNMP的設(shè)備缺省都必須采用這些端口,有些廠商允許更改agent的缺省配置,如果缺省的配置被更改,必須通知NMS服務(wù)器以便能夠及時(shí)更改,從而可以正確對(duì)設(shè)備進(jìn)行查詢。圖2-1:SNMP的TCP/IP通信模型 發(fā)往NMS162端口的trap NMS發(fā)往agent161端口的請(qǐng)求 agent發(fā)往NMS161端口的請(qǐng)求響應(yīng)2.2 SNMP communitySNMPv1和SNMPv2采用community字段在管理者和agent之間建立信任關(guān)系。Community實(shí)質(zhì)上就是密碼。很多廠商在設(shè)備上都配有缺省的community字段,通常只讀的是public,可讀寫的是private。注意:要在設(shè)備網(wǎng)絡(luò)上運(yùn)行之前更改這些缺省community。2.3 管理信息結(jié)構(gòu)前面我們?cè)?jīng)粗略提到過管理信息。懂得SNMP的內(nèi)容是如何表示的,是理解網(wǎng)管設(shè)備可提供的信息類型的前提。管理對(duì)象是如何命名的、管理對(duì)象的數(shù)據(jù)類型,SMIv1(RFC1155定義)進(jìn)行了詳細(xì)的描述。SMIv2是為SNMPv2使用的升級(jí)版,首先來(lái)看一下SMIv1,下一節(jié)再討論SMIv2。管理對(duì)象的定義可以分為三個(gè)屬性:1) 名稱名稱,或者是OID,對(duì)管理對(duì)象進(jìn)行唯一的標(biāo)識(shí),一般以兩種形式出現(xiàn):數(shù)字和“方便人們閱讀的”,這兩方法不但長(zhǎng)而且不方便,在SNMP的應(yīng)用程序中,做了很多弱化命名帶來(lái)的不便的努力。2)類型和格式管理對(duì)象的數(shù)據(jù)類型在ASN.1的子集進(jìn)行了定義。ASN.1的好處是和設(shè)備沒有關(guān)系。3)編碼BER(Basic Encoding Rules)規(guī)則是管理對(duì)象編碼成八位字符的唯一方式。BER定了對(duì)象是如何進(jìn)行編碼和解碼的,從而對(duì)象可以在例如以太網(wǎng)這樣的戒介質(zhì)上進(jìn)行傳輸。2.3.1 OID命名管理對(duì)象通過樹狀結(jié)構(gòu)進(jìn)行組織,是SNMP命名的基礎(chǔ)。OID由樹上的一系列整數(shù)組成,整數(shù)之間用點(diǎn)( . )分隔開。用名稱的形式進(jìn)行表示更加友好,這種形式也只是在名字之間用點(diǎn)( . )進(jìn)行隔開,每個(gè)名稱代表樹中的一個(gè)節(jié)點(diǎn)。圖2-2我們可以看到樹的部分頂部(刪除了這里并不關(guān)心的分支)。圖2-2:SMI對(duì)象樹樹中,最頂部的節(jié)點(diǎn)被稱作為根節(jié)點(diǎn),所有具備下一級(jí)對(duì)象的稱作子樹。圖2-2的根,樹的起點(diǎn)被稱作為Root-Node.它的子樹由ccitt(0), iso(1), 以及joint(2)構(gòu)成,上圖只有iso(1)具備子樹,其他兩個(gè)沒有子樹。ccitt(0) 和joint(2)和SNMP沒有關(guān)系,本文不做論述。 本文接下來(lái)的部分,集中在iso(1).org(3).dod(6).internet(1)子樹,每個(gè)管理對(duì)象都有自己的OID。directory分枝目前還沒有用到;management分枝(mgmt)定義一系列互聯(lián)網(wǎng)管理標(biāo)準(zhǔn);experimental分枝保留給測(cè)試和研究使用;private分枝只進(jìn)行了部分定義,其他部分由個(gè)人或者組織進(jìn)行定義。下面是internet子樹的定義:internet OBJECT IDENTIFIER := iso org(3) dod(6) 1 directory OBJECT IDENTIFIER := internet 1 mgmt OBJECT IDENTIFIER := internet 2 experimental OBJECT IDENTIFIER := internet 3 private OBJECT IDENTIFIER := internet 4 第一行定義internet為,作為.dod或者1.3.6的子樹(:=是一個(gè)定義的操作符),后面四個(gè)類似,都是internet的分枝。從 internet 1 可以知道,directory 是internet的一個(gè)子樹,OID是,mgmt的OID是.2,依次類推。Private子樹使得軟硬件的廠商們可以私有對(duì)象。SMI的定義如下enterprises OBJECT IDENTIFIER := private 1 。目前由IANA管理分配給個(gè)人、機(jī)構(gòu)、組織、公司等等號(hào)碼??梢栽?assignments/enterprise-numbers.上查詢到。例如,可以查到銳捷網(wǎng)絡(luò)的代號(hào):4881 Start Network Technology Co., Ltd. Qiu Gensheng qiugs&2.3.2 OID的描述SYNTAX屬性通過一系列的ASN.1定義管理對(duì)象,SMIv1定了好多種對(duì)于網(wǎng)絡(luò)設(shè)備來(lái)說非常重的數(shù)據(jù)類型,這些數(shù)據(jù)通過一種簡(jiǎn)單的方式定義管理對(duì)象包含哪些信息,記住它們極為重要。我們即將討論的數(shù)據(jù)類型有點(diǎn)像C語(yǔ)言中所提到的。表2-1列出了SMIv1支持的數(shù)據(jù)類型。數(shù)據(jù)類型描述INTEGER32位的數(shù)字,指定某個(gè)可以數(shù)字表示的管理對(duì)象內(nèi)容。例如路由器接口的狀態(tài)可能是up、down、或者test,用數(shù)據(jù)的方式表示,1表示up,2表示down,3表示testing,根據(jù)RFC1153種提到的,0不能用作數(shù)值類型。OCTET STRING表示文本字符串,0個(gè)或者更多的字節(jié)。經(jīng)常被用作表示無(wú)力地址Counter32位數(shù)字,0232 - 1 (4,294,967,295). 當(dāng)達(dá)到最大值后,又從0開始計(jì)數(shù)。一般用于端口上發(fā)送/接收的字節(jié)數(shù),或者端口上看到的錯(cuò)誤數(shù)、丟棄數(shù)。計(jì)數(shù)值是一直往上增長(zhǎng)的。當(dāng)agent重啟,所有的計(jì)數(shù)清0。OBJECT IDENTIFIER跟有點(diǎn)的十進(jìn)制值組成的符號(hào),代表對(duì)象樹上的某個(gè)管理對(duì)性。 例如.4.1.4881 代表銳捷網(wǎng)絡(luò)private enterprise OID.NULLSNMP中目前還沒有用到SEQUENCE定義包含0或者更多其他的ASN.1數(shù)據(jù)類型SEQUENCE OFASN.1類型,作為由SEQUENCE定義對(duì)象的組成部分。IpAddress代表32位的IPv4地址.SMIv1和SMIv2都沒有對(duì)128位的IPv6地址的描述。NetworkAddress類似于IP地址類型,但可以代表不同的網(wǎng)絡(luò)地址類型Gauge在 0 232 - 1 (4,294,967,295)之間的32位數(shù)值. 和Counter不一樣 Gauge可以增也可以減, 但不能超過最大值,端口的數(shù)率就是Gauge類型TimeTicks在 0 232 - 1之間的32位數(shù)值 (4,294,967,295).以0.01秒的粒度計(jì)算TimeTicks。設(shè)備的Uptime就是TimeTicks類型Opaque允許其他所有的ASN.1編碼到一個(gè)8位字符中懂得如何讀取和理解MIB文件非常重要,下面的例子是MIB-II的簡(jiǎn)化版(跟在-之后的為注釋)RFC1213-MIB DEFINITIONS := BEGIN IMPORTS mgmt, NetworkAddress, IpAddress, Counter, Gauge, TimeTicks FROM RFC1155-SMI OBJECT-TYPE FROM RFC 1212; mib-2 OBJECT IDENTIFIER := mgmt 1 - groups in MIB-II system OBJECT IDENTIFIER := mib-2 1 interfaces OBJECT IDENTIFIER := mib-2 2 at OBJECT IDENTIFIER := mib-2 3 ip OBJECT IDENTIFIER := mib-2 4 icmp OBJECT IDENTIFIER := mib-2 5 tcp OBJECT IDENTIFIER := mib-2 6 udp OBJECT IDENTIFIER := mib-2 7 egp OBJECT IDENTIFIER := mib-2 8 transmission OBJECT IDENTIFIER := mib-2 10 snmp OBJECT IDENTIFIER := mib-2 11 - the Interfaces table - The Interfaces table contains information on the entitys - interfaces. Each interface is thought of as being - attached to a subnetwork. Note that this term should - not be confused with subnet, which refers to an - addressing-partitioning scheme used in the Internet - suite of protocols. ifTable OBJECT-TYPE SYNTAX SEQUENCE OF IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION A list of interface entries. The number of entries is given by the value of ifNumber. := interfaces 2 ifEntry OBJECT-TYPE SYNTAX IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION An interface entry containing objects at the subnetwork layer and below for a particular interface. INDEX ifIndex := ifTable 1 IfEntry := SEQUENCE ifIndex INTEGER, ifDescr DisplayString, ifType INTEGER, ifMtu INTEGER, ifSpeed Gauge, ifPhysAddress PhysAddress, ifAdminStatus INTEGER, ifOperStatus INTEGER, ifLastChange TimeTicks, ifInOctets Counter, ifInUcastPkts Counter, ifInNUcastPkts Counter, ifInDiscards Counter, ifInErrors Counter, ifInUnknownProtos Counter, ifOutOctets Counter, ifOutUcastPkts Counter, ifOutNUcastPkts Counter, ifOutDiscards Counter, ifOutErrors Counter, ifOutQLen Gauge, ifSpecific OBJECT IDENTIFIER ifIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION A unique value for each interface. Its value ranges between 1 and the value of ifNumber. The value for each interface must remain constant at least from one reinitialization of the entitys network management system to the next reinitialization. := ifEntry 1 ifDescr OBJECT-TYPE SYNTAX DisplayString (SIZE (0.255) ACCESS read-only STATUS mandatory DESCRIPTION A textual string containing information about the interface. This string should include the name of the manufacturer, the product name, and the version of the hardware interface. := ifEntry 2 END第一行定義了MIB的名字,RFC1213-MIB(RFC-1213定義了MIB-II)中定義的格式是固定的。這個(gè)MIB的IMPORTS部分通常指鏈接的內(nèi)容。使用IMPORTS語(yǔ)句可以從其他的MIB文件中鏈接OID的數(shù)據(jù)類型。這個(gè)MIB從RFC1155-SMI鏈接了以下內(nèi)容:1) mgmt2) NetworkAddress3) IpAddress4) Counter5) Gauge6) TimeTicksOBJECT-TYPE是從RFC1212中鏈接的, RFC1212定義了MIB文件如何編寫。鏈接的的條目都通過FROM語(yǔ)句判斷來(lái)自何處。前面我們看到mgmt是.2。因此,mib-2就可以寫成.2.1,同樣的,mib-2下面的interface組可以定義成為mib-2 2或者.2.1.2,對(duì)管理對(duì)象命名后,接下來(lái)描述一下具體對(duì)象,所有的對(duì)象按照以下的格式進(jìn)行描述: OBJECT-TYPE SYNTAX ACCESS STATUS DESCRIPTION Textual description describing this particular managed object. := 在MIB-II中首先描述的是ifTable,表示網(wǎng)管設(shè)備網(wǎng)絡(luò)接口列表(注意對(duì)象名稱采用大小寫混合的模式定義,第一個(gè)字母用小寫),以下是采用ASN.1格式的定義:ifTable OBJECT-TYPE SYNTAX SEQUENCE OF IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION A list of interface entries. The number of entries is given by the value of ifNumber. := interfaces 2 ifTable的格式是SEQUENCE OF IfEntry. ifTalbe是一張表,包含由IfEntry定義的列,這個(gè)對(duì)象不可訪問,表示agent不提供對(duì)該對(duì)象的查詢。 Mandatory,表示agent必須支持該對(duì)象以保證兼容MIB-II標(biāo)準(zhǔn)。 DESCRIPTION 描述該對(duì)象一些具體情況。ifTable的OID是.。接下來(lái)我們看一下前一部分MIB文件中,SEQUENCE部分的定義:IfEntry := SEQUENCE ifIndex INTEGER, ifDescr DisplayString, ifType INTEGER, ifMtu INTEGER, . . . ifSpecific OBJECT IDENTIFIER 注意到sequence(IfEntry)的名稱也是大小寫混用,但是第一個(gè)字母是大寫,Sequence定義了一個(gè)包含的屬性列表,比如ifIndex, ifDescr, ifType等等,這張表可以容納很多表項(xiàng),表項(xiàng)的管理由agent負(fù)責(zé),NMS能夠在表中增加表項(xiàng),在隨后章節(jié)“set 操作”部分會(huì)講到這個(gè)內(nèi)容。IfEntry指定了表中包含的表項(xiàng)。接下來(lái)再來(lái)看看ifEntry(表中實(shí)際的表項(xiàng))的定義。ifEntry OBJECT-TYPE SYNTAX IfEntry ACCESS not-accessible STATUS mandatory DESCRIPTION An interface entry containing objects at the subnetwork layer and below for a particular interface. INDEX ifIndex := ifTable 1 ifEntry是ifTable中的表項(xiàng),它的定義方法和ifTalbe幾乎相同,除了增加了一個(gè)新的語(yǔ)句,INDEX。index是ifTable表項(xiàng)的關(guān)鍵字。Agent要確保表中index的唯一性。如果路由器有6個(gè)端口,那么ifTable中將會(huì)有6列。ifEntry的OID是..1 fEntry的index是ifIndex,定義如下:ifIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION A unique value for each interface. Its value ranges between 1 and the value of ifNumber. The value for each interface must remain constant at least from one reinitialization of the entitys network management system to the next reinitialization. := ifEntry 1 ifIndex對(duì)象只讀,意味著我們能夠察看,但不能修改。這段MIB中最后定義的對(duì)象是ifDescr,ifTable的一列,用于對(duì)端口進(jìn)行描述。這個(gè)MIB示例以END語(yǔ)句結(jié)束,END用于標(biāo)識(shí)MIB的結(jié)束,在實(shí)際的MIB-II文件中,每個(gè)列在IfEntry 的sequence都有相應(yīng)的對(duì)象定義,鑒于課程篇幅,這里指列舉其中的2個(gè)。2.4 V2版本中的SMI擴(kuò)展SMIV2通過在internet子樹中增加snmpV2的分支擴(kuò)展SMI對(duì)象,增加了好幾種數(shù)據(jù)類型,并且有了很多其他的變化,新分支的OID為.。 SMIv2定義一些新的數(shù)據(jù)類型,詳見表2-2表2-2:帶有SNMPv2的樹數(shù)據(jù)類型描述Integer32和INTEGER一樣Counter32和Counter一樣Gauge32和Gauge一樣Unsigned320232 1之間的十進(jìn)制值,Counter64類似于Counter32,但最大值是18,446,744,073,709,551,615(264-1),用于Counter32在短時(shí)間就循環(huán)的情況下。BITSAn enumeration of nonnegative named bits.相比于SMIv1,SMIv2中對(duì)對(duì)象的定義也有了一些變化,增加了一些可選的字段,對(duì)象的訪問提供更多控制;表增加了更多的列;并且可以進(jìn)行更加詳細(xì)的描述。以下是SMIv2的定義,粗體字為變化的部分: OBJECT-TYPE SYNTAX UnitsParts MAX-ACCESS STATUS DESCRIPTION Textual description describing this particular managed object. AUGMENTS := 2.5進(jìn)一步了解MIB-IIMIB-II是一個(gè)非常重要的管理組,支持SNMP的設(shè)備必須支持MIB-II。我們不打算對(duì)MIB中每個(gè)對(duì)象進(jìn)行仔細(xì)描述,只簡(jiǎn)描述了一下子樹的定義,RFC-1213-MIN采用以下的方式對(duì)MIB-II子樹中基本的OID進(jìn)行定義:mib-2 OBJECT IDENTIFIER := mgmt 1 system OBJECT IDENTIFIER := mib-2 1 interfaces OBJECT IDENTIFIER := mib-2 2 at OBJECT IDENTIFIER := mib-2 3 ip OBJECT IDENTIFIER := mib-2 4 icmp OBJECT IDENTIFIER := mib-2 5 tcp OBJECT IDENTIFIER := mib-2 6 udp OBJECT IDENTIFIER := mib-2 7 egp OBJECT IDENTIFIER := mib-2 8 transmission OBJECT IDENTIFIER := mib-2 10 snmp OBJECT IDENTIFIER := mib-2 11 mib-2亦即ernet.mgmt.1或者.2.1。從上面我們可以看到system組是mib-2 1,或者.2.1.1。圖2-4 顯示的是mgmt分支的MIB-II子樹圖2-4:MIB-II子樹表2-5對(duì)MIB-II中的每個(gè)管理組進(jìn)行簡(jiǎn)要的描述,詳細(xì)的內(nèi)容可以從RFC1213中找到。子樹名OID描述system.2.1.1定義了屬于諸如系統(tǒng)uptime,系統(tǒng)聯(lián)系方式,系統(tǒng)名等屬于系統(tǒng)操作的內(nèi)容interfaces.2.1.2跟蹤管理單元的每一個(gè)接口,監(jiān)控接口組中接口的up或者down、發(fā)送/接收的字節(jié)數(shù)、錯(cuò)誤和丟棄等等at.2.1.3地址轉(zhuǎn)換組主要為了向后兼容而提供的,不建議使用。ip.2.1.4跟蹤IP,包括IP路由的相關(guān)信息icmp.2.1.5跟蹤ICMP錯(cuò)誤、丟棄等信息tcp.2.1.6跟蹤TCP連接狀態(tài)(例如:關(guān)閉、偵聽、同步等),也跟蹤TCP相關(guān)的信息udp.2.1.7跟蹤UDP的統(tǒng)計(jì)、出入報(bào)文等信息Egp.2.1.8跟蹤EGP及EGP保持鄰居表的諸多統(tǒng)計(jì)信息transmission.2.1.10這個(gè)組沒有具體的對(duì)象,不過和介質(zhì)相關(guān)的MIB通過這個(gè)子樹進(jìn)行定義。Snmp.2.1.11管理單元上SNMP的運(yùn)行情況,跟蹤類似于SNMP報(bào)文進(jìn)出數(shù)量的信息。2.6 SNMP 操作我們已經(jīng)討論了SNMP是如何組織信息的,但沒有描述如何收集這些管理信息的,接下我們將揭開SNMP這方面的面紗。PDU是管理端和agent用于發(fā)送和接收信息的消息,以下SNMP操作都包含標(biāo)準(zhǔn)的PUD格式:1) get2) getnext3) getbulk (SNMPv2 and SNMPv3)4) set5) getresponse6) trap7) notification (SNMPv2 and SNMPv3)8) inform (SNMPv2 and SNMPv3)9) report (SNMPv2 and SNMPv3)2.6.1 getGet request由NMS發(fā)往agent,agent收到請(qǐng)求后將會(huì)進(jìn)行處理。在過載的情況下,比如說路由器,在無(wú)法響應(yīng)請(qǐng)求的情況下不得不丟棄這個(gè)報(bào)文,如果agent成功收集了NMS請(qǐng)求的信息,會(huì)發(fā)送get response給NMS,這個(gè)過程參見圖2-5。圖2-5:get request過程Agent是如何知道NMS要找什么呢?實(shí)際上就是通過請(qǐng)求報(bào)文中的OID來(lái)進(jìn)行發(fā)放現(xiàn)的。圖2-6列出了相應(yīng)的動(dòng)作:圖2-6:通過MIB-Browser查看交換機(jī)的System name。在這個(gè)示例中,進(jìn)行了好幾件事情。首先,通過MIB-Browser發(fā)送命令,在程序上只要要進(jìn)行三個(gè)設(shè)置:只讀community(public),OID(..0)。.5是希望查詢的MIB變量,它的英文名稱是systemName。.0又是做什么用的呢?SNMP中,MIB對(duì)象通過x.y的形式表示,x是實(shí)際上管理對(duì)象OID(這個(gè)例子中,.),y是實(shí)例標(biāo)識(shí)號(hào),對(duì)于標(biāo)量對(duì)象(也就是沒有表項(xiàng)的對(duì)象)y始終是0,在有表的情況下,實(shí)例ID確保可以選取表中的某一表項(xiàng)。1代表第2項(xiàng),2代表第2項(xiàng),一次類推。例如,查詢交換機(jī)F0/2端口的ifDescr,在MIB-Browser中填入的OID值為..2.2。一次只需查詢一個(gè)MIB對(duì)象的信息的情況下,get非常有用。但是如果采用這種方式查詢多個(gè)對(duì)象的信息,將是一件非常浪費(fèi)時(shí)間的事情。后文會(huì)提到相應(yīng)的解決辦法。接下來(lái),看看查詢systemName的request報(bào)文情況。(使用sniffer捕獲的)Get requestGet response以上是在V1模式下捕獲的報(bào)文,換成V2的情況如下:Get requestGet response2.6.2 getnextgetnext 操作允許你調(diào)用一些命令去查詢MIB的一組值。getnext命令以類似于查詞典的順序查閱字樹。圖2-8:getnext依次查詢到system組的路徑操作舉例:上圖設(shè)置好了以后,第一個(gè)要搜索的對(duì)象是.(system.uptime)點(diǎn)擊start后,返回的事system.Contact值。查看捕獲的報(bào)文:Get response2.6.3 getbulkSNMPv2定義了getbulk操作,管理程序通過這個(gè)命令可以一次性查詢到很多信息,標(biāo)準(zhǔn)的get操作有可能試圖一次查詢很多MIB對(duì)象的信息,但信息agent的信息容量有限,如果無(wú)法響應(yīng)所有的請(qǐng)求,將會(huì)返回不包含任何信息的錯(cuò)誤消息。Getbulk操作,能夠讓agent盡可能返回更多的信息。調(diào)用getbulk命的時(shí)候,有2個(gè)字段必須設(shè)置:nonrepeaters和max-repetitions。 Nonrepeaters 指前N個(gè)對(duì)象可以通過簡(jiǎn)單的getnext命令查詢。max-repetitions 指在N之后最大只能通過getnext命令查詢M個(gè)對(duì)象。例:Getbulk:2.6.4 set操作該命令用于修改管理單元的值,或者在表中增加新的表項(xiàng)。NMS可以同時(shí)修改多個(gè)對(duì)象。例:SetGet response2.6.5 get, getnext, getbulk, 以及set 錯(cuò)誤響應(yīng)錯(cuò)誤回應(yīng)有助于判斷查詢或者設(shè)置是否成功。get, getnext, getbulk,以及set 的相關(guān)錯(cuò)誤在表2-6列出. 錯(cuò)誤狀態(tài)位在()中:SNMPv1錯(cuò)誤消息描述noErro

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論