第4章简单网络管理协议.ppt

上传人:sccc 文档编号:4785764 上传时间:2023-05-14 格式:PPT 页数:218 大小:1.75MB
返回 下载 相关 举报
第4章简单网络管理协议.ppt_第1页
第1页 / 共218页
第4章简单网络管理协议.ppt_第2页
第2页 / 共218页
第4章简单网络管理协议.ppt_第3页
第3页 / 共218页
第4章简单网络管理协议.ppt_第4页
第4页 / 共218页
第4章简单网络管理协议.ppt_第5页
第5页 / 共218页
点击查看更多>>
资源描述

《第4章简单网络管理协议.ppt》由会员分享,可在线阅读,更多相关《第4章简单网络管理协议.ppt(218页珍藏版)》请在三一办公上搜索。

1、计算机网络管理,-第4章 简单网络管理协议,电子信息工程学院计算机科学与技术系,第4章 简单网络管理协议,4.1 SNMP的演变 4.2 SNMPv1协议数据单元 4.3 SNMPv1的操作 4.4 实现问题 4.5 SNMPv2管理信息结构 4.6 SNMPv2协议数据单元 4.6 SNMPv3 习题 作业,这一章主要学习:,了解SNMP协议的演变过程:(1990-1999)共三个版本SNMP协议三个版本的主要内容:SNMP的协议数据单元SNMP协议支持的操作SNMP的安全机制,4.1 SNMP的演变,4.1.1 SNMPv1 TCP/IP网络管理最初使用的是1987年11月提出的简单网关

2、监控协议(Simple Gateway Monitoring Protocol,SGMP),简单网络管理协议第一版(Simple Network Management Protocol,SNMPv1)是在SGMP基础上改进成的。陆续公布在1990年和1991年的几个RFC(Request For Comments)文档中,即:RFC 1155(SMI);RFC 1157(SNMP);RFC 1212(MIB定义);RFC 1213(MIB-2规范)。,SNMPV1的优点:最主要的的优点是:简单,容易实现;基于人们熟悉的SGMP(Simple Gateway Monitoring Protoco

3、l)协议,而对SGMP的使用已相当熟悉,已具有相 当多的操作经验。网络管理的两个标准 IETF网络管理标准:SNMP(IETF:Internet Engineering Task Force,是全球互联网最具权威的技术标准化组织,主要任务是负责互联网相关技术规范的研发和制定)OSI网络管理标准:CMIP/CMIS CMIP:Common Management Information Protocol;CMIS:Common Management Information Service,4.1.2 SNMPv2,SNMPv1的不足:没有实质性的安全设施,无数据源认证功能,不能防止偷听。面对这样不

4、可靠的管理环境,许多制造商不得不废除了set命令,以避免网络配置被入侵者恶意窜改。安全SNMP(S-SNMP)协议:为了修补SNMPv1的安全缺陷,1992年7月出现了一个新标准:安全SNMP(S-SNMP)(S即safety);S-SNMP增强了安全方面的功能:用报文摘要算法MD5保证数据完整性和进行数据源认证;用时间戳对报文排序;用DES算法提供数据加密功能,但是S-SNMP没有改进SNMP在功能和效率方面的其他缺点。SMP(Simple Management Protocol)协议:SMP协议由8个文件组成,它对SNMP主要在以下4个方面进行了扩充与扩展:适用范围:SMP可以管理任意资源

5、,不仅包括网络资源,还可用于应用管理、系统管理;可实现管理站之间的通信;可以描述一致性要求和实现能力;管理信息的扩展性得到了增强。复杂程度、速度和效率:保持了SNMP的简单性,更容易实现;提供了数据块传送能力,因此速度和效率更高。,安全设施:结合了S-SNMP提供的安全功能。兼容性:既可以运行在TCP/IP网络上,也适合OSI系统和运行其他通信协议的网络。Internet研究人员之间达成了共识:在对S-SNMP和SMP讨论的过程中,Internet研究人员之间达成了如下共识:必须扩展SNMPv1的功能并增强其安全设施,使用户和制 造商尽快地从原来的SNMPv1过渡到第二代SNMP。放弃S-SN

