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

上传人:本田雅阁 文档编号:3129099 上传时间:2019-07-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 Monito

3、ring Protocol)协议,而对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

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

6、全设施,使用户和制 造商尽快地从原来的SNMPv1过渡到第二代SNMP。 放弃S-SNMP,以SMP为基础开发SNMP第2版,即SNMPv2。,IETF(internet工程任务组)组织了两个工作组: 一个组负责协议功能和管理信息库的扩展; 一组负责SNMP的安全方面; 于1992年10月正式开始工作,功能组的工作在1992年12月 完成,安全组在1993年1月完成。 1993年5月它们发布了12个RFC(14411452)文件作为 SNMPv2草案标准。,一种意见认为SNMPv2安全机制实现起来太复杂,对代理的配置很困难,限制了网络发现能力,失去了SNMP的简单性。 又经过几年的实验和论证,

7、后来人们决定丢掉安全功能,把增加的其他功能作为新标准颁布,并保留SNMPv1的报文封装格式,称其为基于团体的 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工作组

8、的目标是:尽量使用已有的文档,使新标准: 能够适应不同管理需求的各种操作环境; 便于已有的系统向SNMPv3过渡; 可以方便地建立和维护管理系统。,SNMPv3的建议标准(Proposed Standard): SNMPv3工作组于1998年1月发表了5个文件,作为建议标准(Proposed Standard): RFC 2271描述SNMP管理框架的体系结构; RFC 2272简单网络管理协议的报文处理和调度; RFC 2273SNMPv3应用程序; RFC 2274SNMPv3基于用户的安全模块; RFC 2275SNMPv3基于视图的访问控制模块。 SNMPv3的建议标准在功能上主要增强

9、了: SNMP的安全性 高层管理的功能。,SNMPv3的新标准: 在上述5个文件的基础上进行了修订,在1999年4月公布了7个文件,作为SNMPv3的新标准(DRAFT STANDARD): RFC 2570Internet标准网络管理框架第3版引论; RFC 2571SNMP管理框架的体系结构描述; RFC 2572简单网络管理协议的报文处理和调度系统; RFC 2573SNMPv3应用程序; RFC 2574SNMPv3基于用户的安全模块(USM) ; RFC 2575SNMPv3基于视图的访问控制模块(VACM); RFC 2576SNMP第1、2、3版的共存问题。,SNMPV3对SNM

10、Pv2的管理信息结构(SMI)的有关文件进行了修订,作为正式标准公布: RFC 2578管理信息结构第2版(SMIv2) ; RFC 2579对于SMIv2的文本约定; RFC 2580对于SMIv2的一致性说明。 SNMPv3的特点: 在SNMPv2C的基础上增加了安全功能和高层管理功 能; 和以前的标准(SNMPv1和SNMPv2)完全兼容; 结构上便于以后新功能模块的扩充。,4.2 SNMPv1协议数据单元,主要讨论SNMP的工作原理: SNMP对管理对象的操作 SNMP协议数据单元的格式 SNMP报文的发送、接收和应答,4.2 SNMPv1协议数据单元,4.2.1 SNMPv1支持的操

11、作 SNMPv1是一种简单的“请求/响应”协议, 使用“管理者-代理”模式,仅支持对被管对象值的检 索和修改等简单操作。 网络管理系统发出一个请求,管理代理则返回一个响 应。该过程通过SNMP操作实现。 SNMPv1实体可以对MIB-2中的对象执行下列操作: Get:管理站检索管理信息库中标量对象的值; Set:管理站设置管理信息库中标量对象的值; Trap:代理向管理站报告管理对象的状态变化。,SNMPv1的不足: SNMPv1不支持管理站改变管理信息库MIB的结构,即 不能增加和删除管理信息库中的管理对象实例,例 如不能增加或删除表中的一行。 管理站不能向管理对象发出执行一个动作的命令。

12、管理站只能逐个访问管理信息库中的叶结点,不能 一次性访问一个子树,例如不能访问整个表的内容。 MIB-2中的子树结点都是不可访问的。 这些限制确实简化了SNMP的实现,但是也限制了网 络管理的功能。,4.2.2 SNMP PDU格式 SNMP报文的组成: 在SNMP管理中,管理站和代理之间交换的管理信息构成了SNMP报文。报文由3部分组成:见下图 版本号:是指SNMP的版本 团体名:用于身份认证 协议数据单元(PDU):管理站与管理代理之间交换的数据 SNMP共有5种管理操作: GetRequest GetNextRequest SetRequest GetResponse Trap,图4.1

