网络管理技术与应用.ppt

上传人:牧羊曲112 文档编号:6016896 上传时间:2023-09-15 格式:PPT 页数:69 大小:457KB
返回 下载 相关 举报
网络管理技术与应用.ppt_第1页
第1页 / 共69页
网络管理技术与应用.ppt_第2页
第2页 / 共69页
网络管理技术与应用.ppt_第3页
第3页 / 共69页
网络管理技术与应用.ppt_第4页
第4页 / 共69页
网络管理技术与应用.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《网络管理技术与应用.ppt》由会员分享,可在线阅读,更多相关《网络管理技术与应用.ppt(69页珍藏版)》请在三一办公上搜索。

1、网络管理技术与应用,第5章:SNMP通信模型,本章主要从SNMP的通信模型来讨论其网络协议,其有4个方面的内容:SNMP结构管理模型SNMP协议SNMP MIB,5.1 SNMP结构5.2 管理模型5.3 SNMP协议规范5.4 SNMP操作5.5 SNMP功能组5.6 SNMPv2,第5章:SNMP通信模型,5.1 SNMP结构(The SNMP Architecture),SNMP结构是管理系统和管理代理之间的管理报文的规范。由定义团体来进行安全机制的管理,只有相同团体成员之间才能进行通信。一个管理站能够属于多个团体且可管理多个域。,5.1 SNMP结构(The SNMP Architec

2、ture),SNMP结构具有三个方面的功能:通过管理代理实现的网络功能应该是最简单的;允许有足够的可扩展性(增加新的操作和管理);SNMP结构应独立于具体主机和网关的结构及机制。,5.1 SNMP结构,SNMP只用于简单对象的通信并用ASN.1和BER(基本编码规则)进行数据传输。基本报文有set,get和trap。其中trap有三种类型:一般trap特殊trap时间戳,一般trap类别:coldStartwarmStartlinkDownlinkUpauthenticationFailureegpNeighborLossenterpriseSpecific(属特殊陷入由设备制造商定义),5.

3、1 SNMP结构,特殊trap是与设备有关时间戳是在网络实体初始化和陷入产生之间的时间。sysUpTime的值。,5.1 SNMP结构,返回本章首页,5.2 管理模型(The Administrative Model),支持SNMP应用实体的程序称为协议实体SNMP管理者属于管理站的应用实体SNMP代理属于网络元素的应用实体这一对实体被称为SNMP团体。SNMP团体名为community,是一个字符串的形式。,5.2 管理模型,5.2 管理模型,图中是多个SNMP管理者与一个SNMP代理进行通信,还可以进行多对一和多对多的通信。图中发送和接收过程都要进行认证检验,这可以视为是一种安全机制。SN

4、MPv1的安全机制很简单,只是验证团体名。属于同一团体的管理站和被管理站才能互相作用。,5.2 管理模型,1、团体的概念 SNMP网络管理是一种分布式应用。代理控制自己的MIB,也控制多个管理站对MIB的访问。只有授权的管理站才允许访问管理信息库。其基本思想是:l代理系统可以对不同的团体定义不同的访问 控制策略,每个团体被赋予唯一的名字。l管理站只能以认可的团体名行使访问权。l管理站实体可以用不同的名字对不同的代理 实施不同的访问权限。,5.2 管理模型,2、认证服务 认证服务的目的是要保证通信是被授权的。对于一个SNMP报文,认证服务的功能是保证接收报文来自于这个消息所声称的源。从管理站到代

5、理的每个报文都包括一个团体名字。这个名字起到密码的作用,如果发送者知道这个密码,报文就被认为是可靠的。,5.2 管理模型,团体名以明文的形式传输,容易被窃取。所以SNMP的安全机制是不安全的。为此很多SNMP的实现只允许Get和Trap操作,而Set的操作被严格的限制。即只具有网络监视功能而限制控制网络设备。为了加强SNMP的安全性,在后来的SNMP版本中改进了认证服务。,5.2 管理模型,3、访问策略 通过定义团体,代理系统限制只有一些选定的管理站才能访问它的MIB。通过使用多个团体,代理可为不同的管理站提供不同的MIB访问类别。访问控制有两方面:l SNMP MIB 视域(view):MI

