本文共 4371 字,大约阅读时间需要 14 分钟。
本节书摘来自异步社区《精通SNMP》一书中的第1章,第1.1节,作者: 武孟军 更多章节内容可以访问云栖社区“异步社区”公众号查看。
SNMP是英文Simple Network Management Protocol(简单网络管理协议)的缩写。从狭义上讲,它是一种专门用于网络管理软件和网络设备之间通信的协议;从广义上讲,它是一组为实现网络的自动化管理任务而制订的一系列通行标准,包括了管理信息的表示与命名、通信协议等内容。
SNMP最早是Internet工程任务组(Internet Engineering Task Force,IETF)为解决Internet上的网络设备管理问题而提出的一个临时方案,第一个正式版本在1989年发布,经过二十多年的发展,SNMP日臻完善,目前已经是应用最广泛的一个成熟网络管理标准协议。
早期的计算机网络规模小,结构简单,因此网络管理活动也相对简单。随着计算机网络技术的迅速发展,网络规模日益庞大,结构也越来越复杂,简单、粗陋的管理方式已经不再适应现代的计算机网络,网络管理必须向高度集中和高度智能化的方向发展。
在此期间,先后出现了多种网络管理标准。最早致力于网络管理标准化工作的是国际标准化组织(International Standards Organization,ISO),它是网络互连协议OSI(Open System Interconnection Reference Model,开放系统互联参考模型)的制订者。ISO制订的第一个网络管理标准为CMIS/CMIP(The Common Management Information Service/Protocol),也是基于OSI模型的,并在当时的网络管理中得到了初步应用。同期出现的其他网络管理协议还有高层实体管理系统HEMS(High Level Entity Management Systems)、简单网关监控协议SGMP(Simple Gateway Monitoring Protocol)等。
随着TCP/IP和Internet的迅速普及,1987年Internet的管理机构IAB(Internet Activities Board)认为有必要为基于TCP/IP技术的网络制订新的网络管理标准。其长期目标是在CMIS/CMIP基础上,制订一套功能完善、适用于TCP/IP协议栈的网络管理协议CMOT(Common Management Information Services and Protocol Over TCP/IP)。然而,业界对基于TCP/IP的网络管理标准的需求是如此迫不及待,已经等不及CMOT的推出了。为了应急,IAB决定将已有的SGMP修订、完善,作为一种临时的网络管理解决方案,这就是后来一统天下的SNMP。
**1.1.1 什么是网络管理**简单地说,网络管理就是维护一个网络系统的正常运行。“正常运行”的意思是网络系统能够按照设计的目标,发挥应有功能。网络管理,最直接的原因是组成网络的硬件设备会损坏,通信线路会出现中断故障,过多的网络用户会争用有限的网络资源(线路带宽、设备CPU处理能力等)。现代的网络管理,已不仅仅是维护网络的正常运行,还需要收集、分析网络运行数据,展示网络运行状况的性能指标,进而判断、预测网络故障,为网络优化及改造提供基础运行数据支持。关于网络管理的组成,ISO在ISO/IEC 7498文档第4部分,根据功能的不同,将基于OSI参考互联模型的网络管理划分为如下五部分:
故障管理和性能管理是最基本的网络管理,是其他管理活动的基础,也是最常见的网络管理。一个网络系统,无论发生什么故障,都是对网络服务功能的破坏,因此,网络故障是最严重的网络事件,直接导致网络某部分功能的丧失。性能管理则是在网络无故障的基础上,对网络资源进行监视和调度,合理分配网络资源,保障网络功能正常发挥。不适当的性能管理会使得网络堵塞、某一部位产生处理瓶颈甚至导致整个网络瘫痪。性能管理的目的不仅仅是保证网络系统有充裕的资源可用,还要求网络资源达到一定的利用率以避免资源浪费。性能管理的理想目标是网络各个环节资源利用率协调一致,避免存在“短板现象”。
早期的网络管理相对简单,基本上是命令行方式的手工管理。不同的网络设备,命令格式不同,管理方式也不同。例如,网络管理员可能从设备面板指示灯的状态发现异常,也可能是接到用户的报障,才知道网络出现了问题。下一步,可能是登录到网络设备,输入各种命令,检查设备的运行状态,判断哪个部分出现了问题,然后再根据不同情况,进一步采取措施,修复故障。可见,这种管理方式属于“事件驱动”型:网络管理员不能主动发现问题,往往是异常问题发生并产生了影响之后,才察觉网络问题,然后再去检查、解决,具有一定的滞后性。
有的网络设备生产商针对自己的产品,开发了一些专用的、可以实现自动管理网络设备的应用软件,这些软件是最早的网络管理软件。这些管理软件的应用,将网络管理员从手工管理方式上升到自动化智能管理方式。然而,随着网络的发展,特别是出现网络互联的需求后,被管理的网络规模增大、结构复杂程度增加,网络中的设备往往不止来自一家生产商,这样,要想实现自动化智能网络管理,就需要同时运行几套网络管理软件,不仅不能统一管理,而且效率也不高。
**1.1.2 网络管理的演变**网络管理的实质,是网络管理人员从网络设备获取一些网络运行状态信息,再对这些信息进行综合分析、判断,从而确定网络运行状态的一个过程。一次典型的网络管理活动可以分为如图1-1所示的3部分。网络管理活动中首要的一个步骤就是“获取运行状态信息”,例如某个网络接口运行状态,某台设备的CPU利用率等。这些信息,网络管理术语中称其为“管理信息”。广义上说,它可以是任何一种网络管理员感兴趣的、与网络运行状态有关的信息。自动化智能网络管理,其实就是将“获取运行状态信息”这一步骤程序化。先进一点的网络管理软件,可以实现管理信息的分析判断,从而在一定程度上隔离出故障范围。一般地,故障恢复措施仍需要管理人员手工完成。
因此,网络管理协议的主要工作,就是为网络管理软件如何从网络设备获取网络运行状态信息,制订一套通用标准。
网络管理协议首先要解决两个问题,一是管理信息的表示与标识,二是网络设备与网络管理软件之间在传递管理信息时使用的通信协议。所有的网络管理协议,基本上都是以这两个主题为中心的。
1.1.3 SNMP的发展
由于SNMP具有简单、易实施和容易扩充等优点,一经推出就得到了广泛的应用和支持,显示了强大的生命力。当CMOT趋于成熟时,SNMP在实际应用中早已是今非昔比,已经得到了包括IBM、HP等大公司的数百家厂商的支持,早已成为网络管理领域事实上的工业标准。至今,SNMP前后一共推出了8个版本,但实践中真正得到广泛应用的只有3个,分别是SNMPv1、SNMPv2c和SNMPv3。1.SNMPv1
主要由以下RFC文档组成:SNMPv1简单易于实施,被业界广泛接受并得以实施。但它最致命的一个缺点是安全性差,唯一的安全机制是基于共同体字符串(community strings),类似一个普通的字符串密码。
2.SNMPsec
主要由以下RFC文档组成:这个版本在SNMPv1基础上增加了较强的安全措施,其安全机制基于一种“团体(parties)”的结构。只有少数厂商实施过该版本,目前市场上已难觅踪影。
3.SNMPv2p
主要由以下RFC文档组成:这个版本也称为SNMPv2,即第二版SNMP。它不仅仅改进了SNMPv1安全性(和SNMPsec一致),同时在数据定义、协议操作类型等方面也做了较大变动。
4.SNMPv2c
主要由以下RFC文档组成:这个版本实际上是将SNMPv2p的数据定义和协议操作,与SNMPv1安全机制结合起来,形成一种新的简化版本,称为基于共同体的SNMPv2,简称SNMPv2c。它在数据定义、协议操作类型等方面也做了较大变动。大部分标称支持SNMPv2的设备,实际上实施的就是这个版本。
5.SNMPv2u
主要由以下RFC文档组成:该版本是将SNMPv2c安全机制加以改进,新的安全特性是基于用户(users)的安全结构。
6.SNMPv2*
该版本将SNMPv2p和SNMPv2u的优点集合起来,但它还没有形成RFC文档便夭折了。7.SNMPv3
1998年IETF发布了SNMPv3,SNMPv3相关RFC文档如下:转载地址:http://labnm.baihongyu.com/