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

简单网络管理协议SNMP

SNMP

1概述 (1)

2SNMP的工作原理 (1)

2.1网络管理模型 (1)

2.2网络管理协议结构 (2)

2.3网络管理服务 (3)

2.4委托代理 (4)

3管理信息结构SMI (4)

3.1ASN.1 (4)

3.2文本约定 (5)

3.3对象定义 (6)

3.4T RAP定义 (6)

3.5对象标志符 (7)

3.6表对象的定义 (8)

3.7对象和对象实例的区别 (10)

3.8OID的字典序 (10)

4协议数据单元(PDU--PROTOCOL DATA UNIT) (10)

4.1SNMP报文格式 (10)

4.2SNMP报文类型 (11)

4.3SNMP V2基本的PDU格式 (12)

4.4SNMP消息的生成 (13)

4.5SNMP消息的接受和处理 (13)

5SNMP协议操作 (15)

5.1G ET R EQUES T (15)

5.1.1GetRequest—PDU报文格式 (15)

5.1.2SNMPv2对GetRequest-PDU的处理(参考RFC1905) (15)

5.1.3SNMPv1对GetRequest-PDU的处理(参考RFC1157) (16)

5.2G ET N EXT R EQUEST—PDU (16)

5.2.1GetNextRequest报文格式 (17)

5.2.2SNMPv2对GeNextRequest-PDU的处理(参考RFC1905) (17)

5.2.3SNMPv1对GeNextRequest-PDU的处理(参考RFC1157) (18)

5.3R ESPONSE-PDU (18)

5.3.1Response报文格式 (18)

5.3.2SNMPv2对Response-PDU的处理(参考RFC1905) (20)

5.3.3SNMPv1对响应报文GetResponse的处理(参考RFC1157) (20)

5.4S ET R EQUES T-PDU (20)

5.4.1SetRequest报文格式 (20)

5.4.2SNMPv2实体对SetRequest报文的处理(参考RFC1905) (21)

5.4.3SNMPv1对SetRequest报文的处理(参考RFC1157) (22)

5.5G ET B ULK R EQUES T-PDU (23)

5.5.1GetBulkRequest-PDU报文格式 (23)

5.5.2SNMPv2对GetBulkRequest-PDU报文的处理(参考RFC1905) (24)

5.6I NFORM R EQUES T-PDU (25)

5.6.1InformRequest-PDU的格式 (25)

5.6.2SNMPv2对InformRequest-PDU的处理(参考RFC1905) (26)

5.7T RAP-PDU (26)

5.7.1SNMPv1的Trap (26)

5.7.2SNMPv2的SNMPv2-Trap-PDU (28)

6SNMP的安全控制 (29)

6.1SNMP V2-基于共同体的管理框架 (29)

6.2SNMP V3的安全策略 (30)

1概述

简单网络管理协议(SNMP)由internet活动委员会(IAB)制定, 是Internet组织用来管理TCP/IP互联网和以太网的网络管理协议,它最初是作为一种可提供最小的网络管理功能的临时方法开发的。SNMP使用的管理信息结构(SMI)和管理信息库(MIB)提供了一组监控网络元素的最小的,但功能强大的工具。它的结构十分简单,能够简单快速地实现。因而SNMP 在网络管理领域得到了广泛的接受,已经成为事实上的国际标准。

SNMP目前包括三个版本:SNMPv1、SNMPv2、SNMPv3。SNMPv2是SNMP的后续版本,它对SNMP进行了大量的功能增强,并在某种程度上保持了简单和易于实现的特点。IETF最初在RFC2441—RFC1452中定义了SNMP的一系列规范, 随后在RFC1901—1910中发布了更新版本, 并成为IAB的推荐标准。稍后IETF又相继发布了网络管理的一系列标准管理信息库, 为SNMP开发人员提供了MIB定义和操作的规范。

本章将重点介绍SNMPv2,并增加了SNMPv3安全管理的内容。

2SNMP的工作原理

2.1网络管理模型

SNMP的体系结构是基于一个或多个网络管理站以及若干个网络元素组成的模式,见图1。网络管理站的任务是监督和控制网络元素。连接到网络中的、拥有一个或多个网络管理代理的任何设备,都可称为网络元素。代理充当所有网络管理功能的智能前端处理机。这意味着某些网络管理任务被转发给代理并在网络元素中处理。代理与网络管理站之间的通信则是由SNMP协议控制。

在SNMP的管理者—代理模型如下图所示:

,即

S N M P

M anagement S ystem

S N M P

M anaged S ystem

,

GET

用来

以, 从而掌握设备的全部图景。特别值得注意的是, GetNext_Request消息为管理者提供了在不知道一个MIB对象的情况下检索该对象的能力。管理者可以利用此消息来遍历一个未知MIB并发现它的结构。因此, 开发人员就有可能开发出独立通用的SNMP管理程序, 在一定程度上能够管理所有的SNMP代理。

管理者使用SET操作可以对一个设备上的参数进行远程配置。如, 设置系统的名字, 设置系统的负责人信息, 在管理上开启或关闭一个信道, 建立或拆除一个交叉联接, 设置性能数据的阈值等。 SNMP同样以Get-Response消息响应管理者的SET命令。

SNMP 陷阱(TRAP)是代理主动发送给管理者的非请求消息。这些消息通知管理者发生了

一个特定的事件, 所有可以发送的陷阱消息也必须是MIB已经定义的。发送的陷阱消息可以是告警, 如温度过高, 联接失败等, 也可以是一些事件通知, 如系统启动, 联接建立等。轮询和TRAP机制相结合, 使基于SNMP的管理达到较好的管理效果。以节省网络带宽和代理的处理时间。

2.4委托代理

使用SNMP要求所有管理者和代理都支持UDP和IP,这就限制了它对其它不支持TCP/IP 协议的网络设备的直接管理。为了实现对这些设备的管理,提出了委托代理(proxy)的概念。委

3

类型用一个字节表示,它决定了内容如何解释。内容有0到多个字节表示。

为简单起见, SNMP并不支持ASN.1的全部数据类型, 而是只使用了它的一个子集. 在RFC1902中, 定义了SNMP使用的全部标量数据类型,包括ASN.1定义的基本数据类型和SNMP在此基础上扩充的数据类型. 企业自定义的MIB标量对象必须是以下这些数据类型.

●INTEGER:32Bit整数,(-2147483648..2147483647)。

●Integer32:32Bit整数,(-2147483648..2147483647)。

●Unsigned32:无符号32Bit整数,(0..4294967295)。

●OCTET STRING :字符串,SIZE (0..65535)。最好在255以内。

●NULL:空类型。

●ObjectID:对象标识,最大32Bit。

●IPAddress:32Bit的IP地址。

●Counter32:32Bit的计数器,从0递增,到达最大值后回到0,然后再递增.