13、 SNMP 报文格式,管理站发出的3种请求报文:其格式是一样的 GetRequestPDU GetNextRequestPDU SetRequestPDU 代理的应答报文格式只有一种: GetResponsePDU 代理用于事件报告的报文: TrapPDU,GetRequest, GetNextRequest, SetRequest, GetResponse PDU格式是相同的,共有5个字段: PDU类型 请求标识(request-id) 错误状态(error-status) 错误索引(error-index) 变量绑定表(variable-binding),PDU类型: 每种类型用一个整数表

14、示 GetRequestPDU: 0 GetNextRequestPDU:1 GetResponsePDU: 2 SetRequestPDU: 3 TrapPDU五种类型: 4 请求标识(request-id):赋予每个请求报文惟一的整数。 用于区分不同的请求。返回的应答报文,要根据其中 的请求标识与请求报文配对; 检测由不可靠的传输服务产生的重复报文。,错误状态(error-status): 代理在处理管理站的请求时,可能出现的各种错误, 共有6种错误状态,错误索引(error-index): 指向出错的变量或出错变量的序号。 变量绑定表(variable-binding): 变量名和对应值

15、的表,说明要检索或设置的所有变量及其值。在检索请求报文中,变量的值应为0。 变量绑定表就是把多个变量的值装入一个PDU ,并通过一个应答得到所有的值,使得一次可以检索多个被管对象,这样可以大大减少网络管理的通信负担。,Trap报文的格式: 制造商ID(enterprise): 表示设备制造商的标识,与MIB-2的系统组对象 sysObjectID的值相同。 代理地址(agent-addr):产生陷入的代理的IP地址; 一般陷入(generic-trap): SNMP定义的陷入类型; 特殊陷入(specific-trap): 与设备有关的特殊陷入代码。 时间戳(time-stamp): 代理发出

16、陷入的时间,与MIB-2中的系统组对象 sysUpTime的值相同,一般陷入的类型,管理站发出的3种请求报文:GetRequest、GetNextRequest 和SetRequest 代理的应答报文格式只有一种:GetResponsePDU,4.2.3 报文应答序列 1、报文按管理站、管理代理划分 管理站报文 GetRequest、GetNextRequest和SetRequest的报文由管理站发出,代理以GetResponse响应。 管理站可连续发出多个请求报文,然后等待代理返回应答报文。如果在规定的时间内收到应答,则按照请求标识进行配对,亦即应答报文必须与请求报文有相同的请求标识。 管理

17、代理报文 GetResponse响应报文 Trap报文由代理发给管理站,不需要应答。,2、 SNMP报文发送和应答序列,SNMP Services,Get GetNext Set Trap,4.2.4 报文的发送和接收 生成和发送SNMP报文 一个SNMP协议实体(PE)发送报文时执行下面的过程 首先按照ASN.1的格式构造PDU; 将PDU、源地址、端口和目的地址、端口以及共同体名 称一起交给认证进程; 认证进程检查源和目标之间是否可以通信; 通过检查则把有关信息(版本号、团体名、PDU)组装 成报文; 3. 最后经过BER编码,将报文交传输实体发送出去。 见下图,生成和发送SNMP报文,接

18、收和处理SNMP报文 当一个SNMP协议实体(PE)接收到报文时执行下面的过程: 首先按照BER编码恢复ASN.1报文; 对解码后的报文进行基本的语法检查,丢弃非法报文; 检查版本号,丢弃版本号不匹配的报文; 将PDU、发送方地址和端口、接收方地址和端口发送到认证服务: 如果认证失败,生成一个陷入报文,向发送站报告通信 异常情况 如果认证成功,认证服务返回PDU 对PDU进行基本语法检查,丢弃非法的PDU,并对PDU进行相应处理 。,接收和处理SNMP报文,4.3 SNMPv1的操作,4.3.1 检索简单对象 检索简单的标量对象值可以用Get操作。 如果变量绑定表中包含多个变量,则一次还可以检

