简单网络管理协议目录章节目标简单网络管理协议背景SNMP基本组成SNMP基本命令SNMP管理信息基础SNMP和数据表示SNMPv1SNMPv1和管理信息结构SNMPv1和ASN.1数据类型SNMPMIB表SNMPv1协议实施SNMPv2SNMPv2和数据信息结构系统管理中断信息模块SNMPv2协议实施SNMP管理SNMP安全SNMP协作代理服务器代理能说两种语言的网络管理系统SNMP参考:SNMPv1消息格式SNMPv1消息头SNMPv1协议数据单元陷阱协议数据单元格式SNMP参考:SNMPv2消息格式SNMPv2消息头SNMPv2协议数据单元取得散装协议数据单元格式复习问题章节目标论述SNMP管理信息基础描述SNMPv1描述SNMPv2简单网络管理协议背景简单网络管理协议(SNMP)是一种应用层协议,便于在网络设备间交换管理信息.它是TCP/IP协议簇的一部分.网络管理员使用SNMP管理网络性能,发现和解决网络故障,并计划网络增长.有两种SNMP版本:SNMPv1和SNMPv2.它们有一些共同的特征,但SNMPv2提供增强功能,例如附加的协议操作.另一种版本SNMPv3的标准化还没有完成.这一章提供对SNMPv1和SNMPv2协议操作的描述.图56-1描述SNMP管理的基本网络.图56-1:SNMP便于设备间的网络信息的交换.SNMP基本组成一个SNMP管理的网络包含三个主要部分:被管理设备、代理和网络管理系统(NMSs).一个被管理设备是一个包含一个SNMP代理并处于被管理的网络中的一个网络结点。被管理设备收集和存储管理信息,并使用SNMP使这些信息对网络管理系统有用。被管理设备有时被称为网络元素,可能是路由器和访问服务器,交换机和网桥,集线器,计算机主机或打印机。代理是处于被管理设备中的一个网络管理软件模块。代理有管理信息的本地知识,并能转化为SNMP一致的格式。网络管理系统执行应用程序监控被管理设备。网络管理系统为网络管理提供大量的处理和内存资源。在任何被管理的网络中至少存在一个网络管理系统。图56-2描述了这三个组成的关系。图56-2:SNMP被管理网络包含被管理设备、代理和网络管理系统SNMP基本命令被管理设备被监控,使用如下四个基本SNMP命令:读,写,陷阱和traversal操作。网络管理系统使用读命令来监控被管理设备。网络管理系统检查被被管理设备维持的不同的变量。网络管理系统使用写命令控制被管理设备。网络管理系统改变存储在被管理设备中的变量值。被管理设备使用陷阱命令向网络管理系统asynchronously报告事件。当一定类型的事件发生,被管理设备向网络管理系统发送一个陷阱。网络管理系统使用Traversal操作决定被管理设备支持那些变量,从而收集信息到变量表中,例如路由表。SNMP管理信息库管理信息库是被hierarchically组织的信息的收集。管理信息库使用网络管理协议如SNMP访问。它们包含被管理对象和被对象标识符识别。一个被管理对象(有时被称为一个管理信息库对象,一个对象或一个管理系统库)是被管理设备中所有特殊的特征中的一个。被管理对象包含一个或多个对象实例(实质上是变量)。有两种类型的被管理对象:标量和列表。标题对象定义一个单独的对象实例。列表对象定义多个关联的对象实例,并分组在同一个管理信息库表中。一个被管理对象的例子是输入,一个标量对象包含一个单独的对象实例,整型值显示在路由器接口上输入AppleTalk数据包的总数目。一个对象标识符(对象ID)在管理信息库层次中独特地识别一个被管理对象。管理信息库层次能被描述为一棵没有名字的根的树,水平被不同的组织指派。图56-3描述管理信息库树。顶层MIB对象ID属于不同的标准组织,同时低层对象ID被联合的组织分配。卖主可以定义私有的分支,为他们自己的产品包含被管理对象。管理信息库在实验的分支中还没有代表性地标准化。被管理对象输入能被独特地标识,对象名称(国际标准化组织).被识别(组织)模块.互联网.私有的.企业.思科.临时变量.AppleTalk。输入或等价的对象描述符,1.3.6.1.4.1.9.3.3.1.图56-3:管理信息库树描述了不同的组织分配了不同变量层次SNMP和数据表示SNMP在被管理设备之间必须说明和调整到不相容。不同的计算机使用不同的数据表示技术,能折衷SNMP的性能在被管理设备间交换信息。SNMP使用抽象语法符号1(ASN.1)的子集在不同的系统之间提供通讯。SNMPv1SNMPv1是SNMP协议的最初实现。它在请求注释(RFC)1157中有描述,管理信息结构(SMI)规范中有功能描述。SNMPv1运行在协议之上,如UDP,IP,开放式系统互联参考模型无连接网络服务(CLNS),AppleTalk数据报投递协议(DDP),和Novell网络数据报交换(IPX)。SNMPv1被广泛地使用,成为因特网内事实上的网络管理协议。SNMPv1和管理信息结构管理信息结构(SMI)定义描述管理信息的规则,使用抽象语法符号1(ASN.1)。SNMPv1管理信息结构被定义在RFC1155中。管理信息结构制定三种主要的规范:ASN.1数据类型,SMI-specific数据类型和SNMPMIB表。SNMPv1和ASN.1数据类型SNMPv1管理信息结构指定所有被管理对象有一个抽象语法符号1(ASN.1)数据类型的子集与它们关联。三种ASN.1数据类型是必需的:姓名、语法和编码。服务的名称被看作对象标识符(对象ID)。语法定义对象的数据类型(例如,整型或字符串)。管理信息结构使用ASN.1语法定义的子集。编码数据描述信息怎么被关联到被管理对象,被格式化为一系列数据项,用于网络传输。SNMPv1和管理信息结构-specific数据类型SNMPv1管理信息结构指定一系列管理信息结构-specific数据类型的使用,被划分为两种:简单数据类型和广泛应用数据类型。三种简单数据类型被定义在SNMPv1管理信息结构中,所有取唯一的值:整型、八位位组字符串和对象ID。整型数据类型是一个范围在-2,147,483,648to2,147,483,647之间的单独的整型。八位位组字符串是0到65535八位位组的规则序列。对象ID来自所有对象标识符依照ASN.1中的指定规则分配的。七种广泛应用数据类型存在在SNMPv1管理信息结构:网络地址、计数器、规格、时间记号、不透明物和无符号整型。网络地址表示一个来自一个特殊协议族的一个地址。SNMPv1只支持32位IP地址。计数器是非负整型,增加直至达到最大值,然后返回到零。在SNMPv1中,一个32位计数器大小被指定。规格是非负整型,能增加或减少,但它们保留达到的最大值。时间记号表示自一些事件的一秒的每一百。不透明物表示一个任意的编码,被使用在任意的信息字符串中,在管理信息系统中,不需要与严格的数据类型一致。整型表示有符号的整型值信息。这个数据类型重新定义了整型数据类型,在ASN.1中有任意的精确度,但是在管理信息结构中,是有限制的。无符号整型表示无符号整型值信息,整型数据类型在ASN.1中有任意的精确度,但是在管理信息结构中是有限制的。SNMP管理信息库表SNMPv1管理信息结构定义抽象的结构表,用于分组列表对象(一个对象包含多个变量)实例。表格由零或多行组成,在某种程序上,索引允许SNMP使用简单的Get,GetNext或Set命令去重新得到或改变一个完整的行。SNMPv1协议操作SNMP是一种简单的请求/应答协议。网络管理系统发出一个请求,被管理设备返回一个应答。这种行为使用使用四种协议操作:Get,GetNext,Set,和Trap中的一种实现。Get操作被网络管理系统用于重新取得代理中一个或多个对象实例的值。GetNext操作被网络管理系统用于重新取得代理中表格或链表中下一个对象实例的值。Set操作被网络管理系统用于在代理中设置一个对象实例的值。Trap操作被代理用于asynchronously通知网络管理系统一个有意义的事件。SNMPv2SNMPv2是初始版本SNMPv1的发展,最初,SNMPv2在1993年以被提议为因特网标准发布;当前,它是一个标准草案。在管理信息结构规范中有SNMPv1,SNMPv2功能功能详述。在理论上,SNMP2提供了SNMPv1的实现,包括附加的协议操作。SNMPv2和管理信息结构管理信息结构(SMI)定义了使用ASN.1描述管理信息的规则。SNMPv2管理信息结构在RFC1902中有描述。它制定了一些对SNMPv1管理信息结构-specific数据类型额外的增强,例如包含位字符串,网络地址和计数器。位字符串中只在SNMPv2中有定义,由零或更多的指定值的位组成。网络地址表示一个来自特殊协议族的地址。SNMPv1只支持32位IP地址,但SNMPv2能支持其他类型的地址。计数器是非负整型,增加直到它们达到最大值,然后返回到零。在SNMPv1中,32位计数器大小是指定的。在SNMPv2中,32位和64位计数器被定义。管理信息结构信息模块SNMPv2管理信息结构也指定信息模块,指定一组关联的定义。有三种类型的管理信息结构信息模块:MIB模块,顺从声明和性能声明。MIB模块包含相关的被管理对象的定义。顺从声明提供描述一组被管理对象的一种系统方法,必须实现与标准一致。性能声明显示支持的精确层次,代理要求考虑MIB组。为了代理依照性能声明关联到每个代理,网络管理系统可以调整它的行为。SNMPv2协议操作Get,GetNext和Set操作用于SNMPv1中,在SNMPv2中可以正确地同样使用。SNMPv2增加和增强一些协议操作。SNMPv2Trap操作,例如,提供同样的功能在SNMPv2中,但是它使用一种不同的消息格式,被设计用于替代SNMPv1陷阱。SNMPv2也定义两种新的协议操作:GetBulk和Inform。GetBulk操作被网络管理系统有效地重新取得大块的数据,例如表中的多行。GetBulk填充一个合适的并足够多的被请求的应答消息。Inform操作允许一个网络管理系统发送陷阱信息到另一个网络管理系统,然后重新行到一个应答。在SNMPv2中,如果代理应答GetBulk操作不能提供链表中所有变量的值,它将提供部分结果。SNMP管理SNMP是一种分布式的管理协议。系统能操作专用地NMS或代理,或它都能执行功能。当一个系统操作如NMS和代理,另一个NMS可能需要系统询问管理设备,提供有学问的信息的摘要,或报告局部的存储管理信息。SNMP安全SNMP缺乏任何的证明能力,导致多种安全攻击威胁。包括伪装事件,修改信息,消息序列,定时修改和揭发。伪装事件包括一个未授权的实体企图通过伪装成一个经授权的管理实体来执行管理操作。修改信息包括未授权的实体企图更改一个经授权的实体产生的消息,从而消息导致未授权管理或配置管理操作。当一个未授权的实体重新排序,延迟或拷贝和更新重放一个经授权实体产生的消息,消息序列和定时修改发生。当一个未经授权的实体析取存储在被管理对象中的值或学习须申报的监视管理器与代理间的交换事件时,揭发结果。因为SNMP没有实现鉴定,许多卖主没有实现Set操作,因此削减了SNMP的监控能力。SNMP协作在目前的说明中,SNMPv2与SNMPv1在两个主要领域是矛盾的:消息格式和协议操作。SNMPv2消息使用不同于SNMPv1的头和协议数据单元(PDU)格式。SNMPv2也使用两种在SNMPv1中没有指定的协议操作。此外,RFC1908定义在SNMPv1/v2中可能共存的策略:代理服务器代理和能说两种语言的网络管理系统。代理服务器代理SNMPv2代理能作为一个代理服务器代理在SNMPv1被管理设备上,如下:SNMPv2网络管理系统为SNMPv1代理发布一个有意义的命令网络管理系统发送SNMP消息到SNMPv2代理服务器代理代理服务器代理无变化地执行Get,GetNext和Set消息到SNMPv1代理GetBulk消息被代理服务器代理修改为GetNext消息,然后转寄到SNMP