在SNMP发展历史上,TCP/IP协议族的研究,开发,实施和用户团体在各种环境中已经经历了大量的协议。尤其是最近几年因特网的成长,出现了大量可用的支持因特网的软件。因特网规模的扩大,因特网技术在商业上的应用增加了研究人员,开发者,网络产品零售商对公共网络管理结构的需求,使TCP/IP产品能够用于网络。
认识到这一点,人们经过了很多努力,提出了各种可能用于因特网或一般网络技术管理概念。在1987年底,这些努力取得突破性的进展,人们有了一些明确的技术选择,互联网社会也能找到一些不兼容的网络管理工具。这些努力包括High-Level Entity Management System(HEMS), 简单网关管理协议 --Simple Gateway Monitoring Protocol (SGMP) 和 公共管理信息协议-- Common Management Information Service/Protocol (CMIP).
短期目标,因特网迫切需要工具来实施解决快速增长网络的管理问题。考虑到当前SGMP的状态是高度实施和相对的简单,SGMP的基本规则应该是快速的提供完整的定义来广泛的实施。不久以后,因为SGMP的简单性和多用途性,简单网络管理协议(SNMP)继承了SGMP。
SNMP 是一个协议用来管理网络上的节点,(包括工作站,路由器,交换机,集线器和其他的外围设备)。SNMP是一个应用协议,使用UDP封装进行传输。UDP是一个无连接的传输层协议,在OSI模型中为第四层协议,提供简单的可靠的传输服务。SNMP使网络管理者能够管理网络性能,发现和解决网络问题,规划网络的增长。
网络管理由三个关键的组件组成,管理设备,代理,网络管理系统(NMS)。网络管理设备是在被管理网络中含有SNMP Agent 网络节点设备。被管理设备收集和存储管理信息,使SNMP管理信息能够用于NMSs。被管理设备有时候交网络元素,能够路由和接入服务器,交换机,网桥,集线器,电脑主机,打印机。Agent 是拥有本地管理信息并翻译管理信息与SNMP兼容。NMS执行应用程序监视和控制管理设备。
当前,定义了三个版本的网络管理协议,SNMP v1,SNMP v2,SNMP v3。SNMP v1,v2有很多共同的特征,但是SNMP v2 版本上得到了增强,例如额为的协议操作。SNMP v3 在先前的版本地基础上增加了安全和远程配置能力 。为了解决不同版本的兼容性问题,RFC3584定义了共存策略。
SNMP v1 是最初实施SNMP协议。SNMPv1 运行在像UDP,IP ,OSI无连接网络服务(CLNS),DDP(AppTalk Datagram-Delivery),IPX(Novell Internet Packet Exchange)之上.SNMPv1 广泛使用成为因特网上实际的网络管理协议。
SNMP 是一种简单的request/response协议。网络管理系统发出一个请求,被管理设备返回相应。这些行为由四种协议操作组成:
Get,GetNext,Set 和Trap。Get操作使用NMS来获取agent的一个或多个对象实例。如果agent返回get操作不能提供列表所有对象实例的值,就不能提供任何值。GetNext 操作是NMS用来从agent表中获取表中下一个对象实例。Set操作NMS用来设置agent对象实例的值。trap操作用于agent向NMS通告有意义的事件。
现在版本一不是没有自己的问题。版本一的主要问题的主要问题是对消息源的验证,保护消息不会被泄露和对MIB的访问控制包括配置,状态,消息统计存储到数据库。SNMP v2是1993年设计的,是v1版的演进版。Get,GetNext和Set操作相同于SNMPv1。然而,SNMPv2 增加和加强了一些协议操作。在SNMPv2中,如果再get-request中需要多个请求值,如果有一个不存在,请求照样会被正常执行。而在SNMPv1种将响应一个错误消息。在版本一种,Trap 消息和其他几个操作消息的PDU不同。v2版本简化了trap消息,使trap和其他的get和set消息格式相同。
SNMPv2还定义了两个新的协议操作:GetBulk和Inform。GetBulk 操作被用于NMS高效的获取大量的块数据,如表中一行中的多行。GetBulk 将请求返回的响应消息尽量多的返回。Inform操作允许一个NMS 来发送trap消息给其他的NMS,再接收响应。在SNMPv2
,如果agent响应GetBulk操作不能提供list中全部的变量的值,则提供部分的结果。
SNMP v2最后的部分时改善安全,导致了SNMP v2的各个变种。从此,实际上SNMP v2实际上有几个不同的"SNMPv2",那其实有好几个SNMP v2的消息格式。但更糟糕的是原来模型中的SNMP消息并没有得到挽救。从SNMP v1 中的 SNMPv2中的协议操作导致SNMPv2 PDU的格式也必须改变。然而,这些协议操作在所有的SNMPv2变种中都必须相同。SNMPv2各个变种之间的不同在于安全的实施。因而各个SNMP v2变种之间的PDU都有相同的格式,而总的消息格式又都不同。
现在,在新发行的版本考虑了令v2版本恐慌的安全问题。SNMP v3结构增加了安全和管理能力,从而增强了换来SNMP和SNMP v2。
SNMP v3 在前面的版本上增加了安全能力和远程配置能力,SNMPv3结构为消息安全和VACM(View-based Access Control Model)引入了USM(User-based Security Model)。这个结构支持同时使用不同的安全机制,接入控制,消息处理模型。SNMP v3
也引入使用SNMP SET命令动态配置 SNMP agent而不失MIB对象代表agent配置。
这些动态配置支持能够增加,删除,修改和配置远程或本地实体。
通用的SNMPv3消息格式,通用的SNMPv3消息格式遵循相同的消息封装格式包含一个头和一个被封装PDU。然而,在版本三这个概念被进一步精简。头部区域,被分成两个部分,一部分处理安全,和另外一部份与安全无关的部分。与安全无关部分所有的SNMPv3部分是相同的,而使用安全相关部分被设计成各种的SNMPv3安全模型,被SNMP内的安全莫信处理。这种解决反感提供了很大的灵活性而避免了SNMPv2恐慌的问题。
SNMP有五类应用能够与SNMP引擎相关。这些应用事命令产生,命令响应,通告产生,通告接收,Proxy 转发。随着这些新的应用,随着这些新的应用,新的SNMPv3的基于用户的安全模型定义了处理元素用于提供SNMP消息层的安全。USM保护用户免受四种威胁,包括消息被篡改,泄密,伪装,和消息流的修改。USM使用MD5(Message Digest Algorithm)和安全哈希算法提供数据的完整性,来直接的保护数据免被修改,来间接的提供对数据源的认证,并防止伪装数据攻击。他同时使用DES来防止泄密。
另一个中增加了新的特征View based Access Control Model。它定义了进程元素用于控制访问管理信息。VACM 能使一个引擎的实施与多个消息处理模型和多个安全模型关联。最新网络管理的发展和SNMP是扩展到所有形式的硬件。今天最新的软件包括了对桌上电脑的管理。桌面电脑的管理接口(DMI)是一个很好的例子。DMI是SNMP协议后面的另一种形式的软件,但并不取代SNMP。DMI功能更过的是软件层面上的管理而SNMP主要是对硬件的管理。DMI和SNMP非常相似。DMI使用的信息库是MIF,而不是MIB。DMI将为操作系统提供更好的接口用于获取硬件和软件信息。使用DMI的原因是新硬件的产生。现代技术最新的固件能够提供特定的应用程序调用获取硬件信息。术语DMI能用于代替代替硬件的API术语。DMI正提供标准的进程来使SNMP能够和个人电脑硬件进行通信。DMI在获取那些飞草长动态数据的时候非常有用。例如,如果管理员想知道一个节点硬盘的I/O总线的数目或当前CPU的利用率,管理工作站将请求使用DMI管理接口(MI)使用SNMP协议到DMI组件接口CI使用合适的API访问硬件。CI将得到答复并使用DMI的MIF来把信息传回到管理工作站。这能够使标准的DMI通过CI访问。这将减少管理工作站需要的属于该平台的特定管理信息的数量。使用DMI的原因是使网络管理回归工业标准。
使用SNMP安全是非常的重要。因为有些SNMP agent广播信息而有些agent被改变,安全不能被忽略。最初版本的SNMP版本,SNMP v1没有很好的实施安全。SNMP 面临任何网络应用着所有的标准的威胁:消息篡改,欺骗,消息流被修改,消息泄密。这里简单的来看一下各个版本的 安全措施。
SNMPv1只使用一种安全策略,团体名。团体名和密码相似。Agent 能够被设置回答那些团体名能够被接受的Manager的查询。在很容易让人截取得到团体名或密码。SNMPv2增加了不少额外的安全。首先所有的包信息除了目的地址,其他都被加密。在加密的数据中包括团体名和源IP地址。Agent 能够解开加密包并使用收到的团体名和源IP地址使请求有效。安全的类型包括party和context。Party指的是规定的机器或人而context指的是于party相关的名字或字符串。SNMP 使用DES(Data Encryption Standard)来加密数据包。SNMPv3提供最新的SNMP安全机制。它包括SNMP上下文引擎ID来解码SNMP上下文。引擎ID可能花费的时间超过允许解释的时间。简单的说就是背景名合对象相配,安全需要对象和背景相配。SNMPv3提供三重的安全机制。最高层是认证和私密。中间层提供认证而没有私密和底层没有任何的认证机制和私密。
SNMP安全的重要性的一个完美的例子就是重启设备。管理者不能让这个能力受到侵犯。SNMP的最新版本已经使用在明码的基础上走出了很远。
转自 http://zhuweiyang.blog.sohu.com/4530687.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shangzhiliang_2008/archive/2010/05/26/5624428.aspx
分享到:
相关推荐
SNMP V1 V2 V3
C#基于SnmpSharpNet做的SNMP客户端(SNMP V1和V2两个版本查询):向目标发起SNMP请求,获取返回的结果并解析返回值。 vs2008工程,全部代码,可直接编译和测试。
在eclipse上编译成功,且可以运行,实现了get,getnext,set等功能。
基于Linux的snmpd模拟器,可用于模拟网络设备的snmp采集,对于网管软件的测试非常实用。
在win7系统上安装和部署snmp服务的完整过程,包括v1,v2c和v3版本的详细安装
凯创交换机SNMP配置实例,配置成功,敬请参考
针对基于SNMP 的mib库文件浏览器,可以连接到支持SNMP V1 v2 v3版本
目前SNMP协议主要包括三个版本:SNMP V1、SNMP V2以及最新的SNMP V3。SNMP V3采用了新的SNMP扩展框架,解决了SNMP协议以前版本在安全性和管理方面表现不理想的问题,支持SNMP V3是网络设备的趋势。网络设备通过代理...
支持SNMP V1, V2, V3。 可以发送GetRequest、SetRequest等SNMP请求,并接收返回消息。 可以发送、接收Trap消息。 可以接收GetRequest、SetRequest等SNMP请求,并发送回应消息。 代码内有中文注释,且带有示例。如有...
纯C,不像其它的采用JAVA,绿色版,支持 snmp v1 v2c v3版(世面上很少可用的v3)
2 SNMP V1和SNMP V2 4 2.1 SNMP 和 UDP 5 2.2 SNMP community 5 2.3 管理信息结构 5 2.3.1 OID命名 6 2.3.2 OID的描述 7 2.4 V2版本中的SMI扩展 13 2.5进一步了解MIB-II 15 2.6 SNMP 操作 17 2.6.1 get 17 2.6.2 ...
安装将此行添加到您的应用程序的Gemfile中: gem 'netsnmp' 然后执行: $ bundle或将其自己安装为: $ gem install netsnmp特征该宝石提供: 在Ruby中针对v3,v2c和v1(最著名的是rfc3414和3826)实现了SNMP协议。...
本文档描述了Wind River SNMP软件产品系列的数据结构和入口点,包括:Wind River SNMP v1/v2c、Wind River SNMP v3、Wind River SNMP AgentX。(This document describes the data structures and entry points for ...
1.SNMP协议作用的了解 2.SNMP消息格式的了解 3.SNMP V1/V2C/V3协议机制的了解 4.Mib概念的理解 5.Mib Browser的使用和Mib消息分析
SNMP v1/v2c/v3 engine written in Python.
HiliSoft出品的SNMP MIB Browser(MIB浏览器),功能强大,简单易用。...1. 支持SNMP v1, v2c & v3 2. 支持SMI v1 & v2 3. 支持Get/GetNext/Set/GetBulk/Walk 4. 内建Trap接收器 5. 快速解析、加载MIB文件
开放源代码的简单网络管理协议(Simple Network Management Protocol)軟件,NET-SNMP支持SNMP v1, SNMP v2c 与 SNMP v3,并可以使用 IPV4 及 IPV6 。基于(BSD及BSD like)许可。
snmp v3 v2 v1 已去掉多余的文件,用于访问 获取oid节点信息,以便于拿到所有的用户信息。
C语言实现的snmp服务源码,支持snmp v1,v2c,v3版本,依赖于openssl库
net-snmp-5.7.1是snmp软件工具开发包,支持snmp的v1、v2和v3协议