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

下載本文檔

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

文檔簡介

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

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

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

SNMPv3三個不同的版本和一系列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月提出簡單網(wǎng)關(guān)監(jiān)控協(xié)議(SGMP)

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

1991年的幾個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)作為長期解決辦法,可提供更全面

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

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

3.1.2SNMPv2

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

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

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

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

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

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

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

度和效率、安全措施、兼容性等方面對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簡介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)識、報文完整性認(rèn)證、防止

重放、報文機(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:

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

使用管理者■代理模型,

僅支持對管理對象值的檢索和修改等簡單操作。

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

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

不足:

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

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

管理站不能向管理對象發(fā)出執(zhí)行一個動作的命令。

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

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

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

RFC1157使用ASN.1定義SNMPvl。

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

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

SNMP報文

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

GetRequestPDU、GetNextRequestPDU和SetRequestPDU

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

GetResponsePDU

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

TrapPDU

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

變量綁定表

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

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

版本號是SNMP版本,RFC1157為第1版。

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

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

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

的,GetRequestGetNextRequestSetRequest

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

(3)TrapPDU

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

段:

PDU類型:有5種

GetRequestPDU

GetNextRequestPDU

SetRequestPDU

GetResponsePDU

TrapPDU

請求標(biāo)識(request-id):賦予每個請求報文唯一的整數(shù),

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

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

識與請求報文配對。請求標(biāo)識的另一個作用是檢測由不

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

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

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

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

readOuly(4)genError(5)。

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

量。

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

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

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

?TrapPDU報文,有下列字段:

?PDU類型:TrapPDU

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

MIB-2對象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)的特

殊陷入代碼。

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

與MIB-2中的對象sysUpTime的值相同。

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

>SNMP報文在管理站和代理之間傳送,包含GetRequest

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

GetResponse響應(yīng)。

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

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

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

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

識。

管理站代理管理站代理

GSResponsePOU^

管理站代理管理站代理

E!^9WPD[£^

^^^jTrapPp^^--

<S^tResponsePSu"

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

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

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

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

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

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

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

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

成報文;

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

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

圖3?3所小。

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

接收報文時執(zhí)行下面的過程:

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

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

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

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

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

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

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

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

況。無論何種檢驗失敗,都丟棄報

文。

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

圖3-4接收和處理SNMP報文

變量綁定表

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

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

次檢索多個管理對象,則可以把多個變量的值裝

入一個PDU,這時要用到變量綁定表。

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

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

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

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

3.2.3SNMPvl操作

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

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

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

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

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

3.2.3SNMPvl操作

1.檢索簡單對象

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

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

多個標(biāo)量對象的值。

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

Response響應(yīng)。

>GetResponse操作具有原子性,如果所有請求的對象值

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

能返回下列錯誤條件:

noSuchName:變量綁定表中的一個對象無法與MIB中的

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

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

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

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

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

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

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

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

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

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

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

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

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

一個數(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檢索變量名是對象實(shí)例,而

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

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

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

例3.1為了說明簡單對象的檢索過程,考慮圖3.6所示

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

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

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ù)報總。數(shù)

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

-------udplnErrors(3)出錯數(shù)據(jù)報數(shù)2

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

-------udpTable(5)

圖3.6檢索簡單對象例

例3.2用GetNext命令檢索圖3.6中的4個值,直接指明對

象標(biāo)識符:

GetNextRequest(udpInDatagrams,udpNoPorts,

udpInErrors,udpOutDatagrams)

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

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

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

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

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

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

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

GetNextRequest(udpInDatagrams,udpNoPorts,

udpInErrors,udpOutDatagrams)

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

GetResponse(udpInDatagrams.0=100,

udpInErrors.0=2,

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

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

對象實(shí)例,則返回請求的每個值;另一方面,如果有一個值不

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

2檢索未知對象

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

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

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

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

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

GetNextRequest(udpInDatagrams.2)

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

GetResponse(udpNoPorts.0=1)

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

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

了它的下一個對象實(shí)例。

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

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

GetNextRequest(udp)

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

GetResponse(udpInDatagrams.0=100)

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

到其他管理對象。

interfaces(m2ib2)mitr2=1.3.6.1.2.1

3檢索表對象

ifNumber(1)

-------ifTable(2)

GetNext可用于有效地搜索表對象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檢索表對象例

GetResponse(2)

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

ifEntry

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

下面的命令檢索if表的5個器: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是索引項iflndex的值。得到的響應(yīng)是:

GetResponse(100000000)iflndex(1)

說明第一個接口的數(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)

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

GetResponse(56000)

圖3.7檢索表對象例

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

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

索整個表,則可以連續(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檢索表對象例

以上是第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

該對象為表外對象

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)對于Set命令的應(yīng)答也是GetResponse,同樣是原子性

的。

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

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

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

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

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

noSuchName和genError),

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

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

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

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

SetRequest(ipRouteMetricl.9.1.2.3=9)

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

GetResponse(ipRouteMetricl.9.1.2.3=9)

其效果是該對象的值由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=)

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