●Counter64:64Bbit计数器。

其中,各部分的解释为:

●DISPLAY-HINT:该类型的数据的显示格式。

●STATUS:该文本约定的状态。"current"表明正在使用,"obsolete"表明该定义

已经过时了,"deprecated"表明虽然该定义已经过时了,但是出于兼容性的考

虑仍然可以予以实现。

●DESCRIPTION:文字描述。

●REFERENCE:参考。

●SYNTAX:该文本约定的基本数据类型。

3.3对象定义

在SNMP中,采用如下格式定义一个管理对象。

3.4Trap定义

在SNMP中,采用如下格式定义一个通知:

其中,OBJECT子句表明了该通知中应该附带的对象。在一条通知的实例中,附带的第一个对象实例是当前时间,然后是该通知的标志,然后顺序天加上OBJECT子句中列出的对象的实例。其他子句的解释同对象定义的相同,这里就不再多说。

3.5对象标志符

所有采用ASN.1描述的MIB都使用ASN.1定义的属性结构组织管理信息。每一个管理信息是树中的一个节点,每个节点的标志包括:一个整数和一个字符串描述。对于每一个节点,从树根到该节点都有一条唯一路径,这条路径上的每一个节点都对应到一个整数。这样,从树的根部开始,每一个节点都唯一对应到一组整数,这一组整数就是该节点的对象标识符(Object Identifier)OID。这样的一棵树成为管理信息树MIT或MIB树。

在SNMP中,所有的管理对象都是MIB树的叶子节点。这样,每一个管理对象都拥有一个唯一的OID,在SNMP的报文中就通过这个OID标志该管理对象,使得发送方和接收方都能够理解,而且不会产生歧义。

在对象的定义中,{xxx n}就指明了该对象的OID,其中xxx为它在MIT中的父亲节点,n 为一个整数。注意,该整数在它的兄弟节点中不能重复,以保证惟一性。由父亲节点的OID 加上这个整数,就构成了该节点的OID。OID的显示格式为:依次排列各个整数,各个数字之间用句点隔开。

ASN.1的MIT是唯一的,所有采用ASN.1作为表示层协议的应用层协议都拥有这棵树的一部分。例如:Q3和SNMP中定义的管理对象都能够在这棵树中找到自己的位置而不重复。下图是MIT的一部分:

SysOREntry ::= SEQUENCE {

sysORIndex INTEGER,

sysORID OBJECT IDENTIFIER,

sysORDescr DisplayString,

sysORUpTime TimeStamp

}

sysORIndex OBJECT-TYPE

SYNTAX INTEGER (1..2147483647)

MAX-ACCESS not-accessible

STATUS current

DESCRIPTION "……"

::= { sysOREntry 1 }

sysORID OBJECT-TYPE

SYNTAX OBJECT IDENTIFIER

MAX-ACCESS read-only

STATUS current

DESCRIPTION "……"

::= { sysOREntry 2 }

sysORDescr OBJECT-TYPE

SYNTAX DisplayString

MAX-ACCESS read-only

STATUS current

DESCRIPTION "……"

::= { sysOREntry 3 }

sysORUpTime OBJECT-TYPE

SYNTAX TimeStamp

MAX-ACCESS read-only

STATUS current

DESCRIPTION "……"

::= { sysOREntry 4 }

在上例中,定义了四个简单对象sysORIndex,sysORID,sysORDescr,sysORUpTime,我们称之为列对象。此外,定义了一个类型为SEQUENCE的对象sysOREntry,它包含了以上四个列对象,我们称之为行对象;定义了一个类型为SEQUENCE OF SysOREntry的对象sysORTable,我们称之为表对象。

为了便于理解,我们将以上的定义用c语言重新写一遍(不是完全的一一对应,只是大致在概念上类似):

其中,sysOREntry大概相当于结构数组中的一个数组元素。注意到,行对象和表对象的访问权限都是not-accessible,它们对于manager是不可见的。对于manager来说,能够访问的只是一个一个的列对象。

每个表对象都有索引对象,用来区分表中不同的行。索引在行对象的定义中用index子句声明。在上例中,索引对象为sysORIndex。索引对象可以是一个,也可以是多个。

3.7对象和对象实例的区别

由于表对象的出现,使得一个列对象的OID可能对应到实际的多份管理信息,产生了歧义。为了解决这个问题,引入了对象实例的概念。

一个对象实例是对象的具体化。一个列对象可能拥有多个对象实例。例如,在上面的例子中,假设sysORTable中有5行,则列对象sysORUpTime相应的有5个对象实例。以c语言来说明,如果在c语言中定义了一个数组:int a[5],则对象和对象实例的区分有些类似于a和a[0]的区别。

对于一个标量对象,只拥有一个实例,这种情况下对象和对象实例是一一对应的。

实际上,对于manager来说,所能够访问的只是对象实例,这种情况下,对象实例也要有自己的OID。列对象的对象实例的OID是对象的OID加上它的索引对象的值。在上例中,sysORUpTime的OID为 1.3.6.1.2.1.1.9.1.1.4,简记为xxx,表中有5行,每行的索引对象sysORIndex的值分别为1,2,3,4,5,则sysORUpTime拥有5个实例,其OID分别为:xxx.1, xxx.2, xxx.3, xxx.4, xxx.5。对于标量对象,其对象实例的OID为对象的OID加上0,如yyy.0的形式。

3.8OID的字典序

OID可以排序,称之为字典序。我们用一个例子就可以简单的说明排序的原则:

1.3.6 < 1.3.6.0 < 1.3.6.2 < 1.3.7

实际上,所谓mib就是所有对象实例的集合。把这些对象实例按照oid的字典序排序,整个mib就构成了一个大的一维表格。因此,manager可以根据字典序对mib进行串行访问。

4协议数据单元(PDU--Protocol Data Unit)

4.1SNMP报文格式

一个SNMP报文由一个版本标识符(version identifier),一个SNMP共同体标识符(community name)和一个数据字段(PDU)组成。

版本标识符(version identifier)------此版本字段指明所用的SNMP版本。SNMPv1的版本号总取值为0,SNMPv2取值为1。

?共同体标识符(community name)------每一个SNMP通信组,都拥有一个八进制串形式的无二义的共同体名(community name),它与每一条消息一起传输。在SNMPv1里,网管站与代理之间的通信关系被定义为相同共同体之间的关系,代理仅仅执行属于同一共同体的网管站的全部管理操作。管理操作在本代理所实现的全部对象级上发挥作用,并且直接由分配给每一共同体的共同体概要(community profile)加以过滤。在SNMPv2c中,提供共同体名用来区分不同的管理集合,把与一个任务相关的所有对象用共同体名加以标识,表示它们是同一个组的。在消息的发送和接收时都带有这个字段,用于接收方和发送方辨别报文的权限。这样可以避免与管理任务无关的SNMP协议实体冒充管理者对代理发送假的命令。