6、MP,以SMP为基础开发SNMP第2版,即SNMPv2。,IETF(internet工程任务组)组织了两个工作组:一个组负责协议功能和管理信息库的扩展;一组负责SNMP的安全方面;于1992年10月正式开始工作,功能组的工作在1992年12月 完成,安全组在1993年1月完成。1993年5月它们发布了12个RFC(14411452)文件作为 SNMPv2草案标准。,一种意见认为SNMPv2安全机制实现起来太复杂,对代理的配置很困难,限制了网络发现能力,失去了SNMP的简单性。又经过几年的实验和论证,后来人们决定丢掉安全功能,把增加的其他功能作为新标准颁布,并保留SNMPv1的报文封装格式,称其

7、为基于团体的 SNMP(Community-based SNMP),简称SNMPv2C。新的RFC(19011908)文档于1996年1月发布。表4.1列 出了有关SNMPv2和SNMPv2C的RFC文件。,表4.1 有关SNMPv2和SNMPv2C的RFC文件,4.1.3 SNMPv3 SNMPv2没有达到“商业级别”的安全要求:提供数据源标识、报文完整性认证、防止重放、报文机 密性、授权和访问控制、远程配置和高层管理能力等;SNMPv3工作组一直在从事新标准的研制工作。SNMPv3工作组的目标是:尽量使用已有的文档,使新标准:能够适应不同管理需求的各种操作环境;便于已有的系统向SNMPv3

8、过渡;可以方便地建立和维护管理系统。,SNMPv3的建议标准(Proposed Standard):SNMPv3工作组于1998年1月发表了5个文件,作为建议标准(Proposed Standard):RFC 2271描述SNMP管理框架的体系结构;RFC 2272简单网络管理协议的报文处理和调度;RFC 2273SNMPv3应用程序;RFC 2274SNMPv3基于用户的安全模块;RFC 2275SNMPv3基于视图的访问控制模块。SNMPv3的建议标准在功能上主要增强了:SNMP的安全性高层管理的功能。,SNMPv3的新标准:在上述5个文件的基础上进行了修订,在1999年4月公布了7个文件

9、,作为SNMPv3的新标准(DRAFT STANDARD):RFC 2570Internet标准网络管理框架第3版引论;RFC 2571SNMP管理框架的体系结构描述;RFC 2572简单网络管理协议的报文处理和调度系统;RFC 2573SNMPv3应用程序;RFC 2574SNMPv3基于用户的安全模块(USM);RFC 2575SNMPv3基于视图的访问控制模块(VACM);RFC 2576SNMP第1、2、3版的共存问题。,SNMPV3对SNMPv2的管理信息结构(SMI)的有关文件进行了修订,作为正式标准公布:RFC 2578管理信息结构第2版(SMIv2);RFC 2579对于SMI

10、v2的文本约定;RFC 2580对于SMIv2的一致性说明。SNMPv3的特点:在SNMPv2C的基础上增加了安全功能和高层管理功 能;和以前的标准(SNMPv1和SNMPv2)完全兼容;结构上便于以后新功能模块的扩充。,4.2 SNMPv1协议数据单元,主要讨论SNMP的工作原理:SNMP对管理对象的操作 SNMP协议数据单元的格式 SNMP报文的发送、接收和应答,4.2 SNMPv1协议数据单元,4.2.1 SNMPv1支持的操作 SNMPv1是一种简单的“请求/响应”协议,使用“管理者-代理”模式,仅支持对被管对象值的检 索和修改等简单操作。网络管理系统发出一个请求,管理代理则返回一个响

11、 应。该过程通过SNMP操作实现。SNMPv1实体可以对MIB-2中的对象执行下列操作:Get:管理站检索管理信息库中标量对象的值;Set:管理站设置管理信息库中标量对象的值;Trap:代理向管理站报告管理对象的状态变化。,SNMPv1的不足:SNMPv1不支持管理站改变管理信息库MIB的结构,即 不能增加和删除管理信息库中的管理对象实例,例 如不能增加或删除表中的一行。管理站不能向管理对象发出执行一个动作的命令。管理站只能逐个访问管理信息库中的叶结点,不能 一次性访问一个子树,例如不能访问整个表的内容。MIB-2中的子树结点都是不可访问的。这些限制确实简化了SNMP的实现,但是也限制了网 络