19、索多个标量对象的值。接收GetRequest的SNMP实体以请求标识相同的GetResponse响应。,GetResponse操作具有原子性: 事务:A想要从自己的帐户中转1000块钱到B的帐户里。从A开始转帐,到转帐结束的这一个过程,称之为一个事务。在这个事务里,要做如下操作: . 从A的帐户中减去1000块钱。 . 在B的帐户里加上1000块钱。 原子性操作:要么一起成功(A帐户成功减少1000,同时B帐户成功增加1000),要么一起失败(A帐户回到原来状态,B帐户也回到原来状态)的操作叫原子性操作。 GetResponse操作具有原子性:如果所有请求的对象值可以得到,则给予应答;反之,只

20、要有一个对象的值得不到,则不予应答,而可能返回3种错误状态之一:,GetResponse操作失败时,响应实体返回PDU中的错误状态 PDU中错误状态字段置为:noSuchName 变量中若: 变量表中若一个对象无法与MIB中任何对象标识符匹配 要检索的对象是一个数据块(子树或表),没有对象 实例生成。 响应实体返回的应答PDU中: 错误状态字段置为:noSuchName; 错误索引字段设置为一个数,指明有问题的变量。 PDU中错误状态字段置为:tooBig 响应实体可以提供所有要检索的值,但是变量太多,一个 响应PDU装不下。 响应实体返回一个应答PDU,错误状态字段置为:tooBig。,PD

21、U中错误状态字段置为:genError 由于其他原因(例如代理不支持)响应实体至少不能提供一个 对象的值; 则返回的PDU中: 错误状态字段置为:genError, 错误索引字段置一个数,指明有问题的变量。 变量绑定表中不返回任何值。,使用GetRequest检索各对象实例的值 例4.1 图4.5所示的例子,是UDP组的一部分。 用检索命令:GetRequest检索各对象实例的值: 解答: GetRequest( udpInDatagrams.0,udpNoPorts.0, udpInErrors.0,udpOutDatagrams.0) 应该得到下面的响应: GetResponse(udpI

22、nDatagrams.0=100,udpNoPorts.0=1, udpInErrors.0=2,udpOutDatagrams.0=200),图4.5 检索简单对象例,100,1,200,2,使用GetNextRequest检索各对象实例的值 GetNextRequest的作用与GetRequest基本相同,PDU格式也相同,惟一的差别是: GetRequest的检索变量名所指的是对象实例; GetNextRequest的检索变量名所指的是“下一个”对 象实例。 比如: GetRequest( udpInDatagrams.0):检索udpInDatagrams的值 GetResponse(

23、udpInDatagrams.0=100) GetNextRequest( udpInDatagrams.0):检索udpNoPorts的值 GetResponse(udpNoPorts.0=1),例4.2 用GetNext命令检索图4.5中的4个值,直接指明对象标识符: 解答: GetNextRequest( udpInDatagrams,udpNoPorts, udpInErrors,udpOutDatagrams) 得到的响应与上例是相同的: GetResponse( udpInDatagrams.0=100,udpNoPorts.0=1, udpInErrors.0=2,udpOutD

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

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

26、对象, 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.2.1.0) GetResponse(2) 我们可知道:设备有两个接口。 1.3.6.1.2.1.2.1.0,internet,mg

27、mt,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) 说明第二个接口的数据速率是56 kb/s。 思考:有否其它的命令也可得到第二接口的速率?,例4.5 如何检索一个表?假定管理站不

28、知道该表的行数而想检索整个表,以图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行的检索结果,可以检索第2行的值: GetNextRequest(ipRouteDest.9.1.2.3

29、, 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 ) GetResponse(ipRouteDest.10.0.0

30、.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.3, ipNetToMediaIfInd

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

32、的值在: 类型 ; 长度; 实际值等方面不匹配,例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) 修改成

33、功后,得到下面的应答: 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不存 在,所

