It計(jì)算機(jī)課件 第3章 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議_第1頁
It計(jì)算機(jī)課件 第3章 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議_第2頁
It計(jì)算機(jī)課件 第3章 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議_第3頁
It計(jì)算機(jī)課件 第3章 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議_第4頁
It計(jì)算機(jī)課件 第3章 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議_第5頁
已閱讀5頁,還剩177頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3幸簡(jiǎn)單網(wǎng)絡(luò)管理體衩

SNMP是專門用來管理網(wǎng)絡(luò)設(shè)備的一種

標(biāo)準(zhǔn)應(yīng)用層協(xié)議,有SNMPvLSNMPv2>

SNMPv3三個(gè)不同的版本和一系列RFC文件o

SNMP使網(wǎng)絡(luò)管理員能夠維護(hù)網(wǎng)絡(luò)運(yùn)行,發(fā)

現(xiàn)并解決網(wǎng)絡(luò)問題以及規(guī)劃網(wǎng)絡(luò)發(fā)展。

3.1SNMP的演變

3.1.1SNMPvl

11987年11月提出簡(jiǎn)單網(wǎng)關(guān)監(jiān)控協(xié)議(SGMP)

2簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議第一版(SNMPvl)公布在1990年和

1991年的幾個(gè)RFC文件中,即

RFC1155(SMI)RFC1157(SNMP)RFC1212(MIB)

RFC1213(MIB-2)

3雙軌制策略:

SNMP滿足當(dāng)前的網(wǎng)絡(luò)管理需要,并可平穩(wěn)過渡到新的

網(wǎng)絡(luò)管理標(biāo)準(zhǔn)。

OSI網(wǎng)絡(luò)管理(CMOT)作為長(zhǎng)期解決辦法,可提供更全面

的管理功能,但需較長(zhǎng)開發(fā)及接受過程。但OSIMIB采

用面向?qū)ο竽P?,開發(fā)緩慢,SNMP無法順利過渡。

3.1.2SNMPv2

1為彌補(bǔ)SNMP的安全缺陷(無數(shù)據(jù)源認(rèn)證功能,不能防

止被偷聽),1992年發(fā)布S-SNMP,該協(xié)議增強(qiáng)了以下

安全方面的功能:用報(bào)文摘要算法MD5保證數(shù)據(jù)完整

性和進(jìn)行數(shù)據(jù)源認(rèn)證;用時(shí)間戳對(duì)報(bào)文排序;用DES算

法提供數(shù)據(jù)加密功能。

2S-SNMP沒有改進(jìn)SNMP功能和效率方面的缺點(diǎn)。于是

又提出SMP協(xié)議,該協(xié)議在使用范圍、復(fù)雜程度、速

度和效率、安全措施、兼容性等方面對(duì)SNMP進(jìn)行了擴(kuò)

充。

31996年1月發(fā)布SNMPv2C,它以SMP為基礎(chǔ),放棄了S.

SNMPoSNMPv2和SNMPv2c的RFC如表5-1。

表3/有關(guān)SNMPv2和SNMPv2c的RFC文件

SNMPv2(1993.5)名稱SNMPv2(1996.1)

1441SNMPv2簡(jiǎn)介1901

1442SNMPv2管理信息結(jié)構(gòu)1902

1443SNMPv2文本結(jié)構(gòu)約定1903

1444SNMPv2一致性聲明1904

1445SNMPv2高層安全模型

1446SNMPv2安全協(xié)議

1447SNMPv2參加者M(jìn)IB

1448SNMPv2協(xié)議操作1905

1449SNMPv2傳輸層映射1906

1450SNMPv2管理信息庫1907

1451管理進(jìn)程間的管理信息庫

SNMPv2第1版和第2版網(wǎng)

14521908

絡(luò)管理框架共存

3.1.3SNMPv3

SNMPv2不能提供數(shù)據(jù)源標(biāo)識(shí)、報(bào)文完整性認(rèn)證、防止

重放、報(bào)文機(jī)密性、授權(quán)和訪問控制、遠(yuǎn)程配置和高層管理

能力等。

因此后來在此基礎(chǔ)上又進(jìn)行了修訂,1999年4月公布了

SNMPv3的新標(biāo)準(zhǔn)草案。增加了安全和高層管理功能,且能

和以前的標(biāo)準(zhǔn)(SNMPvl和SNMPv2)兼容,以便于以后擴(kuò)

充新的模塊,從而形成了統(tǒng)一的SNMP新標(biāo)準(zhǔn)。

3.2SNMPvl

SNMPvl:

是一種簡(jiǎn)單的請(qǐng)求/響應(yīng)協(xié)議,

使用管理者■代理模型,

僅支持對(duì)管理對(duì)象值的檢索和修改等簡(jiǎn)單操作。

網(wǎng)絡(luò)管理系統(tǒng)發(fā)出一個(gè)請(qǐng)求,管理器則返回一個(gè)響應(yīng)。

該過程通過SNMP操作實(shí)現(xiàn)。

不足:

不支持管理站改變管理信息庫的結(jié)構(gòu),即不能增加和

刪除管理信息庫中的管理對(duì)象實(shí)例;

管理站不能向管理對(duì)象發(fā)出執(zhí)行一個(gè)動(dòng)作的命令。

管理站只能逐個(gè)訪問管理信息庫中的葉節(jié)點(diǎn),不能一

次性訪問一個(gè)子樹,這些限制簡(jiǎn)化了SNMP的實(shí)現(xiàn)。

3.2.1SNMPvl協(xié)議數(shù)據(jù)單元

RFC1157使用ASN.1定義SNMPvl。

在SNMPvl管理中,管理站和代理之間交換的管理信息

構(gòu)成了SNMPvl報(bào)文。

SNMP報(bào)文

版本號(hào)團(tuán)體名SNMPPDU

GetRequestPDU、GetNextRequestPDU和SetRequestPDU

PDU類型請(qǐng)求標(biāo)志00變量綁定表

GetResponsePDU

PDU類型請(qǐng)求標(biāo)志錯(cuò)誤狀態(tài)錯(cuò)誤索引變量綁定表