12、管理的功能。,4.2.2 SNMP PDU格式 SNMP报文的组成:在SNMP管理中,管理站和代理之间交换的管理信息构成了SNMP报文。报文由3部分组成:见下图 版本号:是指SNMP的版本 团体名:用于身份认证 协议数据单元(PDU):管理站与管理代理之间交换的数据 SNMP共有5种管理操作:GetRequest GetNextRequest SetRequest GetResponse Trap,图4.1 SNMP 报文格式,管理站发出的3种请求报文:其格式是一样的GetRequestPDUGetNextRequestPDUSetRequestPDU 代理的应答报文格式只有一种:GetRes

13、ponsePDU 代理用于事件报告的报文:TrapPDU,GetRequest,GetNextRequest,SetRequest,GetResponse PDU格式是相同的,共有5个字段:PDU类型 请求标识(request-id)错误状态(error-status)错误索引(error-index)变量绑定表(variable-binding),PDU类型:每种类型用一个整数表示GetRequestPDU:0GetNextRequestPDU:1GetResponsePDU:2SetRequestPDU:3TrapPDU五种类型:4 请求标识(request-id):赋予每个请求报文惟一的

14、整数。用于区分不同的请求。返回的应答报文,要根据其中 的请求标识与请求报文配对;检测由不可靠的传输服务产生的重复报文。,错误状态(error-status):代理在处理管理站的请求时,可能出现的各种错误,共有6种错误状态,错误索引(error-index):指向出错的变量或出错变量的序号。变量绑定表(variable-binding):变量名和对应值的表,说明要检索或设置的所有变量及其值。在检索请求报文中,变量的值应为0。变量绑定表就是把多个变量的值装入一个PDU,并通过一个应答得到所有的值,使得一次可以检索多个被管对象,这样可以大大减少网络管理的通信负担。,Trap报文的格式:制造商ID(e

15、nterprise):表示设备制造商的标识,与MIB-2的系统组对象 sysObjectID的值相同。代理地址(agent-addr):产生陷入的代理的IP地址;一般陷入(generic-trap):SNMP定义的陷入类型;特殊陷入(specific-trap):与设备有关的特殊陷入代码。时间戳(time-stamp):代理发出陷入的时间,与MIB-2中的系统组对象 sysUpTime的值相同,一般陷入的类型,管理站发出的3种请求报文:GetRequest、GetNextRequest 和SetRequest代理的应答报文格式只有一种:GetResponsePDU,4.2.3 报文应答序列1、

16、报文按管理站、管理代理划分 管理站报文 GetRequest、GetNextRequest和SetRequest的报文由管理站发出,代理以GetResponse响应。管理站可连续发出多个请求报文,然后等待代理返回应答报文。如果在规定的时间内收到应答,则按照请求标识进行配对,亦即应答报文必须与请求报文有相同的请求标识。管理代理报文GetResponse响应报文Trap报文由代理发给管理站,不需要应答。,2、SNMP报文发送和应答序列,SNMP Services,GetGetNextSetTrap,4.2.4 报文的发送和接收 生成和发送SNMP报文 一个SNMP协议实体(PE)发送报文时执行下面

17、的过程 首先按照ASN.1的格式构造PDU;将PDU、源地址、端口和目的地址、端口以及共同体名 称一起交给认证进程;认证进程检查源和目标之间是否可以通信;通过检查则把有关信息(版本号、团体名、PDU)组装 成报文;3.最后经过BER编码,将报文交传输实体发送出去。见下图,生成和发送SNMP报文,接收和处理SNMP报文当一个SNMP协议实体(PE)接收到报文时执行下面的过程:首先按照BER编码恢复ASN.1报文;对解码后的报文进行基本的语法检查,丢弃非法报文;检查版本号,丢弃版本号不匹配的报文;将PDU、发送方地址和端口、接收方地址和端口发送到认证服务:如果认证失败,生成一个陷入报文,向发送站报

