1.背景:
简单网络管理协议(Simple Network Management Protocol)是一种应用层协议,是TCP/IP协议族的一部分,它使网络设备间能方便地交换管理信息。SNMP能够让网络管理员管理网络的性能,发现和解决网络问题及进行网络的扩充。
现在有两个版本的SNMP v1和SNMP v2,这两个版本都有一些共同特性,但SNMP v2提供了加强的功能,比如:额外的协议操作命令。另外一个版本SNMP v3的标准化也在进行当中,这里主要是关于SNMP v1和SNMP v2的介绍。
2.SNMP基本的部件
一个SNMP网络包含三个重要的部分:被管理的设备(Managed device),代理(Agent)和网络管理系统(Network-management systems , NMSs),被管理的设备是一个存在于被管理的网络中的节点,在它上运行着代理,被管理的设备会收集和存储管理信息,通过SNMP使得这些信息可以被NMSs所使用。被管理的设备有时被称作网络元素(Network Elements),可以是路由器,接入服务器,交换机,网桥,集线器,电脑主机,打印机等。
代理是驻留在被管理设备上的网络管理软件模块,它知道本地计算机的管理信息并将这些信息翻译成兼容SNMP协议的形式。
我们可以通过在NMSs上运行一些应用程序来监视和控制被管理的设备,NMSs会提供大量关于进程和内存资源的信息,而这些信息是管理好一个网络所必须的,在一个被管理的网中,可以有一个或多个NMSs。
3.SNMP基本命令:
可以使用read, write, trap, traversal 这四个命令监视和控制被管理的设备.
1) NMS用read命令去监视被管理的设备,这是通过NMS检查被管理设备上的一些变量所实现的。
2) NMS用write命令去控制被管理的设备,NMS可以改变存在于被管理设备上的一些关键变量的值。
3) 被管理的设备用trap命令非同步地向NMS报告事件,当一定类型的事件发生,被管理的设备就向NMS发trap命令。
4) traversal命令是NMS所使用的用来决定被管理的设备支持哪些变量,以及顺序收集关于变量表的信息,例如路由表。
4.SNMP管理信息库(MIB)
管理信息库是由代理者维护的一个信息数据库,信息库里的内容可供管理者查询或设置其中变量的值。MIB被分成几个不同的组,有system,interface,at 等,MRTG维护一个信息库,并利用snmp命令查询相关信息,Linux下标准snmp命令snmpget 可以获得系统中的有关snmp变量:
( MIB就是代理维护的一个变量库,可供管理者查询和设置 )
snmpget cuirf public system.sysDescr.0 获得关于系统的描述
snmpwalk cuirf public system 遍历主机cuirf系统组中的所有变量
snmpwalk是一SNMP应用程序,它利用snmp getNext 命令查询信息树中的变量值
利用snmpset 命令设置sysContact变量的值
snmpset localhost public system.sysContact.0 s cuirf@legend.com
管理信息库(MIB)是一个具有分层特性的信息的集合,我们可以通过SNMP去存取它。MIB的成员是一些被管理的对象(Managed Object), 以对象标示符(Object Identifiers)来区分它们。
被管理的对象(有时叫:MIB对象,MIB或对象)只是被管理设备的众多特性之一。被管理的对象由一个或多个对象实例(Object Instances)组成, 本质上,这些对象实例就是变量。
在MIB的层次结构中,一个对象标示符唯一标识了被管理对象。MIB的层次结构可以被描述成无根名的树,树的级别被不同的组织所划分。
5.SNMP管理:
SNMP是分布式的管理协议,一个系统可以只当作NMS或代理者,也可以同时完成这两者的功能。如果一个系统既作为NMS,又作为代理者的话,这种情况下可能需要另外一台NMS用它来查询被管理的设备,并提供信息的汇总等
SNMP安全
SNMP缺乏任何的授权能力,因此存在着许多安全性的威胁。包括 欺骗,修改信息,信息队列和时钟的修改及信息泄漏。欺骗包括一个未被授权的实体假扮已被授权的实体企图进行管理操作;修改信息包括,一个未被授权的实体企图修改那些由被授权的实体所产生的信息,从而导致未授权的配置操作;信息队列和时钟的修改发生在一个未被授权的实体记录者延迟,拷贝授权者产生的信息,后来在重做这些步骤的时候。当一个未授权实体提取存储在被管理对象中的一些值或通过监视管理者和代理者之间的信息交换得到一些重要事件的时候,这时就会发生信息泄漏。因为SNMP不进行任何授权,所以许多厂商在他们的产品中不实现Set 操作,而仅仅把SNMP作为监视设备。
来源:linuxbyte