TrapPDU

PDU類型制造商ID代理地址一般陷入特殊陷入時(shí)間戳變量綁定表

變量綁定表

名字1值1名字2值2???名字〃值〃

報(bào)文由版本號(hào)、團(tuán)體名和協(xié)議數(shù)據(jù)單元三部分組成。

版本號(hào)是SNMP版本,RFC1157為第1版。

團(tuán)體名用于身份認(rèn)證。

SNMPvl共有5種管理操作,只有3種PDU格式。

(1)管理站發(fā)出的3種請(qǐng)求報(bào)文,其采用的格式是一樣

的,GetRequestGetNextRequestSetRequest

(2)代理的應(yīng)答報(bào)文格式只有GetResponsePDU

(3)TrapPDU

?除TrapPDU之外的四種PDU格式是相同的,共有五個(gè)字臂

段:

PDU類型:有5種

GetRequestPDU

GetNextRequestPDU

SetRequestPDU

GetResponsePDU

TrapPDU

請(qǐng)求標(biāo)識(shí)(request-id):賦予每個(gè)請(qǐng)求報(bào)文唯一的整數(shù),

用于區(qū)分不同的請(qǐng)求。由于在具體實(shí)現(xiàn)中請(qǐng)求多是在后

臺(tái)執(zhí)行的,因而當(dāng)應(yīng)答報(bào)文返回時(shí)要根據(jù)其中的請(qǐng)求標(biāo)

識(shí)與請(qǐng)求報(bào)文配對(duì)。請(qǐng)求標(biāo)識(shí)的另一個(gè)作用是檢測(cè)由不

可靠的傳輸服務(wù)產(chǎn)生的重復(fù)報(bào)文。

錯(cuò)誤狀態(tài)(error-status):表示代理在處理管理站的請(qǐng)求

時(shí)可能出現(xiàn)的各種錯(cuò)誤,共有6種錯(cuò)誤狀態(tài),包括

noError(0)tooBig(1)noSuchName(2)badValue(3)

readOuly(4)genError(5)。

錯(cuò)誤索引(error-index):當(dāng)錯(cuò)誤狀態(tài)非0時(shí)指向出錯(cuò)的變

量。

變量綁定表(variable-binding):變量名和對(duì)應(yīng)值的表,

說明要檢索或設(shè)置的所有變量及其值。在檢索請(qǐng)求報(bào)文中,

變量的值應(yīng)為0。

?TrapPDU報(bào)文,有下列字段:

?PDU類型:TrapPDU

?制造商ID(enterprise):表示設(shè)備制造商標(biāo)識(shí),與

MIB-2對(duì)象sysObjectID的值相同。

?代理地址(agent-addr):產(chǎn)生陷入的代理的IP地址。

?一般陷入(genenric-trap):SNMP定義的陷入類型,

共分7類:coldStart(0)wannStart(1)linkDown(2)

linkUp(3)authenticationFailure(4)

egpNeighborLoss(5)enterpriseSpecific(6)。

?特殊陷入(specific-trap):與設(shè)備有關(guān)的特

殊陷入代碼。

?時(shí)間戳(time-stamp):代理發(fā)出陷入的時(shí)間,

與MIB-2中的對(duì)象sysUpTime的值相同。

3.2.2報(bào)文發(fā)送與接收

>SNMP報(bào)文在管理站和代理之間傳送,包含GetRequest

GetNextRequestSetRequest的報(bào)文由管理站發(fā)出,代理以

GetResponse響應(yīng)。

>Trap報(bào)文由代理發(fā)給管理站,不需應(yīng)答。

>管理站可連續(xù)發(fā)出多個(gè)請(qǐng)求報(bào)文,然后等待代理返回應(yīng)

答報(bào)文。如果在規(guī)定的時(shí)間內(nèi)收到應(yīng)答,則按照請(qǐng)求標(biāo)識(shí)

進(jìn)行配對(duì),亦即應(yīng)答報(bào)文必須與請(qǐng)求報(bào)文有相同的請(qǐng)求標(biāo)

識(shí)。

管理站代理管理站代理

GSResponsePOU^

管理站代理管理站代理

E!^9WPD[£^

^^^jTrapPp^^--

<S^tResponsePSu"

圖3?2SNMP報(bào)文發(fā)送與應(yīng)答序列

發(fā)送報(bào)文的過程:

?首先按照ASN.1的格式構(gòu)

造PDU,交給認(rèn)證進(jìn)程;

A認(rèn)證進(jìn)程檢查源和目標(biāo)之

間是否可以通信,如果通過

這個(gè)檢查則把有關(guān)信息(版

本號(hào)、團(tuán)體名和PDU)組裝

成報(bào)文;

A最后經(jīng)過BER編碼,將報(bào)

文交傳輸實(shí)體發(fā)送出去,如

圖3?3所小。

圖3-3生成和發(fā)送SNMP報(bào)文

接收?qǐng)?bào)文時(shí)執(zhí)行下面的過程:

A首先按照BER編碼恢復(fù)ASN.1報(bào)文o

?然后對(duì)報(bào)文進(jìn)行語法分析,驗(yàn)證版

本號(hào)和認(rèn)證信息等。

?如果通過分析和驗(yàn)證,則分離出協(xié)

議數(shù)據(jù)單元并進(jìn)行語法分析,必要

時(shí)經(jīng)過適當(dāng)處理后返回應(yīng)答報(bào)文。

在認(rèn)證檢驗(yàn)失敗時(shí)可以生成一個(gè)陷

入報(bào)文,向發(fā)送站報(bào)告通信異常情

況。無論何種檢驗(yàn)失敗,都丟棄報(bào)

文。

接收處理過程如圖3-4。

圖3-4接收和處理SNMP報(bào)文

變量綁定表

SNMP操作訪問對(duì)象實(shí)例,只能訪問對(duì)象標(biāo)

識(shí)樹的葉節(jié)點(diǎn)。為了減少通信負(fù)載,用戶希望一

次檢索多個(gè)管理對(duì)象,則可以把多個(gè)變量的值裝

