SNMP详解.docx

上传人:b****3 文档编号:27550110 上传时间:2023-07-02 格式:DOCX 页数:13 大小:94.71KB
下载 相关 举报
SNMP详解.docx_第1页
第1页 / 共13页
SNMP详解.docx_第2页
第2页 / 共13页
SNMP详解.docx_第3页
第3页 / 共13页
SNMP详解.docx_第4页
第4页 / 共13页
SNMP详解.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SNMP详解.docx

《SNMP详解.docx》由会员分享,可在线阅读,更多相关《SNMP详解.docx(13页珍藏版)》请在冰豆网上搜索。

SNMP详解.docx

SNMP详解

SNMP(MIB(OID)&SMI&SNMP)

2010-09-0210:

53

转载自qu6zhi

最终编辑马长征2008

===================================================================================

【前言】

用“监控软件”(solarwinds/cacti/mrtg……)监控各种设备的时候,有一些数据不会被抓取到,自然就不会有显示,原因是这些软件没有被监控设备的模板,有一些cacti模板可以从网上找到,但solarwinds就找不到UnDP格式的模板了,这就需要知道被监控设备的OID,而OID是通过MIB库来查找的。

===================================================================================

===================================================================================

【SNMP简介】

SNMP的目标是管理Internet上众多厂家生产的软硬件平台。

SNMP的管理由三部分组成:

①管理信息库MIB,②管理信息结构SMI,③SNMP本身。

===================================================================================

①【MIB】

ManagementInformationBase的缩写,中文名字叫“管理信息库”。

它是网络管理数据的标准,在这个标准里规定了网络代理设备必须保存的数据项目,数据类型,以及允许在每个数据项目中的操作。

通过对这些数据项目的存取访问,就可以得到该网关的所有统计内容。

再通过对多个网关统计内容的综合分析即可实现基本的网络管理。

管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。

MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。

SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。

它又称为对象命名树(ObjectNamingTree)。

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。

在ISO的下面有4个结点,其中的一个(标号3)是被标识的组织。

在其下面有一个美国国防部(DepartmentofDefense)的子树(标号是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个类别。

现在的mib-2所包含的信息类别已超过40个。

应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。

厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。

用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。

当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

===================================================================================

②【SMI】

SMI,StructureofManagermentIntormation,中文名称:

管理信息结构。

它是简单网络管理协议(SNMP)的一部分,器指定了在SNMP的MIB中用于定义管理目标的规则。

SMI是语言。

是为了确保网络管理数据的语法和语义明确和无二义性而定义的语言。

它是定义悲观网络实体中特定数据的语言。

它定义了数据类型、对象模型,以及写入和修改管理信息的规则。

===================================================================================

③【SNMP协议详解】

SNMP是建立在TCP/IP公共网络上的公共网络管理协议。

       简单网络管理协议(SNMP:

SimpleNetworkManagementProtocol)是由互联网工程任务组(IETF:

InternetEngineeringTaskForce)定义的一套网络管理协议。

该协议基于简单网关监视协议(SGMP:

SimpleGatewayMonitorProtocol)。

利用SNMP,一个管理工作站可以远程管理所有支持这种协议的设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。

1.SNMP基本原理

SNMP采用了Client/Server模型的特殊形式:

代理/管理站模型。

对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。

每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。

下图是NMS公司网络产品中SNMP协议的实现模型。

SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。

SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。

SNMP消息报文包含两个部分:

SNMP报头和协议数据单元PDU。

数据报结构如下图

版本识别符(versionidentifier):

确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。

团体名(CommunityName):

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

协议数据单元(PDU):

其中PDU指明了SNMP的消息类型及其相关参数。

2.管理信息库MIB

IETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:

ObjectIdentifier)唯一指定。

MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。

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

ObjectIdentifier)结构。

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

3.SNMP的五种消息类型

SNMP中定义了五种消息类型:

Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap

①Get-Request、Get-Next-Request与Get-Response

SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。

Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。

如:

首先通过下面的原语获得所要查询的设备的接口数:

{isoorg(3)dod(6)internet

(1)mgmt

(2)mib

(1)interfaces

(2)ifNumber

(2)}

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

{isoorg(3)dod(6)internet

(1)mgmt

(2)mib

(1)interfaces

(2)ifTable

(2)}

②Set-Request

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

③Trap

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

SNMP管理信息库MIB

管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。

MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。

SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。

下图画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。

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

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。

在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。