34、以返回错误状态:noSuchName。 接受这个命令,但在执行命令时,发现被赋予的值不规 范,因而返回错误状态: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(ipRoute

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

36、dynamic,static 要删除表中的行,可以把表的一个列对象的值置为:invalid SetRequest(ipRouteType.7.3.5.3=invalid) 修改成功后,得到的响应如下: GetResponse(ipRouteType.7.3.5.3=invalid) 这说明表行确已删除。这种删除是物理的还是逻辑的,又是 由具体实现决定的。,4.3.5 陷入操作 陷入是由代理向管理站发出的异步事件报告,不需要应答报文。SNMPv1规定了6种陷入条件,另外还有由设备制造商定义的陷入。 coldStart:发送实体重新初始化,代理的配置已改变,通常是由系统失效引起的。 warmSta

37、rt:发送实体重新初始化,但代理的配置没有改变,这是正常的重启动过程。 linkDown:链路失效通知,变量绑定表的第一项指明对应接口表的索引变量及其值。,linkUp:链路启动通知,变量绑定表的第一项指明对应接口表的索引变量及其值。 authenticationFailure:发送实体收到一个没有通过认证的报文。 egpNeighborLoss:相邻的外部路由器失效或关机。 enterpriseSpecific:由设备制造商定义的陷入条件,在特殊陷入(specific-trap)字段指明具体的陷入类型。,4.3.6 SNMP功能组,SNMP组包含30个对象。 除最后一个对象,SNMP组的其他

38、对象都是只读的计数器。 最后一个对象:snmpEnableAuthenTrap 可取两个值: 1,2 1 表示认证失效时,产生一个陷入报文; 2 表示认证失效时,不产生一个陷入报文。 对象snmpEnableAuthenTrap可以由管理站设置,这种设置优先于代理自己的配置。,图4.9 MIB-2 SNMP功能组,4.4 实 现 问 题,4.4.1 网络管理站的功能 选择管理站标准: 支持扩展的MIB 图形用户接口 自动发现机制 可编程的事件 高级网络控制功能 面向对象的管理模块 用户定义的图标 支持扩展的MIB。对管理信息库的支持必须是开放的。应 该能够装入其他制造商定义的扩展MIB。,图形

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

40、功能要使用Set操作。由于SNMP欠缺安全性,很多产品不支持Set操作,因而这种要求很难满足。 面向对象的管理模块。SNMP其实不是面向对象的系统,但很多产品是面向对象的系统,也能支持SNMP。 用户定义的图标。此标准可以方便用户为自己的网络设备定义有表现力的图标。,4.4.2 轮询频率 管理站主要靠轮询收集信息。轮询的频率对管理的性能影响很大。 如果管理站只在启动时轮询所有代理,以后只是等待代理发来的陷入,则就很难掌握网络的最新动态。 如果管理站轮询的频率过大,则增加网络的开销。,我们需要一种能提高网络管理性能的轮询策略,以决定合适的轮询频率。通常轮询频率与网络的规模和代理的多少有关。而网络

41、管理性能还取决于管理站的处理速度、子网数据速率、网络拥挤程度等其他诸多因素,因此很难给出准确的判断规则。为了使问题简化,我们假定管理站一次只能与一个代理作用,轮询只采用Get请求/响应这种简单形式,而且管理站全部时间都用来轮询,于是我们有下面的不等式:,其中:N为被轮询的代理数;T为轮询间隔;为单个轮询需要的时间。,与下列因素有关: 管理站生成一个请求报文的时间; 从管理站到代理的网络延迟; 代理处理一个请求报文的时间; 代理产生一个响应报文的时间; 从代理到管理站的网络延迟; 管理站处理一个响应报文的时间; 为了得到需要的管理信息,交换请求/响应报文的数量。,例4.11 假设有一个LAN,每

42、15分钟轮询所有被管理设备一次(这在当前的TCP/IP网络中是典型的),管理报文的处理时间是50 ms,网络延迟为1 ms (每个分组1000字节),没有产生明显的网络拥挤,大约是0.202 s,则,即管理站最多可支持4500个设备。,例4.12 在由多个子网组成的广域网中,网络延迟更大,数据速率更小,通信距离更远,而且还有路由器和网桥引入的延迟,总的网络延迟可能达到半秒钟,大约是1.2 s,于是有,管理站可支持的设备最多为750个。 这个计算关系到4个参数:代理数目、报文处理时间、网络延迟和轮询间隔。如果能估计出3个参数,就可计算出第4个。因此,我们可以根据网络配置和代理数量确定最小轮询间隔

43、,或者根据网络配置和轮询间隔计算出管理站可支持的代理设备数。最后,当然还要考虑轮询给网络增加的负载。,4.4.3 SNMPv1的局限性 由于轮询的性能限制,SNMP不适合管理很大的网络。 SNMP不适合检索大量数据,例如检索整个表中的数据。 SNMP的陷入报文是没有应答的,管理站是否收到陷入报 文,代理不得而知。这样可能丢掉重要的管理信息。 SNMP只提供简单的团体名认证,安全措施是很不够的。 SNMP并不直接支持向被管理设备发送命令。 SNMP的管理信息库MIB-2支持的管理对象是很有限的,不 足以完成复杂的管理功能。 SNMP不支持管理站之间的通信,而这一点在分布式网络 管理中是很需要的。

44、,4.5 SNMPv2管理信息结构 SNMPv2的新功能 SNMPv2支持分布式管理; SNMPv1采用的是集中式网络管理模式 管理站的负担太重 各个代理的报告在网上产生大量的流量 SNMPv2可以采用分布式的管理模式 管理服务器 中间管理者:既是管理站又是管理代理 代理,SNMPv2网络管理框架,SNMP v2 Manager,管理应用,Internet,SNMPv2 Agent,MIB,SNMPv2 Manager/Agent,管理服务器,中间管理者,管理代理,SNMPv2支持 集中式 分布式 两种管理模式,SNMPv2 Manager/Agent,SNMPv2 Agent,MIB,SNM

45、Pv2 Agent,MIB,MIB,MIB,MIB,4.5 SNMPv2管理信息结构 SNMPv2的新功能 SMI增强: 管理对象宏扩展了几种新的数据类型,提供了对表中的行进行删除或建立操作的规范; MIB改进: 对MIB-II进行了扩充和改进;特别是在Internet节点下增加了两个模块: snmpv2 security 见下图,SNMPv2 MIB扩展和细化了MIB-2中定义的管理对象,又增加了新的管理对象。,支持管理站与管理站之间的通讯 (Manager-to-Manager),支持网络管理站同时既作为管理站又可作为管理代理的双重角色,进而支持分布式的网络管理模式; Trap的功能增强:

46、 在保留SNMPv1 Trap的基础上,增加了一种新的类型:TrapInformRequest,该操作支持管理站向管理站发送Trap,该类型的Trap需要响应报文; 对批量数据访问的支持: 增加一种新的操作类型 :GetBulkRequest操作,能够有效地检索大块的数据,特别适合在表中检索多行数据;,4.5 SNMPv2管理信息结构,SNMPv2的SMI对SNMPv1的SMI进行了扩充,提供了更严格的规范,规定了新管理对象和MIB文件。 SNMPv2的SMI引入了4个关键的概念: 对象的定义 概念表 通知的定义 信息模块,4.5 SNMPv2管理信息结构,4.5.1 对象的定义 SNMPv2

47、也是用ASN.1 宏定义:OBJECT-TYPE表示管理对象 的语法和语义。 SNMPv2的OBJECT-TYPE增加了新的内容。 图4.10列出了SNMPv2宏定义的主要部分。,OBJECT-TYPE MACRO:= BEGIN TYPE NOTATION :=“SYNTAX” type(TYPE OjectSyntax) “ACCESS” Access “STATUS” Status VALUE NOTATION :=value(VALUE ObjectName) Access:=“read-only”|“read-write”|“write-only”|“not-accessible”

48、Status:=“mandatory”|“optional”|“obsolete”|“deprecated” END VALUE NOTATION中:指明对象的访问名。,RFC1155中旧的对象类型宏定义,图4.10 SNMPv2中新的对象宏定义,OBJECT-TYPE MACRO:= BEGIN TYPE NOTATION:= “SYNTAX“ Syntax UnitsPart “MAX-ACCESS“ Access “STATUS“ Status “DESCRIPTION“ Text ReferPart IndexPart DefValPart VALUE NOTATION:=value(

49、VALUE ObjectName) END,SNMPv2宏定义与SNMPvl 的宏定义有以下差别: (1) 数据类型: SNMPv2增加了两种新的数据类型:Unsigned32和Counter64 Unsigned32与Gauge32:在ASN.1中是无区别的,都是32位的整数,最大值都是232-1的整数,但是在SNMPv2中的语义不一样; Counter64与Counter32:都表示计数器,只能增加,不能减少,当增加到264-1或232-1时回零,从头再增加。 SNMPv2规定,计数器没有定义初始值,因此计数器的单个值是没有意义的,只有连续两次读计数器得到的增加值才是有意义的。,表4.2 SNMPv1和SNMPv2的数据类型比较,INTEGER (-2147483648 2147483647) OCTET STRING (SIZE (0 65535) OBJECT IDENT

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1