?数据字段(PDU)------SNMP消息在数据字段中进行编码。

4.2SNMP报文类型

在SNMPv1中,定义了5种协议的操作,它们在RFC1157中有具体的描述。这些消息分别是:

?GetRequest------使网管站能请求从代理的MIB中读取一个指明的变量。

?GetNextRequest------使网管站能够从某个MIB中获取几个相邻的变量。

?GetResponse------代理对一个读取操作的回答。在SNMPv2中,它被重定义为Response。

?SetRequest------网管站对一个设备中代理维护的参数进行远程配置,使代理MIB里的一个变量的值能够被改变,例如,可以设置设备的名字、关掉一个端口或清除一个地址解析表中的项,代理从应答(GetResponse)命令也可获得此命令的执行结果。

?Trap------是SNMP代理发送给管理站的请求信息,通知管理站发生了一个特定的事件(报警等)。在SNMPv2中,它被重定义为SNMPv2-Trap。

在SNMPv2中,又加入了两个新的操作,具体的操作可参考RFC1905。新加入的这两个操作分别是:

?GetBulkRequest------它是对GetNextRequest的推广。它可以对大量的数据尤其是表格进行更为有效的读取。GetNextRequest一次只能读取一个MIB变量,而GetBulkRequest一次可以读出一个表格所维护的所有MIB变量。与GetNextRequest相比,GetBulkRequest操作中通过网络发送的包更少,基本重复操作仅局限于代理中。

?InformRequest------在SNMPv2中,抛弃了代理(服务器)和网络管理者(客户)的严格划分,利用管理者—管理者通信模型,通过为对象变量的值规定上限和下限,可以在管理者/代理上设置告警(alarms)。如果阈值被突破,则高层管理站会通过InformRequest得知这一事件。InformRequest总是被接受者以Response加以确认。

SNMPv1的设备仅能完成管理者的功能或代理功能,而在SNMPv2中提出的管理者-管理者模型,使网管站可以同时起到代理或管理者的作用。双代理指管理站可以向其他管理站提供信息,即通过代理功能唤醒的服务要传递给更高层的代理,而这些代理将该高层代理当作它们的网管站。下表列出了管理者和代理各自所能涉及的功能。

管理站和代理处理的报文

value

●PDU类型。

●请求标识符(Request-ID):它是一个32位的整数。在一个Response-PDU中的

Request-ID值取它所回应的那个请求PDU的Request-ID值。生成Request-ID仅用于监视未完成的报文,这样一个SNMPv2应用就能够区分不同的请求报文,使接收的请求报文与相应的应答报文相匹配。当使用不可靠的数据报服务时,报文可能会丢失或重复,Request-ID值提供了确认网络中重复的消息的一个方法,根据ID号可以很容易的

检测出重复报文。在重传的请求报文中,SNMPv2报文应使用不同的Request-ID值。

错误状态(Error Status)和错误索引(Error Index):在一个响应报文Response-PDU 中,非零的错误状态(Error Status)值表示发生了额外的事件使得不能完成请求的操作。这时,错误索引(Error Index)的非零值表示了引起这个额外事件的变量绑定表中的那个变量绑定的信息。一个变量绑定由它的索引值确定,变量绑定表中的第一个变量绑定序号为1,变量绑定表中的第二个变量绑定序号为2,以此类推。在

变量绑定表:变量绑定表中包含许多个变量绑定{name,value},代表操作的变量。

4.4SNMP消息的生成

1.

2.

3.

SNMP 消息的接收、处理过程如下图所示:

问授权处理PDU。

6.生成响应PDU.

7.构造响应SNMP消息。

8.编码SNMP消息。

发送SNMP消息。

5SNMP协议操作

5.1GetRequest

GetRequest命令使得网管系统(客户)能够在一个SNMP代理(服务器)的MIB里获取一个指定的变量。对象标识符在这类报文中作为参量进行发送。

?

?

?

?

1)如果变量绑定的名字与接收到的请求报文要求的名字相同,则变量绑定的值设置为找到的变量(named variable)的值。

2)如果变量绑定的名字的对象标识符前缀与接收到的请求报文的对象标识符前缀不同,则它返回的值为“noSuchObject”。

3)否则,变量绑定的值设为“noSuchInstance”。

如果不是以上的原因使检查变量绑定的过程失败,则对Response-PDU重新格式化,它的Request ID和Variable Bindings域与接收到的GetRequest-PDU报文有相同的值,只是它的error status值设为“genErr”, error index值设置为引起失败的变量绑定的索引值。

否则,Response-PDU的error status值设为“noError”, error index值设为0。

生成的响应报文Response-PDU将被封装成一个报文发送出去。如果这个报文的大小不超过本地对报文大小的限制,而且也不超过请求源的最大报文长度的大小,它就被发送到生成GetRequest-PDU的发起者那里。

反之,则生成一个更改过的Response-PDU,它的Request ID和Variable Bindings域与接

收到的GetRequest-PDU报文有相同的值,只是它的error status值设为“tooBig”, error index 值设为0,而且清空变量绑定域。这个更改过的响应报文Response-PDU被封装成一个报文。如果这个报文的大小不超过本地对报文大小的限制,而且也不超过请求源的最大报文长度的大小,它就被发送到生成GetRequest-PDU的发起者那里,否则计数器snmpSilentDrops的值加1,并且丢弃该报文。

5.1.3SNMPv1对GetRequest-PDU的处理(参考RFC1157)

SNMPv1的GetRequest-PDU格式与SNMPv2相同,SNMPv1协议实体在接收到GetRequest-PDU报文时,对变量绑定表中的每个变量绑定进行处理,生成一个Response-PDU。Response-PDU除了对以下几种情况的一些域的值有所不同外,其他域与接收到的GetRequest-PDU报文有相同的值。对每个变量绑定的处理如下:

1)如果变量绑定域的命名的对象名不与MIB视中得到的变量名完全匹配,则接收实体向发起请求方送出与GetRequest有相同格式的GetResponse-PDU,它的error-status为“noSuchName”,error-index为接收到的报文的对象名成分的索引(index)。

2)如果变量绑定表中的对象是一个集合类型,则接收实体向发起请求方送出与GetRequest有相同格式的GetResponse-PDU,它的error-status为“noSuchName”,error-index为接收到的报文的对象名成分的索引(index)。

3)如果生成的GetResponse-PDU报文长度超过逻辑上的限制,则接收实体向发起请求方送出与GetRequest有相同格式的GetResponse-PDU,它的error-status为“tooBig”,error-index 为0。

4)对变量绑定表中的任何对象来说,若返回的对象值不能由以上各规则进行重传,则接收实体向发起请求方送出与GetRequest有相同格式的GetResponse-PDU,它的error-status为“genErr”,error-index为接收到的报文的对象名成分的索引(index)。