入一個(gè)PDU,這時(shí)要用到變量綁定表。

RFCU57建議:在Get和GetNext協(xié)議數(shù)據(jù)單

元中發(fā)送實(shí)體把變量置為ASN.1的NULL值,接

收實(shí)體處理時(shí)忽略它,在返回的應(yīng)答協(xié)議數(shù)據(jù)單

元中設(shè)置為變量的實(shí)際值。

3.2.3SNMPvl操作

SNMP實(shí)體可以對(duì)MIB-2中的對(duì)象執(zhí)行以下操作。

Get:管理站檢索管理信息庫中標(biāo)量對(duì)象的值。

Set:管理站設(shè)置管理信息庫中標(biāo)量對(duì)象的值。

Trap:代理向管理站報(bào)告管理對(duì)象的狀態(tài)變化。

通過綜合使用這些操作,可以實(shí)現(xiàn)以下管理功能。

3.2.3SNMPvl操作

1.檢索簡(jiǎn)單對(duì)象

>檢索簡(jiǎn)單標(biāo)量對(duì)象值可用Get操作。

A如果變量綁定表中包含多個(gè)變量,則一次還可以檢索

多個(gè)標(biāo)量對(duì)象的值。

?接收GetRequest的SNMP實(shí)體以請(qǐng)求標(biāo)識(shí)相同的Get?

Response響應(yīng)。

>GetResponse操作具有原子性,如果所有請(qǐng)求的對(duì)象值

可以得到,則給予應(yīng)答;只要有一個(gè)對(duì)象的值得不到,則可

能返回下列錯(cuò)誤條件:

noSuchName:變量綁定表中的一個(gè)對(duì)象無法與MIB中的

任何對(duì)象標(biāo)識(shí)符匹配,或者要檢索的對(duì)象是一個(gè)數(shù)據(jù)塊(子

樹或表),沒有對(duì)象實(shí)例生成。在此情況下,響應(yīng)實(shí)體返回

GetResponsePDU中錯(cuò)誤狀態(tài)為noSuchName,錯(cuò)誤索引設(shè)置

為一個(gè)數(shù),指明有問題的變量。變量綁定表中不返回任何值。

tooBig:響應(yīng)實(shí)體可以提供所有要檢索的值,但是變

量太多,一個(gè)響應(yīng)PDU裝不下,這往往是由下層協(xié)議數(shù)據(jù)

單元大小限制的。這時(shí)響應(yīng)實(shí)體返回一個(gè)應(yīng)答PDU,錯(cuò)誤

狀態(tài)字段置為響應(yīng)實(shí)體可以提供所有要檢索的值,但是變

量太多,一個(gè)響應(yīng)PDU裝不下,這往往是由下層協(xié)議數(shù)據(jù)

單元大小限制的。這時(shí)響應(yīng)實(shí)體返回一個(gè)應(yīng)答PDU,錯(cuò)誤

狀態(tài)字段置為tooBig。

genError:響應(yīng)實(shí)體如不能提供至少一個(gè)對(duì)象的值,

則返回的PDU中錯(cuò)誤狀態(tài)字段置為genError,錯(cuò)誤索引置

一個(gè)數(shù),指明有問題的變量。變量綁定表中不返回任何值。

procedurereceive-getrequest;

begin

ifobjectnotavailableforgetthen

issuegetresponse(noSuchName,index)

elseifgeneratedPDUtoobigthen

issuegetresponse(tooBig)

elseifvaluenotretrievableforsomeotherreason11

issuegetresponse(genError,index)

elseissuegetresponse(variablebindings)

procedurereceive-getnextrequest;

begin

ifobjectnotavailableforgetthen

issuegetresponse(noSuchName,index)

elseifgencratedPDUtoobigthcn

issuegctrcsponsc(tooBig)

elseifvaluenotretrievableforsomeotherrcasonti

issuegctresponse(genError,index)

elseissuegetresponse(variablebindings)

end;

procedurereceive-setrequest;

begin

ifobjectnotavailableforsetthen

issuegetresponse(noSuchName,index)

elseifincinsistantobjectvaluethen

issuegetresponse(badValue,index)

elseifgeneratedPDUtoobigthen

issuegetresponse(tooBig)

elseifvaluenotsettableforsomeotherreasonthen

issuegetresponse(genError,index)

elseissuegetresponse(variablebindings)

end;

圖3.5SNMPPDU響應(yīng)處理邏輯

GetNextRequest

作用與GetRequest基本相同,PDU格式也相同,唯一

的差別是GetRequest檢索變量名是對(duì)象實(shí)例,而

GetNextRequest是“下一個(gè)”對(duì)象實(shí)例。

根據(jù)對(duì)象標(biāo)識(shí)樹的詞典順序,對(duì)于標(biāo)量對(duì)象,對(duì)象標(biāo)

識(shí)符所指的下一實(shí)例就是對(duì)象的值。

例3.1為了說明簡(jiǎn)單對(duì)象的檢索過程,考慮圖3.6所示

的例子,這是UDP組的一部分??梢栽跈z索命令中直接指明

對(duì)象實(shí)例的標(biāo)識(shí)符:

GetRequest(udpInDatagrams.0,udpNoPorts.0,

udpInErrors.0,udpOutDatagrams.0)

可以預(yù)期得到下面的響應(yīng):

GetResponse(udpInDatagrams.0=100,udpNoPorts.0=1,

udpInErrors.0=2,udpOutDatagrams.0=200)

udp(miB7)

udplnDatagrams(l)接收的數(shù)據(jù)報(bào)總。數(shù)

-------udpNoPorts(2)無應(yīng)用端口的數(shù)據(jù)報(bào)數(shù)

-------udplnErrors(3)出錯(cuò)數(shù)據(jù)報(bào)數(shù)2

-------udpOutDatagrams(4)輸出數(shù)據(jù)報(bào)數(shù)00

-------udpTable(5)

圖3.6檢索簡(jiǎn)單對(duì)象例

例3.2用GetNext命令檢索圖3.6中的4個(gè)值,直接指明對(duì)