18、告通信 异常情况 如果认证成功,认证服务返回PDU对PDU进行基本语法检查,丢弃非法的PDU,并对PDU进行相应处理。,接收和处理SNMP报文,4.3 SNMPv1的操作,4.3.1 检索简单对象 检索简单的标量对象值可以用Get操作。如果变量绑定表中包含多个变量,则一次还可以检索多个标量对象的值。接收GetRequest的SNMP实体以请求标识相同的GetResponse响应。,GetResponse操作具有原子性:事务:A想要从自己的帐户中转1000块钱到B的帐户里。从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作:.从A的帐户中减去1000块钱。.在B的帐

19、户里加上1000块钱。原子性操作:要么一起成功(A帐户成功减少1000,同时B帐户成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。GetResponse操作具有原子性:如果所有请求的对象值可以得到,则给予应答;反之,只要有一个对象的值得不到,则不予应答,而可能返回3种错误状态之一:,GetResponse操作失败时,响应实体返回PDU中的错误状态PDU中错误状态字段置为:noSuchName变量中若:变量表中若一个对象无法与MIB中任何对象标识符匹配 要检索的对象是一个数据块(子树或表),没有对象 实例生成。响应实体返回的应答PDU中:错误状态字

20、段置为:noSuchName;错误索引字段设置为一个数,指明有问题的变量。PDU中错误状态字段置为:tooBig响应实体可以提供所有要检索的值,但是变量太多,一个 响应PDU装不下。响应实体返回一个应答PDU,错误状态字段置为:tooBig。,PDU中错误状态字段置为:genError 由于其他原因(例如代理不支持)响应实体至少不能提供一个 对象的值;则返回的PDU中:错误状态字段置为:genError,错误索引字段置一个数,指明有问题的变量。变量绑定表中不返回任何值。,使用GetRequest检索各对象实例的值例4.1 图4.5所示的例子,是UDP组的一部分。用检索命令:GetRequest

21、检索各对象实例的值:解答:GetRequest(udpInDatagrams.0,udpNoPorts.0,udpInErrors.0,udpOutDatagrams.0)应该得到下面的响应:GetResponse(udpInDatagrams.0=100,udpNoPorts.0=1,udpInErrors.0=2,udpOutDatagrams.0=200),图4.5 检索简单对象例,100,1,200,2,使用GetNextRequest检索各对象实例的值 GetNextRequest的作用与GetRequest基本相同,PDU格式也相同,惟一的差别是:GetRequest的检索变量名所

22、指的是对象实例;GetNextRequest的检索变量名所指的是“下一个”对 象实例。比如:GetRequest(udpInDatagrams.0):检索udpInDatagrams的值GetResponse(udpInDatagrams.0=100)GetNextRequest(udpInDatagrams.0):检索udpNoPorts的值GetResponse(udpNoPorts.0=1),例4.2 用GetNext命令检索图4.5中的4个值,直接指明对象标识符:解答:GetNextRequest(udpInDatagrams,udpNoPorts,udpInErrors,udpOut

23、Datagrams)得到的响应与上例是相同的:GetResponse(udpInDatagrams.0=100,udpNoPorts.0=1,udpInErrors.0=2,udpOutDatagrams.0=200)可见标量对象实例标识符(例如udpInDatagrams.0)总是紧跟在对象标识符(例如udpInDatagrams)后面的。,例4.3 如果代理不支持管理站对udpNoPorts的访问,则响应会不同。发出同样的命令:GetNextRequest(udpInDatagrams,udpNoPorts,udpInErrors,udpOutDatagrams)得到的响应是:GetRes

24、ponse(udpInDatagrams.0=100,udpInErrors.0=2,udpInErrors.0=2,udpOutDatagrams.0=200)因为变量名udpNoPorts和udpInErrors的下一个对象实例都是udpInErrors.0=2。当代理收到一个Get请求时:如果能检索到所有的对象实例,则返回请求的每个值;如果有一个值不能提供,则返回该实例的下一个值。,例4.4 对于一个未知对象,如何得到它的MIB结构?用GetNext的检索未知对象的特性可以发现其MIB结构。以MIB-2的udp功能组为例进行说明。GetNextRequest(udp)得到的响应是:Get

25、Response(udpInDatagrams.0=100)这样管理站知道了udp组的第一个对象。思考:如何找到其他管理对象?,4.3.2 检索未知对象,GetNextRequest(udpInDatagrams.0)得到的响应是:GetResponse(udpNoPorts.0=1)思考:用 GetNextRequest(udpInDatagrams)可以不可以?,4.3.3 检索表对象 例4.5 已知一个设备,如何知道其的接口数与每个接口的速率?以图4.6为例进行说明 GetNext可用于有效地检索表对象。用下面的命令,检索ifNumber的值:GetRequest(1.3.6.1.2.1

26、.2.1.0)GetResponse(2)我们可知道:设备有两个接口。1.3.6.1.2.1.2.1.0,internet,mgmt,mib-2,interfaces,图4.6 检索表对象例,检索每个接口的数据速率:GetRequest(1.3.6.1.2.1.2.2.1.5.1)最后的1是索引项ifIndex的值。得到的响应是:GetResponse(100000000)说明第一个接口的数据速率是10 Mb/s。如果发出的命令是:GetNextRequest(1.3.6.1.2.1.2.2.1.5.1)则得到的是第二个接口的数据速率:GetResponse(560000)说明第二个接口的数据

27、速率是56 kb/s。思考:有否其它的命令也可得到第二接口的速率?,例4.5 如何检索一个表?假定管理站不知道该表的行数而想检索整个表,以图4.7所示的表为例说明。检索一个表可以连续使用GetNext命令,且进行变量绑定,以提高检索效率。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),图4.7 检索表对象例,利用第1行的检索结果,可以检