6、B中对象的一个子 集,对不同的团体可以定义不同的视域。属 于同一视域的对象不必属于同一子树。l访问模式:集合read-only,read-write的一 个元素。对于一个团体可以定义一种访问模 式。,5.2 管理模型,一个团体的MIB视域和访问模式的组合称为SNMP团体形象(profile)。它包含代理中对象的一个子集和有关这些对象的访问模式。SNMP访问模式适用于MIB视域中的所有对象。例如如果访问模式是read-only,则具有同一团体形象的管理站对视域中的所有对象只能以只读方式访问。,每个MIB对象的定义都有ACCESS子句,其规定了对象 量的访问属性。团体形象中又规定了团体成员对对象的

7、访问模式。这两种访问限制应该相协调。即使一个对象的访问属性是write-only,也允许 SNMP实体读取该对象,这取决于具体实现时的考虑。,5.2 管理模型,5.2 管理模型,团体形象是由代理为各个团体定义的。SNMP团体和SNMP团体形象的组合称为SNMP访问策略。,SNMP的访问策略,5.2 管理模型,三个网络管理系统,各自有不同的团体域。代理1和代理2属于团体1,而它们却有不同的团体形象。作为团体1的一部分的管理站1可以与代理1和代理2通信但管理站1不可以与属于团体2的代理3和代理4通信。管理站2则可以访问它们,因为管理站2属于团体2。管理站3可以访问团体1和团体2,因此可以与所有代理

8、通信,5.2 管理模型,4、委托代理服务 通常委托代理是为不支持SNMP的设备工作的,团体形象的概念同样适用于委托代理服务。有些情况下,被代理的设备也可能支持TCP/IP和SNMP,这时委托代理的作用是为了减少代理的设备与管理站之间的交互过程。对于被代理的设备,委托代理定义并且维护一种SNMP访问策略。,5.2 管理模型,图为SNMP对象与非SNMP对象通过SNMP管理站进行通信的例子。比如SNMP代理可以是一个具有TCP/IP协议的LAN。而一个WAN如X.25网络,其不具有Internet模型,但可以通过委托代理进行管理并集成到综合管理系统。,返回本章首页,5.3 SNMP协议规范(SNM

9、P Protocol Specifications),1、SNMP PDU格式,5.3 SNMP协议规范,SNMP报文是在PDU加上团体名、版本号和应用层的头构成了应用层的PDU。在其前加上UDP的头成为了传输层的PDU。以此类推,构成每一层的PDU。SNMP协议实体在主机的161端口被接收。tray是在162端口被接收。SNMPv1协议的最大长度为484个字节。SNMP有5种管理操作,但只有4种PDU格式:GetRequest PDU、GetNextRequest PDU与SetRequest PDU格式相同。GetResponse PDU Trap PDU variable-binding

10、s,5.3 SNMP协议规范,2、报文的发送和接收,5.3 SNMP协议规范,返回本章首页,5.4 SNMP操作(SNMP Operations),1.变量绑定 所有的SNMP操作都是访问对象实例。(叶节点)可以将一些相同类型的操作(get,set,trap)组合到一条报文中去。管理站可得到代理的某个组中的所有标量对象的值。它可以只发送一条报文来要求所有的取值,然后得到一个列出了所有值的响应。为了实现多个对象的交换,所有的SNMP PDU都包括一个variable-binding域,即绑定域。该域由一系列对象实例的索引组成,并且带有那些对象的值。,5.4 SNMP操作,2.检索简单对象检索简单

11、的标量对象值可以用get操作;如果变量绑定表中包含多个变量,一次还可以检索多个标量对象的值;接收GetRequest的SNMP实体请求标识相同的GetRequest响应。如果所有请求的对象值均可以得到,则给于应答;只要有一个对象的值得不到,则可返回下列错误之一:,5.4 SNMP操作,noSuchName:变量绑定表中的一个对象无法与MIB中的任何对象标识符匹配,或者要检索的对象是一个子树或表,没有对象实例生成。tooBig:响应实体可提供所有要检索的值,若变量太多以至一个响应PDU装不下。genError:响应实体一个对象的值也不能提供时,变量绑定表中不返回任何值。,5.4 SNMP操作,例

