写了一个关于SNMP的论文 - 网络协议仿真期末作业

说是写论文,其实就是在网上搜出来的,然后再一点一点拼接出来的,为了便于以后再学习,就把它贴出来

随着网络规模增大,简单的网络管理技术已不能适应网络迅速发展的要求。以往的网络管理系统往往是厂商开发的专用系统,很难对其他厂商的网络系统、通信设备软件等进行管理,显然这种状况不适应网络发展的需要。20世纪80年代初期,Internet的发展使人们意识到了这一点,并提出了多种网络管理方案,包括SNMP、CIMS/CMIP,LAMP等。

CMIS/CMIP即通用管理信息服务和通用管理信息协议

国际标准化组织(ISO)为了解决不同厂商、不同机种的网络之间互通而创建的开放系统互联(OSI)网络管理的接口和协议。被认为是网络管理模型的电信管理网(TMN),就是在这个CMIP的基础上建立起来的。通用管理信息协议(CMIP)是构建于开放系统互连(OSI)通信模型上的网络管理协议。与之相关的通用管理信息服务(CMIS)定义了获取、控制和接收有关网络对象和设备信息和状态的服务。在网络管理过程中,CMIP是通过事件报告进行工作的。管理-代理模式间的信息交换通过CMIP和CMIS实现。

TMN即电信管理网

国际电信联盟(ITU)在M.3010建议中指出,电信管理网的基本概念是提供一个有组织的网络结构,以取得各种类型的操作系统(OSs)之间,操作系统与电信设备之间的互连.它是采用商定的具有标准协议和信息的接口进行管理信息交换的体系结构.提出TMN体系结构的目的是支撑电信网和电信业务的规划,配置,安装,操作及组织。TMN应用领域非常广泛,涉及电信网及电信业务管理的许多方面,从业务预测到网络规划;从电信工程,系统安装到运行维护,网络组织;从业务控制和质量保证到电信企业的事物管理,都是它的应用范围。

LMMP即局域网个人管理协议

LMMP试图为LAN环境提供一个网络管理方案。LMMP以前被称为IEEE802逻辑链路控制上的公共管理信息服务与协议(CMOL)。由于该协议直接位于IEEE802逻辑链路层(LLC)上,它可以不依赖于任何特定的网络层协议进行网络传输。由于不要求任何网络层协议,LMMP比CMIS/CMIP或CMOT都易于实现,然而没有网络层提供路由信息,LMMP信息不能跨越路由器,从而限制了它只能在局域网中发展。但是,跨越局域网传输局限的LMMP信息转换代理可能会克服这一问题。

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

SNMP的基本功能包括网络性能监控、网络差错检测和网络配置。

SNMP的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

SNMP与前面提到的管理方案最大的不同是:

1、SNMP使用的是TCP/IP协议集中的UDP传输协议,由于UDP的高效率性,可以在实现网络管理中不会太多的增加网络负载;

2、SNMP协议最重要的特性就是简洁清晰,SNMP没有一大堆命令,只使用存和取两种操作,从而使系统的负载可以减至最低限度;

3、SNMP是在应用层进行网络设备间通信的管理,它可以进行网络状态监视、网络参数设定、网络流量统计与分析、发现网络故障等操作;

4、SNMP首先是由IETF的研究小组为了解决Internet上的“路由器”管理问题而提出的,因而可以在整个Internet中进行管理等操作,没有LMMP协议的局域网限制;

5、SNMP的设计原则是简单性和扩展性。简单性是通过信息类型限制、请求响应或协议而取得。扩展性是通过将管理信息模型与协议、被管理对象的详细规定(MIB)分离而实现的。

其中SNMP和CMIP的主要区别是:

SNMP

1、简单性:SNMP非常简单,容易实现,且成本低,应用广泛;

2、实时性:从被管理设备中收集数据有两种方法:一种是轮询方法,另一种是基于中断的方法。

3、无连接服务:SNMP提供无连接的、简单的命令服务;

CMIP

1、复杂性:针对OSI七层协议模型的传输环境而设计,需要能力强的处理机和大容量的存储器,实现复杂,且成本高,应用较少。

