SNMP网络管理协议SNMP网络管理协议通常谈论的SNMP网络管理协议包括以下三部分:–TCP/IP互联网的管理信息结构和标识(SMIStructureofManagementInformation),描述如何标识管理信息库中被管理对象。–TCP/IP互联网的管理信息库(MIB),描述被管理对象的具体定义和表示形式。–简单网络管理协议—SNMP,用于管理MIB中对象的协议。网络管理的体系结构网络管理工作站(NMS)和网络元素(NE)的集合–网络管理工作站执行网络管理应用,监视和控制网络元素–网络元素是如主机(hosts),路由器(Router),交换机(switch)等网络设备,运行有网络管理代理(Agent),负责完成网络管理工作站请求的网络管理功能–SNMP协议用于NMS和Agent之间交换管理信息SNMP网络管理框架结构SNMP管理站点简单网络管理协议SNMPUPDIP物理网络管理应用程序SNMP管理代理简单网络管理协议SNMPUPDIP物理网络管理信息库MIBSNMP被管理对象SNMP协议报文探询互连网响应报告SNMP网络管理的目标目标之一:最小化由管理代理实现的管理功能–减少开发网络管理代理软件的代价–增加远程支持的管理功能,充分使用互联网资源–增加远程支持的管理功能,对管理工具的形式和复杂性给予尽可能少的限制–管理功能集的简化,使得管理工具的开发者更容易理解和使用SNMP网络管理的目标contd目标之二:用于监视和控制的功能规范具有足够的可扩展性,有利于附加的,可能没有预期考虑到的网络管理功能的实现。目标之三:该体系结构与具体网络元素,如主机和网关,的体系结构和结构尽可能的独立。管理体系结构基本元素组成由协议交换的管理信息的范围管理信息的表示协议支持的操作管理实体之间信息交换的形式和方式管理实体之间管理性关系的定义管理信息引用的形式和方式SNMP管理信息的范围由SNMP所传输的管理信息的范围就是在互联网标准MIB中定义的(Internet-standardMIB)或者在其他地方根据互联网标准SMI(StructureofManagementInformation)(Internet-standardSMI)中的约定而定义的所有非集合对象类型的实例为了与SMI保持一致,对MIB中集合性对象类型的支持不是必需的,也没有被SNMP实现。管理信息的表示法协议传输的管理信息由SMI中指定的用于定义非集合类型ASN.1(抽象语法符号)语言的子集来表示:这个子集在SGMP使用的子集的基础上作了有效的扩展SNMP仅使用了ASN.1基本编码规则的一个子集,也就是所有编码都仅使用有限长度形式管理信息支持的操作SNMP模型将管理功能实现为对变量值的改变(set)或者查询(get),也就是说,位于一个逻辑意义上远程主机(可能是该网络元素本身)中一个协议实体为了查询或者修改变量值而与位于该网络元素上的管理代理进行交互。这最少带来了两方面的好处:–将各个管理代理需要实现的基本管理功能简化为两个:一个操作是给特定的配置或其他参数赋值,另一个是查询参数的值。–避免了将对强制性的管理命令的支持引进协议定义,命令的语法一般说来相当复杂。SNMP的基本策略在任何重要的详细数据层次上对网络状态的监视主要通过轮训监视中心(MonitoringCenter)中的适当信息来实现有限数目的非允许的信息(traps)对轮训的定时和目标起着指导作用限制非允许的信息的数目与我们尽可能减少网络管理功能产生的信息流量是一致。简单网络协议的操作环境NMANMSMAMIBNEMAMIBNEMAMIBNENMANMSSNMPSNMPSNMPSNMPTrap的引进网络管理站点探询和网络管理代理响应,是标准的客户机/服务器计算模型中的请求/响应方式。但是这种方式用于网络管理存在两方面的不足:–过多占用正常数据传输带宽资源–难以实时获取网络设备的信息。为了弥补探询/响应方式的不足,SNMP网络管理系统设置了Trap机制Trap机制网络管理站点在被管理的设备上设置一些触发管理代理主动报告的事件(Trap),一旦被管理设备满足触发特定事件的条件,被管理设备中管理代理主动向网络管理工作站报告(Trap)可以有多个网络管理站点接收Trap报告,以提高对关键事件响应的实时性和可靠性Trap并不能取代网络管理站点的探询操作。但是有了Trap后可以适当加大网络管理站点探询的时间,减少对网络带宽的无效需求协议交换的形式和意义管理实体之间的管理信息的通讯通过协议信息的交换来实现,这些信息的形式及其意义定义如下:–为了与最小化管理代理的复杂性这个目标相一致,在SNMP标准文档中规定SNMP信息的交换通过非可靠的UDP(userdatagramprotocol)来实现。而SNMP机制本身允许采用各种传输服务。管理性关系的定义SNMP应用实体-位于管理站点和网络元素内的实体,它们之间使用SNMP协议进行通讯SNMP协议实体-相应的对等进程,实现SNMP协议,支持SNMP应用实体SNMP社区(community)-一个带有任意数量的SNMP应用实体的SNMP代理对社区由唯一的社区名表示管理性关系的定义(二)可信的SNMP消息:一条SNMP信息是可信的SNMP信息,当且仅当该条信息是由属于该信息的社区部分所标识的SNMP社区的一个SNMP应用实体所发出的认证系统:认证一条SNMP信息是否是可信的SNMP信息的规则的集合叫做认证系统认证服务:相应的根据认证系统来标识可信的SNMP信息的功能实现叫做认证服务。管理性关系的定义(三)对所有的网络元素而言,属于该元素的MIB的一个对象子集叫做SNMPMIB视图集合{READ-ONLY,READ-WRITE}中的一个元素叫做一个SNMP访问模式一个SNMP访问模式以及与该访问模式相关的SNMPMIB视图对叫做SNMP社区Profile,表示对特定MIB视图的特定访问权限访问规则在一个给定的SNMP社区Profile中,对MIB视图中每个变量的访问规则由该Profile根据如下约定来指定:–MIB中变量的“Access”的值为“none”,它不可以作为任何操作符的操作数;–MIB中该变量的“Access”的值为“read-write”或者“write-only”,在该Profile中的访问模式为READ-WRITE,该变量可作为get,set,trap等操作的操作数;–否则,该变量可作为get,trap的操作数;–在“write-only”变量作为get,trap的操作数的情况下,该变量的值与其实现有关SNMPProxy代理一个SNMP社区和一个SNMP社区Profile对叫做SNMP访问策略对每一个SNMP访问策略,假如属于特定SNMP社区的SNMP代理所属的网络元素不是该特定的Profile的MIB视图所附属的,该策略叫做Proxy访问模式与该Proxy访问模式相关的SNMP代理叫做SNMPProxy代理SNMPProxy代理结构管理者进程SNMPUPDIP物理网络管理代理进程SNMPUPDIP物理网络管理进程用于Proxy设备的协议结构物理网络映射函数管理进程用于Proxy设备的协议结构物理网络互连网互连网管理站点Proxy代理Proxy的设备图7.xSNMP中介代理结构ManagementInformationBase(MIB)详细说明Agent维护的对象信息仅使用有限数量的数据类型来定义变量MIBs遵从“StructureofManagementInformation”(SMI)命名和构造标准.Variables通过“objectidentifiers”来进行标识–采用分层的命名方式(如1.3.6.1.2.1.4.3,由标准授权机构来授予)–E.g.:iso.org.dod.internet.mgmt.mib.ip.ipInReceives1.3.6.1.2.1.4.3管理对象标识树对象标识ISO(1)CCITT(2)JIC(3)其它国际组织(3)美国国防部(6)MIB(1)企业(1)IAB(1)由IAB在RFC1155中假定目录(1)管理(2)实验(3)专用(4)被管理对象类型定义被管理对象类型包括五个部分:–对象(对象标识)–类型(Type)–定义对象类型语义的正文描述–访问限制取值范围为:“read-only(只读)”,“read-write(读写)”,“write-only(只写)”,“not-accessible(不可访问)”–地位(Status)取值范围为:“mandatory(必选)”,”optional(可选)”,”obsolete(过时)”类型(Type)简单类型–INTEGER(整数)–OCTETSTRING(八位位串组)–OBJECTIDENTIFIER(对象标识符)–NULL构造类型–SEQUENCE使用简单类型来构造结构(Struct)–SEQUENCEOF构造表(Table)类型(Type)(二)定义类型–NetworkAddress(网络地址)–IpAddress(IP地址)–Counter(计数器)–Gauge(计量器)–TimeTicks以百分之一秒为单位的时间–Opaque八进制字符串,支持任意ASN.1语法的传输。被管理对象类型定义-实例OBJECT:atPhysAddress{atEntry2}Syntax:OCTETSTRINGDefinition:Themedia-dependentphysicaladdressAccess:read-write.Status:mandatoryMIB变量示例VariableCategoryMeaningsysUpTimesystemTimessincelastbootifNumberinterfaces#ofInterfacesifMTUinterfacesMTUipDefaultTTLipDefaultTTLipInReceivesip#ofdatagramsreceivedipForwDatagramsip#ofdatagramsforwardedicmpInEchosicmp#ofEchorequestsreceivedtcpRtoMintcpMinretainstimetcpMaxConntcpMaxconnectionsallowed管理信息引用的形式管理器如何来标识和引用一个变量?–简单的变量在对象标识符后添加“.0”•E.g:udpInDatagrams.0=1.3.6.1.2.1.7.1.0•仅叶节点可以被引用(因为SNMP仅允许传送标量)–Table中的元素•表中的每一个元素都需要分别获取.•采用get-next的方法按照对象标识符词典的顺序来遍历对象实例的标识-举例ifTable对象类型名用于表示网络设备的接口信息,它由ifIndex,ifDescr,ifType,ifMtu等10项(列)组成用ifType.2标识与接口2相关联的变量ifType的实例atTable对象类型名用于表示网络设备的地址转换信息,也就是ARP表。要查找地址转换表(ARPcache)中的与IP地址89.1.1.42关联的物理地址项,用以下形式来表示:atPhyAddress.89.1.1.42SNMP报文每条SNMP信息由一个版本标识字,一个SNMP社区名,以及一个协议数据单元(PDU)组成协议实体在UDP端口161上接收发送给它的除traps之外的所有信息报告traps的信息在UDP端口162上接收SNMP支持的PDUSNMP支持五种PDU:1、get-request获取MIB对象的值2、get-next-request获取MIB对象的下一个值3、set-request设置MIB中对象的值4、get-response对get-request,get-next-request和set-request的响应5、trapAgentnotifiesManager协议数据单元