snmp协议数据单元和报文,snmp的报文

http://www.itjxue.com  2023-01-21 01:28  来源:未知  点击次数: 

SNMP有几种协议数据单元

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。 get-request操作:从代理进程处提取一个或多个参数值 get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值 set-request操作:设置代理进程的一个或多个参数值get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

协议数据单元(PDU)和最大传输单元(MTU)是什么意思?

协议数据单元PDU(Protocol Data Unit)是指对等层次之间传递的数据单位。 协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。

通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

snmp是什么协议?

SNMP 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。?

SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。通过 SNMP 接收随机消息(及事件报告)网络管理系统获知网络出现问题。

SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB,改进后的协议就是著名的SNMP。

SNMP具有以下技术优点:

基于TCP/IP互联网的标准协议,传输层协议一般采用UDP。

自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。

屏蔽不同设备的物理差异,实现对不同厂商产品的自动化管理。SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。

简单的请求—应答方式和主动通告方式相结合,并有超时和重传机制。

报文种类少,报文格式简单,方便解析,易于实现。

SNMPv3版本提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,增强了安全性。

简述SNMP协议实体发送报文的过程

(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 Community PDUVersion:SNMP 版本号。管理器和代理器必须使用相同版本的 SNMP。需要删除具有不同版本号的信息,并不对它们作进一步的处理。Community:团体名称,用于在访问代理器之前认证管理器。PDU(协议数据单元):SNMPv1、v2 和 v3 中的 PDU 类型和格式将在对应文件中作具体介绍。

SNMP(Simple Network manage Protocol)协议内容

SNMP(Simple Network Management Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP协议的应用范围非常广泛,诸多种类的网络设备、软件和系统中都有所采用,主要是因为SNMP协议有如下几个特点:

首先,相对于其它种类的网络管理体系或管理协议而言,SNMP易于实现。SNMP的管理协议、MIB及其它相关的体系框架能够在各种不同类型的设备上运行,包括低档的个人电脑到高档的大型主机、服务器、及路由器、交换器等网络设备。一个SNMP管理代理组件在运行时不需要很大的内存空间,因此也就不需要太强的计算能力。SNMP协议一般可以在目标系统中快速开发出来,所以它很容易在面市的新产品或升级的老产品中出现。尽管SNMP协议缺少其它网络管理协议的某些优点,但它设计简单、扩展灵活、易于使用,这些特点大大弥补了SNMP协议应用中的其他不足。

其次,SNMP协议是开放的免费产品。只有经过IETF的标准议程批准(IETF是IAB下设的一个组织),才可以改动SNMP协议;厂商们也可以私下改动SNMP协议,但这样作的结果很可能得不偿失,因为他们必须说服其他厂商和用户支持他们对SNMP协议的非标准改进,而这样做却有悖于他们的初衷。

第三,SNMP协议有很多详细的文档资料(例如RFC,以及其它的一些文章、说明书等),网络业界对这个协议也有着较深入的理解,这些都是SNMP协议近一步发展和改进的基础。

最后,SNMP协议可用于控制各种设备。比如说电话系统、环境控制设备,以及其它可接入网络且需要控制的设备等,这些非传统装备都可以使用SNMP协议。

正是由于有了上述这些特点,SNMP协议已经被认为是网络设备厂商、应用软件开发者及终端用户的首选管理协议。

SNMP是一种无连接协议,无连接的意思是它不支持象TELNET或FTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送信息。这种机制减轻了管理代理的负担,它不必要非得支持其它协议及基于连接模式的处理过程。因此,SNMP协议提供了一种独有的机制来处理可靠性和故障检测方面的问题。

另外,网络管理系统通常安装在一个比较大的网络环境中,其中包括大量的不同种类的网络和网络设备。因此,为划分管理职责,应该把整个网络分成若干个用户分区,可以把满足以下条件的网络设备归为同一个SNMP分区:它们可以提供用于实现分区所需要的安全性方面的分界线。SNMP协议支持这种基于分区名(community string)信息的安全模型,可以通过物理方式把它添加到选定的分区内的每个网络设备上。目前SNMP协议中基于分区的身份验证模型被认是为很不牢靠的,它存在一个严重的安全问题。主要原因是SNMP协议并不提供加密功能,也不保证在SNMP数据包交换过程中不能从网络中直接拷贝分区信息。只需使用一个数据包捕获工具就可把整个SNMP数据包解密,这样分区名就暴露无遗。因为这个原因,大多数站点禁止管理代理设备的设置操作。但这样做有一个副作用,这样一来只能监控数据对象的值而不能改动它们,限制了SNMP协议的可用性。

SNMP的命令和报文

SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Set 、Get 和 Trap :

Set:它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。

Get:它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。

Trap:它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。

SNMP协议也定义了执行以上三个命令时的报文流, 但它没有定义其它的设备管理代理命令,可应用于MIB数据对象的操作只有Set和Get命令,这两个命令的目标是数据对象的值。比如说,SNMP协议中没有定义reboot(重启)命令;然而,管理代理软件把MIB数据对象和设备的内部命令联系起来,这样就可以实现某些特殊的命令操作。如果现在想要重启某个设备,管理系统就把某个与重启有关的MIB数据对象的值设为1(我们的假定)。这样就会触发管理代理执行重新启动设备的命令,同时还把这个MIB数据对象重新设置为原来的状态。

一条SNMP报文由三个部分组成:版本域(version field),分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。

版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,version 1是使用最广泛的SNMP协议。

分区域:分区(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。分区名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。

协议数据单元域:SNMPv1的PDU有五种类型,有些是报文请求(Request),有些则是响应(Response)。它们包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了两种PDU:GetBulkRequest和InformRequest 。

SNMP管理员使用GetRequest从拥有SNMP代理的网络设备中检索信息,SNMP代理以GetResponse消息响应GetRequest。可以交换的信息很多,如系统的名字,系统自启动后正常运行的时间,系统中的网络接口数等等。GetRequest和GetNextRequest结合起来使用可以获得一个表中的对象。GetRequest取回一个特定对象;而使用GetNextRequest则是请求表中的下一个对象。使用SetRequest可以对一个设备中的参数进行远程配置。Set-Request可以设置设备的名字,关掉一个端口或清除一个地址解析表中的项。Trap即SNMP陷阱,是SNMP代理发送给管理站的非请求消息。这些消息告知管理站本设备发生了一个特定事件,如端口失败,掉电重起等,管理站可相应的作出处理。

MIB概述

管理信息数据库(MIB)是一个信息存储库,它包含了管理代理中的有关配置和性能的数据,有一个组织体系和公共结构,其中包含分属不同组的许多个数据对象。如下图所示。

MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。上图表示的是标准MIB的组织体系,列出了从MIB结构树的树根到各层树枝的全部内容。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。

使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。例如,在图中,iso(1)位于结构树的最上方,而sysDescr(1)处在叶子节点的位置。现在看不到树根root(.),其余所有的分枝都是从这里扩展而来的。通常用带点的符号来表示数据对象的标识符。要访问数据对象sysDescr(1),其完整的标识符应该是这样的:iso.org.dod.internet.mgmt.mib-2.system.sysDescr(这个标识符应该从左向右读)。数据对象也可以以另一种更短的格式表示,即用数字形式标识符代替分枝名形式的表示形式。这样,上面的那种形式的标识符iso.org.dod.internet.mgmt.mib-2.system.sysDescr 还可以用 1.3.6.1.2.1.1.1 来表示。这两种表达格式的作用是一致的,都表示同一个MIB数据对象。尽管数字形式的标识符看起来更简洁,选择何种表达格式仍然是个人偏好问题。幸运的是,许多MIB浏览器可以以两者中任何一种格式来表示数据对象,这使得两种格式间的相互转化非常容易。

MIB的访问方式

在定义MIB数据对象时,访问控制信息确定了可作用于该数据对象的操作种类。SNMP协议有如下的MIB数据对象访问方式:

只读方式(Read-only)

可读可写(Read-write)

禁止访问(Not-accessible)

网络管理系统无法改动只读方式的MIB数据对象,但可以通过Get或Trap命令读取数据对象的值。在一件产品的使用期内,某些MIB的信息从不会改变。例如,MIB数据对象sysDescr,它代表System Descrīption,包含了管理代理软件所需要的厂商信息。确定某些数据对象为只读还有另一个原因,即确保有关性能的信息及其它统计数据正确,不至于因误操作而改动它们。

SNMP作为数据传输方法,和数据的组织形式MIB结合,为网络管理系统提供了底层的保障。一个真正的网络管理系统可以建立在SNMP之上,也可以建立在其他的网络管理协议上,如CMIP等等,不过那也是需要另外撰文叙述的了。

SNMP(Simple Network Management Protocol)即简单网络管理协议,它为网络管理系统提供了底层网络管理的框架。SNMP协议的应用范围非常广泛,诸多种类的网络设备、软件和系统中都有所采用,主要是因为SNMP协议有如下几个特点:

首先,相对于其它种类的网络管理体系或管理协议而言,SNMP易于实现。SNMP的管理协议、MIB及其它相关的体系框架能够在各种不同类型的设备上运行,包括低档的个人电脑到高档的大型主机、服务器、及路由器、交换器等网络设备。一个SNMP管理代理组件在运行时不需要很大的内存空间,因此也就不需要太强的计算能力。SNMP协议一般可以在目标系统中快速开发出来,所以它很容易在面市的新产品或升级的老产品中出现。尽管SNMP协议缺少其它网络管理协议的某些优点,但它设计简单、扩展灵活、易于使用,这些特点大大弥补了SNMP协议应用中的其他不足。

其次,SNMP协议是开放的免费产品。只有经过IETF的标准议程批准(IETF是IAB下设的一个组织),才可以改动SNMP协议;厂商们也可以私下改动SNMP协议,但这样作的结果很可能得不偿失,因为他们必须说服其他厂商和用户支持他们对SNMP协议的非标准改进,而这样做却有悖于他们的初衷。

第三,SNMP协议有很多详细的文档资料(例如RFC,以及其它的一些文章、说明书等),网络业界对这个协议也有着较深入的理解,这些都是SNMP协议近一步发展和改进的基础。

最后,SNMP协议可用于控制各种设备。比如说电话系统、环境控制设备,以及其它可接入网络且需要控制的设备等,这些非传统装备都可以使用SNMP协议。

正是由于有了上述这些特点,SNMP协议已经被认为是网络设备厂商、应用软件开发者及终端用户的首选管理协议。

SNMP是一种无连接协议,无连接的意思是它不支持象TELNET或FTP这种专门的连接。通过使用请求报文和返回响应的方式,SNMP在管理代理和管理员之间传送信息。这种机制减轻了管理代理的负担,它不必要非得支持其它协议及基于连接模式的处理过程。因此,SNMP协议提供了一种独有的机制来处理可靠性和故障检测方面的问题。

另外,网络管理系统通常安装在一个比较大的网络环境中,其中包括大量的不同种类的网络和网络设备。因此,为划分管理职责,应该把整个网络分成若干个用户分区,可以把满足以下条件的网络设备归为同一个SNMP分区:它们可以提供用于实现分区所需要的安全性方面的分界线。SNMP协议支持这种基于分区名(community string)信息的安全模型,可以通过物理方式把它添加到选定的分区内的每个网络设备上。目前SNMP协议中基于分区的身份验证模型被认是为很不牢靠的,它存在一个严重的安全问题。主要原因是SNMP协议并不提供加密功能,也不保证在SNMP数据包交换过程中不能从网络中直接拷贝分区信息。只需使用一个数据包捕获工具就可把整个SNMP数据包解密,这样分区名就暴露无遗。因为这个原因,大多数站点禁止管理代理设备的设置操作。但这样做有一个副作用,这样一来只能监控数据对象的值而不能改动它们,限制了SNMP协议的可用性。

SNMP的命令和报文

SNMP协议定义了数据包的格式,及网络管理员和管理代理之间的信息交换,它还控制着管理代理的MIB数据对象。因此,可用于处理管理代理定义的各种任务。SNMP协议之所以易于使用,这是因为它对外提供了三种用于控制MIB对象的基本操作命令。它们是:Set 、Get 和 Trap :

Set:它是一个特权命令,因为可以通过它来改动设备的配置或控制设备的运转状态。

Get:它是SNMP协议中使用率最高的一个命令,因为该命令是从网络设备中获得管理信息的基本方式。

Trap:它的功能就是在网络管理系统没有明确要求的前提下,由管理代理通知网络管理系统有一些特别的情况或问题发生了。

SNMP协议也定义了执行以上三个命令时的报文流, 但它没有定义其它的设备管理代理命令,可应用于MIB数据对象的操作只有Set和Get命令,这两个命令的目标是数据对象的值。比如说,SNMP协议中没有定义reboot(重启)命令;然而,管理代理软件把MIB数据对象和设备的内部命令联系起来,这样就可以实现某些特殊的命令操作。如果现在想要重启某个设备,管理系统就把某个与重启有关的MIB数据对象的值设为1(我们的假定)。这样就会触发管理代理执行重新启动设备的命令,同时还把这个MIB数据对象重新设置为原来的状态。

一条SNMP报文由三个部分组成:版本域(version field),分区域(community field)和SNMP协议数据单元域(SNMP protocol data unit field),数据包的长度不是固定的。

版本域:这个域用于说明现在使用的是哪个版本的SNMP协议。目前,version 1是使用最广泛的SNMP协议。

分区域:分区(community)是基本的安全机制,用于实现SNMP网络管理员访问SNMP管理代理时的身份验证。分区名(Community name)是管理代理的口令,管理员被允许访问数据对象的前提就是网络管理员知道网络代理的口令。如果把配置管理代理成可以执行Trap命令,当网络管理员用一个错误的分区名查询管理代理时,系统就发送一个autenticationFailure trap报文。

协议数据单元域:SNMPv1的PDU有五种类型,有些是报文请求(Request),有些则是响应(Response)。它们包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了两种PDU:GetBulkRequest和InformRequest 。

SNMP管理员使用GetRequest从拥有SNMP代理的网络设备中检索信息,SNMP代理以GetResponse消息响应GetRequest。可以交换的信息很多,如系统的名字,系统自启动后正常运行的时间,系统中的网络接口数等等。GetRequest和GetNextRequest结合起来使用可以获得一个表中的对象。GetRequest取回一个特定对象;而使用GetNextRequest则是请求表中的下一个对象。使用SetRequest可以对一个设备中的参数进行远程配置。Set-Request可以设置设备的名字,关掉一个端口或清除一个地址解析表中的项。Trap即SNMP陷阱,是SNMP代理发送给管理站的非请求消息。这些消息告知管理站本设备发生了一个特定事件,如端口失败,掉电重起等,管理站可相应的作出处理。

MIB概述

管理信息数据库(MIB)是一个信息存储库,它包含了管理代理中的有关配置和性能的数据,有一个组织体系和公共结构,其中包含分属不同组的许多个数据对象。如下图所示。

MIB数据对象以一种树状分层结构进行组织,这个树状结构中的每个分枝都有一个专用的名字和一个数字形式的标识符。上图表示的是标准MIB的组织体系,列出了从MIB结构树的树根到各层树枝的全部内容。结构树的分枝实际表示的是数据对象的逻辑分组。而树叶,有时候也叫节点(node),代表了各个数据对象。在结构树中使用子树表示增加的中间分枝和增加的树叶。

使用这个树状分层结构,MIB浏览器能够以一种方便而且简洁的方式访问整个MIB数据库。MIB浏览器是这样一种工具,它可以遍历整棵MIB结构树,通常以图形显示的形式来表示各个分枝和树叶对象。可以通过其数字标识符来查找MIB中的数据对象,这个数字标识符号从结构树的顶部(或根部)开始,直到各个叶子节点(即数据对象)为止。这种访问方式和文件系统的组织方式一致。两者的主要区别在于文件系统中的路径名可以以绝对也可以以相对方式表示,而MIB数据对象只能以绝对方式表示,不能使用相对方式。例如,在图中,iso(1)位于结构树的最上方,而sysDescr(1)处在叶子节点的位置。现在看不到树根root(.),其余所有的分枝都是从这里扩展而来的。通常用带点的符号来表示数据对象的标识符。要访问数据对象sysDescr(1),其完整的标识符应该是这样的:iso.org.dod.internet.mgmt.mib-2.system.sysDescr(这个标识符应该从左向右读)。数据对象也可以以另一种更短的格式表示,即用数字形式标识符代替分枝名形式的表示形式。这样,上面的那种形式的标识符iso.org.dod.internet.mgmt.mib-2.system.sysDescr 还可以用 1.3.6.1.2.1.1.1 来表示。这两种表达格式的作用是一致的,都表示同一个MIB数据对象。尽管数字形式的标识符看起来更简洁,选择何种表达格式仍然是个人偏好问题。幸运的是,许多MIB浏览器可以以两者中任何一种格式来表示数据对象,这使得两种格式间的相互转化非常容易。

MIB的访问方式

在定义MIB数据对象时,访问控制信息确定了可作用于该数据对象的操作种类。SNMP协议有如下的MIB数据对象访问方式:

只读方式(Read-only)

可读可写(Read-write)

禁止访问(Not-accessible)

网络管理系统无法改动只读方式的MIB数据对象,但可以通过Get或Trap命令读取数据对象的值。在一件产品的使用期内,某些MIB的信息从不会改变。例如,MIB数据对象sysDescr,它代表System Descrīption,包含了管理代理软件所需要的厂商信息。确定某些数据对象为只读还有另一个原因,即确保有关性能的信息及其它统计数据正确,不至于因误操作而改动它们。

SNMP作为数据传输方法,和数据的组织形式MIB结合,为网络管理系统提供了底层的保障。一个真正的网络管理系统可以建立在SNMP之上,也可以建立在其他的网络管理协议上,如CMIP等等,不过那也是需要另外撰文叙述的了。

(责任编辑:IT教学网)

更多

推荐程序员考试文章