简单网络管理协议SNMP的基础知识

前言

一个管理系统包括:几个(潜在多个)节点,每个节点具有一个称为代理(agent)的处理实体,它负责访问管理的基础结构;至少一个管理站;一种管理协议,用于在代理和管理站之间传送管理信息。协议操作的执行位于一种管理框架下,该框架定义了认证、授权、访问控制和保密策略。

管理站管理的应用程序,用来监测和控制被管理元素。被管理元素是一些设备,诸如主机、路由器、终端服务器等等,通过访问这些元素的管理信息来监测和控制它们。

管理信息看起来是一个被管理对象的集合,它位于一个虚拟的信息存储库中,这个库称为管理信息库(MIB)。相关对象的集合定义在MIB模块中。使用OSI抽象语法符号(ASN.1)[1]的一个子集书写这些模块,称为管理信息的结构(SMI)[2]。


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

SNMP是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理信息的方法,也为设备向网络管理工作站报告问题和错误提供了一种方法。
SNMP基于传输层UDP用户数据报协议,在管理者和被管理设备(确切的说是agent)之前传递信息。
SNMP管理包括下面三个部分:
1.MIB管理信息库
2.SMI管理信息的结构和标识(也称管理信息接口SMI)
3.SNMP简单网络管理协议

SNMP 规定了5 种协议数据单元PDU(也就是SNMP 报文),用于在管理进程和代理之间的交换。
—get-request 操作:从代理进程处提取一个或多个参数值
—get-next-request 操作:从代理进程处提取紧跟当前参数值的下一个参数值
—set-request 操作:设置代理进程的一个或多个参数值
—get-response 操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它
是前面三种操作的响应操作。
—trap 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
SNMPv2中有八个PDU类型:
GetRequest-PDU、GetNextRequest-PDU、Response-PDU、SetRequest-PDU、
GetBulkRequest-PDU、InformRequest-PDU、SNMPv2-Trap-PDU、Report-PDU。 
SNMP的报文操作


由于SNMP协议简单可靠,受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。

SNMP协议主要由两大部分构成:SNMP管理站和SNMP代理。SNMP管理站是一个中心节点,负责收集维护各个SNMP元素的信息,并对这些信息进行处理,最后反馈给网络管理员;而SNMP代理是运行在各个被管理的网络节点之上,负责统计该节点的各项信息,并且负责与SNMP管理站交互,接收并执行管理站的命令,上传各种本地的网络信息。

SNMP管理站和SNMP代理之间是松散耦合。他们之间的通信是通过UDP协议完成的。一般情况下,SNMP管理站通过UDP协议向SNMP代理发送各种命令,当SNMP代理收到命令后,返回SNMP管理站需要的参数。但是当SNMP代理检测到网络元素异常的时候,也可以主动向SNMP管理站发送消息,通告当前异常状况。

SNMP协议于1988年发布。到目前一共经历了V1,V2,V3三个版本。其中V1已经被废弃,而V2c虽然没有能够成为正式标准,,但是已经被很多厂家所接受,V3目前是因特网的正式标准。与V1相比,V2,V3更能适应大规模的网络管理,而且在安全方面有了较大的改进。

该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。


MIB:(ManagementInformation Base)管理信息数据库

在网络上的每一个单一节点,即网络部件或终端,如果这样的节点集成了SNMP Agent那么它们可以提供一个结构化的表格信息。这种表格信息称为MIB

管理信息库MIB 指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息。

MIB 给出了一个网络中所有可能的被管理对象的集合的数据结构。