如果以上规则都不满足应用,则接收实体向发起请求方送出GetResponse-PDU,对接收到的消息的变量绑定的每个对象相应的GetResponse-PDU代表了变量的名称和值,它的error-status为“noErr”,error-index为0, GetResponse-PDU的request-id值为接收到消息的request-id值。

5.2GetNextRequest—PDU

该命令使得网管系统(客户机)能够查询MIB树型结构中下一个对象的值。在这种PDU 中,以上次已知的对象标识符而不是所需对象标识符的值作为参量进行发送。它特别适合于遍历各个表或快速地查询连续对象。对不了解的对象,也可以针对其前一个对象发出GetNextRequest来得到它。

作为对GetNextRequest的响应,客户方总是接收一个Response—PDU类型的报文。GetNextRequest—PDU的类型代码规定为1。除PDU类型代码外,GetNextRequest报文还包括另外四个字段,见报文格式。

5.2.1GetNextRequest报文格式

?

?

?

?

1

2

反之,则生成一个更改过的Response-PDU,它的Request ID和Variable Bindings域与接收到的GetNextRequest-PDU报文有相同的值,只是它的error status值设为“tooBig”, error index值设为0,而且清空变量绑定域。这个更改过的响应报文Response-PDU被封装成一个报文。如果这个报文的大小不超过本地对报文大小的限制,而且也不超过请求源能接收的最大报文长度,它就被发送到生成GetNextRequest-PDU的发起者那里,否则计数器snmpSilentDrops 的值加1,并丢弃该报文。

5.2.3SNMPv1对GeNextRequest-PDU的处理(参考RFC1157)

SNMPv1的GetNextRequest-PDU格式与SNMPv2相同,接收的SNMPv2实体对变量绑定表中的每个变量绑定进行处理,生成一个Response-PDU。Response-PDU除了以下几种情况的一些域值有所不同外,其他域与接收到的GeNextRequest-PDU有相同的值。每个变量绑定的处理如下:

1)变量绑定域的对象名不是字典顺序上领先于从相关MIB视中得到的Get操作变量名,则接收实体向发起请求方送出与GetNextRequest有相同格式的GetResponse-PDU,它的error-status为“noSuchName”,error-index为接收到的报文的对象名成分的索引(index)。

2

3

?

测出重复报文。

?错误状态(error status)------有如下值:

1)tooBig(太大)------代理程序无法在一个SNMP报文中容纳所需数据。

2)noSuchName(无此名)------在对SNMP请求进行译码时,代理发现有未知变量名而不能进行处理。这并不意味着该名字在代理中不存在,而只是说明按预先设置的共同

体概要(Community Profile)不能识别该名字。

3)badValue(坏值)------在译码时,代理发现了不正确的句法或不正确的值,因而无法

SNMP(简单网络管理协议)

SNMP(Simple Network Management Protocol,简单网络管理协议) 通信线路进行管理。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。说白了就是一网管系统。网络管理功能一般分为性能管理,配置管理,安全管理,计费管理和故障管理等五大管理功能。 Windows NT是纯32位操作系统,采用先进的NT核心技术。Windows NT Workstation的设计目标是工作站操作系统,适用于交互式桌面环境;Windows NT Server的设计目标是企业级的网络操作系统,提供容易管理、反应迅速的网络环境。两者在系统结构上完全一样,只是为适应不同应用环境在运行效率上做相应调整。 另一个可以采用的保护措施是在网络边界上过滤SNMP通信和请求,即在防火墙或边界路由器上,阻塞SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。禁用这些端口通信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上,应该编写一个ACL,只允许某个特定的可信任的SNMP管理系统操作SNMP 1.按应用层次划分为入门级服务器、工作组级服务器、部门级服务器和企业级服务器四类。 (1)入门级服务器 (2)工作组级服务器 (3)部门级服务器 (4)企业级服务器 2.按服务器的处理器架构(也就是服务器CPU所采用的指令系统)划分把服务器分为CISC(复杂指令集)架构服务器、RISC架(精简指令集)构服务器和VLIW架构服务器三种。 (1)CISC架构服务器 (2)RISC架构服务器 (3)VLIW架构服务器 3.按服务器按用途划分为通用型服务器和专用型服务器两类。 (1)通用型服务器 (2)专用型服务器 4.按服务器的机箱结构来划分,可以把服务器划分为“台式服务器”、“机架式服务器”、“机柜式服务器”和“刀片式服务器”四类。 (1)台式服务器 (2)机架式服务器 (3)机柜式服务器 (4)刀片式服务器 入门级服务器通常只使用一到两颗CPU,主要是针对基于Windows NT,NetWare等网络操作系统的用户,可以满足办公室型的中小型网络用户的文件共享、打印服务、数据处理、Internet接入及简单数据库应用的需求,也可以在小范围内完成诸如E-mail、Proxy 、DNS等服务。

网络管理与维护实验1-Windows环境下简单网络管理协议的安装与配置

一. 实验目的 1. 掌握Windows系统中SNMP服务的安装以及SNMP服务属性配置。 2. 掌握如何使用Snmputil命令查看代理的MIB对象,熟悉MIB结构,掌握SNMP操作; 3. 理解GetRequest、GetNextRequest、trap消息,以及团体名的作用。 二. 实验所需设备及材料 安装Windows操作系统的计算机1台。 三. 实验内容及要求 1. 参考实验指导书P251页5. 2.2节实验,完成Windows操作系统中SNMP服务的安装和SNMP服务属性的配置,其中只读团体名设置为自己的八位学号,联系人设置为自己的姓名拼音全称。 2. 参考实验指导书P256页5.2.4节实验,练习使用Snmputil工具查看代理的MIB对象(实例),熟悉Get、GetNext、Walk命令操作。 完成以下内容: ⑴管理站发送Get、GetNext请求访问“系统组”,当代理正常返回的对象实例和值时,截图,并逐条给予解释。例如先解释sysObjectID对象的语义,然后根据返回的值说明是哪一厂商。 ⑵访问“IP组”的ipAddTable,截图,并根据返回的信息,绘制出本机的ipAddTable表,并填写所有列对象实例的值。用箭头标示该表的索引列。 ⑶访问“IP组”的ipNetToMediaTable,在返回的多个接口信息中,选取某一个接口,写出其ARP表,并用arp 命令验证,截取arp命令回显内容。 ⑷使用netstat命令查看TCP连接,找到有本机IP地址的n条TCP连接(n>=4),截图,注意这n条TCP连接必须是连续出现的。针对你选择的n条TCP连接,思考如何使用Snmputil的get和getnext命令,查询“TCP 组”的TCP连接表的tcpConnState、tcpConnLocalPort两个列对象实例的值,截图。并参照理论教材P50图3.19的形式画出TCP连接表的对象及其实例的子树(每个列对象只画出你选择的n个实例)。 ⑸查询本机接口的个数,并利用某个命令查询所有接口的速率,截图。 ⑹本机是否可以作为IP网关?为什么?请结合访问相关对象的截图来说明。 ⑺访问系统当前的系统安装列表,截图(若内容太多,后半部分可以适当省略)。 ⑻产生一个trap,截图,并说明显示的trap信息中generic当前取值的含义。 四.实验过程