(1)代理可以拒絕這個命令,因為對象標(biāo)識符ipRouteDest.H.3.3.12

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

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

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

(3)代理可以接受這個命令,生成一個新的行,使表增加到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)

對于這個命令也有兩種處理方法:

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

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

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

中所有變量的值。

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

例3.10如果要刪除表中的行,則可以把一個對象的值置

為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沒有提供向管理對象發(fā)出:1」I的機(jī)制,但是可

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

同值代表不同的命令。例如建立一個reBoot對象,可取值0或

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

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

這個錯誤條件在SNMPvl中是沒有用的,在以后的SNMP版本

中用另外一個錯誤條件notWritable代替了它。

5陷入操作

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

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

義的陷入。

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

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

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

變,這是正常的重啟動過程。

>linkDown:鏈路失效通知,變量綁定表的第一項指明對

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

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

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

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

證的報文。

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

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

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

3.2.4SNMP功能組

SNMP組共有30個對象。在只支持SNMP站管理功能或只

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

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

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

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

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

的手段。

snmp(m-ib11)

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

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

—snmplnBadVersions(3)接收的含有版本錯誤的報文數(shù)

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

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

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

—snmp(7)未使用

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

一snmpInNoSnchNames(9)接收的含有NoSuchName錯誤的報文數(shù)

一snmplnBadValues(l0)接收的含有BadValue錯誤的報文數(shù)

—snmpInReadOnlys(l1)接收的含有ReadOnly錯誤的報文數(shù)

—snmplnGenErrs(12)接收的含有GenErr錯誤的報文數(shù)

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

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

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

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

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

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

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

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

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

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

—snmp(23)未使用

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

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

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

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

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

—snmpOutTraps(29)產(chǎn)生的Trap報文數(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對管理信息庫的支持必須是

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

義的擴(kuò)展MIB。

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

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

種輔助計算工具等。

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

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

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

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

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

并啟動故障檢測程序等。

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

閉有問題的集線器、自動地分離出活動過度頻繁的網(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ī)則。

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

個代理作用,輪詢只是采用get請求/響應(yīng)這種簡單形

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

轉(zhuǎn)詢頻率

我們有下面的不等式:

NWT/A,

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

1=輪詢間隔

人=單個輪詢需要的時間。

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

管理站生成一個請求報文的時間

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

代理處理一個請求報文的時間

代理產(chǎn)生一個響應(yīng)報文的時間

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

管理站處理一個響應(yīng)報文的時間

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

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

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

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

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

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

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

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

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

例2在由多個子網(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個。

3.2.6SNMPvl的局F艮性

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

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

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

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

信息。

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

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

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

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

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

3.3SNMPv2

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

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

文件,是SNMPvlSMI的超集。

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

?對象的定義

A概念表

A通知的定義

?信息模塊

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

1.對象的定義

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

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

是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對象宏定義

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

的宏定義有以下差別:

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

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

Counter64o

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

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

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

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

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

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

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

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

地方。

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

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

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

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

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

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

圖3-11SNMPvl計量器和SNMPv2計量器的比較

(2)UNITS子句。

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

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

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

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

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

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

增加了一個與概念行有關(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種訪問級別由小到大排列如下:

not-accessible;accessible-for-notify;

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

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

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

可選狀態(tài)。

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

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

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

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

2.表的定義

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

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

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

序列。

SNMPv2把表分為以下兩類。

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

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

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

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

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

站或代理改變。

■這種表中,必須有一.

個列對象,其SYNTAX

子句的值為Rowstatus

表的格式:

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

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

基本概念行,而INDEX子句中的索引對象確定了一個概

念行實(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是這種表的一個例子,這個表是由petTable

擴(kuò)充的表。

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

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

概念行擴(kuò)展。

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

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

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

最新文檔

評論

0/150

提交評論