28、索第2行的值:GetNextRequest(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),利用第2行的结果继续检索第3行的值:GetNextRequest(ipRouteDest.10.0.0.51,ipRouteMetric1.10.0.0.51,ipRouteNextHop.10.0.0.51)

29、GetResponse(ipRouteDest.10.0.0.99=10.0.0.99,ipRouteMetric1.10.0.0.99=5,ipRouteNextHop.10.0.0.99=89.1.1.42)ipNetToMediaIfIndex.1.3=1),利用第3行的结果继续检索第4行:GetNextRequest(ipRouteDest.10.0.0.99,ipRouteMetric1.10.0.0.99,ipRouteNextHop.10.0.0.99)GetResponse(ipRouteDest.9.1.2.3=3,ipRouteMetric1.9.1.2.3=99.0.0.

30、3,ipNetToMediaIfIndex.1.3=1),4.3.4 表的更新和删除 Set命令用于设置或更新变量的值。它的PDU格式与Get命令是相同的;变量绑定表中必须包含要设置的变量名和变量值。Set命令的应答也是GetResponse,同样是原子性的:如果所有的变量都可以设置,则更新所有变量的值,并在应答的GetResponse中确认变量的新值;如果至少有一个变量的值不能设置,则所有变量的值 都保持不变,并在错误状态字段中指明出错的原因。,4.3.4 表的更新和删除 Set出错的原因与Get是类似:tooBig noSuchName genError badValue badValue

31、:一个变量的名字和要设置的值在:类型;长度;实际值等方面不匹配,例4.6 以图4.7所示的表为例。改变列对象ipRouteMetric1的第一个值,则使用命令:SetRequest(ipRouteMetric1.9.1.2.3=9)修改成功后,得到下面的应答:GetResponse(ipRouteMetric1.9.1.2.3=9)其效果是该对象的值由3变成了9。改变列对象ipRouteMetric1,ipRouteNextHop的第二个值 SetRequest(ipRouteMetric1.10.0.0.51=11,ipRouteNextHop.10.0.0.51=91.0.0.6)修改成功

32、后,得到下面的应答:GetResponse(ipRouteMetric1.10.0.0.51=11,ipRouteNextHop.10.0.0.51=91.0.0.6),例4.7 要在表中增加一行,则利用变量绑定字段,使用命令:SetRequest(ipRouteDest.11.3.3.12=11.3.3.12,ipRouteMetric11.3.3.12=9,ipRouteNextHop.11.3.3.12=91.0.0.5)管理代理收到这个请求后,会根据实际情况,去选择一种处理方式:拒绝这个命令,因为对象标ipRouteDest.11.3.3.12不存 在,所以返回错误状态:noSuchN

