1、2021/6/101网络管理技术与应用2021/6/102第5章:SNMP通信模型 本章主要从本章主要从SNMPSNMP的通信模型来讨论其网络的通信模型来讨论其网络协议,其有协议,其有4 4个方面的内容:个方面的内容:nSNMPSNMP结构结构n管理模型管理模型nSNMPSNMP协议协议nSNMP MIBSNMP MIB2021/6/103第5章:SNMP通信模型2021/6/1045.1 SNMP5.1 SNMP结构(结构(The SNMP ArchitectureThe SNMP Architecture)n SNMPSNMP结构是管理系统和管理代理之间的管理报结构是管理系统和管理代理之间
2、的管理报文的规范。文的规范。n由定义团体来进行安全机制由定义团体来进行安全机制的的管理,只有相同团管理,只有相同团体成员之间才能进行通信。体成员之间才能进行通信。n一个管理站能够属于多个团体且可管理多个域。一个管理站能够属于多个团体且可管理多个域。2021/6/1055.1 SNMP5.1 SNMP结构(结构(The SNMP ArchitectureThe SNMP Architecture)SNMPSNMP结构具有三个方面的功能:结构具有三个方面的功能:n通过管理代理实现的网络功能应该是最简单的;通过管理代理实现的网络功能应该是最简单的;n允许有足够的可扩展性(增加新的操作和管理);允许有
3、足够的可扩展性(增加新的操作和管理);nSNMPSNMP结构应独立于具体主机和网关的结构及机制。结构应独立于具体主机和网关的结构及机制。2021/6/1065.1 SNMP5.1 SNMP结构结构nSNMPSNMP只用于简单对象的通信并用只用于简单对象的通信并用ASN.1ASN.1和和BERBER(基本编码规则)进行数据传输。(基本编码规则)进行数据传输。n基本报文有基本报文有set,getset,get和和traptrap。其中。其中trap有有三种类型三种类型:n一般一般traptrapn特殊特殊traptrapn时间戳时间戳 一般一般traptrap类别类别 :coldStartcold
4、StartwarmStartwarmStartlinkDownlinkDownlinkUplinkUpauthenticationFailureauthenticationFailureegpNeighborLossegpNeighborLossenterpriseSpecificenterpriseSpecific(属特殊陷入由设备制造商定义)属特殊陷入由设备制造商定义)5.1 SNMP5.1 SNMP结构结构 特殊特殊traptrap是与设备有关是与设备有关 时间戳是在网络实体初始化和陷入产生之间时间戳是在网络实体初始化和陷入产生之间的时间。的时间。sysUpTimesysUpTime的值
5、。的值。5.1 SNMP5.1 SNMP结构结构返回本章首页5.2 管理模型管理模型(The Administrative Model)n支持支持SNMPSNMP应用实体的程序称为协议实体应用实体的程序称为协议实体nSNMPSNMP管理者属于管理站的应用实体管理者属于管理站的应用实体nSNMPSNMP代理属于网络元素的应用实体代理属于网络元素的应用实体n这一对实体被称为这一对实体被称为SNMPSNMP团体。团体。nSNMPSNMP团体名为团体名为communitycommunity,是一个字符串的形式。,是一个字符串的形式。5.2 管理模型管理模型 SNMP Manager认证服务认证服务SN
6、MP Manager认证服务认证服务SNMP Manager认证服务认证服务认证认证认证服务认证服务SNMP Agent图图5-1SNMP 5-1SNMP 团体团体报文报文5.2 管理模型管理模型 图中是多个图中是多个SNMPSNMP管理者与一个管理者与一个SNMPSNMP代理进行通信,还代理进行通信,还可以进行多对一和多对多的通信。可以进行多对一和多对多的通信。图中发送和接收过程都要进行认证检验,这可以视为图中发送和接收过程都要进行认证检验,这可以视为是一种安全机制。是一种安全机制。SNMPv1SNMPv1的安全机制很简单,只是验证团体名。属于同的安全机制很简单,只是验证团体名。属于同一团体
7、的管理站和被管理站才能互相作用。一团体的管理站和被管理站才能互相作用。5.2 管理模型管理模型 1 1、团体的概念、团体的概念 nSNMPSNMP网络管理是一种分布式应用。代理控制自己的网络管理是一种分布式应用。代理控制自己的MIBMIB,也控制多个管理站对,也控制多个管理站对MIBMIB的访问。的访问。n只有授权的管理站才允许访问管理信息库。只有授权的管理站才允许访问管理信息库。n其基本思想是:其基本思想是:l l 代理系统可以对不同的团体定义不同的访问代理系统可以对不同的团体定义不同的访问 控制策略,每个团体被赋予唯一的名字。控制策略,每个团体被赋予唯一的名字。l l 管理站只能以认可的团
8、体名行使访问权。管理站只能以认可的团体名行使访问权。l l 管理站实体可以用不同的名字对不同的代理管理站实体可以用不同的名字对不同的代理 实施不同的访问权限。实施不同的访问权限。2021/6/10135.2 管理模型管理模型2 2、认证服务、认证服务 n认证服务的目的是要保证通信是被授权的。认证服务的目的是要保证通信是被授权的。n对于一个对于一个SNMPSNMP报文,认证服务的功能是保证接报文,认证服务的功能是保证接收报文来自于这个消息所声称的源。收报文来自于这个消息所声称的源。n从管理站到代理的每个报文都包括一个团体名从管理站到代理的每个报文都包括一个团体名字。这个名字起到密码的作用,如果发
9、送者知字。这个名字起到密码的作用,如果发送者知道这个密码,报文就被认为是可靠的。道这个密码,报文就被认为是可靠的。2021/6/10145.2 管理模型管理模型n团体名以明文的形式传输,容易被窃取。所以团体名以明文的形式传输,容易被窃取。所以SNMPSNMP的安全机制是不安全的。的安全机制是不安全的。n为此很多为此很多SNMPSNMP的实现只允许的实现只允许GetGet和和TrapTrap操作,而操作,而SetSet的操作被严格的限制。即只具有网络监视功的操作被严格的限制。即只具有网络监视功能而限制控制网络设备。能而限制控制网络设备。n为了加强为了加强SNMPSNMP的安全性,在后来的的安全性
10、,在后来的SNMPSNMP版本中版本中改进了认证服务。改进了认证服务。5.2 管理模型管理模型3 3、访问策略、访问策略n 通过定义团体,代理系统限制只有一些选定的管通过定义团体,代理系统限制只有一些选定的管理站才能访问它的理站才能访问它的MIBMIB。n通过使用多个团体,代理可为不同的管理站提供不通过使用多个团体,代理可为不同的管理站提供不同的同的MIBMIB访问类别。访问类别。n访问控制有两方面:访问控制有两方面:l l SNMP MIB SNMP MIB 视域(视域(viewview):MIB:MIB中对象的一个子中对象的一个子 集,对不同的团体可以定义不同的视域。属集,对不同的团体可以
11、定义不同的视域。属 于同一视域的对象不必属于同一子树。于同一视域的对象不必属于同一子树。l l 访问模式:集合访问模式:集合read-only,read-writeread-only,read-write的一的一 个元素。对于一个团体可以定义一种访问模个元素。对于一个团体可以定义一种访问模 式。式。5.2 管理模型管理模型n一个团体的一个团体的MIBMIB视域和访问模式的组合称为视域和访问模式的组合称为SNMPSNMP团团体形象(体形象(profileprofile)。)。n它包含代理中对象的一个子集和有关这些对象的访它包含代理中对象的一个子集和有关这些对象的访问模式。问模式。nSNMPSNM
12、P访问模式适用于访问模式适用于MIBMIB视域中的所有对象。例如视域中的所有对象。例如如果访问模式是如果访问模式是read-onlyread-only,则具有同一团体形象,则具有同一团体形象的管理站对视域中的所有对象只能以只读方式访问。的管理站对视域中的所有对象只能以只读方式访问。每个每个MIBMIB对象的定义都有对象的定义都有ACCESSACCESS子句,其规定了对象子句,其规定了对象 量的访问属性。量的访问属性。团体形象中又规定了团体成员对对象的访问模式。团体形象中又规定了团体成员对对象的访问模式。这两种访问限制应该相协调。这两种访问限制应该相协调。即使一个对象的访问属性是即使一个对象的访
13、问属性是write-onlywrite-only,也允许,也允许 SNMPSNMP实体读实体读取该对象,取该对象,这取决于具体实现时的考这取决于具体实现时的考虑。虑。5.2 管理模型管理模型表表5-1 MIB 访问类别与访问类别与SNMP访问模式的关系访问模式的关系MIBMIB访问类别访问类别SNMPSNMP访问模式访问模式READ-ONLYREAD-ONLYREAD-WRITEREAD-WRITEread-onlyread-only可用于可用于getget和和traptrap操作操作read-writeread-write可用于可用于getget和和traptrap操作操作可用于可用于get
14、get,setset和和traptrap操作操作write-onlywrite-only可用于可用于getget和和traptrap操作,值与操作,值与具体实现有关具体实现有关可用于可用于getget,setset和和traptrap操作,操作,对于对于getget和和traptrap操作,值与具操作,值与具体实现有关体实现有关not-not-accessibleaccessible不能使用不能使用5.2 管理模型管理模型n团体形象是由代理为各个团体定义的。团体形象是由代理为各个团体定义的。nSNMPSNMP团体和团体和SNMPSNMP团体形象的组合称为团体形象的组合称为SNMPSNMP访问策
15、略。访问策略。SNMP代理代理SNMP管理站集合管理站集合SNMP MIB视域视域SNMP访问模式访问模式SNMP团体团体SNMP团体形象团体形象SNMP访问策略访问策略图图5-2 SNMP管理概念管理概念SNMPSNMP的访问策略的访问策略 Manager 1(Community 1)Manager 2(Community 2)Manager3(Community 1,Community2)Agent 1Agent 2Community Profile 1Community Profile 2Agent 3Agent 4Community Profile 3Community Profile
16、 4图图5-3 SNMP Access Policy5-3 SNMP Access PolicyCommunity 1Community 25.2 管理模型管理模型n三个网络管理系统,各自有不同的团体域。三个网络管理系统,各自有不同的团体域。n代理代理1 1和代理和代理2 2属于团体属于团体1 1,而它们却有不同的团体,而它们却有不同的团体形象。形象。n作为团体作为团体1 1的一部分的管理站的一部分的管理站1 1可以与代理可以与代理1 1和代理和代理2 2通信通信n但管理站但管理站1 1不可以与属于团体不可以与属于团体2 2的代理的代理3 3和代理和代理4 4通信。通信。管理站管理站2 2则可
17、以访问它们,因为管理站则可以访问它们,因为管理站2 2属于团体属于团体2 2。n管理站管理站3 3可以访问团体可以访问团体1 1和团体和团体2 2,因此可以与所有,因此可以与所有代理通信代理通信 5.2 管理模型管理模型4 4、委托代理服务、委托代理服务 n通常委托代理是为不支持通常委托代理是为不支持SNMPSNMP的设备工作的,团的设备工作的,团体形象的概念同样适用于委托代理服务。体形象的概念同样适用于委托代理服务。n有些情况下,被代理的设备也可能支持有些情况下,被代理的设备也可能支持TCP/IPTCP/IP和和SNMPSNMP,这时委托代理的作用是为了减少代理的设,这时委托代理的作用是为了
18、减少代理的设备与管理站之间的交互过程。备与管理站之间的交互过程。n对于被代理的设备,委托代理定义并且维护一种对于被代理的设备,委托代理定义并且维护一种SNMPSNMP访问策略。访问策略。5.2 5.2 管理模型管理模型图为图为SNMPSNMP对象与非对象与非SNMPSNMP对象通过对象通过SNMPSNMP管理站进行通信的例子。管理站进行通信的例子。比如比如SNMPSNMP代理可以是一个具有代理可以是一个具有TCP/IPTCP/IP协议的协议的LANLAN。而一个。而一个WANWAN如如X.25X.25网络,其不具有网络,其不具有InternetInternet模型,但可以通过委模型,但可以通过
19、委托代理进行管理并集成到综合管理系统。托代理进行管理并集成到综合管理系统。SNMP 管理站管理站SNMP 代理代理委托代理委托代理SNMP团体团体非非SNMP团体团体图图5-4 SNMP代理访问策略代理访问策略返回本章首页5.3 SNMP5.3 SNMP协议规范(协议规范(SNMP Protocol SpecificationsSNMP Protocol Specifications)1 1、SNMP PDUSNMP PDU格式格式 DataSNMP PDUCommunityVersionA HSNMP PDUUDP HTransport PDUIP H Network PDUDLC H图图5
20、-5 SNMP 5-5 SNMP 报文封装报文封装5.3 SNMP5.3 SNMP协议规范协议规范nSNMPSNMP报文报文是在是在PDUPDU加上团体名、版本号和应用层的头构成加上团体名、版本号和应用层的头构成了应用层的了应用层的PDUPDU。n在其前加上在其前加上UDPUDP的头成为了传输层的的头成为了传输层的PDUPDU。以此类推,构成。以此类推,构成每一层的每一层的PDUPDU。n SNMPSNMP协议实体在主机的协议实体在主机的161161端口被接收。端口被接收。ntraytray是在是在162162端口被接收。端口被接收。nSNMPv1SNMPv1协议的最大长度为协议的最大长度为4
21、84484个字节。个字节。nSNMPSNMP有有5 5种管理操作,但只有种管理操作,但只有4 4种种PDUPDU格式:格式:GetRequestGetRequest PDUPDU、GetNextRequest PDUGetNextRequest PDU与与SetRequest PDUSetRequest PDU格式格式相同相同。GetResponse PDUGetResponse PDU Trap PDU Trap PDU variable-bindings variable-bindings图图5-6 SNMP 5-6 SNMP 报文格报文格式式CommunityVersionSNMP PD
22、U变量绑定表变量绑定表00Request-idPDU typeSNMPSNMP报文报文GetRequestPDU,GetNextRequestPDU和和SetRequestPDUGetResponsePDU错误状态错误状态请求标识请求标识PDU type错误索引错误索引Variable-bindingsTrapPDU制造商制造商ID代理地址代理地址一般陷阱一般陷阱特殊陷阱特殊陷阱时间戳时间戳变量绑定表变量绑定表PDU typename1value1name2value2 namenvaluen变量绑定表变量绑定表表表5-2 SNMP报文域报文域域域描述描述versionversionSNMPS
23、NMP版本:版本:RFC1157RFC1157为版本为版本1 1communitycommunity团体名可以用作认证团体名可以用作认证SNMPSNMP报文的口令报文的口令request-idrequest-id通过给每个请求提供一个唯一的通过给每个请求提供一个唯一的idid,区分不同的请求,区分不同的请求error-statuserror-status代理在处理管理站的请求时可能出现的各种错误:代理在处理管理站的请求时可能出现的各种错误:onError(0),tooBig(1),noSuchName(2),badValue(3),readOnly(4),genErr(5)onError(0)
24、,tooBig(1),noSuchName(2),badValue(3),readOnly(4),genErr(5)error-indexerror-index当当error-statuserror-status非非0 0时时error-indexerror-index指出是列表中的哪个变量引起了错误。变指出是列表中的哪个变量引起了错误。变量即管理对象实例量即管理对象实例v a r i a b l e-v a r i a b l e-bindingsbindings一列变量名和相应值一列变量名和相应值enterpriseenterprise产生陷阱的对象的类型;基于产生陷阱的对象的类型;基于s
25、ysObjectIDsysObjectIDagent-addragent-addr产生陷阱的对象的地址产生陷阱的对象的地址generic-trapgeneric-trap一般陷阱,其值为:一般陷阱,其值为:Start(0),warmStart(1),linkDown(2),linkup(3),authen-Start(0),warmStart(1),linkDown(2),linkup(3),authen-ticationFailure(4),egpNeighborLoss(5)enterpriseSpecific(6)ticationFailure(4),egpNeighborLoss(5)
26、enterpriseSpecific(6)specific-trapspecific-trap更具体地指出陷阱性质的一个代码更具体地指出陷阱性质的一个代码time-stamptime-stamp在网络实体初始化和陷阱产生之间的时间,即在网络实体初始化和陷阱产生之间的时间,即sysUpTimesysUpTime的值的值5.3 SNMP5.3 SNMP协议规范协议规范2 2、报文的发送和接收、报文的发送和接收 构造构造PDU(ASN.1对象)对象)加入团体名及源和目的传输地址加入团体名及源和目的传输地址构造构造SNMP报文报文检验并通过认证检验并通过认证把把ASN.1报文按报文按BER编码编码发送
27、给对等实体发送给对等实体图图5-7 生成和发送生成和发送SNMP报文报文5.3 SNMP5.3 SNMP协议规范协议规范按按BER解码,恢复解码,恢复ASN.1报文报文语法分析语法分析ASN.1报文报文验证版本号验证版本号认证检查认证检查语法分析语法分析PDU处理处理PDU,必要时产生应答,必要时产生应答丢弃报文丢弃报文必要时产生陷入必要时产生陷入出错出错正确正确图图5-8 接收和处理接收和处理SNMP报文报文返回本章首页5.4 SNMP5.4 SNMP操作(操作(SNMP OperationsSNMP Operations)1.1.变量绑定变量绑定 n所有的所有的SNMPSNMP操作都是访问
28、对象实例。(叶节点)操作都是访问对象实例。(叶节点)n可以将一些相同类型的操作(可以将一些相同类型的操作(get,set,trapget,set,trap)组合到一)组合到一条报文中去。管理站可得到代理的某个组中的所有标量条报文中去。管理站可得到代理的某个组中的所有标量对象的值。对象的值。n它可以只发送一条报文来要求所有的取值,然后得到一它可以只发送一条报文来要求所有的取值,然后得到一个列出了所有值的响应。个列出了所有值的响应。n为了实现多个对象的交换,所有的为了实现多个对象的交换,所有的SNMP PDUSNMP PDU都包括一个都包括一个variable-bindingvariable-bi
29、nding域,即绑定域。域,即绑定域。n该域由一系列对象实例的索引组成,并且带有那些对象该域由一系列对象实例的索引组成,并且带有那些对象的值。的值。5.4 SNMP5.4 SNMP操作操作 2.2.检索简单对象检索简单对象n检索简单的标量对象值可以用检索简单的标量对象值可以用getget操作操作;n如果变量绑定表中包含多个变量,一次还可以检索如果变量绑定表中包含多个变量,一次还可以检索多个标量对象的值多个标量对象的值;n接收接收GetRequestGetRequest的的SNMPSNMP实体请求标识相同的实体请求标识相同的GetRequestGetRequest响应。响应。n如果所有请求的对象
30、值均可以得到,则给于应答;如果所有请求的对象值均可以得到,则给于应答;只要有一个对象的值得不到,则可返回下列错误之只要有一个对象的值得不到,则可返回下列错误之一:一:2021/6/10325.4 SNMP5.4 SNMP操作操作 noSuchName:noSuchName:变量绑定表中的一个对象无法与变量绑定表中的一个对象无法与MIBMIB中的任何对象标识符匹配,或者要检索的对象是一中的任何对象标识符匹配,或者要检索的对象是一个子树或表,没有对象实例生成。个子树或表,没有对象实例生成。tooBigtooBig:响应实体可提供所有要检索的值,若变:响应实体可提供所有要检索的值,若变量太多以至一个
31、响应量太多以至一个响应PDUPDU装不下。装不下。genError:genError:响应实体一个对象的值也不能提供时,响应实体一个对象的值也不能提供时,变量绑定表中不返回任何值。变量绑定表中不返回任何值。5.4 SNMP5.4 SNMP操作操作例例1 1:若网络管理站想要从代理中检索:若网络管理站想要从代理中检索udpudp组中所有简单对象的组中所有简单对象的取值,管理站可以发送一个取值,管理站可以发送一个GetRequest PDU,GetRequest PDU,并在检索命令中并在检索命令中直接指明对象实体的标识符:直接指明对象实体的标识符:GetRequest(udpInDatagram
32、s.0,udpNoPorts.0,udpInError.0,GetRequest(udpInDatagrams.0,udpNoPorts.0,udpInError.0,udpOutDatagrams.0)udpOutDatagrams.0)n 如果代理中该公共体的如果代理中该公共体的MIBMIB视域支持所有的这些对象,则返视域支持所有的这些对象,则返回回4 4个对象的一个个对象的一个GetRequest PDUGetRequest PDU:5.4 SNMP5.4 SNMP操作操作例例 2 2:如果代理不支持管理站对如果代理不支持管理站对udpNoPortsudpNoPorts的访问,则响的访问
33、,则响 应会不同。如发出同样的命令:应会不同。如发出同样的命令:GetNextRequest(udpInDatagrams,udpNoPorts,udpInError,udGetNextRequest(udpInDatagrams,udpNoPorts,udpInError,udpOutDatagram)pOutDatagram)n 而得到的响应是:而得到的响应是:GetResponse(udpInDatagrams.0=17346,udpInError.0=0,GetResponse(udpInDatagrams.0=17346,udpInError.0=0,udpInError.0=0,u
34、dpOutDatagrams.0=17090)udpInError.0=0,udpOutDatagrams.0=17090)n 因为变量名因为变量名udpNoPortsudpNoPorts和和udpInErrorudpInError的下一个对象实例的下一个对象实例 都是都是udpInError.0=0udpInError.0=0n 可见当代理收到一个可见当代理收到一个GetGet请求时,如果能检索到所有的请求时,如果能检索到所有的 对象实例,则返回请求的每一个值;对象实例,则返回请求的每一个值;n 如果有一个值不能提供,则返回该实例的下一个值。如果有一个值不能提供,则返回该实例的下一个值。20
35、21/6/10365.4 SNMP5.4 SNMP操作操作3.3.检索未知对象检索未知对象nGetNextGetNext命令检索变量名指示的下一个对象实例,但是并不命令检索变量名指示的下一个对象实例,但是并不要求变量名是对象标识符或者是实例标识符。要求变量名是对象标识符或者是实例标识符。n如如udpInDatagramsudpInDatagrams的的实例标识符是实例标识符是udpInDatagrams.0udpInDatagrams.0,而,而udpInDatagrams.2udpInDatagrams.2并不表示任何对象。若发出并不表示任何对象。若发出GetNextRequest(udpI
36、nDatagrams.2)GetNextRequest(udpInDatagrams.2)得到的响应是得到的响应是GetNextRequest(udpNoPorts.0=2552)GetNextRequest(udpNoPorts.0=2552)n说明代理没有检查标识符说明代理没有检查标识符udpInDatagrams.2udpInDatagrams.2的有效性,而的有效性,而是直接查找下一个有效的标识符,得到是直接查找下一个有效的标识符,得到udpInDatagrams.0udpInDatagrams.0后返回了它的下一个对象实例。后返回了它的下一个对象实例。5.4 SNMP5.4 SNMP
37、操作操作4.4.检索表对象检索表对象 GetNextGetNext可用于有效地搜索表对象。可用于有效地搜索表对象。图图5-9 表对象检索表对象检索IfTable(2)Interfaces(mib-2 2)mib-2=1.3.6.1.2.1IfNumber(1)IfEntry(1)IfIndex(1)IfDescr(2)IfType(3)IfMtu(4)IfSpeed(5)5.4 SNMP5.4 SNMP操作操作例例 3 3:上图中,若发出下面的命令,检索上图中,若发出下面的命令,检索ifNumberifNumber的值。的值。GetRequest(1.3.6.1.2.1.2.1.0)GetRe
38、quest(1.3.6.1.2.1.2.1.0)GetResponse(2)GetResponse(2)我们知道有两个接口。如果我们进一步想要知道每个接口的数我们知道有两个接口。如果我们进一步想要知道每个接口的数据速率,则可以用下面的命令检索据速率,则可以用下面的命令检索ifif表中的第五个元素:表中的第五个元素:GetRequest(1.3.6.1.2.1.2.2.1.5.1)GetRequest(1.3.6.1.2.1.2.2.1.5.1)最后的最后的1 1是索引项是索引项ifIndexifIndex的值。得到的响应是:的值。得到的响应是:GetResponse(10000000)GetR
39、esponse(10000000)说明第一个接口的数据速率是说明第一个接口的数据速率是10Mb/s10Mb/s。若要得到第二个接口的。若要得到第二个接口的速率可用命令:速率可用命令:GetNextRequest(1.3.6.1.2.1.2.2.1.5.1)GetNextRequest(1.3.6.1.2.1.2.2.1.5.1)得到的可能是得到的可能是GetResponse(56000)GetResponse(56000)说明第二个接口的数据速率说明第二个接口的数据速率为为56kb/s56kb/s。5.4 SNMP5.4 SNMP操作操作例例 4 4 若管理站希望能够检索整个表,但又不知其中若
40、管理站希望能够检索整个表,但又不知其中的内容和表中的行数,则可连续使用的内容和表中的行数,则可连续使用GetNextGetNext命令。命令。表表5-3检索表对象检索表对象ipRouteDestipRouteDestIpRouteMetric1IpRouteMetric1ipRouteNextHopipRouteNextHop9.1.2.39.1.2.33 399.0.0.399.0.0.310.0.0.5110.0.0.515 589.1.1.4289.1.1.4210.0.0.9910.0.0.995 589.1.1.4289.1.1.425.4 SNMP5.4 SNMP操作操作管理站可发
41、送包含所有列对象名称的管理站可发送包含所有列对象名称的GetNextRequest:GetNextRequest:nGetNextRequest(ipRouteDest,ipRouteMetric1,ipRoutGetNextRequest(ipRouteDest,ipRouteMetric1,ipRouteNextHop)eNextHop)代理将表中的第一行取值返回:代理将表中的第一行取值返回:nGetResponse(ipRouteDest.9.1.2.3=9.1.2.3,ipRouteMGetResponse(ipRouteDest.9.1.2.3=9.1.2.3,ipRouteMetr
42、ic1.9.1.2.3=3,ipRouteNextHop.9.1.2.3=99.0.0.3)etric1.9.1.2.3=3,ipRouteNextHop.9.1.2.3=99.0.0.3)根据第一行的值可检索下一行:根据第一行的值可检索下一行:nGetNextRequest(ipRouteDest.9.1.2.3,ipRouteMetricGetNextRequest(ipRouteDest.9.1.2.3,ipRouteMetric1.9.1.2.3,ipRouteNextHop.9.1.2.3)1.9.1.2.3,ipRouteNextHop.9.1.2.3)nGetResponse(i
43、pRouteDest.10.0.0.51=10.0.0.51,ipRoGetResponse(ipRouteDest.10.0.0.51=10.0.0.51,ipRouteMetric1.10.0.0.51=5,ipRouteNextHop.10.0.0.51=uteMetric1.10.0.0.51=5,ipRouteNextHop.10.0.0.51=89.1.1.42)89.1.1.42)据此可继续检索第三行。据此可继续检索第三行。5.4 SNMP5.4 SNMP操作操作nGetNextRequest(ipRouteDest.10.0.0.51,ipRouteMetric1.GetNex
44、tRequest(ipRouteDest.10.0.0.51,ipRouteMetric1.10.0.0.51,ipRouteNextHop.10.0.0.51)10.0.0.51,ipRouteNextHop.10.0.0.51)nGetResponse(ipRouteDest.10.0.0.99=10.0.0.99,ipRouteMGetResponse(ipRouteDest.10.0.0.99=10.0.0.99,ipRouteMetric1.10.0.0.99=5,ipRouteNextHop.10.0.0.99=89.1.1.4etric1.10.0.0.99=5,ipRouteN
45、extHop.10.0.0.99=89.1.1.42)2)管理站不知道这是表的未尾,因此继续:管理站不知道这是表的未尾,因此继续:nGetNextRequest(ipRouteDest.10.0.0.99,ipRouteMetric1.GetNextRequest(ipRouteDest.10.0.0.99,ipRouteMetric1.10.0.0.99,ipRouteNextHop.10.0.0.99)10.0.0.99,ipRouteNextHop.10.0.0.99)然而表中只有然而表中只有3 3行,因此代理返回行,因此代理返回MIBMIB中按字典顺序的下个对象:中按字典顺序的下个对象
46、:nGetResponse(ipRouteMetric1.9.1.2.3=3,ipRouteNextHop.GetResponse(ipRouteMetric1.9.1.2.3=3,ipRouteNextHop.9.1.2.3=99.0.0.3,ipNetToMediaIfIndex.1.3=1)9.1.2.3=99.0.0.3,ipNetToMediaIfIndex.1.3=1)n管理站可以通过响应列表中对象的名称与请求不匹配而得出路由表已以管理站可以通过响应列表中对象的名称与请求不匹配而得出路由表已以到达了末端。到达了末端。5.4 SNMP5.4 SNMP操作操作 5.5.表的更新和删除表
47、的更新和删除 n SetSet命令用于设置或更新变量的值。对于命令用于设置或更新变量的值。对于SetSet命令的应答命令的应答与是与是GetResponse,GetResponse,并且要么更新列表中的所有变量,要么并且要么更新列表中的所有变量,要么一个也不更新。其错误状态为一个也不更新。其错误状态为tooBig,noSuchnametooBig,noSuchname和和gegen nErrorError。n若有一个变量的名字和要设置的值在类型、长度或实际值若有一个变量的名字和要设置的值在类型、长度或实际值方面不匹配,则返回错误条件方面不匹配,则返回错误条件badValuebadValue。5
48、.4 SNMP5.4 SNMP操作操作例例5:5:在表在表5-35-3中,若想改变列对象中,若想改变列对象ipRouteMetric1ipRouteMetric1的第一个的第一个值,则可发出命令:值,则可发出命令:SetRequest(ipRouteMetric1.9.1.2.3=7)SetRequest(ipRouteMetric1.9.1.2.3=7)得到的应答是:得到的应答是:GetResponse(ipRouteMetric1.9.1.2.3=7)GetResponse(ipRouteMetric1.9.1.2.3=7)其效果是该对象的值由其效果是该对象的值由3 3变成了变成了7 7。
49、5.4 SNMP5.4 SNMP操作操作例例 6 6 对于表对于表5-35-3若要增加一行,则可用命令:若要增加一行,则可用命令:SetRequest(ipRouteDest.11.3.3.12=11.3.3.12,SetRequest(ipRouteDest.11.3.3.12=11.3.3.12,ipRouteMetric1.11.3.3.12=7,ipRouteMetric1.11.3.3.12=7,ipRouteNextHop.11.3.3.12=91.0.0.5)ipRouteNextHop.11.3.3.12=91.0.0.5)例例 7 7 如果要删除表中的一行,则可以把一个对象的
50、值置为如果要删除表中的一行,则可以把一个对象的值置为invalid:invalid:SetRequest(ipRouteType.7.3.5.3=invalid)SetRequest(ipRouteType.7.3.5.3=invalid)得到的响应说明表行确已删除:得到的响应说明表行确已删除:GetResponse(ipRouteType.7.3.5.3=invalid)GetResponse(ipRouteType.7.3.5.3=invalid)5.4 SNMP5.4 SNMP操作操作6.6.陷入操作陷入操作 coldStart coldStart发送实体重新初始化,代理的配置已发送实体