象標(biāo)識(shí)符:

GetNextRequest(udpInDatagrams,udpNoPorts,

udpInErrors,udpOutDatagrams)

得到的響應(yīng)與上例是相同的:

GetResponse(udpInDatagrams.0=100,udpNoPorts.0=1,

udpInErrors.0=2,udpOutDatagrams.0=200)

可見標(biāo)量對(duì)象實(shí)例標(biāo)識(shí)符(例如udpInDatagrams.0)總是緊跟

在對(duì)象標(biāo)識(shí)符(例如udpInDatagrams)后面的。

例3.3如果代理不支持管理站對(duì)udpNoPorts的訪問,颼

響應(yīng)會(huì)不同。發(fā)出同樣的命令:

GetNextRequest(udpInDatagrams,udpNoPorts,

udpInErrors,udpOutDatagrams)

而得到的響應(yīng)是:

GetResponse(udpInDatagrams.0=100,

udpInErrors.0=2,

udpInErrors.0=2,udpOutDatagrams.0=200)

可見:當(dāng)代理收到一個(gè)Get請(qǐng)求時(shí),如果能檢索到所有的

對(duì)象實(shí)例,則返回請(qǐng)求的每個(gè)值;另一方面,如果有一個(gè)值不

可或不能提供,則返回該實(shí)例的下一個(gè)值。

2檢索未知對(duì)象

GetNext命令檢索變量名指示的下一個(gè)對(duì)象實(shí)例,但是并

不要求變量名是對(duì)象標(biāo)識(shí)符或者是實(shí)例標(biāo)識(shí)符。

例如udpInDatagrams是簡(jiǎn)單對(duì)象,它的實(shí)例標(biāo)識(shí)符是

udpInDatagrams.0,而標(biāo)識(shí)符udpInDatagrams.2并不表示任何

對(duì)象。如果我們發(fā)出一個(gè)命令:

GetNextRequest(udpInDatagrams.2)

則得到的響應(yīng)是:

GetResponse(udpNoPorts.0=1)

這說明代理沒有檢查標(biāo)識(shí)符udpInDatagrams.2的有效性,而是

直接查找下一個(gè)有效的標(biāo)識(shí)符,得至UudpInDatagrams.0后返回

了它的下一個(gè)對(duì)象實(shí)例。

例3.4利用GetNext的檢索未知對(duì)象的特性可以發(fā)現(xiàn)MIB的

結(jié)構(gòu)。例如管理站不知道udp組有哪些變量,先試著發(fā)出命令:

GetNextRequest(udp)

得到的響應(yīng)是:

GetResponse(udpInDatagrams.0=100)

這樣管理站知道了udp組的第一個(gè)對(duì)象,還可以繼續(xù)這樣找

到其他管理對(duì)象。

interfaces(m2ib2)mitr2=1.3.6.1.2.1

3檢索表對(duì)象

ifNumber(1)

-------ifTable(2)

GetNext可用于有效地搜索表對(duì)象cI-------ifEntry(1)

■3.5考慮圖3.7所示的例子,如iflndex(1)

-------ifDescr(2)

果我們發(fā)出下面的命令,檢索ifNumber-------ifType(3)

-------ifMtu(4)

的值:

-------ifSpeed(5)

GetRequest(1.3.6.1.2.1.2.1.0)

圖3.7檢索表對(duì)象例

GetResponse(2)

結(jié)果:有兩個(gè)接口。

ifEntry

"如果想知道每個(gè)接口的,/速率,則可以用

下面的命令檢索if表的5個(gè)器:interfaces(m2ib2)mitr2=1.3.6.1.2.1

GetReauest(1.3.6.1.幺1.2.2.1.5.1)ifNumber(1)

-------ifTable(2)

I-------ifEntry(1)

最后的1是索引項(xiàng)iflndex的值。得到的響應(yīng)是:

GetResponse(100000000)iflndex(1)

說明第一個(gè)接口的數(shù)據(jù)速率是10Mb/so-------ifDescr(2)

-------ifType(3)

如果我們發(fā)出的命令是:-------ifMtu(4)

GetNextRequest(1.3.6.1.2.1.2.2.1.5.1)-------ifSpeed(5)

則得到的是第二個(gè)接口的數(shù)據(jù)速率:

GetResponse(56000)

圖3.7檢索表對(duì)象例

說明第二個(gè)接口的數(shù)據(jù)速率是56kb/so

例3.6考慮圖3.8所示的表。假定管理站不知道該表的行數(shù)而想檢

索整個(gè)表,則可以連續(xù)使用GetNext命令:

GetNextRequest(ipRouteDest,ipRouteMetricl,ipRouteNextHop)

GetResponse(ipRouteDest.9.1.2.3=9.1.2.3,

ipRouteMetricl.9.1.2.3=3,

ipRouteNextHop.=)

ipRouteE)estIpRouteMetricipRouteNextHo

9.1.2.3399.0.0.3

10.0.0.51589.1.1.42

10.0.0.99589.1.1.42

圖3.8檢索表對(duì)象例

以上是第1行的值,據(jù)此可以檢索下一行:

GetNextRequest(ipRouteDest.9.1.2.3,

ipRouteMetricl.9.1.2.3,ipRouteNextHop.9.1.2.3)

GetResponse(ipRouteDest.10.0.0.51=10.0.0.51,

ipRouteMetricl.10.0.0.51=5,

ipRouteNextHop.1=2)

ipRouteE)estIpRouteMetricipRouteNextHo

9.1.2.3399.0.0.3

10.0.0.51589.1.1.42

10.0.0.99589.1.1.42

繼續(xù)檢索第3行和第4行:

GetNextRequest(ipRouteDest.10.0.0.51,

ipRouteMetricl.10.0.0.51,

ipRouteNextHop.10.0.0.51)

GetResponse(ipRouteDest.10.0.0.99=10.0.0.99,

ipRouteMetricl.10.0.0.99=5,

ipRouteNextHop.10.0.0.99=89.1.1.42)

