SNMP协议原理/特点/工作方式分析

2020-10-26 16:54:41 云杰通信 100

SNMP协议原理/特点/工作方式分析

  学习网络管理,我们不得不接触到SNMP协议,那么什么是SNMP呢?就是网络总的管理协议,翻译过来的中文名称则是简单网络管理协议。

  简单网络管理协议(SNMP)是基于TCP/IP的网络管理,实际上就是一群标准的集合。80年代末期由IETF开发后,开始被广泛应用在各类网络设备中,成为一种网管的工业标准。SNMP又称之为管理者和代理之间的通信协议,包括理解SNMP的操作、SNMP信息的格式及如何在应用程序和设备之间交换信息。

  就概念而言,SNMP为网管界定了管理者(Manager)和代理者(Agent,被管理设备)之间的关系。两者之间的共同点是都运行TCP/IP协议。管理者可对管理设备提出效能、配置、和状态等信息的询问,透过要求与回复(request/replay)的简单机制来撷取代理者身上的信息,而两者之间的信息主要是通过PDU协议数据单元来载送。SNMP使用UDP作为IP的传输层协议。

  在实现过程中,管理者会发送一个PDU给一个代理者(可以是路由器、交换机、防火墙……等可支持网管的设备),代理者收到管理者所发出内含询问信息的PDU报文后,再透过PDU回传给相关的管理者。在该过程中,代理者基本上只能处于被动的状态,反复进行一问一答的模式,而唯一可由代理者自动发出的只有Trap的不定期回报特殊状况信息。

  SNMP协议有两个基本命令模式:read和read/write。read是可以通过SNMP协议观察设备配置细节,而使用read/write模式可以让管理者有权限修改设备配置。以当前市场流行的大多数被网管的设备为例,如果设备的默认口令没有改变,那么攻击者就可以利用默认的口令得到其配置文件,文件一旦被破解,攻击者就能够对设备进行远程非法的配置,实行攻击。 目前,绝大多数的网络设备和操作系统都可以支持SNMP,如D-Link、Cisco、3Com等等。

  SNMPv3实现更优管理

  目前SNMP的发展主要包括三个版本:SNMPv1、SNMPv2以及最新的SNMPv3。从市场应用来看,目前大多数厂商普遍支持的版本是SNMPv1和v2,但从安全鉴别机制来看,二者表现较差。而SNMPv3采用了新的SNMP扩展框架,在此架构下,安全性和管理上有很大的提高。在当前的网络设备市场中,D-Link已经率先推出了支持SNMPv3的网络产品,如DES-3226S、DES-3250TG交换机等,在安全功能和管理功能上都有良好的表现。

  总体来看,SNMPv1和v2版本对用户权力的惟一限制是访问口令,而没有用户和权限分级的概念,只要提供相应的口令,就可以对设备进行read或read/write操作,安全性相对来的薄弱。虽然SNMPv2使用了复杂的加密技术,但并没有实现提高安全性能的预期目标,尤其是在身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等方面。

  SNMPv3是在SNMPv2基础之上增加、完善了安全和管理机制。RFC 2271定义的SNMPv3体系结构体现了模块化的设计思想,使管理者可以简单地实现功能的增加和修改。其主要特点在于适应性强,可适用于多种操作环境,不仅可以管理最简单的网络,实现基本的管理功能,还能够提供强大的网络管理功能,满足复杂网络的管理需求。

  目前,市场上的网络设备尚停留在SNMPv1/v2的范畴,并未广泛支持SNMPv3,如何配置设备的SNMP服务以确保网络安全、完善管理机制呢?以下几个方面建议或许值得网管人员一试:由于基于SNMPv1/v2协议本身具有不安全性,所以在管理过程中,如果没有必要,可以不要开启SNMP代理程序;可以限制未授权IP对SNMP的访问,或者改变SNMP代理的默认口令,并使用复杂的口令;在后续采购设备中,尽可能选用支持SNMPv3的设备产品。

  综合SNMP的不同版本,显然SNMPv3的应用推广势在必行,必然会以突出的优势成为新的应用趋势。一些市场反应敏捷的网络设备制造商已经推出了相关产品。据了解,D-Link在新一代产品推出时,已将此技术列入基本的协议支持,包括DES-3226S、DES-3250TG在内的多款交换机已经率先支持SNMPv3。

  SNMP优势与弱点并存

  在对上述网络管理理念的实施过程中,技术和工业标准或许是最为重要的环节。如果没有统一的工业标准,管理的复杂性和成本将成倍增加,网络的稳定性和可靠性将大幅度下降,智能、安全、开放的目标也无法实现。在现实中,普通网络上的所有设备都支持工业标准协议,以便不同的设备之间可以实现畅通无阻的通信,而使用专用产品则还需要配套使用高价值的附加产品。基于此,网络管理的主流技术便在几个主要的工业标准之上衍生而来,其中SNMP (简单网络管理协议)、RMON (远程监控)和RMON II等标准和技术无疑是最重要的部分。

  用户数据网络通常是使用SNMP协议进行管理的。SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广为执行的网络协议,它使用嵌入到网络设施中的代理软件来收集网络通信信息和有关网络设备的统计数据。代理不断地收集统计数据,如所收到的字节数等,并把这些数据记录到一个管理信息库(MIB,Management Information Base)中,网管员通过向代理的MIB发出查询信号就可以得到这些信息,这个过程就叫做轮询(polling),是SNMP最基本的特点。

  SNMP是被广泛接受并投入使用的工业标准,它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索信息、进行修改、寻找故障,并完成故障诊断、容量规划和报告生成。采用轮询机制的SNMP能够提供网络管理最基本的功能集,最适合小型、快速、低价的网络环境使用。由于SNMP只要求无证实的传输层协议UDP,因而受到许多产品的广泛支持。

  SNMP协议工作方式

  SNMP以GET-SET方式替代了复杂的命令集,可以利用基本操作完成全部操作,同时,用户可以采用管理信息库标准或按标准的方式来定义自己的MIB。这样就可以通过降低网管系统中众多代理部件的成本来降低整个网管系统的成本。

  在SNMP中,网管站(NMS)是网络管理的实体,网管站里运行网络管理软件,它对网络设备发送各种查询报文,并接收来自被管设备的响应及陷阱(Trap)报文,将结果显示出来。网管站通常是一台工作站、PC Server或者就是一台PC机,通过数据网络本身与被管设备相连(如局域网口),它在网络中就是一个主机,因此在通常的网络里面都是带内网管,即网管站与设备间的数据与普通的数据是相同的。当然,在网络设备里面可以设置QoS来对相应的数据进行保护。

  网管代理(Agent)则是驻留在被管设备(如路由器、交换机等)上的一个进程,负责接受、处理来自网管站的请求报文,然后将设备接口等特性管理变量的数值形成响应报文,发送给NMS,并在一些紧急情况下,如接口状态发生改变、呼叫成功等时候,主动通知NMS(发送陷阱Trap报文)。网管软件则根据这些响应的数据包,通过构建直观的拓扑图等方式,便于网管人员进行设备的监控及管理。SNMP就是用来规定NMS和Agent之间是如何传递管理信息的应用层协议。

  弱点不容忽视

  然而,部分业内人士也认为,SNMP也存在着一定的问题: 它使用嵌入到网络设施中的代理软件来收集网络通信信息和有关网络设备的统计数据,代理不断地收集统计数据并记录到MIB中,网络管理人员通过向代理的MIB发出查询信号(轮询)可以得到这些信息。因此,虽然MIB计数器将统计数据的总和记录下来了,但它无法对日常通信量进行历史分析。当然,为了能全面地查看一天的通信流量和变化率,管理人员必须不断地轮询SNMP代理,例如一天中的每分钟都要轮询一次。这样,网管员可以使用SNMP来评价网络的运行状况,并揭示出通信的趋势,如哪一个网段接近通信负载的最大能力或正在导致通信出错,先进的SNMP网管站甚至可以进行编程来自动关闭端口或采取其他矫正措施来处理历史的网络数据。

  尽管如此,SNMP协议建立在轮询上的管理依然存在着两个明显的弱点:在大型的网络中,轮询会产生巨大的网络管理通信量,因而导致通信拥挤情况的发生; 它将收集数据的负担加在网络管理控制台上,管理站也许能轻松地收集8个网段的信息,但当它们监控48个网段时恐怕就难以应付了。