12、1:若网络管理站想要从代理中检索udp组中所有简单对象的取值,管理站可以发送一个GetRequest PDU,并在检索命令中直接指明对象实体的标识符:GetRequest(udpInDatagrams.0,udpNoPorts.0,udpInError.0,udpOutDatagrams.0)如果代理中该公共体的MIB视域支持所有的这些对象,则返回4个对象的一个GetRequest PDU:,5.4 SNMP操作,例 2:如果代理不支持管理站对udpNoPorts的访问,则响 应会不同。如发出同样的命令:GetNextRequest(udpInDatagrams,udpNoPorts,udpI

13、nError,udpOutDatagram)而得到的响应是:GetResponse(udpInDatagrams.0=17346,udpInError.0=0,udpInError.0=0,udpOutDatagrams.0=17090)因为变量名udpNoPorts和udpInError的下一个对象实例 都是udpInError.0=0 可见当代理收到一个Get请求时,如果能检索到所有的 对象实例,则返回请求的每一个值;如果有一个值不能提供,则返回该实例的下一个值。,5.4 SNMP操作,3.检索未知对象GetNext命令检索变量名指示的下一个对象实例,但是并不要求变量名是对象标识符或者是实

14、例标识符。如udpInDatagrams的实例标识符是udpInDatagrams.0,而udpInDatagrams.2并不表示任何对象。若发出GetNextRequest(udpInDatagrams.2)得到的响应是GetNextRequest(udpNoPorts.0=2552)说明代理没有检查标识符udpInDatagrams.2的有效性,而是直接查找下一个有效的标识符,得到udpInDatagrams.0后返回了它的下一个对象实例。,5.4 SNMP操作,4.检索表对象 GetNext可用于有效地搜索表对象。,5.4 SNMP操作,例 3:上图中,若发出下面的命令,检索ifNumb

15、er的值。GetRequest(1.3.6.1.2.1.2.1.0)GetResponse(2)我们知道有两个接口。如果我们进一步想要知道每个接口的数据速率,则可以用下面的命令检索if表中的第五个元素:GetRequest(1.3.6.1.2.1.2.2.1.5.1)最后的1是索引项ifIndex的值。得到的响应是:GetResponse(10000000)说明第一个接口的数据速率是10Mb/s。若要得到第二个接口的速率可用命令:GetNextRequest(1.3.6.1.2.1.2.2.1.5.1)得到的可能是GetResponse(56000)说明第二个接口的数据速率为56kb/s。,5

16、.4 SNMP操作,例 4 若管理站希望能够检索整个表,但又不知其中的内容和表中的行数,则可连续使用GetNext命令。,5.4 SNMP操作,管理站可发送包含所有列对象名称的GetNextRequest:GetNextRequest(ipRouteDest,ipRouteMetric1,ipRouteNextHop)代理将表中的第一行取值返回:GetResponse(ipRouteDest.9.1.2.3=9.1.2.3,ipRouteMetric1.9.1.2.3=3,ipRouteNextHop.9.1.2.3=99.0.0.3)根据第一行的值可检索下一行:GetNextRequest(

17、ipRouteDest.9.1.2.3,ipRouteMetric1.9.1.2.3,ipRouteNextHop.9.1.2.3)GetResponse(ipRouteDest.10.0.0.51=10.0.0.51,ipRouteMetric1.10.0.0.51=5,ipRouteNextHop.10.0.0.51=89.1.1.42)据此可继续检索第三行。,5.4 SNMP操作,GetNextRequest(ipRouteDest.10.0.0.51,ipRouteMetric1.10.0.0.51,ipRouteNextHop.10.0.0.51)GetResponse(ipRout

18、eDest.10.0.0.99=10.0.0.99,ipRouteMetric1.10.0.0.99=5,ipRouteNextHop.10.0.0.99=89.1.1.42)管理站不知道这是表的未尾,因此继续:GetNextRequest(ipRouteDest.10.0.0.99,ipRouteMetric1.10.0.0.99,ipRouteNextHop.10.0.0.99)然而表中只有3行,因此代理返回MIB中按字典顺序的下个对象:GetResponse(ipRouteMetric1.9.1.2.3=3,ipRouteNextHop.9.1.2.3=99.0.0.3,ipNetToM

19、ediaIfIndex.1.3=1)管理站可以通过响应列表中对象的名称与请求不匹配而得出路由表已以到达了末端。,5.4 SNMP操作,5.表的更新和删除 Set命令用于设置或更新变量的值。对于Set命令的应答与是GetResponse,并且要么更新列表中的所有变量,要么一个也不更新。其错误状态为tooBig,noSuchname和genError。若有一个变量的名字和要设置的值在类型、长度或实际值方面不匹配,则返回错误条件badValue。,5.4 SNMP操作,例5:在表5-3中,若想改变列对象ipRouteMetric1的第一个值,则可发出命令:SetRequest(ipRouteMetr

20、ic1.9.1.2.3=7)得到的应答是:GetResponse(ipRouteMetric1.9.1.2.3=7)其效果是该对象的值由3变成了7。,5.4 SNMP操作,例 6 对于表5-3若要增加一行,则可用命令:SetRequest(ipRouteDest.11.3.3.12=11.3.3.12,ipRouteMetric1.11.3.3.12=7,ipRouteNextHop.11.3.3.12=91.0.0.5)例 7 如果要删除表中的一行,则可以把一个对象的值置为invalid:SetRequest(ipRouteType.7.3.5.3=invalid)得到的响应说明表行确已删除