GetNextRequest(ipRouteDest.10.0.0.99,

ipRouteMetricl.10.Q八cc

該對(duì)象為表外對(duì)象

ipRouteNextHop.10.

GetResponse(ipRouteDest.9.1.2.3=3/-7/

ipRouteMetricl.9.1.2.0.3,

ipNetToMedialflndex.1.3=1)

4表的更新和刪除

Set命令用于設(shè)置或更新變量的值。它的PDU格式與Get是

相同的,但是在變量綁定表中必須包含要設(shè)置的變量名和變

量值。

(1)對(duì)于Set命令的應(yīng)答也是GetResponse,同樣是原子性

的。

(2)如果所有的變量都可以設(shè)置,則更新所有變量的值,

并在應(yīng)答的GetResponse中確認(rèn)變量的新值;

如果至少有一個(gè)變量的值不能設(shè)置,則所有變量的值都

保持不變,并在錯(cuò)誤狀態(tài)中指明出錯(cuò)的原因。

(3)Set出錯(cuò)的原因與Get是類似的(tooBig、

noSuchName和genError),

然而若有一個(gè)變量的名字和要設(shè)置的值在類型、長(zhǎng)度

或?qū)嶋H值方面不匹配,則返回錯(cuò)誤條件badValue。

例3.7再一次考慮圖3.8所示的表。如果我們想改變列

象ipRouteMetricl的第一個(gè)值,則可以發(fā)出命令:

SetRequest(ipRouteMetricl.9.1.2.3=9)

得到的應(yīng)答是:

GetResponse(ipRouteMetricl.9.1.2.3=9)

其效果是該對(duì)象的值由3變成了9。

ipRouteDestIpRouteMetricipRouteNextHo

9.1.2.3399.0.0.3

10.0.0.51589.1.1.42

10.0.0.99589.1.1.42

例3.8假定想增加一行,則可以發(fā)出下面的命令:

SetRequest(ipRouteDest.11.3.3.12=11.3.3.12,

ipRouteMetric.11.3.3.12=9,

ipRouteNextHop.2=)

對(duì)這個(gè)命令如何執(zhí)行,RFC1212有3種解釋:

(1)代理可以拒絕這個(gè)命令,因?yàn)閷?duì)象標(biāo)識(shí)符ipRouteDest.H.3.3.12

不存在,所以返回錯(cuò)誤狀態(tài)noSuchName。

(2)代理可以接受這個(gè)命令,并企圖生成一個(gè)新的對(duì)象實(shí)例,但是發(fā)現(xiàn)

被賦予的值不適當(dāng),因而返回錯(cuò)誤狀態(tài)badValue。

(3)代理可以接受這個(gè)命令,生成一個(gè)新的行,使表增加到4行,并返

回下面的應(yīng)答:

GetResponse(ipRouteDest.11.3.3.12=11.3.3.12,

ipRouteMetric.11.3.3.12=9,

ipRouteNextHop.11.3.3.12=91.0.0.5)

在具體實(shí)現(xiàn)中,以上3種情況都是可能的。

例3.9假定原來是3行的表,現(xiàn)在發(fā)出下面的命令:

SetRequest(ipRouteDest.11.3.3.12=11.3.3.12)

對(duì)于這個(gè)命令也有兩種處理方法:

(1)由于變量ipRouteDest是索引項(xiàng),因而代理可以增加

一個(gè)表行,對(duì)于沒有指定值的變量賦予默認(rèn)值。

(2)代理拒絕這個(gè)操作。如果要生成新行,必須提供一行

中所有變量的值。

采用哪種方法也是由具體實(shí)現(xiàn)決定的。

例3.10如果要?jiǎng)h除表中的行,則可以把一個(gè)對(duì)象的值置

為invalid:

SetRequest(ipRouteType.7.3.5.3=invalid)

得到的響應(yīng)說明表行確已刪除:

GetResponse(ipRouteType.7.3.5.3二invalid)

這種刪除是物理的還是邏輯的,又是由具體實(shí)現(xiàn)決定的。

在MIB-2中,只有兩種表是可刪除的:ipRouteTable包含

ipRouteType,可取值invalid;ipNetToMediaTable包含

ipNetToMediaType,可取值invalid。

SNMP沒有提供向管理對(duì)象發(fā)出:1」I的機(jī)制,但是可

以利用Set命令對(duì)一個(gè)專用對(duì)象設(shè)置侑,讓這個(gè)專用對(duì)象的不

同值代表不同的命令。例如建立一個(gè)reBoot對(duì)象,可取值0或

1,分別使代理系統(tǒng)啟動(dòng)和復(fù)位。

錯(cuò)誤狀態(tài)readonly沒有在任何應(yīng)答報(bào)文中出現(xiàn)。實(shí)際上,

這個(gè)錯(cuò)誤條件在SNMPvl中是沒有用的,在以后的SNMP版本

中用另外一個(gè)錯(cuò)誤條件notWritable代替了它。

5陷入操作

>陷入是由代理向管理站發(fā)出的異步事件報(bào)告,不需要應(yīng)

答報(bào)文。SNMPvl規(guī)定了6種陷入條件,另外還有由設(shè)備制造商定

義的陷入。

>coldStart:發(fā)送實(shí)體重新初始化,代理的配置已改變,

通常是由系統(tǒng)失效引起的。

>warmStart:發(fā)送實(shí)體重新初始化,但代理的配置沒有改

變,這是正常的重啟動(dòng)過程。

>linkDown:鏈路失效通知,變量綁定表的第一項(xiàng)指明對(duì)

應(yīng)接口表的索引變量及其值。

>linkUp:鏈路啟動(dòng)通知,變量綁定表的第一項(xiàng)指明對(duì)應(yīng)

接口表的索引變量及其值。

>authenticationFailure:發(fā)送實(shí)體收到一個(gè)沒有通過認(rèn)

證的報(bào)文。

>egpNeighborLoss:相鄰的外部路由器失效或關(guān)機(jī)。

>enterpriseSpecific:由設(shè)備制造商定義的陷入條件,在特

殊陷入(specific-trap)字段指明具體的陷入類型。