33、ame。接受这个命令,但在执行命令时,发现被赋予的值不规 范,因而返回错误状态:badValue。接受这个命令,生成一个新的行,并返回下面的应答:,管理代理收到这个请求后:接受这个命令,生成一个新的行,并返回下面的应答:GetResponse(ipRouteDest.11.3.3.12=11.3.3.12,ipRouteMetric11.3.3.12=9,ipRouteNextHop.11.3.3.12=91.0.0.5)在具体实现中,以上3种情况都是可能的。,例4.9 假定原来是3行的表,现在发出下面的命令:SetRequest(ipRouteDest.11.3.3.12=11.3.3.12

34、)对于这个命令也有两种处理方法:(1)由于变量ipRouteDest是索引项,因而代理可以增加一个表行,对于没有指定值的变量赋予默认值。(2)代理拒绝这个操作。如果要生成新行,必须提供一行中所有变量的值。采用哪种方法也是由具体实现决定的。,例4.10 如何删除表中的一行?在MIB-2中,只有两种表是可删除的:ipRouteTable,包含:ipRouteType:other,invalid,direct,indirectipNetToMediaTable,包含:ipNetToMediaType:other,invalid,dynamic,static 要删除表中的行,可以把表的一个列对象的值置

35、为:invalidSetRequest(ipRouteType.7.3.5.3=invalid)修改成功后,得到的响应如下:GetResponse(ipRouteType.7.3.5.3=invalid)这说明表行确已删除。这种删除是物理的还是逻辑的,又是 由具体实现决定的。,4.3.5 陷入操作 陷入是由代理向管理站发出的异步事件报告,不需要应答报文。SNMPv1规定了6种陷入条件,另外还有由设备制造商定义的陷入。coldStart:发送实体重新初始化,代理的配置已改变,通常是由系统失效引起的。warmStart:发送实体重新初始化,但代理的配置没有改变,这是正常的重启动过程。linkDow

36、n:链路失效通知,变量绑定表的第一项指明对应接口表的索引变量及其值。,linkUp:链路启动通知,变量绑定表的第一项指明对应接口表的索引变量及其值。authenticationFailure:发送实体收到一个没有通过认证的报文。egpNeighborLoss:相邻的外部路由器失效或关机。enterpriseSpecific:由设备制造商定义的陷入条件,在特殊陷入(specific-trap)字段指明具体的陷入类型。,4.3.6 SNMP功能组,SNMP组包含30个对象。除最后一个对象,SNMP组的其他对象都是只读的计数器。最后一个对象:snmpEnableAuthenTrap 可取两个值:1,

37、2 1 表示认证失效时,产生一个陷入报文;2 表示认证失效时,不产生一个陷入报文。对象snmpEnableAuthenTrap可以由管理站设置,这种设置优先于代理自己的配置。,图4.9 MIB-2 SNMP功能组,4.4 实 现 问 题,4.4.1 网络管理站的功能 选择管理站标准:支持扩展的MIB 图形用户接口 自动发现机制 可编程的事件 高级网络控制功能 面向对象的管理模块 用户定义的图标 支持扩展的MIB。对管理信息库的支持必须是开放的。应 该能够装入其他制造商定义的扩展MIB。,图形用户接口。好的用户接口可以使网络管理工作更容易、更有效。通常要求管理站具有图形用户接口,而且对网络管理的

38、不同部分有不同的窗口。例如能够显示网络拓扑结构,显示设备的地理位置和状态信息,可以计算并显示通信统计数据图表,具有各种辅助计算工具等。自动发现机制。要求管理站能够自动发现代理系统,能够自动建立图标并绘制出连接图形。可编程的事件。管理站应支持用户定义事件以及出现这些事件时执行的动作。例如路由器失效时应闪动图标或改变图标的颜色,显示错误状态信息,向管理员发送电子邮件并启动故障检测程序等。,高级网络控制功能。例如配置管理站使其可以自动关闭有问题的集线器,自动地分离出活动过度频繁的网段等。这样的功能要使用Set操作。由于SNMP欠缺安全性,很多产品不支持Set操作,因而这种要求很难满足。面向对象的管理