snmp协议的分析

竭诚为您提供优质文档/双击可除 snmp协议的分析 篇一:实验三snmp协议分析 实验三snmp协议分析 一、实验目的 (1)掌握嗅探工具ethereal协议分析软件的使用方法(2)利用ethereal软件工具截snmp数据包并完成报文分析 二、实验环境 局域网,windowsserver20xx,snmputil,ethereal,superscan 三、实验步骤(0、snmp的安装配置) 1、理解应用层snmp协议工作原理; 2、使用windows平台上的snmputil.exe程序实现snmp 交互; 3、利用协议分析和抓包工具ethereal抓取分析snmp 协议报文。 四、实验内容 内容一:

1.打开ethereal软件开始抓包, 输入命令: snmputilget[目标主机ip地址]团体 名.1.3.6.1.2.1.1.2.0停止抓包。对snmp包进行过滤。(给出抓包结果截图) 2.找出一对snmp协议请求包和相对应的应答包。给出抓包结果截图。 3.对上面这对请求和应答包进行分析,根据snmp协议数据包格式填值。 请求包报文分析 应答包报文分析 内容二: 1.通过snmptuil.exe与snmp交互: 输入snmputilwalk[目标主机ip地址]团体 名.1.3.6.1.2.1.1命令列出目标主机的系统信息。 2.打开ethereal软件开始抓包,再次输入上面命令后,停止抓包。对snmp包进行过滤。给出抓包结果截图。 3.找出一对snmp协议请求包和相对应的应答包。给出抓包结果截图。 4.对上面这对请求和应答包进行分析,根据snmp协议数据包格式填值。 请求包报文分析

实验二 SNMP协议工作原理验证与分析

实验二SNMP协议工作原理验证与分析 一、实验目的 本实验的主要目的是学习捕获SNMP报文,通过分析该报文理解SNMP协议的工作过程、SNMP的报文结构、MIB-2树的结构、理解管理信息结构SMI及其规定的ASN.1。 二、实验内容 1、分析并验证SNMP协议的工作过程; 2、分析并验证SNMP协议数据单元的格式; 3、分析MIB-2树的结构; 4、分析理解管理信息结构SMI及其规定的ASN.1。 三、实验工具 数据包捕获软件Iris或Wireshark、MIB浏览器AdventNet、或基于UNIX、LINUX/FreeBSD平台的SNMP命令行工具、MIB文件。 四、实验步骤 1、分别打开软件Iris和MIB浏览器; 2、首先设置Iris中捕获报文的过滤条件,将其设置为只捕获管理站和代理之间的SNMP报文。用鼠标单击左侧“Filters”控件,在打开的对话框中分别设置Layer2,3和IP address项。其中,Layer2,3选中DoD IP 和SNMP;IP address加入代理主机和管理站主机的IP地址。“确定”保存该设置;

3、点击Iris中工具栏的start capture,开始捕获SNMP报文; 4、用MIB浏览器MibBrowser访问MIB被管对象,然后观察Iris中右侧内容面板中显示的信息。单击任一信息,右下侧将显示详细的报文数据; 5、用鼠标单击右下侧的报文数据,在右侧会有相关的解析与之对应。 五、实验报告 1、设置iris过滤器,使其只监测管理工作站和代理之间的通信。获取ip 组的ipForwarding对象值,写出管理工作站和代理之间的SNMP通信情况,验证SNMP协议的工作过程。 (1)获取ip组的ipForwarding对象值

简单网络管理协议工具

第六章简单网络管理协议工具 本章重点仍是一些网络工具,它们可用于管理系统及其它的网络设备,例如交换器、路由器、集线器和其它支持SNMP的设备等。这部分介绍的网络工具很有用,对于你已经掌握的软件来说,是一个很好的补充。 本章中介绍的工具有: ·UCD的SNMP命令 ·Snmpconf命令 总的来看,这些工具提供了监控和管理的功能,它们可用于以下方面: ·确定SNMP 的系统节奏(system heartbeat) ·确定系统开/关消息 ·获得协议统计信息 ·获得接口性能数据 ·监控系统进程活动性 ·监控路由 ·配置网络设备 6.1 监控/管理功能 1. 系统节奏 系统节奏(system heartbeat)是一条SNMP的get-request请求,管理员使用该请求来确定管理代理和系统的一般可连接性。举例说明,网络管理员可以查询管理代理的系统时钟MIB变量,可以确定每次连续的查询都比前一次查询晚一些。各次连续查询应该表明时间在向前移动。可用于这方面的MIB变量是数据对象unitTime ,它是Sun系统管理代理的sunSystem组的一部分。此外,MIB-II的system组中的数据对象sysUpTime也可用于这个方面,所有的SNMP管理代理应该都可以使用这个数据对象。 2. 系统开/关消息 如果一个系统因某种原因被关闭或重启,此时系统应该以trap形式向指定的网络管理系统发送一条报文。我们说过,trap是一种由管理代理主动发送的报文,它表明某些特定条件或事件。例如,接收这些报文后,管理员得知发生系统中断,于是采取适当的操作。UCD 管理代理的配置文件和其它工具可用于向一个或多个网络管理系统续传trap报文。 3. 协议统计信息 因为许多SNMP管理代理支持MIB-II标准,所以有可能实现协议性能监控和系统监控。这包括IP、ICMP、TCP、SNMP协议,网络接口计数器,及一些Sun系统性能数据对象。 4. 系统进程活动性 Sun MIB扩展和UCD管理代理的应用,使得实现系统进程的监控成为可能。通过监控 143

snmp报文分析

SNMP报文格式分析 报文格式 snmp简介 snmp工作原理 SNMP采用特殊的客户机/服务器模式,即代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。 管理站和代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。 管理站向代理请求MIB中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB定义的格式,最后将该信息返回给管理站,完成一次管理操作。 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组合起来查询特定的表对象中的列元素。 2.Set-Request SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。 3.Trap SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。

上面五种消息中Get-Request、Get-Next-Request和Set-Request是由管理站发送到代理侧的161端口的;后面两种Get-Response和Trap 是由代理进程发给管理进程的,其中Trap消息被发送到管理进程的162端口,所有数据都是走UDP封装。 snmp报文格式图 SNMP报文的形式大致如下图所示。 snmp报文编码格式 SNMP(简单网络管理协议)是目前在计算机网络中用得最广泛的网络管理协议,它使用(Abstract Syntax Notation One抽象语法表示法.1)来定义SNMP报文格式和MIB(Management Information Base管理信息库)变量的名称。 是一种描述数据和数据特征的正式语言,它和数据的存储及编码无关。根据标准定义,数据类型分为: a.简单数据类型: boolean布尔值