3.2.4SNMP功能組

SNMP組共有30個(gè)對(duì)象。在只支持SNMP站管理功能或只

支持SNMP代理功能的實(shí)現(xiàn)中,有些對(duì)象沒有值。除最后

一個(gè)對(duì)象,這一組其他對(duì)象都是只讀計(jì)數(shù)器。對(duì)象

snmpEnableAuthenTrap可以由管理站設(shè)置,它指示是否

允許代理產(chǎn)生“認(rèn)證失效”陷入,這種設(shè)置優(yōu)先于代理自

己的配置,這樣就提供了一種可以排除所有認(rèn)證失效陷入

的手段。

snmp(m-ib11)

—snmplnPkts(1)傳輸層實(shí)體提交給SNMP實(shí)體的報(bào)文數(shù)

—snmpOutPkts(2)SNMP實(shí)體交給傳輸服務(wù)的報(bào)文數(shù)

—snmplnBadVersions(3)接收的含有版本錯(cuò)誤的報(bào)文數(shù)

—snmpInBadCommunityNames(4)接收的含有團(tuán)體名錯(cuò)誤的報(bào)文數(shù)

—snmpInBadCommunityLJses(5)接收的含有團(tuán)體操作錯(cuò)誤的報(bào)文數(shù)

—snmpInASNParseErrs(6)接收的含有ASN譯碼錯(cuò)誤的報(bào)文數(shù)

—snmp(7)未使用

—snmp!nTooBigs(8)接收的含有TooBig錯(cuò)誤的報(bào)文數(shù)

一snmpInNoSnchNames(9)接收的含有NoSuchName錯(cuò)誤的報(bào)文數(shù)

一snmplnBadValues(l0)接收的含有BadValue錯(cuò)誤的報(bào)文數(shù)

—snmpInReadOnlys(l1)接收的含有ReadOnly錯(cuò)誤的報(bào)文數(shù)

—snmplnGenErrs(12)接收的含有GenErr錯(cuò)誤的報(bào)文數(shù)

—snmp!nTotalReqVars(l3)成功檢索的MIB對(duì)象數(shù)

一snmplnTotalSetVars(l4)成功設(shè)置的MIB對(duì)象數(shù)

一snmplnGetRequests(15)接收和處理的Get請(qǐng)求數(shù)

一snmpInGetNexts(l6)接收和處理的GetNext請(qǐng)求數(shù)

一snmpInSetRequests(l7)接收和處理的Set請(qǐng)求數(shù)

一snmpInGetResponses(l8)接收和處理的GetResponse報(bào)文數(shù)

一snmpInTraps(l9)接收和處理的Trap報(bào)文數(shù)

—snmpOutTooBigs(20)產(chǎn)生的含有TooBig錯(cuò)誤的報(bào)文數(shù)

-snmpOutNoSuchNames(21)產(chǎn)生的含有NoSuchName錯(cuò)誤的報(bào)文數(shù)

-snmpOutBadValues(22)產(chǎn)生的含有BadValue錯(cuò)誤的報(bào)文數(shù)

—snmp(23)未使用

—snmpOutGenErrs(24)產(chǎn)生的含有GenERR錯(cuò)誤的報(bào)文數(shù)

一snmpOutGetRequests(25)產(chǎn)生的Get請(qǐng)求數(shù)

一snmpOutGetNexts(26)產(chǎn)生的GetNext請(qǐng)求數(shù)

—snmpOutSetRequests(27)產(chǎn)生的Set請(qǐng)求數(shù)

一snmpOutGetResponses(28)產(chǎn)生的GetResponse報(bào)文數(shù)

—snmpOutTraps(29)產(chǎn)生的Trap報(bào)文數(shù)

—snmpEnableAuthenTraps(30)認(rèn)證失效陷入工作(1),認(rèn)證失效陷入不工作(2)

圖3.9MIB-2SNMP功能組

In

CN

.

m

3.2.5實(shí)現(xiàn)問題

3.2.5.1管理站應(yīng)實(shí)現(xiàn)的功能

支持?jǐn)U展的MIB:強(qiáng)有力的SNMP對(duì)管理信息庫的支持必須是

開放的。特別對(duì)于管理站來說,應(yīng)該能夠裝入其他制造商定

義的擴(kuò)展MIB。

圖形用戶接口:能夠顯示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、顯示設(shè)備的地理位

置和狀態(tài)信息,可以計(jì)算并顯示通信統(tǒng)計(jì)數(shù)據(jù)圖表,具有各

種輔助計(jì)算工具等。

自動(dòng)發(fā)現(xiàn)機(jī)制:要求管理站能夠自動(dòng)發(fā)現(xiàn)代理系統(tǒng),能夠自

動(dòng)建立圖標(biāo)并繪制出連接圖形。

可編程的事件:支持用戶定義事件,以及出現(xiàn)這些事件

時(shí)執(zhí)行的動(dòng)作。例如路由器失效時(shí)應(yīng)閃動(dòng)圖標(biāo)或改變圖

標(biāo)的顏色,顯示錯(cuò)誤狀態(tài)信息,向管理員發(fā)送電子郵件,

并啟動(dòng)故障檢測(cè)程序等。

高級(jí)網(wǎng)絡(luò)控制功能:例如配置管理站使其可以自動(dòng)地關(guān)

閉有問題的集線器、自動(dòng)地分離出活動(dòng)過度頻繁的網(wǎng)段

等。

面向?qū)ο蟮墓芾砟P停篠NMP其實(shí)不是面向?qū)ο蟮南到y(tǒng)。

但很多產(chǎn)品是面向?qū)ο蟮南到y(tǒng),也能支持SNMP。

用戶定義的圖標(biāo):方便用戶為自己的網(wǎng)絡(luò)設(shè)備定義有表

現(xiàn)力的圖標(biāo)。

輪詢頻率

SNMP定義的陷入類型是很少的,所以管理站主要

靠輪詢收集信息。

通常輪詢頻率與網(wǎng)絡(luò)的規(guī)模和代理的多少有關(guān)。