39、模块。SNMP其实不是面向对象的系统,但很多产品是面向对象的系统,也能支持SNMP。用户定义的图标。此标准可以方便用户为自己的网络设备定义有表现力的图标。,4.4.2 轮询频率管理站主要靠轮询收集信息。轮询的频率对管理的性能影响很大。如果管理站只在启动时轮询所有代理,以后只是等待代理发来的陷入,则就很难掌握网络的最新动态。如果管理站轮询的频率过大,则增加网络的开销。,我们需要一种能提高网络管理性能的轮询策略,以决定合适的轮询频率。通常轮询频率与网络的规模和代理的多少有关。而网络管理性能还取决于管理站的处理速度、子网数据速率、网络拥挤程度等其他诸多因素,因此很难给出准确的判断规则。为了使问题简化

40、,我们假定管理站一次只能与一个代理作用,轮询只采用Get请求/响应这种简单形式,而且管理站全部时间都用来轮询,于是我们有下面的不等式:,其中:N为被轮询的代理数;T为轮询间隔;为单个轮询需要的时间。,与下列因素有关:管理站生成一个请求报文的时间;从管理站到代理的网络延迟;代理处理一个请求报文的时间;代理产生一个响应报文的时间;从代理到管理站的网络延迟;管理站处理一个响应报文的时间;为了得到需要的管理信息,交换请求/响应报文的数量。,例4.11 假设有一个LAN,每15分钟轮询所有被管理设备一次(这在当前的TCP/IP网络中是典型的),管理报文的处理时间是50 ms,网络延迟为1 ms(每个分组

41、1000字节),没有产生明显的网络拥挤,大约是0.202 s,则,即管理站最多可支持4500个设备。,例4.12 在由多个子网组成的广域网中,网络延迟更大,数据速率更小,通信距离更远,而且还有路由器和网桥引入的延迟,总的网络延迟可能达到半秒钟,大约是1.2 s,于是有,管理站可支持的设备最多为750个。这个计算关系到4个参数:代理数目、报文处理时间、网络延迟和轮询间隔。如果能估计出3个参数,就可计算出第4个。因此,我们可以根据网络配置和代理数量确定最小轮询间隔,或者根据网络配置和轮询间隔计算出管理站可支持的代理设备数。最后,当然还要考虑轮询给网络增加的负载。,4.4.3 SNMPv1的局限性由

42、于轮询的性能限制,SNMP不适合管理很大的网络。SNMP不适合检索大量数据,例如检索整个表中的数据。SNMP的陷入报文是没有应答的,管理站是否收到陷入报 文,代理不得而知。这样可能丢掉重要的管理信息。SNMP只提供简单的团体名认证,安全措施是很不够的。SNMP并不直接支持向被管理设备发送命令。SNMP的管理信息库MIB-2支持的管理对象是很有限的,不 足以完成复杂的管理功能。SNMP不支持管理站之间的通信,而这一点在分布式网络 管理中是很需要的。,4.5 SNMPv2管理信息结构 SNMPv2的新功能SNMPv2支持分布式管理;SNMPv1采用的是集中式网络管理模式管理站的负担太重各个代理的报

43、告在网上产生大量的流量SNMPv2可以采用分布式的管理模式管理服务器中间管理者:既是管理站又是管理代理代理,SNMPv2网络管理框架,SNMP v2 Manager,管理应用,Internet,SNMPv2 Agent,MIB,SNMPv2 Manager/Agent,管理服务器,中间管理者,管理代理,SNMPv2支持 集中式 分布式两种管理模式,SNMPv2 Manager/Agent,SNMPv2 Agent,MIB,SNMPv2 Agent,MIB,MIB,MIB,MIB,4.5 SNMPv2管理信息结构 SNMPv2的新功能SMI增强:管理对象宏扩展了几种新的数据类型,提供了对表中的行