简单网络管理协议(SNMP)学习理解

简单网络管理协议学习理解 1.SNMP网络管理协议综述 SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准,它是由SGMP即简单网关监控协议发展以来的。它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制,提供最基本的功能集。最适合小型、快速、低价格的环境使用。它只要求无证实的传输层协议UDP,受到许多产品的广泛支持。 2.1 管理信息 经由SNMP协议传输的所有管理倍息都表现为非聚集的对象类型。这些对象类型被收集到一个或多个管理信息库[MIB]中并且对象类型按照管理信息结构和标识(SMI)定义。简单网络管理协议策l版的sM[于1990年5月定义在一篇题为《基于因特网的了TCP/IP管理信息结构和标识》的RFC中。这一RFC要求所有的管理信息库数据和信息必须根据ISO 8824标准《抽象句法表示法1规范》(ASN.1)编码。按照ASN.1表示所有信息和对象的目的在于方便向OSI的网络管理协议迁移而无需重新定义现已存在的所有对象和MIB。 SMI为每一对象类型定义以下成分: ①名字; ②句法; ②编码说明。 注意:一个对象类型的名字明确地代表一个对象,称为对象标识符。不得分配标识符0给对象类型作为其名字的一部分。为便于阅读,在标准文档中对象标识符旁边包含对这一对象的描述。对象标识符是按照在OSI MIB树中建立的严格分层空间构造的,对象标识符总是一个唯一的从树根开始描述MIB树的整数序列。对象标识符和它的文字描述的组合称为标号。 2.1.1 管理树 SMI明确要求所有被管理的信息和数据都要由管理树来标识。这棵管理树来源于

简单网络管理协议(SNMP)入门

简单网络管理协议(SNMP)入门 简单网络管理协议(SNMP)在体系结构分为被管理的设备(Managed Device)、SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三个部分。被管理的设备是网络中的一个节点,有时被称为网络单元(Network Elements),被管理的设备可以是路由器、网管服务器、交换机、网桥、集线器等。每一个支持SNMP的网络设备中都运行着一个SNMP代理,它负责随时收集和存储管理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询或修改代理所记录的信息。 SNMP代理是驻留在被管理设备上的网络管理软件模块,它收集本地计算机的管理信息并将这些信息翻译成兼容SNMP协议的形式。 SNMP管理器通过网络管理软件来进行管理工作。网络管理软件的主要功能之一,就是协助网络管理员完成管理整个网络的工作。网络管理软件要求SNMP 代理定期收集重要的设备信息,收集到的信息将用于确定独立的网络设备、部分网络或整个网络运行的状态是否正常。SNMP管理器定期查询SNMP代理收集到的有关设备运转状态、配置及性能等的信息。 SNMP使用面向自陷的轮询方法(Trap-directed polling)进行网络设备管理。一般情况下,网络管理工作站通过轮询被管理设备中的代理进行信息收集,在控制台上用数字或图形的表示方式显示这些信息,提供对网络设备工作状态和网络通信量的分析和管理功能。当被管理设备出现异常状态时,管理代理通过SNMP自陷立即向网络管理工作站发送出错通知。当一个网络设备产生了一个自陷时,网络管理员可以使用网络管理工作站来查询该设备状态,以获得更多的信息。 管理信息数据库(MIB)是由 SNMP代理维护的一个信息存储库,是一个具有分层特性的信息的集合,它可以被网络管理系统控制。MIB定义了各种数据对象,网络管理员可以通过直接控制这些数据对象去控制、配置或监控网络设备。SNMP

snmp报文分析

SNMP报文格式分析 1.SNMP报文格式 1.1 snmp简介 1.1.1 snmp工作原理 SNMP采用特殊的客户机/服务器模式,即代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。 管理站和代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。 管理站向代理请求MIB中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB定义的格式,最后将该信息返回给管理站,完成一次管理操作。 1.1.2 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组合起来查询特定的表对象中的列元素。 2.Set-Request SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。 3.Trap SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。 上面五种消息中Get-Request、Get-Next-Request和Set-Request是由管理站发送到代理侧的161端口的;后面两种Get-Response和Trap 是由代理进程发给管理进程的,其中Trap消息被发送到管理进程的162端口,所有数据都是走UDP封装。 1.1.3 snmp报文格式图 SNMP报文的形式大致如下图所示。

简单网络管理协议SNMP

SNMP 1概述 (1) 2SNMP的工作原理 (1) 2.1网络管理模型 (1) 2.2网络管理协议结构 (2) 2.3网络管理服务 (3) 2.4委托代理 (4) 3管理信息结构SMI (4) 3.1ASN.1 (4) 3.2文本约定 (5) 3.3对象定义 (6) 3.4T RAP定义 (6) 3.5对象标志符 (7) 3.6表对象的定义 (8) 3.7对象和对象实例的区别 (10) 3.8OID的字典序 (10) 4协议数据单元(PDU--PROTOCOL DATA UNIT) (10) 4.1SNMP报文格式 (10) 4.2SNMP报文类型 (11) 4.3SNMP V2基本的PDU格式 (12) 4.4SNMP消息的生成 (13) 4.5SNMP消息的接受和处理 (13) 5SNMP协议操作 (15) 5.1G ET R EQUES T (15) 5.1.1GetRequest—PDU报文格式 (15) 5.1.2SNMPv2对GetRequest-PDU的处理(参考RFC1905) (15) 5.1.3SNMPv1对GetRequest-PDU的处理(参考RFC1157) (16) 5.2G ET N EXT R EQUEST—PDU (16) 5.2.1GetNextRequest报文格式 (17) 5.2.2SNMPv2对GeNextRequest-PDU的处理(参考RFC1905) (17)

5.2.3SNMPv1对GeNextRequest-PDU的处理(参考RFC1157) (18) 5.3R ESPONSE-PDU (18) 5.3.1Response报文格式 (18) 5.3.2SNMPv2对Response-PDU的处理(参考RFC1905) (20) 5.3.3SNMPv1对响应报文GetResponse的处理(参考RFC1157) (20) 5.4S ET R EQUES T-PDU (20) 5.4.1SetRequest报文格式 (20) 5.4.2SNMPv2实体对SetRequest报文的处理(参考RFC1905) (21) 5.4.3SNMPv1对SetRequest报文的处理(参考RFC1157) (22) 5.5G ET B ULK R EQUES T-PDU (23) 5.5.1GetBulkRequest-PDU报文格式 (23) 5.5.2SNMPv2对GetBulkRequest-PDU报文的处理(参考RFC1905) (24) 5.6I NFORM R EQUES T-PDU (25) 5.6.1InformRequest-PDU的格式 (25) 5.6.2SNMPv2对InformRequest-PDU的处理(参考RFC1905) (26) 5.7T RAP-PDU (26) 5.7.1SNMPv1的Trap (26) 5.7.2SNMPv2的SNMPv2-Trap-PDU (28) 6SNMP的安全控制 (29) 6.1SNMP V2-基于共同体的管理框架 (29) 6.2SNMP V3的安全策略 (30)

网络管理实验SNMP报文解析实验报告

网络管理实验————SNMP报文解析 2010-6-1 4.trap操作: Sniffer软件截获到的trap报文如下图所示:

30 2e SNMP报文是ASN.1的SEQUENCE 类型,报文长度是46个八位组。 02 01 00:版本号为integer类型,取值为0,表示snmpv1。 04 06 70 75 62 6c 69 63:团体名为octet string类型,值为“public” a4 21: 表示pdu类型为trap,长度为33个八位组。 06 0c 2b 06 01 04 01 82 37 01 01 03 01 02:制造商标识,类型为object identifier。 值为1.3.6.1.4.1.311.1.1.3.1.2。 40 04 c0 a8 01 3b:代理的IP地址,类型OCTECT STRING,值为192.168.1.59; 02 01 04:一般陷阱,类型为INTEGER,值为4,代表这是由“authentication Failure (身份验证失败)”引发的TRAP; 02 01 00:特殊陷阱,类型为INTEGER,值为0(当一般陷阱取值不是6时); 43 03 06 63 29:时间戳,类型为TIME TICKS,值为418601 (百分之一秒),即系 统在运行到大约第70分钟时,代理发出了此TRAP; 30 00变量绑定表为空。 5.SNMPv2 GetBulk操作: Sniffer软件截获到的getbulkrequest报文如下图所示:

对该报文的分析如下 : 30 27 SNMP 报文是ASN.1的SEQUENCE 类型,报文长度为46个八位组;

网络管理与维护课内实验报告3-SNMP报文分析

一. 实验目的 1.掌握BER基本编码规则; 2. 利用各种网络管理工具,完成相关SNMP操作,分析并掌握SNMP PDU结构,理解SNMP协议的工作原理。 二. 实验所需设备及材料 1.局域网环境中的计算机2台(1台代理,1台管理站),2台计算机已启动SNMP服务,作为管理站的计算机安装SNMPc软件和snmputil工具; 2.在某一台计算机安装网络嗅探软件。 三. 实验内容 参考实验指导书P324页5.5.2节。如图5-111所示,首先将代理一方的只读团体名、读/写团体名、trap 团体名全部修改为你的8位学号(如何添加团体名,请参考第一次实验的内容)。然后完成以下实验: 1.完成get操作,抓取get 请求报文和其响应报文(注意两个报文“request-id”一致),截图(需要截取哪些信息?请参考P327图5-114),然后对应截图分别完成两个报文的BER编码分析。 2.完成getnext操作,抓取getnext请求报文和其响应报文(注意两个报文“request-id”一致),截图,然后对应截图完成两个报文的BER编码分析。 3.完成set操作,抓取set 请求报文和其响应报文(注意两个报文“request-id”一致),截图,然后对应截图完成两个报文的BER编码分析。 4.构造一个trap,抓取trap报文,截图,然后对应截图完成该报文的BER编码分析。 5.完成SNMPv2 GetBulk操作,抓取GetBulk请求报文和响应报文(注意两个报文“request-id”一致),截图,然后对应截图完成两个报文的BER编码分析。

四.实验过程 1. get操作分析 ●说明如何产生Get操作? 答:管理站检索管理对象的管理信息库中标量对象的值,就产生一个Get操作。 ●Get请求报文抓包截图与BER分析 30 36 ;报文是SEQUENCE类型,长度是54个8位组 02 01 00 ;SNMP版本号,类型为Integer,值为版本号-1 04 08 30 34 31 33 32 30 32 31 ;团体名,类型为OETCTString值为”04132021” A0 27 ;A0表示为GET操作,其后PDU长39个8位组 02 01 01 ;request-id,类型为Integer,值为1 02 01 00 ;错误状态,类型为Integer,值为0 02 01 00 ;错误索引,类型为Integer,值为0 30 1C ;变量绑定表,类型为SEQUENCEOF,长度为28 30 0C ;第一个变量绑定,类型为SEQUENCE,长度为12 06 08 2B 06 01 02 01 01 03 00 ;变量为OID类型,值为.1.3.6.1.2.1.1.3.0 05 00 ;变量值为NULL 30 0C ;第二个变量绑定,类型为SEQUENCE,长度为12 06 08 2B 06 01 02 01 02 01 00 ;变量为OID类型,值为.1.3.6.1.2.1.2.1.0 05 00 ;变量值为NULL

SNMP协议全称为简单网络管理协议

SNMP协议全称为简单网络管理协议(Simple Network Management Protocol),该协议能够被广泛使用,不受协议的限制,如IP、IPX 、AppleTalk、OSI及其它传输协议均能使用。互联网络开始规模很小,网络结构简单,因此谈不上网络监控和管理问题。仅使用ICMP 的Ping 程序就能解决问题。但随着互联网络规模不断扩大,使用Ping 已无法掌握网络运行情况。此时,SNMP协议就产生了,它可通过提供有限的信息类型、简单的请求/响应机制来实现对被管理对象的操作。同时可将管理信息模型和被管理对象分成两个模块,两个模块间通过信令交互协同工作。目前SNMP协议已在TCP/IP 网络中广泛使用,并已成为网络管理领域事实标准。下面简单介绍下SNMP协议的基本概念、管理模型及版本号: 一SNMP协议基本概念 1 NMS NMS(Network Management System),是运行在网管端工作站上的网络管理软件。网络管理员通过操作NMS,向被管理设备发出请求,从而监控和配置网络设备。 2 Agent 运行在被管理设备上的代理进程。被管理设备在接收到网管设备侧NMS 发出的请求后,由Agent 作出响应操作。主要功能包括:收集设备状态信息、实现NMS 对设备的远程操作、向网管端发出告警消息。 3 MIB MIB 是一个虚拟的数据库,是在被管理设备端维护的设备状态信息集。Agent 通过查找MIB 来收集设备状态信息。MIB 按照层次式树形结构组织被管理对象,使用ASN.1格式进行描述。 4 ASN.1 抽象语法表示,使用独立于物理传输的方法定义协议标准中的数据类型。ASN.1 描述传输过程的中的语法,但不涉及具体数据含义的表示。 5 BER 基本编码规则,按照ASN.1 的语法结构,描述了在传送过程中数据内容是如何表示的。 6 SMI SMI(Structor of Management Information)为命名和定义管理对象指定了一套规则。所有管理对象都是按一种层次式树形结构排列。一个对象在这个树形结构中的位置,标识了如何访问这个对象。 7 Trap 告警信息。设备中的模块在达到告警的条件后触发告警,之后将告警消息通过SNMP发往网管端。 8 实体 可以被管理的软件或硬件。

SNMP协议详解

SNMP协议详解 简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering T ask 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)结构。