而網(wǎng)絡(luò)管理性能還取決于管理站的處理速度、子網(wǎng)數(shù)

據(jù)速率、網(wǎng)絡(luò)擁擠程度等眾多的其他因素,所以很難

給出準(zhǔn)確的判斷規(guī)則。

為了使問題簡(jiǎn)化,我們假定管理站一次只能與一

個(gè)代理作用,輪詢只是采用get請(qǐng)求/響應(yīng)這種簡(jiǎn)單形

式,而且管理站全部時(shí)間都用來輪詢。

轉(zhuǎn)詢頻率

我們有下面的不等式:

NWT/A,

其中N=被輪詢的代理數(shù)

1=輪詢間隔

人=單個(gè)輪詢需要的時(shí)間。

A與下列因素有關(guān):

管理站生成一個(gè)請(qǐng)求報(bào)文的時(shí)間

從管理站到代理的網(wǎng)絡(luò)延遲

代理處理一個(gè)請(qǐng)求報(bào)文的時(shí)間

代理產(chǎn)生一個(gè)響應(yīng)報(bào)文的時(shí)間

從代理到管理站的網(wǎng)絡(luò)延遲

管理站處理一個(gè)響應(yīng)報(bào)文的時(shí)間

為了得到需要的管理信息,交換請(qǐng)求/響應(yīng)報(bào)文的數(shù)量

例1假設(shè)有一個(gè)LAN,每15分鐘輪詢所有被管

理設(shè)備一次(這在當(dāng)前的TCP/IP網(wǎng)絡(luò)中是典型

的),管理報(bào)文的處理時(shí)間是50ms,網(wǎng)絡(luò)延

遲為1ms(每個(gè)分組1000字節(jié)),沒有產(chǎn)生明顯

的網(wǎng)絡(luò)擁擠,則:

A=50*4+l*2=202ms=0.202s,

N三T/A=15X60/0.202=4500

即管理站最多可支持4500個(gè)設(shè)備。

例2在由多個(gè)子網(wǎng)組成的廣域網(wǎng)中,網(wǎng)絡(luò)延遲

更大,數(shù)據(jù)速率更小,通信距離更遠(yuǎn),而且還有

路由器和網(wǎng)橋引入的延遲,總的網(wǎng)絡(luò)延遲可能達(dá)

到半秒鐘,A大約是L2s,于是有

N^T/A=15X60/1.2=750

管理站可支持的設(shè)備最多為750個(gè)。

3.2.6SNMPvl的局F艮性

(1)由于輪詢性能限制,不適合管理大網(wǎng)絡(luò)。

(2)不適合檢索大量數(shù)據(jù)。

(3)陷入報(bào)文是沒有應(yīng)答的,管理站是否收到陷

入報(bào)文,代理不得而知。這樣可能丟掉重要的管理

信息。

(4)只提供簡(jiǎn)單團(tuán)體名認(rèn)證,安全措施不夠。

(5)不能直接向被管理設(shè)備發(fā)送命令。

(6)管理信息庫MIB-2支持的管理對(duì)象有限,不

足以完成復(fù)雜的管理功能。

(7)不支持管理站之間的通信。

3.3SNMPv2

SNMPv2SMI對(duì)SNMPvlSMI進(jìn)行了擴(kuò)充,

提供了更嚴(yán)格的規(guī)范,規(guī)定了新管理對(duì)象和MIB

文件,是SNMPvlSMI的超集。

SNMPvlSMI引入了4個(gè)關(guān)鍵的概念:

?對(duì)象的定義

A概念表

A通知的定義

?信息模塊

3.3.1SNMPv2管理信息結(jié)構(gòu)

1.對(duì)象的定義

與SNMPvl一樣,SNMPv2也是用ASN.1宏定義

OBJECT-TYPE表示管理對(duì)象的語法和語義,但

是SNMPv2的OBJECT-TYPE增加了新的內(nèi)容。

OBJECT-TYPEMACRO::=BEGIN

TYPENOTATION::="SYNTAX"Syntax

UnitsPart

MMAX-ACCESS11Access

“STATUS"Status

“DESCRIPTION"Text

ReferPart

IndexPart

DefValPart

VALUENOTATION::=value(VALUEObjectName)

END

圖3/0SNMPv2對(duì)象宏定義

圖3?10所示列出了SNMPv2宏定義的主要部分,與SNMPvl

的宏定義有以下差別:

(1)數(shù)據(jù)類型。

?SNMPv2增加了兩種新的數(shù)據(jù)類型Unsigned32和

Counter64o

?Unsigned32與Gauge32在ASN.1中是無區(qū)別的,都是32

位的整數(shù),但在SNMPv2中語義不一樣。

?Counter64與Counter32一樣,都表示計(jì)數(shù)器,只能增

加,不能減少,當(dāng)增加至U264-1或232-1時(shí)回零,從頭再增加。

?SNMPv2規(guī)定,計(jì)數(shù)器沒有定義的初始值,因此計(jì)數(shù)

器的單個(gè)值是沒有意義的,只有連續(xù)兩次讀取計(jì)數(shù)器得

到的增加值才是有意義的。

關(guān)于Gauge32,SNMPv2規(guī)范澄清了原來標(biāo)準(zhǔn)中一些含糊不清的陷戮^

地方。

?在SNMPv2中規(guī)定Gauge32的最大值可以設(shè)置為小于232的任

意正數(shù)MAX,而在SNMPvl中Gauge32的最大值總是232/。

?SNMPv2明確了當(dāng)計(jì)量器達(dá)到最大值時(shí)可自動(dòng)減少,而在

RFC1155中只是說計(jì)量器的值“鎖定”(Latch)在最大值,但是

“鎖定”的含義并沒有定義。

(a)SNMPv2計(jì)量器(b)SNMPvl計(jì)量器

圖3-11SNMPvl計(jì)量器和SNMPv2計(jì)量器的比較

(2)UNITS子句。

在SNMPv2^OBJECT-TYPE^定義中增加了UNITS子

句。這個(gè)子句用文字說明與對(duì)象有關(guān)的度量單位。當(dāng)管理