21、:GetResponse(ipRouteType.7.3.5.3=invalid),5.4 SNMP操作,6.陷入操作 coldStart发送实体重新初始化,代理的配置已改变,通常是由系统失效引起的。warmStart发送实体重新初始化,但代理的配置没有改变,这是正常的重启动过程。linkDown链路失效通知,变量绑定表的第一项指明对应接口表的索引变量及其值。linkUP链路启动通知,变量绑定表的第一项指明对应接口表的索引变量及其值。aughenticationFailure发送实体收到一个没有通过认证的报文。egpNeighborLoss 相邻的外部路由器失效或关机。enterpriseSp

22、ecific 由设备制造商定义的陷入条件,在特殊陷入字段指明具体的陷入类型。,返回本章首页,5.5 SNMP功能组(MIB-SNMP Group),snmp组包含SNMP操作和实现的信息。除了组中的最后一个对象,所有的对象都是只读的计数器。对象snmpEnableAuthenTrap可以由管理站设置,它指示是否允许代理产生“认证失效”陷入。,返回本章首页,5.6 SNMPv2,SNMP具有一定的局限性:由于轮询的性能限制,SNMP不适合管理很大的网络。SNMP不适合检索大量数据。SNMP的陷入报文是没有应答的,可能会丢掉重要的管理信息。SNMP只提供简单的团体名认证,安全措施很弱。SNMP并不

23、直接支持向被管理设备发送命令。MIB-支持的管理对象是很有限的,不足以完成复杂 的管理功能。SNMP不支持管理站之间的通信,而这一点在分布式网络管理中是很需要的。,针对以上SNMPv1的缺陷,SNMPv2对SNMP进行了一定的改进。其增强的主要功能有:管理信息结构的扩充;管理站和管理站之间的通信能力;新的协议操作。,5.6.1 SNMPv2系统结构,图5-10,SNMPv2与SNMP系统结构的主要区别 SNMPv2有7种报文 管理者与管理者之间可以通信。SNMPv2提供3种访问管理信息的方法:管理站和代理之间的请求/响应通信。代理系统到管理站的非确认通信。管理站和管理站之间的请求/响应通信,以

24、支持分布式网络管理。,5.6.2 SNMPv2协议操作,1SNMPv2报文版本号取值为0-SNMPv1 取值为1-SNMPv2。2SNMPv2 PDU SNMPv2协议数据单元有3种PDU格式GetRequest、GetNextRequest、SetRequest、GetBulkRequest、SNMPv2-Trap、Response、InformRequest,图5-11 SNMPv2报文PDU格式,GetRequest,GetNextRequest,SetReques,InfornRequest和Trap PDU,GetResponsePDU,GetBuleRequest PDU,变量绑定

25、表,5.6.2 SNMPv2协议操作,1.GetRequestPDU:SNMPv2对这种操作的响应方式与SNMPv1不同之处是允许部分响应,对变量绑定表中的各个变量进行处理:如果该变量的对象标识符前缀不能与这一请求可访问 的任何变量的对象标识符前缀匹配,则返回一个错误 值noSuchObject。如果变量名不能与这一请求可访问的任何变量名完全匹配,则返回一个错误值noSuchInstance。如果由于任何其他原因而处理失败,则返回一个错误状态genErr。如果生成的响应PDU太大,则构造一个新的响应PDU,其错误状态为tooBig,错误索引为0,变量绑定表为 空。,5.6.2 SNMPv2协议

26、操作,2.GetNextRequestPDU:其区别于SNMPv1是改变了响应的原子性。对变量绑定表中指定的变量在MIB中查找按照字典顺序的后继变量,如果找到,返回该变量的名字和值。如果找不到按照字典顺序的后继变量,则返回请求PDU中的变量名和错误值endOfMibView.如果出现其他情况使得构造响应PDU失败,以与GetRequest类似的方式返回错误值。,5.6.2 SNMPv2协议操作,3.GetBulkRequestPDU:是SNMPv2对原标准的主要增强,用于从代理到管理站传送大量的数据而使所需要的协议交换数目最小,尤其是检索表数据的管理信息。块检索操作,原理与GetNextReq