2、实时性:采用报告机制,根据事件发生时对网络服务影响的大小来划分事件的严重等级,网络管理进程很快就会收到事件报告,具有实时性的特点。

3、面向连接服务:CMIP则为应用进程提供采用面向连接的服务。

因此SNMP管理协议的种种优势使得其在以后的发展中得到了普遍的应用, 从1988 Internet工程任务组(IETF)制定了SNMP V.1,再到1993年,IETF制定了SNMP V.2,该版本受到各网络厂商的广泛欢迎,并成为事实上的网络管理工业标准。SNMP V.2是SNMP V.1的增强版。SNMP V.2较SNMP V.1版本主要在系统管理接口、协作操作、信息格式、管理体系结构和安全性几个方面有较大的改善。后来在1998年1月,SNMP V.3发布,SNMP V.3涵盖了SNMP V.1和SNMP V.2的所有功能,并在此基础上增加了安全性。

SNMP的网络管理体系结构

包括的关键元素有:网络管理中心(管理站)、代理、管理信息库、网络管理协议

SNMP采用轮询监控方式,主要对ISO/OSI七层模型中较低层次进行管理。管理者按一定时间间隔向代理获取管理信息,并根据管理信息判断是否有异常事件发生。当管理对象发生紧急情况时,可以使用称为trap信息的报文主动报告。轮询监控的主要优点是对代理资源要求不高,缺点是管理通信开销大。

网络管理中心(NMC)是系统的核心,一般是一个分立的设备,也可以利用共享系统实现,负责管理代理(Agent)和管理信息库(MIB),管理中心作为网络管理员与网络管理系统的接口,它的基本构成为:一组具有分析数据、发现故障等功能的管理程序; 一个用于网络管理员监控网络的接口; 将网络管理员的要求转变为对远程网络元素的实际监控的能力,它以数据报表的形式发出和传送命令,从而达到控制代理的目的。它与任何代理之间都不存在逻辑链路关系,因而网络系统负载很低。

网络管理系统中另一个重要元素是代理者,装备了SNMP的平台,如合法节点的计算机、网桥、路由器及智能集线器均可作为代理者工作。代理的作用是收集被管理设备的各种信息,并对管理中心的请求和动作做出相应的应答,把它们传输到中心的SNMP服务器的MIB数据库中,并随机地为管理站报告一些重要的意外事件。

管理信息库MIB负责存储设备的信息,它是SNMP分布式数据库的分支数据库。在SNMP中,网络资源被抽象为对象进行管理。但SNMP中的对象是表示被管资源某一方面的数据变量。对象被标准化为跨系统的类,对象的集合被组织为管理信息库(MIB)。MIB作为设在代理处的管理站访问点的集合,管理站通过读取MIB中对象的值来进行网络监控。管理站可以在代理者处产生动作,也可以通过修改变量值改变代理者处的配置。

网络管理协议环境,SNMP为应用层协议,是TCP/IP协议族的一部分。SNMP在UDP、IP及有关的特殊网络协议(如Ethernet、FDDI、X.25)之上实现。它通过用户数据报协议(UDP)在网络管理中心与被管设备的网络管理代理之间交互管理信息。在分立的管理站中,管理者进程对位于管理站中心的MIB的访问进行控制,向被管设备的网络管理代理发出各种请求报文,并提供网络管理员接口。这样网络管理代理则接收这些请求后完成相应的操作。

每个代理必须实现SNMP、UDP和IP。从管理中心发出3类与管理应用有关的SNMP的消息GetRequest、GetNextRequest、SetRequest。这3类消息都由代理者用GetResponse消息应答,该消息被上交给管理应用。另外,代理者可以发出Trap消息,向管理者报告有关MIB及管理资源的事件。

虽然SNMP有广泛的适用性,且在用于小规模设备时成本低、效率高,在实际中一般用于计算机网络管理,而在一些大型系统则更适合用CMIP,在实际中一般用于电信网络管理。对于SNMP协议来讲,由于通过周期地轮询方式来收集数据,当设备数量或数据量很大、会导致较大延迟且占用大量带宽资源,实时性较差。而CMIP协议是根据时间严重等级来设置优先级,实时性强。SNMP协议采用的无连接服务,由于这种服务的方式会导致数据包的丢失,但是如果在网络环境好条件下,则可以避免。CMIP协议则采用面向连接的服务,数据传输的准确率高,开销非常大,使得CMIP协议十分复杂,占用的资源也较多,不适宜资源有限的网络设备。

