博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

mars

一生何求
  huanghaojie.cublog.cn

关于作者
姓名:Jiangtao
职业:Linux  Support
年龄:26
位置:Shanghai
个性介绍:
|| << >> ||
我的分类


SNMP协议详解

SNMP协议详解

 

  简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。

1. SNMP基本原理

SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。下图 10是NMS公司网络产品中SNMP协议的实现模型。

SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图

版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。

团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息

协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。

2. 管理信息库MIB

IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。

下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。

下图给出了对一个DS1线路状态进行查询的OID设置例子。

3. SNMP的五种消息类型

SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap

(1)Get-Request 、Get-Next-Request与Get-Response

SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而 SNMP代理则用Get-Response消息响应。Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:首先通过下面的原语获得所要查询的设备的接口数:

{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}

后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):

{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}

(2)Set-Request

SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

(3)Trap

SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。

SNMP管理信息库MIB

管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB 给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。下图画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。

管理信息库的对象命名举例

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有 4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB- II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。

最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib-2所包含的信息类别已超过40个。

表1 最初的结点mib管理的信息类别

应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为 {1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。

 原文地址 http://liulinxia02.blog.163.com/blog/static/2686877200711711412475/
发表于: 2008-01-16,修改于: 2008-01-16 13:55,已浏览669次,有评论1条 推荐 投诉


网友评论
网友: abcd 时间:2008-01-16 13:56:39 IP地址:220.248.0.★
OID是什么?这是snmp开发者首先必须要了解清楚的。

SNMP对象标识符(OID)是定义在特定MIB模式中的值,来定义一个特定的在MIB数据库中SNMP目标。SNMP OID是划界序列数字组成a.b.c...x.y.z的周期。它对信息的一个项目是一个独特的标识符,其是一个MIB的一部分。典型的OIDs能够有与它们相关的名字。OIDs在自然中是分等级的。因此1.2.3出现在1.3之前但是在1.2之后。OID前面的一部分是由协会分配的,每个企业都有自己的 Oid标识

类似的OID定义方法为:

oid  oid_Fan_Speed[] ={Hardware,3,2,1,2,0};
oid  oid_Power_Voltage[] ={Hardware,5,2,1,2,0};//3
oid  oid_MLB_temprature[] ={Hardware,6,2,1,2,0};//3
oid  oid_Hdd_Status[] ={HDD,2,1,8,0};
oid  oid_ECC_Status[] ={Hardware,7,2,1,2,0};//3
oid  oid_Bat_Voltage[] ={Hardware,8,2,1,2,0};//3
oid  oid_DG_Status[] ={DG,2,1,7,0};
oid  oid_Snap_Status[] ={VD,2,1,7,0};
oid  oid_VD_Status[] ={VD,2,1,7,0};
oid  oid_UPS_Power[] ={Hardware,4,0};
oid  oid_Fail_Over_Back[] ={System,0,0,0};

其中Hardware也是自己定义的

 发表评论