第三章 简单网络管理协议-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个方面:

SNMP报文分析

SNMP报文分析 一、配置SNMP协议的使用环境 1、主机Windows10的配置 ●安装SNMP协议 ●配置并打开SNMP Service服务

2、目标机Windows XP的配置 ●配置过程和Windows10下类似,此处不再赘述 ●目标机的ip地址为192.168.72.129

目标机的计算机名为 二、利用Wireshark抓取SNMP协议包 1、下载安装snmputil.exe和wireshack 2、利用snmputil工具发送snmp数据包 snmputil命令规则: [get|getnext|walk]为消息类型,我们此次进行的操作是get agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.10.191 community:分区域,即密码,默认是public oid:想要操作的MIB数据对象号

示例: snmputil walk 对方ip public .1.3.6.1.2.1.1.5.0列出计算机名snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表snmputil get 对方ip public .1.3.6.1.4.1.77.1.4.1.0 列出域名 snmputil walk 对方ip public .1.3.6.1.2.1.25.6.3.1.2 列出安装的软件snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息 3、同时在wireshack中抓包

snmp报文分析

SNMP报文格式分析 1、SNMP报文格式 1、1 snmp简介 1、1、1 snmp工作原理 SNMP采用特殊得客户机/服务器模式,即代理/管理站模型.对网络得管理与维护就是通过管理工作站与SNMP代理间得交互工作完成得。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息得各种查询. 管理站与代理端使用MIB进行接口统一,MIB定义了设备中得被管理对象。管理站与代理都实现相应得MIB对象,使得双方可以识别对方得数据,实现通信. 管理站向代理请求MIB中定义得数据,代理端识别后,将管理设备提供得相关状态或参数等数据转换成MIB定义得格式,最后将该信息返回给管理站,完成一次管理操作。 1、1、2 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组合起来查询特定得表对象中得列元素. 2。Set-Request SNMP管理站用Set-Request可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。 3.Trap SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件得发生,如接口UP/DOWN,IP地址更改等.