44、进行删除或建立操作的规范;MIB改进:对MIB-II进行了扩充和改进;特别是在Internet节点下增加了两个模块:snmpv2security见下图,SNMPv2 MIB扩展和细化了MIB-2中定义的管理对象,又增加了新的管理对象。,支持管理站与管理站之间的通讯(Manager-to-Manager),支持网络管理站同时既作为管理站又可作为管理代理的双重角色,进而支持分布式的网络管理模式;Trap的功能增强:在保留SNMPv1 Trap的基础上,增加了一种新的类型:TrapInformRequest,该操作支持管理站向管理站发送Trap,该类型的Trap需要响应报文;对批量数据访问的支持:增

45、加一种新的操作类型:GetBulkRequest操作,能够有效地检索大块的数据,特别适合在表中检索多行数据;,4.5 SNMPv2管理信息结构,SNMPv2的SMI对SNMPv1的SMI进行了扩充,提供了更严格的规范,规定了新管理对象和MIB文件。SNMPv2的SMI引入了4个关键的概念:对象的定义 概念表 通知的定义 信息模块,4.5 SNMPv2管理信息结构,4.5.1 对象的定义 SNMPv2也是用ASN.1 宏定义:OBJECT-TYPE表示管理对象 的语法和语义。SNMPv2的OBJECT-TYPE增加了新的内容。图4.10列出了SNMPv2宏定义的主要部分。,OBJECT-TYPE

46、 MACRO:=BEGINTYPE NOTATION:=“SYNTAX”type(TYPE OjectSyntax)“ACCESS”Access“STATUS”StatusVALUE NOTATION:=value(VALUE ObjectName)Access:=“read-only”|“read-write”|“write-only”|“not-accessible”Status:=“mandatory”|“optional”|“obsolete”|“deprecated”ENDVALUE NOTATION中:指明对象的访问名。,RFC1155中旧的对象类型宏定义,图4.10 SNMPv2

47、中新的对象宏定义,OBJECT-TYPE MACRO:=BEGIN TYPE NOTATION:=SYNTAX Syntax UnitsPart MAX-ACCESS Access STATUS Status DESCRIPTION Text ReferPart IndexPart DefValPart VALUE NOTATION:=value(VALUE ObjectName)END,SNMPv2宏定义与SNMPvl 的宏定义有以下差别:(1)数据类型:SNMPv2增加了两种新的数据类型:Unsigned32和Counter64 Unsigned32与Gauge32:在ASN.1中是无区别

48、的,都是32位的整数,最大值都是232-1的整数,但是在SNMPv2中的语义不一样;Counter64与Counter32:都表示计数器,只能增加,不能减少,当增加到264-1或232-1时回零,从头再增加。SNMPv2规定,计数器没有定义初始值,因此计数器的单个值是没有意义的,只有连续两次读计数器得到的增加值才是有意义的。,表4.2 SNMPv1和SNMPv2的数据类型比较,INTEGER(-2147483648.2147483647)OCTET STRING(SIZE(0.65535)OBJECT IDENTIFIER IpAddress Counter32 Counter64:(0264

49、-1)Unsigned32:(0232-1)Gauge32 TimeTicks Opaque,数据类型,关于Gauge32,SNMPv2规范澄清了原来标准中一些含糊不清的地方:首先是在SNMPv2中规定Gauge32的最大值可以设置为小于232的任意正数MAX(见图4.11),而在SNMPv1中Gauge32的最大值总是232-1。其次是SNMPv2明确了当计量器达到最大值时可自动减少,而在RFC 1155中只是说计量器的值“锁定”(Latch)在最大值,但是“锁定”的含义并没有定义。,图4.11 SNMPv1计量器和SNMPv2计量器的比较(a)SNMPv2计量器;(b)SNMPv1计量器,

50、UNITS子句用文字说明与对象有关的度量单位。当管理对象表示一种度量(比如:时间)时这个子句是有用的。,adslAtucCurrAttainableRate OBJECT-TYPE SYNTAX Gauge32 UNITS bps MAX-ACCESS read-only STATUS current DESCRIPTION Indicates the maximum currently attainable data rate by the ATU.This value will be equal or greater than the current line rate.:=adslAtu

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号