snmp简单网络管理协议

来源:互联网 发布:mac版文明5汉化 编辑:程序博客网 时间:2024/05/18 09:03

1  简介

基于tcp/ip的网络管理包含3个组成部分:

1)管理信息库MIB。包含所有代理进程的可被查询和修改的参数

2)关于MIB的一套公用的结构和表示符号。叫做管理信息结构SMI(structure of Management Information)

3)管理进程和代理进程之间的通信协议,简单网络管理协议snmp

2  协议

管理进程和代理进程之间定义了5种报文:

1)get-request操作:从代理进程处提取一个或多个参数值

2)get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值(关于next的含义将在后面介绍)

3)set-request操作:设置代理进程的一个或多个参数值

4)get-response操作:返回一个或多个参数值。它是代理进程给管理进程前3个操作的反馈

5)trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生


图5是封装成UDP数据报的5种操作的SNMP报文格式。可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部trap首部、变量绑定。

 

                                                               5 SNMP报文格式

1)公共SNMP首部 
共三个字段:
 版本
写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。
 共同体(community)
共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。
 PDU类型
根据PDU的类型,填入0~4中的一个数字,其对应关系如表2所示意图。

表2 PDU类型


PDU类型

名称

0

get-request

1

get-next-request

2

get-response

3

set-request

4

trap

2)get/set首部
 请求标识符(request ID)
这是由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文
 差错状态(error status)
由代理进程回答时填入0~5中的一个数字,见表3的描述

表3 差错状态描述

差错状态

名字

说明

0

noError

一切正常

1

tooBig

代理无法将回答装入到一个SNMP报文之中

2

noSuchName

操作指明了一个不存在的变量

3

badValue

一个set操作指明了一个无效值或无效语法

4

readOnly

管理进程试图修改一个只读变量

5

genErr

某些其他的差错

 差错索引(error index)
当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。
(3)trap首部
 企业(enterprise)
填入trap报文的网络设备的对象标识符。此对象标识符肯定是在图3的对象命名树上的enterprise结点{1.3.6.1.4.1}下面的一棵子树上。
 trap类型
此字段正式的名称是generic-trap,共分为表4中的7种。

trap类型

名字

说明

0

coldStart

代理进行了初始化

1

warmStart

代理进行了重新初始化

2

linkDown

一个接口从工作状态变为故障状态

3

linkUp

一个接口从故障状态变为工作状态

4

authenticationFailure

从SNMP管理进程接收到具有一个无效共同体的报文

5

egpNeighborLoss

一个EGP相邻路由器变为故障状态

6

enterpriseSpecific

代理自定义的事件,需要用后面的“特定代码”来指明

当使用上述类型2、3、5时,在报文后面变量部分的第一个变量应标识响应的接口。
 特定代码(specific-code)
指明代理自定义的时间(若trap类型为6),否则为0。
 时间戳(timestamp)
指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms。例如时间戳为1908表明在代理初始化后1908ms发生了该时间。
(4)变量绑定(variable-bindings)
指明一个或多个变量的名和对应的值。在get或get-next报文中,变量的值应忽略。

3.MIB信息库

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

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

对象命名树的顶级对象有三个,即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管理的信息类别

类别

标号

所包含的信息

system

interfaces

address translation

ip

icmp

tcp

udp

egp

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

主机或路由器的操作系统

各种网络接口及它们的测定通信量

地址转换(例如ARP映射)

Internet软件(IP分组统计)

ICMP软件(已收到ICMP消息的统计)

TCP软件(算法、参数和统计)

UDP软件(UDP通信量统计)

EGP软件(外部网关协议通信量统计)

应当指出,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进行管理。

原创粉丝点击