请教SNMP协议

gx_sunny 2002-06-19 05:08:03
请问那位了解SNMP协议,给点资料行吗?谢谢
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gx_sunny 2002-06-20
  • 打赏
  • 举报
回复
SNMP的原理我大致了解了,请问在VB或其他编程工具中我应该怎么利用协议编程呢?
xiaowei_2002 2002-06-19
  • 打赏
  • 举报
回复
SNMP
  二十世纪70年代末、80年代初的时候,计算机网络由最初的只是小范围内的几台计算机相互连接逐步发展成大规模的网络。随着网络跳跃式的发展,对网络进行的监控和维护等管理操作也变得更加困难,从而对开发出能够满足网络管理需要的协议提出了迫切要求。
  第一个开始使用的网络管理协议就是SNMP。当时,人们只是把SNMP当作一种应急措施,等到日后有更加成功,更加成熟的新协议出现时将会被自然淘汰。然而,虽然不断有新的协议推出,但是SNMP凭借其结构简单,使用方便的特点一直到今天仍然被广泛使用。

  SNMP协议的工作机制非常简单,主要通过各种不同类型的消息,即PDU(协议数据单位)实现网络信息的交换。PDU实际上就是一种变量对象,其中每一个变量都是由标题和变量值两部分组成。

  SNMP主要使用5种类型的PDU对网络实施监控,两种用于读取终端信息,两种可以设置终端数据,最后一种被用来监视各种终端事件,如终端的启动和关闭等。

  这样,如果用户希望了解是否某一台终端已经被接入到网络,可以使用SNMP向该终端发送一个具有信息读取功能的PDU。如果终端已经被连接到网络,用户将会得到返回的确认信息。当有终端被关闭时,可以通过事件变量(trap)发出数据包,通知用户终端系统已经被关闭。

SNMP协议的优势

  SNMP协议的最大优势就是设计简单,既不需要复杂的实现过程,也不会占用太多的网络资源,非常便于使用。

  一般来说,SNMP协议所使用的各种变量主要包含以下信息:

1.变量标题;
2.变量数据类型,如整数,字串等;
3.变量是否具有信息读取或读写功能 ;
4.变量值

  SNMP协议的另外一个优势就是使用非常广泛,几乎所有的网络管理人员都喜欢使用简单的SNMP来完成工作操作。这就促使各大网络硬件产品商在设计和生产网桥、路由器等网络设备时都加入了对SNMP协议的支持。

  良好的可扩展性是SNMP协议的另外一个可取之处。因为协议本身非常简单,所以对协议的任何升级或扩展也非常方便,从而能够满足今后网络的发展需求。

SNMP协议的不足之处和解决方法

  虽然SNMP以其简单易用的特点成为目前最为流行的网络管理协议,但是无论如何SNMP都不能算是一种设计完美的协议。

  首先,SNMP协议存在一些安全漏洞,网络入侵者很容易获取正在通过网络传递的各种信息,设置可以关闭某些终端。对此,SNMP提出了自己的解决方案,在新版本SNMPv2中增加了一些安全机制,可以有效的解决以下几种安全性问题:

数据的保密性,可以防止网络入侵者获取网络信息;
验证,可以防止网络入侵者通过网络发送虚假数据;
访问控制,限制不同用户可以使用的变量类型,从而避免由于单个用户的错误操作所引发的网络崩溃。
SNMP协议的最大问题还是由于太过简单而无法处理各种细节信息,无法满足当今日益膨胀的网络的发展需要。同样,SNMPv2对这一问题也进行了改进。新版本的协议允许使用更多,更加详细的变量规范,并且加入了两种新的PDU可以对方便数据读取的表数据结构对象进行管理和控制。事实上,SNMPv2中融入了如此多的新功能,以至使协议规范从最初的36页猛增到416页。也有人认为SNMPv2已经丧失了原先的简单性,但是从另一方面来说,对SNMP的改造也是必需的,在网络飞速发展了几十年之后,SNMP必须能够适应新时代的网络要求。

SNMPv2

  当我们介绍到这里时,大家可能都在期望NMPv2能够成为新一代的网络管理标准协议。但是,事实正好相反,SNMPv2仍然只停留在理论阶段。

  SNMPv2的失败主要应当归因于开发商不能在关键性的问题上达成一致。此外,目前也很难找到能够全面支持SNMPv2协议各种扩展功能的产品。事实上,SNMP所获得的空间成功从某种意义上也影响了SNMPv2的进一步发展,无论是SNMPv2还是更高版本的SNMPv3似乎都无法成为SNMP的合格继承者。
xiaowei_2002 2002-06-19
  • 打赏
  • 举报
回复
SNMP协议概述
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代理发送给管理站的非请求消息。这些消息告知管理站本设备发生了一个特定事件,如端口失败,掉电重起等,管理站可相应的作出处理。
gx_sunny 2002-06-19
  • 打赏
  • 举报
回复
给点编程控制方面的资料!是基于网络交换机上的编程!谢谢!
OUJUNJIEILOVEYOU 2002-06-19
  • 打赏
  • 举报
回复
那方面!~`

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