27、uest操作相同可以说明多个后继对象实例。如果请求太大,代理则返回尽可能多的数据,而不是简单地发送一个tooBig错误消息。,5.6.2 SNMPv2协议操作,4.SetRequestPDU:SNMPv2 SetRequestPDU在格式和语义上都和SNMPv1完全相同,其操作的基本特性是要么更新所有的变量,要么一个都不更新。唯一的区别在于处理响应的方式不同。使用较多的错误代码是SNMPv2对SNMP的一大提高,使得管理站能了解详细的错误信息,以便采取纠正措施。,5.6.2 SNMPv2协议操作,5.SNMPv2-Trap PDU:SNMPv2的陷入采用与Get等操作相同的PDU格式,这与原标

28、准不同。但其也是代理发给管理站的非确认性消息。,5.6.2 SNMPv2协议操作,6.InformRepuestPDU:由管理站功能实体代表一个应用程序发往另一个执行管理站功能的SNMPv2实体,为得到后一个应用程序提供的管理信息。变量绑定表的内容与SNMPv2-Trap PDU具有相同的元素。但该消息需要应答。,5.6.3 SNMPv2管理信息库,SNMPv2的管理信息库增加了两个新的MIB模块,即安全模块和SNMPv2模块。SNMPv2又有三个子模块:SNMPDomains,SNMPProxys和SNMPModules。SNMPDomains 扩展了在传输协议之上传送管理报文的SNMP标准

29、。SNMPProxys的功能是将执行其它协议的系统通过代理服务映射到UDP.,5.6.3 SNMPv2管理信息库,1.SNMP组在SNMPv2中SNMP组对MIB-2进行了简化,删除了大量的认为不必要的实体。同时又增加了一些新对象。,5.6.3 SNMPv2管理信息库,2.MIB对象组 这个新组包含的对象与管理对象的控制有关 在snmpMIBObjects节点下有三个模块:snmpTrap(4)、snmpTraps(5)和snmpSet(6)。子节点1、2、和3已经被取消,5.6.3 SNMPv2管理信息库,SnmpTrap组包含了陷入通知和有关制造商对象标识符的信息。在SnmpTraps下的

30、实体是Snmpv1Traps的扩展。SnmpSerialNo是SnmpSet仅有的一个对象,用于解决set操作中可能出现的问题。一是要保证set操作按照发送的顺序对MIB进行执行 二是防止多个管理站对MIB进行并发操作,从而保证数据库的一致性和精确性。,5.6.3 SNMPv2管理信息库,3.Snmpv2一致性声明(Conformance Statements)一致性是对具体实现的限制,是具体实现必须达到的最小级别。在一致性声明中规定了四个宏:OBJECT-GROUP(对象组宏)NOTIFICATION-GROUP(通知组宏)MODULE-COMPLIANCE(模块依从性宏)AGENT-CAP

31、ABILITIES(代理能力宏),5.6.3 SNMPv2管理信息库,4.接口组 MIB-定义的接口组经过一段时间的使用,发现有很多缺陷。RFC1573分析了原来的接口组没有提供的功能和其他不足之处并对MIB-接口组做了一些小的修改:l 重新规定ifIndex用于区分接口子层而不再代表一个接口。不再限制ifIndex的取值必须在1到ifNumber之间。允许动态地增加/删除网络接口。l 废除了ifInNUcastPkts、ifOutNUPkts和ifOutQLen这些用处不大的变量。l ifSpecific也被废除了,其作用由ifType代替。,5.6.3 SNMPv2管理信息库,RFC1573还对接口组增加了4个新表,5.6.3 SNMPv2管理信息库,1.接口扩展表ifXTable 变量ifName表示接口名,表中可能有代表不同子层的多个行属于同一接口,它们具有同一接口名。2.接口堆栈表 接口堆栈表说明接口表中属于同一物理接口的各个行之间的关系.3.接口测试表 接口测试表的作用是由管理站指示代理系统测试接口的故障。该表的一行代表一个接口测试。4.接收地址表 接收地址表包含每个接口对应的各种地址(广播地址、组播 地址和单地址)。,返回本章首页,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号