《SNMP网络管理模型.ppt》由会员分享,可在线阅读,更多相关《SNMP网络管理模型.ppt(59页珍藏版)》请在三一办公上搜索。
1、网络管理技术及应用,张成文nm_计算机学院,四、SNMP网络管理模型,TCP/IP早期,用ICMP作为网络管理的工具。ICMP提供了从路由器向主机或主机之间传送控制信息的方法,可用于所有支持IP的设备。ICMP最有用的两个消息对:echo/echo reply:测试实体间能否通信。echo消息要求其接收者在echo reply消息中返回接收到的内容。timestamp/timestamp reply:测试网络延迟特性。,TCP/IP网络管理的发展,TCP/IP网络管理的发展,PING 程序由ICMP消息与IP头选项结合开发有多种功能:确定物理设备能否寻址,验证一个网络能够寻址,验证主机上的服务
2、器操作。80年代后期,当互联网发展呈指数增加时,提出了开发功能更强并易于普通网络管理人员学习和使用的标准协议的需求。,TCP/IP网络管理的发展,简单网关监控协议(SGMP):1987年11月发布。3个有影响的通用网络管理方法:高层实体管理系统(HEMS)简单网络管理协议(SNMP):SGMP的升级版。TCP/IP上的CMIP(CMOT):最大限度地与OSI标准的CMIP、服务以及数据库结构保持一致。,TCP/IP网络管理的发展,1988年互联网络活动委员会(IAB)的网络管理协议开发策略:SNMP:近期解决方案;CMOT:远期解决方案;要求SNMP和CMOT使用相同的MO。实际中,SNMP与
3、CMOT在对象级的难于兼容:IAB最终放松了公共SMI/MIB的要求,并允许SNMP独立于CMOT发展。,TCP/IP网络管理的发展,从对OSI的兼容性的束缚中解脱后,SNMP取得了迅速的发展,很快被众多的厂商设备所支持,用户也选择了SNMP作为标准的管理协议。SNMP的进展:远程监控(RMON)能力的开发,为网络管理者提供了监控整个子网而不是各个单独设备的能力。对基本SNMP MIB进行了扩充。,TCP/IP网络管理的发展,SNMPv2:SNMP被用于大型网络时,存在安全和功能方面的不足。1992年7月,提出一个称为SMP的SNMP新版本,被接受为定义第二代SNMP即SNMPv2的基础。19
4、93年安全版SNMPv2发布。几年试用后,IETF决定对SNMPv2进行修订。1996年发布了一组新的RFC,SNMPv2的安全特性被取消。,TCP/IP网络管理的发展,SNMPv3:1999年4月IETF提出了RFC2571RFC2576,形成了SNMPv3的建议。目前这些建议正在进行标准化。提出了SNMP管理框架的一个统一的体系结构。采用User-based安全模型和View-based访问控制模型提供SNMP网络管理的安全性。,SNMP基本框架,网络管理模型关键元素:ManagerAgentMIBCommunication Protocols 体系结构:1个 Manager多个Agent
5、Manager:一般是一个独立的设备,提供Operator与NMS的接口。Agent:装备了SNMP的Host、Bridge、Router及Hub等平台,对管理站的操作请求进行应答,并为Manager报告随机事件。MIB:表示被管资源某一方面的数据变量的集合。SNMP通信协议:Get,Set,Trap,SNMP基本框架,SNMP协议体系结构:SNMP为应用层协议,是TCP/IP协议族的一部分,通过用户数据报协议(UDP)操作。,SNMP基本框架,Trap-directed polling:如果manager负责大量的agent,而各agent又维护大量的对象,则manager难以及时地轮询所有
6、对象。在初始化时,manager轮询所有管理关键信息(如接口特性、作为基准的一些性能统计值,如发送和接收的分组的平均数)的agent。一旦建立了基准,manager将降低轮询频度。而由每个agent负责报告异常事件。manager一旦发现异常情况,可以直接轮询报告事件的agent,对事件进行诊断或获取关于异常情况的更多的信息。,SNMP基本框架,Proxies:为了管理没有装载SNMP的设备,SNMP提出了proxy的概念。在proxy模式下,一个SNMP的agent作为一个或多个其他设备的proxy。,RMONManager 通过RMON探针访问MORMON 探针对数据进行预处理,SNMP
7、管理信息模型,SMI:Structure of Management Information提供一个一般的MIB定义框架定义MIB中的数据类型定义被管对象如何命名,Internet identifier prefix:iso(1)org(3)dod(6)Internet object identifier:1.3.6.1,Internet MIB,DESCRIPTOR为对象定义一个助记名,所有字母都小写例如,internet,mgmtInternet下的4个节点directorymgmtexperimentalprivate,Data types and structures in SNMP,
8、RFC1155-SMIDEFINITIONS:BEGINEXPORTS-EVERYTHINGInternet,directory,mgmt,experimental,private,enterprises,OBJECT-TYPE,ObjectName,ObjectSyntax,SimpleSyntax,ApplicationSyntax,NetworkAddress,IpAddress,Counter,Gauge,TimeTicks,Opaque;-the path to the rootinternetOBJECT IDENTIFIER:=iso org(3)dod(6)1directory
9、OBJECT IDENTIFIER:=internet 1mgmtOBJECT IDENTIFIER:=internet 2experimentalOBJECT IDENTIFIER:=internet 3privateOBJECT IDENTIFIER:=internet 4enterprisesOBJECT IDENTIFIER:=private 1,-definition of object types OBJECT-TYPE MACRO:=BEGINTYPE NOTATION:=“SYNTAX”type(TYPE ObjectSyntax)“ACCESS”Access“STATUS”S
10、tatusVALUE NOTATION:=value(VALUE ObjectName)Access:=“read-only”|“read-write”|“write-only”|“not-accessible”Status:=“mandatory”|“optional”|“obsolete”END,-names of objects in the MIBObjectName:=OBJECT IDENTIFIER-syntax of objects in the MIBObjectSyntax:=CHOICE simple SimpleSyntax,application-wide Appli
11、cationSyntaxSimpleSyntax:=CHOICE numberINTEGER,stringOCTET STRING,objectOBJECT IDENTIFIER,emptyNULL ApplicationSyntax:=CHOICE addressNetworkAddress,counter Counter,gaugeGauge,ticksTimeTicks arbitrary Opaque,-application-wide typesNetworkAddress:=CHOICE intenetIpAddressIpAddress:=APPLICATION 0 IMPLIC
12、IT OCTET STRING(SIZE(4)Counter:=APPLICATION 1 IMPLICIT INTEGER(0.4294967295)Gauge:=APPLICATION 2 IMPLICIT INTEGER(0.4294967295)TimeTicks:=APPLICATION 3 IMPLICIT INTEGER(0.4294967295)Opaque:=APPLICATION 4 OCTET STRINGEND,IMPORTSObjectName,ObjectSyntax From RFC-1155-SMIOBJECT-TYPE MACRO:=BEGINTYPE NOT
13、ATION:=“SYNTAX”type(TYPE ObjectSyntax)“ACCESS”Access“STATUS”Status DescrPart ReferPart IndexPart DefValPartVALUE NOTATION:=value(VALUE ObjectName)Access:=“read-only”|“read-write”|“write-only”|“not-accessible”Status:=“mandatory”|“optional”|“obsolete”|“deprecated”DescrPart:=“DESCRIPTION”value(descript
14、ion DisplayString)|emptyReferPart:=“REFERENCE”value(reference DisplayString)|emptyIndexPart:=“INDEX”“”IndexTypes“”IndexTypes:=IndexType|IndexTypes“,”IndexTypeIndexType:=value(indexobject ObjectName)|type(indextype)DefValPart:=“DEFVAL”“”value(defvalue ObjectSyntax)“”|emptyDisplayString:=OCTET STRING
15、SIZE(0.255)END,OBJECT-TYPE MACRO,sysDescr OBJECT-TYPESYNTAX DisplayString(SIZE(0.255)ACCESSread-onlySTATUSmandatoryDESCRIPTION“A textual description of the entity.This value should include the full name and version identification of the systems hardware type,software operating system,and networking
16、software.It is mandatory that this contain only printable ASCII characters.”:=system 1,定义例,编码结构,包含MI的ASN.1 syntax 采用BER进行编码SNMP 采用TLV这种具体的编码结构TLV:Type,Length and Value,For example,the encoding of OCTET STRING 0A1BH00000100 00000010 00001010 00011011,MIB-II,MIB-II:MIB-I 的超集,为Internet的网络管理而开发。MIB-II的分
17、组:system:关于系统的总体信息;interface:系统到子网接口的信息;at:描述internet到subnet的地址映射;ip:关于系统中IP的实现和运行信息;icmp:关于系统中ICMP的实现和运行信息;tcp:关于系统中TCP的实现和运行信息;udp:关于系统中UDP的实现和运行信息;egp:关于系统中EGP的实现和运行信息;dot3:有关每个系统接口的传输模式和访问协议的信息;snmp:关于系统中SNMP的实现和运行信息。,MIB-II,system 组的对象,MIB-II,interfaces 组的对象,MIB-II,interfaces 组的对象(续),MIB-II,add
18、ress translation 组的对象,MIB-II,ip 组的对象,MIB-II,ip 组的对象(续),MIB-II,icmp 组的对象,MIB-II,icmp 组的对象(续),MIB-II,tcp 组的对象,MIB-II,tcp 组的对象(续),MIB-II,udp 组的对象,MIB-II,egp 组的对象,简单网络管理协议(SNMP)SNMP支持的操作,Get:管理站从被管理站提取标量对象值。Set:管理站更新被管理站中的标量对象值。Trap:被管理站向管理站主动地发送一个标量对象值。,community和安全控制,SNMP网络管理的特性:分布式的应用,应用实体是SNMP的管理站的应
19、用实体和被管理站的应用实体。一个管理站和多个被管理站之间一对多的关系。一个被管理站和多个管理站之间的关系。为保证网络管理信息的安全,被管理站必须对多个管理站对本地MIB的访问进行控制:认证服务:将对MIB的访问限定在授权的管理站的范围内;访问策略:对不同的管理站给予不同的访问权限;代管服务:代管系统要为托管站提供认证服务和访问权限服务。,community和安全控制,SNMP用community来定义一个agent和一组manager之间的认证、访问控制和代管的关系,提供初步的安全能力。Community:agent定义的本地概念,agent为每组可选的认证、访问控制和代管特性建立一个Comm
20、unity。Community在agent中有唯一的名称,将其提供给Community内的所有的manager,以便它们在get和set操作中应用。一个agent可以与多个manager建立多个Community,同一个manager可以出现在不同的Community中。不同的agent可能会定义相同的Community名。因此manager必须将Community名与agent结合起来加以应用。,community和安全控制,认证服务:保证收到的消息是来自它所声称的消息源。SNMP的认证模式:所有由manager发向agent的消息都包含一个Community名,这个名字发挥口令的作用。如果
21、发送者知道这个口令,则认为消息是可信的。通过这种简单的认证形式,manager可以对网络监测(get、trap)特别是网络控制(set)操作进行限制。Community名被用于启动一个认证过程,而认证过程可以包含加密和解密以实现更安全的认证。,community和安全控制,访问策略(access policy):通过定义community,agent将对它的MIB的访问限定在了一组被选择的manager中。使用多个community,agent可以为不同的manager提供不同的MIB访问控制。,community和安全控制,访问控制:SNMP MIB 视图:可以为每个community定义不
22、同的MIB视图。视图中的对象子集可以不在MIB的一个子树之内。SNMP 访问模式:READ-ONLY 或 READ-WRITE。为每个community定义一个访问模式。MIB视图和访问模式的结合被称为SNMP community profile。将一个community profile与agent定义的某个community联系起来,构成SNMP的访问策略。,community和安全控制,Proxy 服务:对于每个托管设备,Proxy 系统维护一个对它的访问策略,以此使Proxy系统知道哪些MIB对象可以被用于管理托管设备和能够用何种模式对它们进行访问。,实例标识,MIB中的每个对象都有一个
23、由其在树型结构中的位置所定义的唯一的对象标识符。但树型结构给出的对象标识符在一些情况下只是对象类型的标识符,不能唯一地标识对象的实例,例如表格中各个条目。纵列对象:表中的对象被称为纵列对象。纵列对象标识符不能独自唯一标识对象实例,由于纵列对象可能有多个实例。纵列对象实例的访问方法:随机访问:利用索引对象值实现;顺序访问:利用图书编目顺序实现。,实例标识,随机访问:在定义表格时,一般包含一个特殊的纵列对象INDEX,每个实例都具有不同的值,可以用来标识表中的各行。SNMP采用将INDEX对象值连接在纵列对象标识符之后的方法来标识纵列对象的实例。例:MIB-II interfaces组中的表ifT
24、able有一个ifIndex对象,值为 1 到 ifNumber 之间的整数,对应每个接口,ifIndex有一个唯一的值。ifTable中的纵列对象ifType描述接口类型,其对象标识符是:1.3.6.1.2.1.2.2.1.3 现要标识第2个接口,第2个接口的ifIndex值是2,因此其标识符为:1.3.6.1.2.1.2.2.1.3.2,实例标识,表格及行对象:对于表格和行对象,没有定义它们的实例标识符。这是因为表格和行不是叶子对象,因而不能由SNMP访问。在这些对象的定义中,ACCESS特性被设为not-accessible。标量对象:标量对象只有一个对象实例,因此对象类型标识符便是它的
25、实例的唯一标识。但为了与表格对象实例标识符的约定保持一致,也为了区分对象的类型和对象实例,SNMP规定标量对象实例的标识符由其对象类型标识符加 0 组成。,图书编目排序,由于对象标识符是一个整数序列,如果把它们看作是书的章节编号,则对象标识符的前后顺序就有了确定的排列方法,MIB中的对象实例也就有了顺序标识和访问的方法。因为Manager对Agent提供的MIB视图的构成不一定完全清楚,因此,它需要一种不必提供对象名称而能访问对象的方法。在这种情况下,对象及其实例的排序就是非常重要的。利用这个排序,Manager 可以有效地遍历一个MIB的结构。,SNMP消息格式,Manager和Agent之
26、间以传送SNMP消息的形式交换信息。,SNMP消息格式,以下4图分别是GetRequest-PDU、GetNextRequest-PDU、SetRequest-PDU,Response PDU,Trap PDU和Variable-bindings 的格式。,SNMP消息格式,SNMP消息的发送构成PDU;将构成的PDU、源和目的传送地址以及一个community名传给认证服务;SNMP协议实体将版本字段、community名以及上一步的结果组合成为一个消息;用基本编码规则(BER)对这个新的ASN.1的对象编码,然后传给传输服务。,SNMP消息格式,SNMP 消息的接收 进行消息的基本句法检查
27、,丢弃非法消息;检查版本号,丢弃版本号不匹配的消息;SNMP实体将用户名、消息的PDU部分以及源和目的传输地址传给认证服务,如果认证失败,认证服务通知SNMP实体,由它产生一个trap并丢弃这个消息,如果认证成功,认证服务返回SNMP格式的PDU;SNMP实体进行PDU的基本句法检查,如果非法,丢弃该PDU,否则利用community名选择对应的SNMP访问策略,对PDU进行相应处理。,SNMP消息格式,变量绑定:在SNMP中,可以将多个同类操作(get、set、trap)放在一个消息中。为了实现多对象交换,所有的SNMP的PDU都包含了一个变量绑定字段。变量绑定字段由对象实例名的一个参考序列
28、及这些对象的值构成。某些PDU只需给出对象实例的名字,如get操作。对于这样的PDU,接收协议实体将忽略变量绑定字段中的值。,GetRequest PDU,SNMP实体应Manger的应用程序的请求发出GetRequest PDU。GetRequest PDU 的SNMP接收实体用包含相同request-id的GetResponse PDU进行应答。GetRequest操作是原子操作要么所有的值都提取回来,要么一个都不提取。GetRequst 操作不成功的原因有对象名不匹配(noSuchName)、返回结果太长(tooBig)以及其他原因(genErr)。SNMP只允许提取MIB树中的叶子对象
29、的值。因此不能只提供一个表或一个条目的名字来获取整个表或整行的对象值。但是可以将表中每行的各个对象包含在变量绑定中,来一次获取一行的对象值,GetNextRequest PDU,GetNextRequest PDU与GetRequest PDU具有相同交换模式和相同的格式。不同的,GetNextRequest 列出的是要取值的对象实例的“前一个”对象实例名。GetNextRequest有GetRequest无法替代的用途。它能够使网络管理站去动态地发现一个MIB视图的结构。它也为查找不知其条目的表提供了一个有效的机制。GetNextRequest要求代理者提取所提供的对象实例名的下一个对象实例
30、的值,因此,发送这类PDU时,并不要求提供MIB视图中实际存在的对象或对象实例的标识符。利用这一特点,Manager可以使用GetNextRequest PDU去探查一个MIB视图,并搞清它的结构。,SetRequest PDU,SNMP实体应Manager的应用程序的请求发出SetRequest PDU。变量绑定清单中既包含对象实例标识符,也包含每个对象实例将被赋予的值。接收实体用包含相同request-id的GetResponse PDU进行应答。SetRequest操作是原子操作要么变量绑定中的所有变量都被更新,要么一个都不被更新。如果更新成功,则GetResponse PDU中包含提供
31、给各个变量新值的变量绑定字段。只要有一个变量值不能成功地设置,则无变量值返回,也无变量值被更新。可能返回的错误:noSuchName、tooBig、genErr、badValue。利用SetRequest不仅可以对叶子对象实例进行值的更新,也可以利用变量绑定字段进行表格的行增加和行删除操作。,Trap PDU,SNMP实体应Agent的应用程序的请求发出Trap PDU。它被用于向Manager异步地通报某个重要事件。它的格式与其他的SNMP PDU完全不同。,传输层的支持,在TCP/IP体系中,SNMP的实现几乎都是使用无连接协议用户数据报(UDP)。两个端口号给SNMP应用,用于代理者侦听GetRequest,GetNextRequest和SetRequest命令的161端口和用于管理站侦听Trap命令的162端口。UDP是非可靠的,因此SNMP的消息可能被丢失。SNMP本身也不保证消息的可靠传递,因此,处理消息丢失问题的负担只能由SNMP的用户自己承担。在GetRequest和GetNextRequest的场合,如果在规定的时间内得不到应答,管理站可以认为消息被丢失,这时可以重发消息。在SetRequest的场合,如果在规定的时间内得不到应答,可以用GetRequest操作进行确认。SNMP的Trap没有应答消息,因此没有简单的方法去检验Trap的传递。,
链接地址:https://www.31ppt.com/p-2876361.html