第4章简单网络管理协议.ppt
《第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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 网络 管理 协议
链接地址:https://www.31ppt.com/p-4785764.html