SNMP网络管理模型TCP/IP网络管理的发展TCP/IP早期,用ICMP作为网络管理的工具。ICMP提供了从路由器向主机或主机之间传送控制信息的方法,可用于所有支持IP的设备。ICMP最有用的两个消息对:echo/echoreply:测试实体间能否通信。echo消息要求其接收者在echoreply消息中返回接收到的内容。timestamp/timestampreply:测试网络延迟特性。PING程序由ICMP消息与IP头选项结合开发有多种功能:确定物理设备能否寻址,验证一个网络能够寻址,验证主机上的服务器操作。80年代后期,当互联网发展呈指数增加时,提出了开发功能更强并易于普通网络管理人员学习和使用的标准协议的需求。简单网关监控协议(SGMP):1987年11月发布。3个有影响的通用网络管理方法:高层实体管理系统(HEMS)简单网络管理协议(SNMP):SGMP的升级版。TCP/IP上的CMIP(CMOT):最大限度地与OSI标准的CMIP、服务以及数据库结构保持一致。1988年互联网络活动委员会(IAB)的网络管理协议开发策略:SNMP:近期解决方案;CMOT:远期解决方案;要求SNMP和CMOT使用相同的MO。实际中,SNMP与CMOT在对象级的难于兼容:IAB最终放松了公共SMI/MIB的要求,并允许SNMP独立于CMOT发展。从对OSI的兼容性的束缚中解脱后,SNMP取得了迅速的发展,很快被众多的厂商设备所支持,用户也选择了SNMP作为标准的管理协议。SNMP的进展:远程监控(RMON)能力的开发,为网络管理者提供了监控整个子网而不是各个单独设备的能力。对基本SNMPMIB进行了扩充。SNMPv2:SNMP被用于大型网络时,存在安全和功能方面的不足。1992年7月,提出一个称为SMP的SNMP新版本,被接受为定义第二代SNMP即SNMPv2的基础。1993年安全版SNMPv2发布。几年试用后,IETF决定对SNMPv2进行修订。1996年发布了一组新的RFC,SNMPv2的安全特性被取消。SNMPv3:1999年4月IETF提出了RFC2571~RFC2576,形成了SNMPv3的建议。目前这些建议正在进行标准化。提出了SNMP管理框架的一个统一的体系结构。采用User-based安全模型和View-based访问控制模型提供SNMP网络管理的安全性。SNMP体系结构非对称的二级结构ManagementApplicationsSNMPManagerUDPIPNetwok-dependentprotocolsGetRequestGetNextRequestSetRequestGetResponseTrapManagedObjectsSNMPAgentUDPIPGetRequestGetNextRequestSetRequestGetResponseTrapResourcesNetworkorinternetSNMPMessageMIBViewSNMPManagementstationSNMPAgentMDBNetwok-dependentprotocols关键元素管理站一般为一个单独的设备作为与管理员的接口代理配备了SNMP的平台,如主机、网桥、路由器、集线器等MIB管理者和代理共享的MO的集合标准的MIB类由国际组织定义MIB实例在代理处实现网络管理协议SNMPmanagerandagent,UDPGet,SetandTrap陷阱引导的轮询:如果manager负责大量的agent,而各agent又维护大量的对象,则manager难以及时地轮询所有对象。在初始化时,manager轮询所有管理关键信息(如接口特性、作为基准的一些性能统计值,如发送和接收的分组的平均数)的agent。一旦建立了基准,manager将降低轮询频度。而由每个agent负责报告异常事件。manager一旦发现异常情况,可以直接轮询报告事件的agent,对事件进行诊断或获取关于异常情况的更多的信息。Proxies三级组织模型SNMPUDPIPNetwork-dependentprotocolsManagementstationProxyAgentManagerSNMPUDPIPAgentProxieddeviceManagementprocessMappingfunctionProtocolsusedbyproxieddeviceProtocolsusedbyproxieddeviceNetwork-dependentprotocolsNetwork-dependentprotocolsNetwork-dependentprotocolsRMON管理者通过RMONProbe访问MORMONProbe对原始收据进行预处理RMONProbeManagedObjectsSNMPManagerSNMPAgentSNMP管理信息模型SMI:StructureofManagementInformation为MIB定义提供一个一般的框架规定MIB中应用的数据类型和MO的命名追求简单性和可扩充性MIB只存储简单数据类型标量标量的二维表格InternetMIB{iso(1)org(3)dod(6)}对象标识符:1.3.6.1internet{1.3.6.1}mgmt(2)mib-x(1)private(4)experimental(3)directory(1)system(1)interfaces(2)snmp(11)···Internet下的4个节点directorymgmtexperimentalprivatemib-1与mib-2处于mgmt下的同一节点SNMP的数据类型和结构RFC1155-SMIDEFINITIONS::BEGINEXPORTS--EVERYTHINGInternet,directory,mgmt,experimental,private,enterprises,OBJECT-TYPE,ObjectName,ObjectSyntax,SimpleSyntax,ApplicationSyntax,NetworkAddress,IpAddress,Counter,Gauge,TimeTicks,Opaque;--thepathtotherootinternetOBJECTIDENTIFIER::={isoorg(3)dod(6)1}directoryOBJECTIDENTIFIER::={internet1}mgmtOBJECTIDENTIFIER::={internet2}experimentalOBJECTIDENTIFIER::={internet3}privateOBJECTIDENTIFIER::={internet4}enterprisesOBJECTIDENTIFIER::={private1}编码结构SNMP采用基本编码规则BER实现Manager和Agent之间的管理信息编码传输SNMP采用一种特定的编码结构TLV:Type,LengthandValueTypeLengthValueClass(7th-8thbits)P/C(6thbit)TagNumber(1st-5thbits)MIB-IIMIB-II:MIB-I的超集,为Internet的网络管理而开发。MIB-II的分组:system:关于系统的总体信息;interface:系统到子网接口的信息;at:描述internet到subnet的地址映射;ip:关于系统中IP的实现和运行信息;icmp:关于系统中ICMP的实现和运行信息;tcp:关于系统中TCP的实现和运行信息;udp:关于系统中UDP的实现和运行信息;egp:关于系统中EGP的实现和运行信息;dot3:有关每个系统接口的传输模式和访问协议的信息;snmp:关于系统中SNMP的实现和运行信息。system组的对象ObjectSyntaxAccessDescriptionsysDescrDisplayString(SIZE(0…255))RO对实体的描述,如硬件、操作系统等sysObjectIDOBJECTIDENTIFIERRO实体中包含的网络管理子系统的厂商标识sysUpTimeTimeTicksRO系统的网络管理部分本次启动以来的时间sysContactDisplayString(SIZE(0…255))RW该被管节点负责人的标识和联系信息sysNameDisplayString(SIZE(0…255))RW该被管节点被赋予的名称sysLocationDisplayString(SIZE(0…255))RW该节点的物理地点sysServiceINERGER(0…127)RO指出该节点所提供的服务的集合,7个bit对应7层服务interfaces组的对象ObjectSyntaxAccessDescriptionifNumberINTEGERRO网络接口的数目ifTableSEQUENCEOFifEntryNA接口条目清单ifEntrySEQUENCENA包含子网及其以下层对象的接口条目ifIndexINTEGERRO对应各个接口的唯一值ifDescrDisplayString(SIZE(0…255))RO有关接口的信息,包括厂商、产品名称、硬件接口版本ifTypeINTEGERRO接口类型,根据物理或链路层协议区分ifMtuINERGERRO接口可接收或发送的最大协议数据单元的尺寸ifSpeedGaugeRO接口当前数据速率的估计值ifPhysAddressPhysAddressRO网络层之下协议层的接口地址ifAdminStatusINTEGERRW期望的接口状态(up(1),down(2),testing(3))ifOperStatusINTEGERRO当前的操作接口状态(up(1),down(2),testing(3))ifLastChangeTimeTicksRO接口进入当前操作状态的时间interfaces组的对象(续)ObjectSyntaxAccessDescriptionifInOctetsCounterRO接口收到的8元组的总数ifInUcastPktsCounterRO交到高层协议的子网单播的分组数ifInNUcastPktsCounterRO递交到高层协议的非单播的分组数ifInDiscardsCounterRO被丢弃的进站分组数ifInErrorsCounterRO有错的进站分组数ifInUnkownProtosCounterRO由于协议未知而被丢弃的分组数ifOutOctetsCounterRO接口发送的8元组的总数ifOutUcastPktsCounterRO发送到子网单播地址的分组总数ifOutNUcastPktsCounterRO发送到非子网单播地址的分组总数ifOutDiscardsCounterRO被丢弃的出站分组数ifOutErrorsCounterRO不能被发送的有错的分组数ifOutQLenGaugeRO输出分组队列长度ifSpecificOBJECTIDENTIFIERRO参考MIB对实现接口的媒体的定义addresstranslation组的对象ObjectSyntaxAccessDescriptionatTableSEQUENCEOFAtEntryNA包含网络地址对物理地址的映射atEntrySEQUENCENA包含一个网络地址、物理地址对atIfIndexINTEGERRW表格条目的索引atPhysAddressPhysAddressRW依赖媒体的物理地址atNetAddressNetworkAddressRW对应物理地址的网络地址ip组的对象ObjectSyntaxAccessDescriptionipForwardingINTEGERRW是否作为IP网关(1/0)i