`
阅读更多

在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版本的联系和区别 ..docx

    "SNMP V1 V2 V3 版本的联系和区别" SNMP(Simple Network Management Protocol)是一种应用层协议,使用 UDP 封装进行传输,旨在管理网络上的节点,包括工作站、路由器、交换机、集线器和其他的外围设备。SNMP 使...

    C#基于SnmpSharpNet做的SNMP客户端(SNMP V1和V2版本)

    它支持SNMP V1、V2c和V3版本,涵盖了Get、Set、Trap接收等功能。使用该库,开发者可以创建SNMP代理,执行读取、写入操作,甚至处理SNMP陷阱。 **SNMP V1和SNMP V2c的区别** SNMP V1是最原始的版本,主要用于简单的...

    实现SNMP的java代码

    SNMP4J是一个开源的、全面的SNMP开发工具包,提供了对SNMPv1、v2c和v3的支持。 4. **创建SNMP代理**: - 首先,你需要在项目中导入SNMP4J库。在Eclipse中,可以通过右键点击项目 -> Build Path -> Configure Build...

    Linux snmp模拟器(v1、v2、v3)

    SNMP协议有三个主要版本:v1、v2c和v3。每个版本都有其特定的功能和安全性特点: 1. **SNMP v1**:最初版本,提供基本的网络设备管理功能,但安全性较低,没有认证和加密机制。 2. **SNMP v2c**:在v1的基础上增加...

    凯创交换机SNMP配置实例,包括V1,V2,V3

    在凯创交换机中,SNMP 支持三种版本:V1、V2 和 V3,每个版本都有其特定的安全性和功能特性。 ### SNMP V1 配置 SNMP V1 是最早的版本,安全性较低,因为它不支持认证和加密。在凯创交换机上配置 SNMP V1 主要涉及...

    snmp v1 introduction

    后续版本的SNMP,如v2c和v3,针对这些问题进行了改进,提供了更强大的安全机制和更丰富的功能集。 ### 总结 SNMP v1作为网络管理领域的一项重要技术,尽管存在一些局限性,但它仍然是许多网络环境中的关键组成部分...

    Win7安装SNMP服务,支持V1、V2c和V3版本

    本文将详细介绍如何在Windows 7系统上安装SNMP服务,以及如何支持SNMP V1、V2c和V3版本。 #### 二、安装准备 在开始之前,我们需要准备两个关键组件:ActivePerl和net-snmp。 **1. 安装ActivePerl** - 下载并...

    SNMP V2协议

    SNMP V2(SNMP Version 2)是对SNMP V1进行改进和扩展的结果,旨在解决SNMP V1中存在的一些问题,包括安全性、数据完整性以及性能等方面。SNMP V2的主要目标是在保持SNMP V1的简单性和易用性的同时,增强其功能性和...

    snmp v3 配置 包含安装文件 测试代码 snmp4j的jar包 等

    相比之前的SNMP v1和v2c,SNMP v3引入了用户安全模型(USM),允许管理员为不同的用户提供不同的安全性级别,包括加密和认证。这确保了网络管理数据在传输过程中的安全性,防止未授权访问。此外,SNMP v3还支持视图...

    C语言实现的snmp服务源码

    这涉及到对SNMP协议的深入理解,包括协议的数据结构、报文格式、操作类型(GET、SET、Trap等)以及不同版本(v1、v2c、v3)之间的差异。 1. SNMP版本:SNMP v1是最基础的版本,支持基本的GET、SET操作和Trap通知,...

    snmpv1.zip_SNMP_SNMP set_snmp get_snmp java_snmp++

    2. SNMP++:SNMP++是C++编程语言中常用的SNMP库,它提供了完整的SNMP v1、v2c和v3支持。这个库允许开发者轻松地创建SNMP客户端和代理程序,同时也支持异步处理和多线程。 在实际应用中,开发人员可能会使用这些工具...

    windows下基于SnmpSharpNet库的Demo

    本文将深入探讨基于SnmpSharpNet库在C#中实现SNMP V1、V2、V3的Demo,包括Agent端和Manager端程序的详细知识。 首先,了解SNMP的基本概念是必要的。SNMP是一种网络管理协议,用于监控和管理网络设备,如路由器、...

    C#开发的SNMP类库

    支持SNMP V1, V2, V3。 可以发送GetRequest、SetRequest等SNMP请求,并接收返回消息。 可以发送、接收Trap消息。 可以接收GetRequest、SetRequest等SNMP请求,并发送回应消息。 代码内有中文注释,且带有示例。如有...

    SNMP测试工具 Getif 2.3.1

    1. **SNMP版本检测**:Getif支持SNMP v1、v2c和v3这三种主要的SNMP协议版本,可以测试网络设备是否兼容这些版本,并且能够正确响应SNMP请求。 2. **OID查询**:Object Identifier(OID)是SNMP中的唯一标识符,用于...

    zabbix_交换机模板

    在提供的压缩包文件中,我们看到有两个XML文件:"Template Network Traffic Check By Public Snmp V2.xml"和"Template Network Traffic Check By Public Snmp V1.xml"。这些是Zabbix模板文件,用于定义如何通过公共...

    Cisco交换机配置SNMP

    在实际应用中,尽管SNMP v3提供了更先进的安全特性,但许多网络管理员仍然倾向于使用SNMP v2c,主要是因为它更加简单易用。 #### 三、SNMP的工作原理 SNMP的核心组成部分是SNMP代理和网络管理系统(Network ...

    最有用的破解版,支持V3

    纯C,不像其它的采用JAVA,绿色版,支持 snmp v1 v2c v3版(世面上很少可用的v3)

    SNMP和TR069比较.doc

    SNMP有三个版本:V1、V2(对V1的扩展)和V3(增加了安全特性)。 15. **UserInterface在电信BIZBOX中的应用**: - 未提供具体信息,但通常UserInterface在TR-069中可能涉及到CPE用户界面的配置和管理。 综上所述...

    Hillstone SNMP 配置指南

    其中,snmp-server group 用于指定 SNMP 用户组的名称,v3 用于指定 SNMP 版本为 3,noauth、auth 和 auth-enc 用于指定身份验证方式,read-view 和 write-view 用于指定读写视图。 3. 配置 SNMP 用户 用户可以...

    snmpTest.7z

    在本案例中,"snmpTest.7z"是一个压缩包,包含用于SNMP操作的相关资源,特别是针对SNMP v3、v2和v1版本的。 SNMP v1是最基础的版本,主要用于获取和设置网络设备的管理信息。它使用明文传输,安全性较低,容易被...

Global site tag (gtag.js) - Google Analytics