当前位置:文档之家› 第三章 简单网络管理协议-SNMP

第三章 简单网络管理协议-SNMP

第三章简单网络管理协议-SNMP

SNMP(Simple Network Management Protocol,简单网络管理协议)是由Internet活动委员会(IAB)制订的,被采纳为基于TCP/IP协议的各种互联网络的管理标准。由于它满足了人们长久以来对通用网络管理标准的需求,而且它本身简单明了,实现起来比较容易,占用的系统资源少,所以得到了众多网络产品厂家的支持,成为实际上的工业标准,基于它的网络管理产品在市场上占有统治地位。1993年它的更新版本SNMP V ersion 2(SNMPv2)又被推出,改进了SNMP的不少缺陷。

本章及下一章在介绍SNMP协议的基础上,着重讨论SNMPv2协议的特点,并就作者自己开发的基于SNMPv2协议的网络计费管理软件作了介绍。

3.1 SNMP

3.1.1SNMP协议的工作原理

SNMP的管理结构如图3.1所示。它的核心思想是在每个网络节点上存放一个管理信息库( MIB),由节点上的代理(agent)负责维护,管理站(manager)通过应用层协议对这些信息库进行管理。SNMP最大的特点就是其简单性。它的设计原则是尽量减少网络管理所带来的对系统资源的需求,尽量减少agent的复杂性。它的整个管理策略和体系结构的设计都体现了这一原则。

管理工作站

图3.1:SNMP管理模型

3.1.2SNMP通信报文的操作处理

SNMP标准主要由三部分组成:简单网络管理协议(SNMP);管理信息结构(Structure ofa nagement Information,简称SMI)和管理信息库(Management Information Base,简称MIB) 。SNMP主要涉及通信报文的操作处理,协议规定manager如何与agent通信,定义了它们之间交换报文的格式和含义,以及每种报文该怎样处理等等。

SNMP中规定的网络管理操作有五种,分别是:

(1)Get-Request;

(2)Get-Next-Request;

(3)Set-Request;

(4)Get-Response;

(5)Trap。

Get-Request被manager用来从agent取回某些变量的值;Get-Next-Request被manager 用来从agent取回某变量的下一个变量的值;Set-Request被manager用来设置(或改变)agent上某变量的取值;Get-Response是agent向manager发送的应答;Trap被agent用来向manage r报告某一异常事件的发生。

Get-Request、Get-Next-Request和Set-Request这三种操作都具有原子(atomic)特性,即如果一个SNMP报文中包括了对多个变量的操作,agent不是执行所有操作,就是都不执行(例如,一旦对其中某个变量的操作失败,其它的操作都不再执行,已执行过了的也要恢复)。

SNMP的报文格式为:

version community data

version域表示SNMP协议的版本,在SNMP中它是version-1(0);

data域存放实际传送的报文,报文有五种,分别对应上述五种操作。

community域是为增加系统的安全性而引入的,它的作用相当于口令(password)。3.1.3 SNMP的安全机制

SNMP网络管理由几个特征,它包含一个管理站和一组代理之间的一对多的关系:管理站能够取得和设置代理中的对象,并从代理接收陷阱。因此,从操作或控制的观点来看,管理站“管理”多个代理。也可能有多个管理站,其中的每一个管理站管理全部代理或这些代理的一个子集,这些子集可能重叠。

我们也可以把SNMP网络管理看作是一个在一个代理和多个管理站之间的一对多的关系。每个代理控制它自己的本地MIB,而且必须能够控制多个管理站对该MIB 的使用。该控制有3个方面:

1.认证服务:代理可以把对MIB的访问限制在授权的管理站。

2.访问策略:代理可以给不同的管理站不同的访问特权。

3.转换代理服务:一个代理可以作为其它被管理站的转换代理。这可能包含在转换代理系统中,位其它的被管理系统实现认证服务和/或访问策略。

所有的这几方面都和安全考虑有关。代理需要保护自身和它的MIB,使它们不受到未被授权的访问。SNMP,对这种安全性,提供了团体的概念。

SNMP团体是一个在SNMP代理和多个SNMP管理者之间定义了认证、访问控制和转换代理特性的关系。团体的概念是一个在代理上定义的局部概念。代理为每个需要的认证、访问控制和转换代理特征的结合建立一个团体。每个团体有一个唯一的(在这个代理内部)团体名字,在那个团体内的管理站必须在所有Get和Set操作中使用该团体的名字。一个代理可以建立许多团体,这些团体可以包括重叠的管理站成员。

由于团体定义在代理本地上,不同的代理可以用相同的名字。名字的相同是无关紧要的,不表明在被定义的团体之间有任何相似之处。因此,管理站必须保持那些它所希望访问的代理的团体名字。

因为SNMP中的团体名字是一个字符串的形式,所以该名字又被称为团体字符串。

3.1.4 认证服务

认证服务的目的是要保证通信是被授权的。对于一个SNMP消息,认证服务的功能是保证接收消息来自于这个消息所声称的源。SNMP提供了一个简单的认证方案。从一个管理站到一个代理的每一个消息(获取或设置请求)都包括一个团体名字(community)。这个名字起到一个密码的作用,如果发送者知道这个密码,消息就认为是可靠的。代理可以要求管理站在其发来的报文中填写这一项,以验证管理站是否有权访问它上面的MIB信息。团体名字的缺点是没有加密功能,由于是明码传送的,所以很容易被监听者窃取。SNMPv2中改进了这一点。

3.1.5访问策略

通过定义一个团体,代理把对它的MIB的访问限制在被选择的管理站。通过使用多个团体,代理可以为不同的管理站提供不同的MIB访问类别。访问控制由两个方面:1.SNMP MIB视域:在MIB中的一个对象子集。每个团体,可以定义不同的MIB视域。在一个视域中的对象集不必属于MIB的单个子树。

2.SNMP访问模式:集合{只读,读写}的一个元素。每个团体,只定义一个访

相关主题