SNMP:简单网络管理协议(Simple Network Management Protocol)

SNMP:简单网络管理协议(Simple Network Management Protocol) SNMP 是专门设计用于在IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS 等)的一种标准协议,它是一种应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。 SNMP 管理的网络有三个主要组成部分:管理的设备、代理和网络管理系统。管理设备是一个网络节点,包含ANMP 代理并处在管理网络之中。被管理的设备用于收集并储存管理信息。通过SNMP,NMS 能得到这些信息。被管理设备,有时称为网络单元,可能指路由器、访问服务器,交换机和网桥、HUBS、主机或打印机。SNMP 代理是被管理设备上的一个网络管理软件模块。SNMP 代理拥有本地的相关管理信息,并将它们转换成与SNMP 兼容的格式。NMS 运行应用程序以实现监控被管理设备。此外,NMS 还为网络管理提供了大量的处理程序及必须的储存资源。任何受管理的网络至少需要一个或多个NMS。 目前,SNMP 有3种:SNMPV1、SNMPV2、SNMPV3。第1版和第2版没有太大差距,但SNMPV2 是增强版本,包含了其它协议操作。与前两种相比,SNMPV3 则包含更多安全和远程配置。为了解决不同SNMP 版本间的不兼容问题,RFC3584 种定义了三者共存策略。 SNMP 还包括一组由RMON、RMON2、MTB、MTB2、OCDS 及OCDS 定义的扩展协议。 协议结构 SNMP 是一种应用程序协议,封装在UDP 中。各种版本的SNMP 信息通用格式如下所示 Version:SNMP 版本号。管理器和代理器必须使用相同版本的SNMP。需要删除具有不同版本号的信息,并不对它们作进一步的处理。

SNMP协议分析

SNMP协议分析 摘要:当今由路由器、交换机、服务器组成的复杂的网络,确保所有的设备正常运行且处于最佳状态确实是一件困难的事情。为了解决这个问题在1988年正式推出了简单网络管理协议(SNMP)。利用SNMP只需一些“简单”的操作便可实现对网络设备的远程管理。但同时SNMP是威胁安全的十大首要因素之一。 目录: 1SNMP简介 (2) 1.1SNMP版本 (2) 1.2管理端和agent (2) 1.3SNMP 和UDP (2) 2管理对象 (3) 2.1SMI和MIB (3) 2.2OID命名 (3) 2.3管理信息结构 (4) 3SNMP 操作 (5) 4SNMP V3 (5) 4.1SNMPv3的变化 (6) 4.2SNMPv3引擎 (6) 4.3SNMPv3 应用程序 (6) 4.4SNMPv3 安全机制 (6) 5SNMP受到的安全威胁 (7) 5.1拒绝服务攻击DOS (7) 5.2流量分析攻击 (8) 5.3认证机制漏洞 (8)

1SNMP简介 SNMP可以用于管理很多类型的设备,其核心是帮助网络管理员简化对一些 支持SNMP设备设置的操作(也包括这些信息的收集)。例如,使用SNMP可以关闭路由器的一个端口,也可以查看以太网端口的工作速率。SNMP还可以监控交换机的温度,在出现过高现象进行报警。 1.1SNMP版本 IETF负责定义互联网流量监管的标准,这里面包括SNMP。IETF发行的RFCs,对IP领域中的众多协议进行了详细的阐述。下面列举了一些当前的SNMP版本。1)SNMP V1是SNMP协议的最初版本,不过依然是众多厂家实现SNMP基本方式。2)SNMP V2通常被指是基于community的SNMP V2。Community实质上就是密码。3)SNMPv3 是最新版本的SNMP。它对网络管理最大的贡献在于其安全性。增加了对认证和密文传输的支持。 1.2管理端和agent SNMP有2个主体:管理端和agent。 管理端指的是运行了可以执行网络管理任务软件的服务器,通常被称作为网络管理工作站(NMS),NMS负责采样网络中agent的信息,并接受agent的trap。 Agent是运行在可网络设备上的软件。可以是一个独立的程序(在Unix中叫守护进程),也可以是已经整合到操作系统中(比如:锐捷路由器的RGNOS,或者UPS中的底层操作系统)。 NMS和Agent工作示意图 1.3SNMP 和UDP SNMP采用UDP协议在管理端和agent之间传输信息。 SNMP采用UDP 161 端口接收和发送请求,162端口接收trap,执行SNMP的设备缺省都必须采用这些端口。

相关主题
文本预览
相关文档 最新文档