第三章SNMPv1
3.1SNMPv1協(xié)議數(shù)據(jù)單元
1、SNMPv1支持的操作
僅支持對象值的檢索和修改
a)Get:檢索管理信息庫中標(biāo)量對象的值
b)Set:管理站用于設(shè)置管理信息庫中標(biāo)量對象的值
c)Trap:代理用于向管理站報告管理對象的狀態(tài)變化
SNMP不支持管理站改變管理信息庫中的葉子節(jié)點,不能增加和刪除MIB中的管理對象實例。管理站也不能向管理對象發(fā)出執(zhí)行一個動作的命令。管理站只能逐個訪問管理信息庫中的葉子節(jié)點,不能一次性訪問一個子數(shù)。
2、SNMPv1PDU格式
管理站和代理站之間交換的管理信息構(gòu)成SNMP報文,由三部分組成:版本號、團(tuán)體名、協(xié)議數(shù)據(jù)單元(PDU)。
SNMP有5種管理操作,只有4種PDU,管理站發(fā)出三種請求報文GetRequest,GetNextRequest和SetRequest采用的格式是一樣的。代理的應(yīng)答報文只有一種:GetResponse.除Trap外,4種pdu格式相同,共有5個字段:
a)PDU類型:共5種類型
b)請求標(biāo)識:賦予每個請求報文的整數(shù),用于區(qū)別不同請求
c)錯誤狀態(tài):共有5種錯誤狀態(tài):noerror(1),tooBig(1),noSuchName(2),badOnly(4),genError(5)
d)錯誤索引當(dāng)錯誤狀態(tài)非0時指出出錯的變量
e)變量綁定表:變量名和對應(yīng)值的表
Trap包含:
制造商ID
代理地址
一般陷入:SNMP定義6類:
特殊陷入:與設(shè)備有關(guān)的特殊陷入代碼
時間戳:代理發(fā)出陷入的時間
3、報文應(yīng)答序列
a)GetRequest
b)GetNextRequest
c)SetRequest
d)GetResponse
e)Trap,不需要應(yīng)答
4、報文的發(fā)送和接收過程
當(dāng)一個SNMP協(xié)議實體(PE)發(fā)送一個報文時執(zhí)行以下過程P71
a)按照ASN1的格式構(gòu)造PDU,交給認(rèn)證進(jìn)程
b)認(rèn)證進(jìn)程檢查源和目標(biāo)之間是否可以通信
c)通過檢查,相關(guān)的版本號、團(tuán)體名、PDU組裝成報文
d)經(jīng)過BER編碼,絞傳輸實體發(fā)送出去
當(dāng)一個SNMP協(xié)議實體(PE)接收一個報文時執(zhí)行以下過程:
按照BER編碼恢復(fù)ASN1報文
1、對報文驗證版本號和認(rèn)證信息
2、通過分析和驗證,分離出協(xié)議數(shù)據(jù)單元,進(jìn)行語法分析
3、必要時經(jīng)過適當(dāng)處理返回應(yīng)答報文
4、如果認(rèn)證檢驗失敗,生成一個陷入報文,向發(fā)送站報告通信異常情況。
如希望檢索多個管理對象,則要把多個管理對象裝入一個PDU,這就用到變量綁定表
3.2SNMPv1的安全機制
SNMP的安全機制很簡單,只驗證團(tuán)體名。
1、團(tuán)體的概念:SNMP網(wǎng)絡(luò)管理是一種分布式應(yīng)用,這種應(yīng)用的特點是管理站和被管理站之間的關(guān)系可以是一對多的關(guān)系,即一個管理站可以管理多個代理,從而管理多個被管理設(shè)備。只有屬于同一團(tuán)體的管理站和被管理站才能互相作用,發(fā)送給不同團(tuán)體的報文被忽略。
SNMP的團(tuán)體是一個代理和多個管理站之間的認(rèn)證和訪問控制關(guān)系
2、SNMPv1的簡單認(rèn)證過程:RFC1157提供的只是簡單的認(rèn)證方案:從管理站發(fā)送到代理的報文(Get,Set)都有一個團(tuán)體名,就像口令字一樣。
3、SNMPv1可采用的訪問策略:訪問控制有兩方面含義:
a)MIB視閾:MIB中對象的一個子集,對不同的團(tuán)體可以定義不視閾(View)。
b)訪問模式:集合{read-only,read-write}的一個元素。
團(tuán)體的形象(Profile):有關(guān)一個團(tuán)體的MIB視閾和訪問模式的組合叫做該團(tuán)體的~,團(tuán)體的形象由代理中MIB對象的一個子集和這些對象的訪問模式組成。
SNMP團(tuán)體和SNMP團(tuán)體形象的組合叫做訪問策略。
4、轉(zhuǎn)換代理在SNMP中的作用:委托代理是代表不支持SNMP的設(shè)備工作的。其作用是減少被代理的設(shè)備與管理站之間的交互過程。
3.3SNMPv1的操作(綜合應(yīng)用)
1、檢索簡單標(biāo)量對象值的方法:使用Get操作,如果變量綁定表中包含多個變量,一次可以檢索多個標(biāo)量對象的值。
GetResponse操作的原子性:如果請求對象的值可以得到,則給與應(yīng)答;反之,返回下列錯誤之一:
1)變量綁定表中的一個對象無法與MIB中的任何對象標(biāo)示符匹配,或要檢索的對象是一個數(shù)據(jù)塊(子樹和表),沒有對象實例生成。返回的GetResponsePDU中錯誤狀態(tài)字段為noSuchName
2)由于上下層協(xié)議限制,響應(yīng)實體可以提供所要檢索的值,但變量太多,一個相應(yīng)PDU裝不下,tooBig
3)由于其它原因響應(yīng)實體至少不能提供一個對象的值,返回genError
例:3.1P74、75
2、檢索未知對象的方法P76:使用GetNext命令檢索變量名指示的下一個對象實例。如果交叉標(biāo)示符沒有有效性,直接查找下一個有效的標(biāo)示符,并返回對象實例。如果不知道UDP組內(nèi)有哪些變量可以直接發(fā)送GetNextRequest(udp),將得到響應(yīng)是UDP組內(nèi)的第一個對象。
3、檢索表對象的方法P76:使用GetNext命令可以有效的檢索表
4、表的更新和刪除操作P78:
1)Set命令用于設(shè)置或更新變量的值,其PDU格式與Get相同。
2)變量綁定表(variablebindings)中必須包含要設(shè)置的變量名和變量值。
3)Set命令的應(yīng)答也是GetResponse,同樣是原子性的。
4)如果所有的變量都可以設(shè)置,則更新所有變量的值,返回GetResponse中確認(rèn)新值;
5)如果至少有一個變量的值不能設(shè)置,所有變量值都保持不變,并在錯誤狀態(tài)中指出出錯原因。SET出錯原因和GET類似(tooBigno,SuchName,GenError),若有一個變量的名字和要設(shè)置的值在類型、長度或?qū)嶋H值方面不匹配,返回badValid.
例3.8P78:設(shè)置一個完整行,返回可以是noSuchName、badvalue、或者生成新行
例3.9P78:設(shè)置一行,不完整,返回可能是增加新行或拒絕這個操作;
1.刪除一行只需把一個對象的值設(shè)為invalid,返回響應(yīng)確認(rèn)之
MIB-2中只有2中標(biāo)可以刪除ipRouteTable包含ipRouteType可取值為invalid;ipNetMediaTable包含ipNetToMediaType可取值為invalid
2.SNMP沒有提供向管理對象發(fā)出動作的命令,但可以利用SET命令對以專用對象設(shè)置值。錯誤狀態(tài)readonly沒有在任何回應(yīng)報文中出現(xiàn)。
5、陷入操作的原理和陷入的種類:陷入是由代理向管理站發(fā)出的異步事件報告,不需要應(yīng)答報文。SNMPv1規(guī)定了7種陷入條件:
1)coldStart:發(fā)送實體重新初始化,代理配置已改變,通常由于系統(tǒng)失效引起;
2)warmStart:發(fā)送實體重新初始化,代理配置沒有改變,正常重新啟動引起;
3)linkDown:鏈路失效通知,變量綁定表的第一項指明對應(yīng)接口表的索引變量及其值;
4)linkUp:鏈路啟動通知變量綁定表的第一項指明對應(yīng)接口表的索引變量及其值;
5)authenticationFailure:發(fā)送實體收到一個沒有通過認(rèn)證的報文;
6)egpNeighborLoss:相鄰的外部路由器失效或關(guān)機;
7)enterpriseSpecific:設(shè)備制造商定義的陷入條件,在特殊陷入字段指明具體的陷入類型。
3.4SNMP功能組對象含義和作用(領(lǐng)會):
SNMP組包含的信息關(guān)系到SNMP協(xié)議的實現(xiàn)操作。這一組共30個對象,在只支持SNMP站管理或只支持SNMP代理功能的實現(xiàn)中有些對象是沒有值的。除了snmpEnableAuthenTrap可由管理站設(shè)置,只是它是否允許代理產(chǎn)生“認(rèn)證失效”陷入外,其它對象都是只讀的計數(shù)器。(P80)
3.5實現(xiàn)問題(領(lǐng)會)
1、網(wǎng)絡(luò)管理站的功能要求:選擇站管理產(chǎn)品時首先要關(guān)心它與標(biāo)準(zhǔn)的一致程度,與代理的互操作性。以及用戶界面、功能齊全、方便使用,具體有以下選擇標(biāo)準(zhǔn):
a)支持?jǐn)U展的MIB
b)圖形用戶接口:
c)自動發(fā)現(xiàn)機制:
d)可編程事件:
e)高級網(wǎng)絡(luò)控制功能:
f)面向?qū)ο蟮墓芾砟P?BR> g)用戶定義的圖標(biāo)
2、輪詢頻率對網(wǎng)絡(luò)管理性能的影響:網(wǎng)絡(luò)輪詢頻率域網(wǎng)絡(luò)的規(guī)模和代理的多少有關(guān)。網(wǎng)絡(luò)管理的性能還取決于管理站的處理速度、子網(wǎng)數(shù)據(jù)速率、網(wǎng)絡(luò)擁擠程度等因素。P81
最多可支持設(shè)備數(shù)(輪詢代理數(shù)N)小于等于<=輪詢間隔T/單個輪詢所需時間△
△與以下因素有關(guān)(交換一次請求/響應(yīng)報文需要4個處理時間,2個網(wǎng)絡(luò)延時):
管理站生成一個報文時間
管理站到代理的網(wǎng)絡(luò)延遲
代理處理一個請求報文時間
代理生成一個響應(yīng)報文時間
代理到管理站的網(wǎng)絡(luò)延時
管理站處理一個響應(yīng)報文的時間
未得到足夠的管理信息,交換請求/響應(yīng)報文的數(shù)量
3、SNMPv1的局限性
a)由于輪詢的性能限制,SNMP不適合管理很大的網(wǎng)絡(luò)
b)SNMP不適合檢索大量數(shù)據(jù)
c)SNMP的陷入報文時沒有應(yīng)答的,管理站是否收到陷入報文,代理不能確認(rèn)
d)SNMP只提供簡單的團(tuán)體名認(rèn)證,安全措施不夠
e)SNMP并不直接支持向被管理設(shè)備發(fā)送命令
f)SNMP的管理信息庫MIB-2支持的管理對象有限,不能完成復(fù)雜的管理功能
g)SNMP不支持管理站之間的通信,這一點在分布式網(wǎng)絡(luò)中是很需要的。
3.1SNMPv1協(xié)議數(shù)據(jù)單元
1、SNMPv1支持的操作
僅支持對象值的檢索和修改
a)Get:檢索管理信息庫中標(biāo)量對象的值
b)Set:管理站用于設(shè)置管理信息庫中標(biāo)量對象的值
c)Trap:代理用于向管理站報告管理對象的狀態(tài)變化
SNMP不支持管理站改變管理信息庫中的葉子節(jié)點,不能增加和刪除MIB中的管理對象實例。管理站也不能向管理對象發(fā)出執(zhí)行一個動作的命令。管理站只能逐個訪問管理信息庫中的葉子節(jié)點,不能一次性訪問一個子數(shù)。
2、SNMPv1PDU格式
管理站和代理站之間交換的管理信息構(gòu)成SNMP報文,由三部分組成:版本號、團(tuán)體名、協(xié)議數(shù)據(jù)單元(PDU)。
SNMP有5種管理操作,只有4種PDU,管理站發(fā)出三種請求報文GetRequest,GetNextRequest和SetRequest采用的格式是一樣的。代理的應(yīng)答報文只有一種:GetResponse.除Trap外,4種pdu格式相同,共有5個字段:
a)PDU類型:共5種類型
b)請求標(biāo)識:賦予每個請求報文的整數(shù),用于區(qū)別不同請求
c)錯誤狀態(tài):共有5種錯誤狀態(tài):noerror(1),tooBig(1),noSuchName(2),badOnly(4),genError(5)
d)錯誤索引當(dāng)錯誤狀態(tài)非0時指出出錯的變量
e)變量綁定表:變量名和對應(yīng)值的表
Trap包含:
制造商ID
代理地址
一般陷入:SNMP定義6類:
特殊陷入:與設(shè)備有關(guān)的特殊陷入代碼
時間戳:代理發(fā)出陷入的時間
3、報文應(yīng)答序列
a)GetRequest
b)GetNextRequest
c)SetRequest
d)GetResponse
e)Trap,不需要應(yīng)答
4、報文的發(fā)送和接收過程
當(dāng)一個SNMP協(xié)議實體(PE)發(fā)送一個報文時執(zhí)行以下過程P71
a)按照ASN1的格式構(gòu)造PDU,交給認(rèn)證進(jìn)程
b)認(rèn)證進(jìn)程檢查源和目標(biāo)之間是否可以通信
c)通過檢查,相關(guān)的版本號、團(tuán)體名、PDU組裝成報文
d)經(jīng)過BER編碼,絞傳輸實體發(fā)送出去
當(dāng)一個SNMP協(xié)議實體(PE)接收一個報文時執(zhí)行以下過程:
按照BER編碼恢復(fù)ASN1報文
1、對報文驗證版本號和認(rèn)證信息
2、通過分析和驗證,分離出協(xié)議數(shù)據(jù)單元,進(jìn)行語法分析
3、必要時經(jīng)過適當(dāng)處理返回應(yīng)答報文
4、如果認(rèn)證檢驗失敗,生成一個陷入報文,向發(fā)送站報告通信異常情況。
如希望檢索多個管理對象,則要把多個管理對象裝入一個PDU,這就用到變量綁定表
3.2SNMPv1的安全機制
SNMP的安全機制很簡單,只驗證團(tuán)體名。
1、團(tuán)體的概念:SNMP網(wǎng)絡(luò)管理是一種分布式應(yīng)用,這種應(yīng)用的特點是管理站和被管理站之間的關(guān)系可以是一對多的關(guān)系,即一個管理站可以管理多個代理,從而管理多個被管理設(shè)備。只有屬于同一團(tuán)體的管理站和被管理站才能互相作用,發(fā)送給不同團(tuán)體的報文被忽略。
SNMP的團(tuán)體是一個代理和多個管理站之間的認(rèn)證和訪問控制關(guān)系
2、SNMPv1的簡單認(rèn)證過程:RFC1157提供的只是簡單的認(rèn)證方案:從管理站發(fā)送到代理的報文(Get,Set)都有一個團(tuán)體名,就像口令字一樣。
3、SNMPv1可采用的訪問策略:訪問控制有兩方面含義:
a)MIB視閾:MIB中對象的一個子集,對不同的團(tuán)體可以定義不視閾(View)。
b)訪問模式:集合{read-only,read-write}的一個元素。
團(tuán)體的形象(Profile):有關(guān)一個團(tuán)體的MIB視閾和訪問模式的組合叫做該團(tuán)體的~,團(tuán)體的形象由代理中MIB對象的一個子集和這些對象的訪問模式組成。
SNMP團(tuán)體和SNMP團(tuán)體形象的組合叫做訪問策略。
4、轉(zhuǎn)換代理在SNMP中的作用:委托代理是代表不支持SNMP的設(shè)備工作的。其作用是減少被代理的設(shè)備與管理站之間的交互過程。
3.3SNMPv1的操作(綜合應(yīng)用)
1、檢索簡單標(biāo)量對象值的方法:使用Get操作,如果變量綁定表中包含多個變量,一次可以檢索多個標(biāo)量對象的值。
GetResponse操作的原子性:如果請求對象的值可以得到,則給與應(yīng)答;反之,返回下列錯誤之一:
1)變量綁定表中的一個對象無法與MIB中的任何對象標(biāo)示符匹配,或要檢索的對象是一個數(shù)據(jù)塊(子樹和表),沒有對象實例生成。返回的GetResponsePDU中錯誤狀態(tài)字段為noSuchName
2)由于上下層協(xié)議限制,響應(yīng)實體可以提供所要檢索的值,但變量太多,一個相應(yīng)PDU裝不下,tooBig
3)由于其它原因響應(yīng)實體至少不能提供一個對象的值,返回genError
例:3.1P74、75
2、檢索未知對象的方法P76:使用GetNext命令檢索變量名指示的下一個對象實例。如果交叉標(biāo)示符沒有有效性,直接查找下一個有效的標(biāo)示符,并返回對象實例。如果不知道UDP組內(nèi)有哪些變量可以直接發(fā)送GetNextRequest(udp),將得到響應(yīng)是UDP組內(nèi)的第一個對象。
3、檢索表對象的方法P76:使用GetNext命令可以有效的檢索表
4、表的更新和刪除操作P78:
1)Set命令用于設(shè)置或更新變量的值,其PDU格式與Get相同。
2)變量綁定表(variablebindings)中必須包含要設(shè)置的變量名和變量值。
3)Set命令的應(yīng)答也是GetResponse,同樣是原子性的。
4)如果所有的變量都可以設(shè)置,則更新所有變量的值,返回GetResponse中確認(rèn)新值;
5)如果至少有一個變量的值不能設(shè)置,所有變量值都保持不變,并在錯誤狀態(tài)中指出出錯原因。SET出錯原因和GET類似(tooBigno,SuchName,GenError),若有一個變量的名字和要設(shè)置的值在類型、長度或?qū)嶋H值方面不匹配,返回badValid.
例3.8P78:設(shè)置一個完整行,返回可以是noSuchName、badvalue、或者生成新行
例3.9P78:設(shè)置一行,不完整,返回可能是增加新行或拒絕這個操作;
1.刪除一行只需把一個對象的值設(shè)為invalid,返回響應(yīng)確認(rèn)之
MIB-2中只有2中標(biāo)可以刪除ipRouteTable包含ipRouteType可取值為invalid;ipNetMediaTable包含ipNetToMediaType可取值為invalid
2.SNMP沒有提供向管理對象發(fā)出動作的命令,但可以利用SET命令對以專用對象設(shè)置值。錯誤狀態(tài)readonly沒有在任何回應(yīng)報文中出現(xiàn)。
5、陷入操作的原理和陷入的種類:陷入是由代理向管理站發(fā)出的異步事件報告,不需要應(yīng)答報文。SNMPv1規(guī)定了7種陷入條件:
1)coldStart:發(fā)送實體重新初始化,代理配置已改變,通常由于系統(tǒng)失效引起;
2)warmStart:發(fā)送實體重新初始化,代理配置沒有改變,正常重新啟動引起;
3)linkDown:鏈路失效通知,變量綁定表的第一項指明對應(yīng)接口表的索引變量及其值;
4)linkUp:鏈路啟動通知變量綁定表的第一項指明對應(yīng)接口表的索引變量及其值;
5)authenticationFailure:發(fā)送實體收到一個沒有通過認(rèn)證的報文;
6)egpNeighborLoss:相鄰的外部路由器失效或關(guān)機;
7)enterpriseSpecific:設(shè)備制造商定義的陷入條件,在特殊陷入字段指明具體的陷入類型。
3.4SNMP功能組對象含義和作用(領(lǐng)會):
SNMP組包含的信息關(guān)系到SNMP協(xié)議的實現(xiàn)操作。這一組共30個對象,在只支持SNMP站管理或只支持SNMP代理功能的實現(xiàn)中有些對象是沒有值的。除了snmpEnableAuthenTrap可由管理站設(shè)置,只是它是否允許代理產(chǎn)生“認(rèn)證失效”陷入外,其它對象都是只讀的計數(shù)器。(P80)
3.5實現(xiàn)問題(領(lǐng)會)
1、網(wǎng)絡(luò)管理站的功能要求:選擇站管理產(chǎn)品時首先要關(guān)心它與標(biāo)準(zhǔn)的一致程度,與代理的互操作性。以及用戶界面、功能齊全、方便使用,具體有以下選擇標(biāo)準(zhǔn):
a)支持?jǐn)U展的MIB
b)圖形用戶接口:
c)自動發(fā)現(xiàn)機制:
d)可編程事件:
e)高級網(wǎng)絡(luò)控制功能:
f)面向?qū)ο蟮墓芾砟P?BR> g)用戶定義的圖標(biāo)
2、輪詢頻率對網(wǎng)絡(luò)管理性能的影響:網(wǎng)絡(luò)輪詢頻率域網(wǎng)絡(luò)的規(guī)模和代理的多少有關(guān)。網(wǎng)絡(luò)管理的性能還取決于管理站的處理速度、子網(wǎng)數(shù)據(jù)速率、網(wǎng)絡(luò)擁擠程度等因素。P81
最多可支持設(shè)備數(shù)(輪詢代理數(shù)N)小于等于<=輪詢間隔T/單個輪詢所需時間△
△與以下因素有關(guān)(交換一次請求/響應(yīng)報文需要4個處理時間,2個網(wǎng)絡(luò)延時):
管理站生成一個報文時間
管理站到代理的網(wǎng)絡(luò)延遲
代理處理一個請求報文時間
代理生成一個響應(yīng)報文時間
代理到管理站的網(wǎng)絡(luò)延時
管理站處理一個響應(yīng)報文的時間
未得到足夠的管理信息,交換請求/響應(yīng)報文的數(shù)量
3、SNMPv1的局限性
a)由于輪詢的性能限制,SNMP不適合管理很大的網(wǎng)絡(luò)
b)SNMP不適合檢索大量數(shù)據(jù)
c)SNMP的陷入報文時沒有應(yīng)答的,管理站是否收到陷入報文,代理不能確認(rèn)
d)SNMP只提供簡單的團(tuán)體名認(rèn)證,安全措施不夠
e)SNMP并不直接支持向被管理設(shè)備發(fā)送命令
f)SNMP的管理信息庫MIB-2支持的管理對象有限,不能完成復(fù)雜的管理功能
g)SNMP不支持管理站之間的通信,這一點在分布式網(wǎng)絡(luò)中是很需要的。