對(duì)象表示一種度量手段(如時(shí)間)時(shí)這個(gè)子句是有用的。

(3)MAX?ACCESS子句。類彳以于SNMPvl的ACCESS

子句,說明最大的訪問級(jí)別,與授權(quán)策略無關(guān)。

SNMPv2定義的訪問類型中去掉了write-only類,

增加了一個(gè)與概念行有關(guān)的訪問類型read?create,表

示可讀、可寫和可生成。

還增加Taceessible-for-notify訪問類,這種訪問方式

與陷入有關(guān)。

例如,下面是SNMPv2MIB中關(guān)于陷入的定義,其

中用到了accessible-for-notifyo

snmpTrapOIDOBJECT-TYPE

SYNTAXOBJECTIDENTIFIER

MAX-ACCESSaccessible-for-notify

STATUScurrent

DESCRIPTION

“Theauthoritativeidentiflcationofthetrapcurrently

Beingsent.Thisvariableoccursasthesecondvarbindin

EverySNMPv2-Trap-PDUandInformRequest-PDU.H

:={snmpTrap1}

SNMPv2的5種訪問級(jí)別由小到大排列如下:

not-accessible;accessible-for-notify;

read-only;read-write;read-create。

(4)STATUS子句。這個(gè)子句指明對(duì)象狀態(tài)。SNMPv2

標(biāo)準(zhǔn)去掉了SNMPvl中的optional和mandatory,只有3種

可選狀態(tài)。

Current:表示在當(dāng)前的標(biāo)準(zhǔn)中是有效的。

Obsolete:表示不必實(shí)頊這種對(duì)象。

deprecated:表示對(duì)象」經(jīng)過時(shí)了,但是為了兼容舊版本

實(shí)現(xiàn)互操作,實(shí)現(xiàn)時(shí)還要支持這種對(duì)象。

2.表的定義

與SNMPvl一樣,SNMPv2的管理操作只能作用于標(biāo)

量對(duì)象,復(fù)雜的信息要用表來表示。

按照SNMPv2規(guī)范,表是行的序列,而行是列對(duì)象的

序列。

SNMPv2把表分為以下兩類。

(1)禁止刪除利生成行的表。這種表的最高的訪

問級(jí)別是read-write。在很多情況下這種表由代理

控制,表中只包含read-only型的對(duì)象。

(2)允許刪除和卓成行的表。這種表開始時(shí)可能

沒有行,由管理立狂即刪除行。行數(shù)可由管理

站或代理改變。

■這種表中,必須有一.

個(gè)列對(duì)象,其SYNTAX

子句的值為Rowstatus

表的格式:

在SNMPv2表的定義中必含有INDEX或AUGMENTS子

句,但是只能有兩者其中之一。INDEX子句定義了一個(gè)

基本概念行,而INDEX子句中的索引對(duì)象確定了一個(gè)概

念行實(shí)例。

petTableOBJECT-TYPE

SYNTAXSEQUENCEOFPetEntry

MAX-ACCESSnot-accessible

STATUScurrent

DESCRIPTION

"Theconceptualtablelistingthecharacteristicsofallpets1ivingatthisagent."

::={A}

petEntryOBJECT-TYPE

SYNTAXPetEntry

MAX-ACCESSnot-accessible

STATUScurrent

DESCRIPTION

圖3.12不允許生成和刪除行的表

"Anentry(conceptualrow)inthepetTable.TheTableisindexedbytypeofanima1.

Withineachanimaltype,individualpetsareindexedbyauniquenumericalsequence

number."

INDEX{petType,petindex)

{petTable1}

PetEntrySEQUENCE{

0CTET

petType

INI%WG'

petindex

INTEGER

petCharacteristic1

5

petCharacteristic2INTEGER)

圖3.12不允許生成和刪除行的表

petTypeOBJECT-TYPE

SYNTAXOCTET

STRING

MAX-ACCESSnot-accessible

STATUS

current

DESCRIPTION

"AnauxiliaryvariableusedtoidentifyinstancesofthecolumnarobjectinthepetTable."

::={petEntry1}

petindex0BJECT-TYPE

SYNTAXINTEGER

MAX-ACCESSread-only

STATUScurrent

DESCRIPTION

"AnauxiliaryvariableusedtoidentifyinstancesofthecolumnarobjectinthepetTable."

::={petEntry2}

圖3.12不允許生成和刪除行的表

petCharacteristic1OBJECT-TYPE

SYNTAX

INTEGER

MAX-ACCESSread-only

STATUS

current

::={petEntry3}

petCharacteristic2OBJECT-TYPE

SYNTAX

INTEGER

MAX-ACCESSread-only

STATUS

current

::={petEntry4}

圖3.12不允許生成和刪除行的表

AUGMENTS子句的作用是代替INDEX子句,表示概念行

的擴(kuò)展。圖3.14是這種表的一個(gè)例子,這個(gè)表是由petTable

擴(kuò)充的表。

在擴(kuò)充表中,AUGMENTS子句中的變量(petEntry)叫做基

本概念行,包含AUGMENTS子句的對(duì)象(moreEntry)叫做

概念行擴(kuò)展。

實(shí)質(zhì):在已定義的表對(duì)象的基礎(chǔ)上通過增加列對(duì)象定義新

表,而不必從頭做起重寫所有的定義。

moreTableOBJECT-TYPE

SYNTAXSEQUENCEOFMoreEntry

MAX-ACCESSnot-accessible

STATUScurrent

DESCRIPTION

“Atableofadditionalpet

objects.〃

::={B}

moreEntryOBJECT-TYPE

SYNTAXMoreEntry

MAX-ACCESSnot-accessible

STATUScurrent

DESCRIPTION

“AdditionalobjectsforapetTableentry.

AUGMENTS{petEntry)

::={moreTable1}

MoreEntry::=SEQUENCE{

nameOfPetOCTETSTRING,

dateOfLastVisit

nameOfPetOBJiBWFme}

SYNTAXOCTETSTRING

MAX-ACCESSread-on1y

STAT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論