【正文】
對象被刪除了,同時又增加了一些新對象 ? 3. MIB對象組 ? 這個新組包含的對象與管理對象的控制有關(guān),分為兩個子組 ? 第一個子組 snmpTrap由兩個對象組成: ? snmpTrapOID ? snmpTrapEnterprise ? 第二個子組 snmpSet僅有一個對象 snmpSerialNo,這個對象用于解決 set操作中可能出現(xiàn)的兩個問題: ? 一個管理站可能向同一 MIB對象發(fā)送多個 set操作,保證這些操作按照發(fā)送的順序在 MIB中執(zhí)行是必要的,即使在傳送過程中次序發(fā)生了錯亂。 ? 多個管理站對 MIB的并發(fā)操作可能破壞了數(shù)據(jù)庫的一致性和精確性。 ? 解決這些問題的方法如下。 snmpSerialNo的語法是TestAndIncr(文字約定為 0..2147483647之間的一個整數(shù) ),假設(shè)它的當前值是 K, ? 1)如果代理收到的 set操作置 snmpSerialNo的值為K,則這個操作成功,響應(yīng) PDU中返回 K值,這個對象的新值增加為 K+1( mod 231) 。 ? 2)如果代理收到一個 set操作,置這個對象的值不等于 K,則這個操作失敗,返回錯誤 ? 值 inconsistentValue. ? 4. 接口組 ? MIB2定義的接口組經(jīng)過一段時間的使用,發(fā)現(xiàn)有很多缺陷 ? RFC1573 對 MIB2接口組做了一些小的修改,主要是糾正了上面提到的有些問題。 ? RFC1573還對接口組增加了 4個新表 ? 5. 接口擴展表 ? 6. 接口堆棧表 ? 接口堆棧表說明接口表中屬于同一物理接口的各個行之間的關(guān)系,指明哪些子層運行于哪些子層之上 ? 7. 接口測試表 ? 接口測試表的作用是由管理站指示代理系統(tǒng)測試接口的故障 ? 8. 接收地址表 ? 接收地址表包含每個接口對應(yīng)的各種地址(廣播地址、組播地址和單地址) ? SNMPv2提供了 3種訪問管理信息的方法: ? 管理站和代理之間的請求 /響應(yīng)通信,這種方法與SNMPv1是一樣的。 ? 管理站和管理站之間的請求 /響應(yīng)通信,這種方法是 SNMPv2特有的,可以由一個管理站把有關(guān)管理信息告訴另外一個管理站。 ? 代理系統(tǒng)到管理站的非確認通訊,即由代理向管理站發(fā)送陷入報文,報告出現(xiàn)的異常情況。 SNMPv1中也有對應(yīng)的通信方式。 ? SNMPv2報文的結(jié)構(gòu)分為 3部分:版本號、團體名和作為數(shù)據(jù)傳送的 PDU。 ? SNMPv2實體發(fā)送一個報文一般要經(jīng)過下面 4個步驟: ? 根據(jù)要實現(xiàn)的協(xié)議操作構(gòu)造 PDU; ? 把 PDU、源和目標端口地址以及團體名傳送給認證服務(wù),認證服務(wù)產(chǎn)生認證碼或?qū)?shù)據(jù)進行加密,返回結(jié)果; ? 加入版本號和團體名,構(gòu)造報文; ? 進行 BER編碼,產(chǎn)生 0/1比特串,發(fā)送出去 ? SNMPv2實體接收到一個報文后要完成下列動作: ? 對報文進行語法檢查,丟棄出錯的報文; ? 把 PDU部分、源和目標端口號交給認證服務(wù)。如果認證失敗,發(fā)送一個陷入,丟棄報文; ? 如果認證通過,則把 PDU轉(zhuǎn)換成 ; ? 協(xié)議實體對 PDU做句法檢查,如果通過,根據(jù)團體名和適當?shù)脑L問策略作相應(yīng)的處理。 ? SNMPv2 共有 6種協(xié)議數(shù)據(jù)單元,分為 3種 PDU格式 P D U 類 型 P D U 類 型 P D U 類 型請 求 標 識請 求 標 識請 求 標 識 錯 誤 索 引 錯 誤 狀 態(tài)非 重 復(fù) 數(shù) N最 大 后 繼 數(shù) M變 量 綁 定 表變 量 綁 定 表變 量 綁 定 表00( a ) G e t R e q u e s t 、 G e t N e x t R e q u e s t 、 S e t R e q u e s t 、 I n f o r m R e q u e s t 和 T r a p ( b ) R e s p o n s e P D U ( c ) G e t B u l k R e q u e s t P D U? 這些協(xié)議數(shù)據(jù)單元在管理站和代理系統(tǒng)之間或者是兩個管理站之間交換,以完成需要的協(xié)議操作 ? 如果該變量的對象標識符前綴不能與這一請求可訪問的任何變量的對象標識符前綴匹配,則返回一個錯誤值noSuchObject; ? 如果變量名不能與這一請求可訪問的任何變量名完全匹配,則返回一個錯誤值 noSuchInstance。這種情況可能出現(xiàn)在表訪問中:訪問了不存在的行,或正在生成中的表行等; ? 如果不屬于以上情況,則在變量綁定表中返回被訪問的值。 ? 如果由于任何其它原因而處理失敗,則返回一個錯誤狀態(tài)genErr,對應(yīng)的錯誤索引指向有問題的變量。 ? 如果生成的響應(yīng) PDU太大,超過了本地的或請求方的最大報文限制,則放棄這個 PDU,構(gòu)造一個新的響應(yīng) PDU,其錯誤狀態(tài)為 tooBig,錯誤索引為 0,變量綁定表為空。 ? 對變量綁定表中指定的變量在 MIB中查找按照詞典順序的后繼變量,如果找到,返回該變量(對象實例)的名字和值。 ? 如果找不到按照詞典順序的后繼變量,則返回請求PDU中的變量名和錯誤值 endOfMibView。 ? 如果出現(xiàn)其它情況使得構(gòu)造響應(yīng) PDU失敗,以與GetRequest類似的方式返回錯誤值。 ? 假設(shè) GetBulkRequestPDU變量綁定表中有 L個變量,該 PDU的 “ 非重復(fù)數(shù) ” 字段的值為 N,則對前 N個變量應(yīng)各返回一個詞典后繼。再設(shè)請求 PDU的 “ 最大后繼數(shù) ” 字段的值為 M,則對其余的 R=LN個變量應(yīng)該各返回最多 M個詞典后繼。如果可能,總共返回N+R*M個值。如果在任何一步查找過程中遇到不存在后繼的情況,則返回錯誤值 endOfMibView。 ? 這個請求的格式和語義與 SNMPv1的基本相同,差別是處理響應(yīng)的方式不同。 SNMPv2實體分兩個階段處理這個請求的變量綁定表,首先是檢驗操作的合法性,然后再更新變量。如果至少有一個變量綁定對的合法性檢驗沒有通過,則不進行下一階段的更新操作。所以這個操作與 SNMPv1一樣,是原子性的