在其下面有一个美国国防部(DepartmentofDefense)的子树(标号是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。

现在的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进行管理。

===================================================================================

SNMP采用的是UDP(用户数据报协议)作为其传输层协议,传输端口:

SNMPAgent:

UDP161

SNMPManager:

UDP162

===================================================================================

【SNMP各个版本的区别】

【SNMPv1】

是一种简单的请求/响应协议。

网络管理系统发出一个请求,管理器则返回一个响应。

这一行为的实现是通过使用四种协议操作中的其中任一种完成的。

这四种操作分别是GET、GETNEXT、SET和TRAP。

【SNMPv2】

由SNMPv1演化而来。

SNMPV1中的GET、GETNEXT及SET操作同样适用于    SNMPV2,只是SNMPV2添加和增强了有关协议操作。

例如:

SNMPV2中的TRAP操作,不但具备SNMPV1中TRAP的相同功能,而且它采用了一种不同的消息格式,它用于替换SNMPV1中的TRAP。

【SNMPv3】

增加了安全管理方式及远程控制。

SNMPV3结构引入了基于用户的安全模型用于保证消息安全及基于视图的访问控制模型用于访问控制(USM)。

这种安全管理方式支持不同安全性,访问控制及消息处理等模式的并发使用,其具体说明如下:

  

*安全性  

*认证和隐私

*授权和访问控制

*管理框架

*实体命名

*人员和政策

*用户名及密钥管理

*通知目标文件

*代理关系

*SNMP中的远程配置

===================================================================================

===================================================================================

【配置】snmp

===================================================================================

编辑/etc/snmp/snmpd.conf

①定义一个共同体名(community),这里是qu6zhi,及可以访问这个qu6zhi的用户名(secname),这里是notConfigUser。

qu6zhi相当于用户notConfigUser的密码。

②定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigUser这个用户加到这个组中。

③定义一个可操作的范围(view)名,这里是all,范围是.1

④定义notConfigUser这个组在all这个view范围内可做的操作,这时定义了notConfigUser组的成员可对.1这个范围做只读操作。

#vi/etc/snmp/snmpd.conf

#      sec.namesource         community

com2secnotConfigUserdefault      qu6zhi

#           groupName     securityModelsecurityName

group  notConfigGroup  v1          notConfigUser

group  notConfigGroup  v2c          notConfigUser

#      name          incl/excl    subtree        mask(optional)

viewall            included    .1

#      group         contextsec.modelsec.levelprefixread  writenotif

accessnotConfigGroup""     any      noauth   exactallnonenone

保存退出

⑤重启snmpd服务

#servicesnmpdrestart

⑥列出snmpd开放端口

#netstat-anp|grepsnmp

tcp       0     0127.0.0.1:

199              0.0.0.0:

*                  LISTEN     18757/snmpd        

udp       0     00.0.0.0:

161                0.0.0.0:

*                              18757/snmpd        

unix2     []        DGRAM                   3196318757/snmpd

===================================================================================

查看阅读mib-2所管理的信息类别的MIB文件

#more/usr/share/snmp/mibs/RFC1213-MIB.txt

===================================================================================

用snmpbulkwalk命令连接snmp服务器,获取snmp服务器的【mib-2各种信息】。

①snmpbulkwalk用于通过SNMPv2的SNMPGETBULK请求命令与其它网络实体通信,只能用于snmpv2,速度快于snmpwalk。

②指定共同体为qu6zhi,协议为snmp2c。

------------------------------------------------------------------------------------------------------------------------------------

③获取mib-2的system的数据,即.1.3.6.1.2.1.1(iso->identifiedorganization->dod->internet->mgmt2->mib-2->system)

#snmpbulkwalk-v2c192.168.0.6-cpublic.1.3.6.1.2.1.1

Timeout:

NoResponsefrom192.168.0.222

#snmpd-d-f-L-c/etc/snmp/snmpd.conf

netsnmp_assert!

"registration!

=duplicate"failedagent_registry.c:

536netsnmp_subtree_load()

[init_smux]bindfailed:

Addressalreadyinuse

Erroropeningspecifiedendpoint"udp:

161"

ServerExitingwithcode1

------------------------------------------------------------------------------------------------------------------------------------

④获取mib-2的interface的数据,即.1.3.6.1.2.1.2(iso->identifiedorganization->dod->internet->mgmt2->mib-2->interface)

#snmpbulkwalk-v2c192.168.0.6-cpublic.1.3.6.1.2.1.2

⑤获取mib-2的addresstranslation的数据,即.1.3.6.1.2.1.3(iso->identifiedorganization->dod->internet->mgmt2->mib-2->addresstranslation)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.3

⑥获取mib-2库的ip的数据,即.1.3.6.1.2.1.4(iso->identifiedorganization->dod->internet->mgmt2->mib-2->ip)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.4

⑦获取mib-2库的icmp的数据,即.1.3.6.1.2.1.5(iso->identifiedorganization->dod->internet->mgmt2->mib-2->icmp)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.5

⑧获取mib-2库的tcp的数据,即.1.3.6.1.2.1.6(iso->identifiedorganization->dod->internet->mgmt2->mib-2->tcp)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.6

⑨获取mib-2库的udp的数据,即.1.3.6.1.2.1.7(iso->identifiedorganization->dod->internet->mgmt2->mib-2->udp)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.7

10)获取mib-2库的snmp的数据,即.1.3.6.1.2.1.11(iso->identifiedorganization->dod->internet->mgmt2->mib-2->snmp)

#snmpbulkwalk-v2c192.168.0.6-cqu6zhi.1.3.6.1.2.1.11

===================================================================================

查看阅读HOST-RESOURCES的MIB文件

more/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt

===================================================================================

【HOST-RESOURCES】

查用snmpwalk命令连接snmp服务器(192.168.0.6),获取snmp服务器的【HOST-RESOURCES】的各种信息。

①指定共同体为qu6zhi,协议为snmpv1

②获取HOST-RESOURCES的host(所有资源)

#snmpwalk-v1192.168.0.6-cpublicHOST-RESOURCES-MIB:

:

host

③获取HOST-RESOURCES的hrSystem(系统日期/时间,初始化设备,内核引导参数,系统当前的登录用户数,当前的进程数,支持的最大进程数)

#snmpwalk-v1192.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1