IETF规定的管理信息库MIB(定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。

OID的表示形式


SNMP 的管理信息库采用和域名系统DNS 相似的树型结构,它的根在最上面,根没有名字

下面图画的是管理信息库的一部分,它又称为对象命名(object naming tree)





SMI管理信息结构(SNMP领域)

—管理信息结构SMI(structure of management information)它是简单网络管理协议(SNMP)的一部分,指定了在 SNMP 的 MIB 中用于定义管理目标的规则。
—SMI 是一种语言,是为了确保网络管理数据的语法和语义明确和无二义性而定义的语言。它是定义悲观网络实体中特定数据的语言。它定义了数据类型、对象模型,以及写入和修改管理信息的规则。
SMI是ASN.1的子集。

公共管理信息CMIP
—CMIP协议是在OSI制订的网络管理框架中提出的网络管理协议。与其说它是一个网络管理协议,不如说它是一个网络管理体系。这个体系包含以下组成部分:一套用于描述协议的模型,一组用于描述被管对象的注册、标识和定义的管理信息结构,被管对象的详细说明以及用于远程管理的原语和服务。
CMIP与SNMP一样,也是由被管代理和管理者、管理协议与管理信息库组成。在CMIP中,被管代理和管理者没有明确的指定,任何一个网络设备既可以是 被管代理,也可以是管理者。
—CMIP的优点在于:
—它的每个变量不仅传递信息,而且还完成一定的网络管理任务。这是CMIP协议的最大特点,在SNMP中是不可能的。这样可减少管理者的负担并减少网络负载。
—完全安全性:它拥有验证、访问控制和安全日志等一整套安全管理方法。
—但是,CMIP的缺点也同样明显:
—它是一个大而全的协议,所以使用时,其资源占用量是SNMP的数十倍。它对硬件设备的要求比人们所能提供的要高得多。
—由于它在网络代理上要运行相当数量的进程,所以大大增加了网络代理的负担。
它的MIB库过分复杂,难于实现。迄今为止,还没有任何一个符合CMIP的网络管理系统 

SNMP与CMIP的比较
—SNMP与CMIP是网络界最主要的两种网络管理协议。在未来的网络管理中,究竟哪一种将 占据优势,一直是业界争论的话题。
—总的来说,SNMP和CMIP两种协议是同大于异。两者的管理目标、基本组成部分都基本相同。在MIB库的结构方面,很多厂商将SNMP的MIB扩展成与CMIP的MIB结构相类似,而且两种协议的定义都采用相同的抽象语法符号(ASN.1)。
不同之处,首先,SNMP面向单项信息检索,而CMIP则面向组合项信息检索。其次,在信息 获得方面,SNMP主要基于轮询方式,而CMIP主要采用报告方式。再次,在传送层支持方面,SN MP基于无连接的UDP,而CMIP倾向于有连接的数据传送。此外,两者在功能、协议规模、性能、标准化、产品化方面还有相当多的不同点。

补充说明

ASN.1:是一种高级的数据类型定义语言,他描述了在网络管理进程和代理进程间传输的SNMP报文的格式。它属于表示层(第六层),提供应用进程之间正确通信所需的基本数据转换规则。SNMP使用的仅是ASN.1的一个子集。

ASN.1:通俗来讲,抽象语法就是协议采用ASN.1规范描述的描述文本;传输语法就是实际通讯系统间的码流。

ASN.1 – Abstract Syntax Notation dotone,抽象记法1。数字1被ISO加在ASN的后边,是为了保持ASN的开放性,可以让以后功能更加强大的ASN被命名为ASN.2等,但至今也没有出现。

不同体系的系统,不同编程语言之间,都存在通讯障碍象语法就是协议采用ASN.1规范描述的描述文本

简单点讲,ASN就是一种通用的抽象的语法,将其他语法(如C,ObjectiveCaml)抽象为ASN语法,这样不同系统间就可以通讯了。


原语是OSI系统内相邻层之间对话的基础。原语有请求、指示、响应和证实四种类型。

数据单元

数据单元是OSI系统内服务、协议进行通信时作为信息传递的单位。常用的数据单元有如下几种:

1.服务数据单元SDU(Server Data Unit)

SDU是相邻层实体间传递信息的数据单元,一般将(N+1)层与(N)层之间传递的服务单元记为(N)SDU。

2.协议数据单元PDU(Protocol Data Unit)

PDU是对等层实体间传递信息的数据单元,一般将(N)层协议数据单元记为(N)PDU。

SDU与PDU之间的关系为:

上层PDU即为本层SDU,即:(N+1)PDU=(N)SDU;

某层的SDU加上该层的协议控制信息PCI(ProtocolControl Information)就是该层的PDU。即:(N)PDU =(N)SDU+(N)PCI。

3.接口数据单元IDU(Interface Data Unit)

相邻层实体间通过层间服务访问点(SAP)一次交互信息的数据单元。一般将(N)层接口数据单元记为(N)IDU。




你可能感兴趣的:(计算机网络)