因此SNMP适用于在小规模应用中使用,对于大规模的应用大型系统的管理如电信网络的管理就不适合。

鉴于SNMP的的这么多优点,因此很多网络硬件厂商开始把SNMP加入到它们制造的每一台设备。现在,各种网络设备上都可以看到默认启用的SNMP服务,从交换机到路由器,从防火墙到网络打印机,无一例外。这给SNMP带来了很大的发展,然而,在使用过程中出现了很多安全问题。

首先,很多的设备中的SNMP服务是默认开启的,然而,许多时候这些SNMP服务是不必要的,特别是接入Internet的设备将面临许多风险,Web服务器可能面临攻击,邮件服务器的安全也受到威胁。除此之外,网络上可能还存在一些隐性的漏洞,比如许多厂商安装的SNMP都采用了默认的通信字符串(例如密码),这些通信字符串是程序获取设备信息和修改配置必不可少的,采用默认通信字符串的好处是网络上的软件可以直接访问设备,无需经过复杂的配置。但是这也给黑客的攻击带来了便利。

在SNMP 2.0和SNMP 1.0中安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。

在后来出现的3.0版本中,引入了通信字符串保护机制,使用DES(Data Encryption Standard)算法加密数据通信;;利用MD5和SHA技术验证节点的标识符,从而防止攻击者冒充管理节点的身份操作网络。

虽然SNMP 3.0出现已经有一段时间了,但目前还没有广泛应用。如果是旧设备,很可能根本不支持SNMP 3.0,甚至有些较新的设备也只有SNMP 2.0或SNMP 1.0。即使设备已经支持SNMP 3.0,许多厂商使用的还是标准的通信字符串,这些字符串对黑客组织来说根本不是秘密。因此,虽然SNMP 3.0比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。

避免SNMP服务带来的安全风险,最彻底的办法是禁用SNMP。如果你没有用SNMP来管理网络,那就没有必要运行它;如果你不清楚是否有必要运行SNMP,很可能实际上不需要。即使你打算以后使用SNMP,只要现在没有用,也应该先禁用SNMP,直到确实需要使用SNMP时才启用它。

如果某些设备确实有必要运行SNMP,则必须保障这些设备的安全。首先要做的是确定哪些设备正在运行SNMP服务。除非定期对整个网络进行端口扫描,全面掌握各台机器、设备上运行的服务,否则的话,很有可能遗漏一、二个SNMP服务。特别需要注意的是,网络交换机、打印机之类的设备同样也会运行SNMP服务。确定SNMP服务的运行情况后,再采取下面的措施保障服务安全。

1、加载SNMP服务的补丁:安装SNMP服务的补丁,将SNMP服务升级到2.0或更高的版本。联系设备的制造商,了解有关安全漏洞和升级补丁的情况。

2、保护SNMP通信字符串:一个很重要的保护措施是修改所有默认的通信字符串。根据设备文档的说明,逐一检查、修改各个标准的、非标准的通信字符串,不要遗漏任何一项,必要时可以联系制造商获取详细的说明。

3、过滤SNMP:在网络边界上过滤SNMP通信和请求,即在防火墙或边界路由器上禁用SNMP请求使用的端口。标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口。禁用这些端口通信后,外部网络访问内部网络的能力就受到了限制;另外,在内部网络的路由器上可以利用ACL,只允许某个特定的可信任的SNMP管理系统操作SNMP。

总之,SNMP的发明代表着网络管理的一大进步,现在它仍是高效管理大型网络的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同样也存在问题。就象网络上运行的其他服务一样,SNMP服务的安全性也是不可忽视的。不要盲目地肯定网络上没有运行SNMP服务,也许它就躲藏在某个设备上。那些必不可少的网络服务已经有太多让人担忧的安全问题,所以最好关闭SNMP之类并非必需的服务——至少尽量设法保障其安全。

上一篇:为什么是QWERT,不是ABCDE?

下一篇:写代码如坐禅:你是哪一类程序员