简单网络管理协议SNMP

简单网络管理协议( SNMP )

在目前日益复杂、分散、多元化的网络环境中充斥着各式各样网络设备,这使得网络的管理、除错变得困难,简单网络管理协议(SNMP) 是使用UDP 协议对网络设备进行管理的一个框架,属于应用级协议,它提供一组简单标准的操作去收集、修改及交换网络设备之间的网络管理资讯,以便于监察和维护网络设备,透过标准的SNMP,网管人员便可以更容易地管理复杂网络,找出问题所在。

由于网络管理资讯的急切性通常都不会很高,为了避免网络管理资讯的传输对网络造成负担,SNMP采用可靠性较?的UDP协议,UDP并不能担保资料包传到目的地,但对网络管理来说,间中掉包问题不大,通常我们会为管理软件定下时间,如在一段时间来收不到回覆,便自动重发。

网管资讯库(MIB)
SNMP被设计成适用于各类型的网络设备,故它所管理的资讯亦随着设备的不同而千差万别,每种网络或设备对其资料的表达方式亦存在差异,为将这些资讯纳入同一套管理系统,就须采用一套抽象的语法来描述所有类型的资讯,为此,SNMP定义了网管资讯库(MIB) ,阶层性描述所有受管理资讯的属性,并称这些受管理的资讯为SNMP物件(object)。 MIB可分为标准(Standard) MIB及私人(Private) MIB两大类,标准MIB适用于所有网络设备,而Private MIB则由厂家自行定义,以反映设备的独特变量值,合法的Private MIB需要向有关机构申请,务求令每一个Private MIB都是世上独一无二的。

SNMP物件可能只是个纯量,也可能是内含数个纯量的表,SNMP采用OSI的抽象语法标注法(ASN.1)定义物件资料格式,SNMP物件由物件型别(type)、存取(access) 及语法(syntax) 所构成,'型别'是组易于人类辨识的字串代码,它附有编号,'存取'可控制对该物件的读写,'语法'是该物件的资料结构,由ASN.1 语法所定义。符合ASN.1定义的MIB都能被汇编到有名的SNMP管理软件,如HP OpenView, IBM Netview, Tivoli TME或CA Unicenter TNG,汇入不同网络设备的MIB,再经过一些简单程式控制,用户便可以制作出一套能管理所有网络设备的系统。

MIB 采用树状结构,为一种阶层式分类,每个节点皆有它特定的类型,以易于人类辨识的单字标记,并附有物件身份编号(OID),树状末端的所有叶片为SNMP 定义的物件,而实际上在网络之间传递的MID 为OID。右图为MIB 树状基本结构


标准MIB 的基本OID开头为1.3.6.1.2.1 ,而Private MIB 的基本OID开头为1.3.6.1.4.1

以下为Access Point - Orinoco AP2000 Private MIB 的其中一个物件资料结构:
================================================== ========
Definition of ORiNOCO MIB OID Tree used in the ORiNOCO Wireless Product Line
============================= =============================
lucent OBJECT IDENTIFIER ::= { enterprises 1751 }
mibs OBJECT IDENTIFIER ::= { lucent 2 }
orinocomibs OBJECT IDENTIFIER ::= { mibs 4 }
orinocoSys OBJECT IDENTIFIER ::= { orinocomibs 1 }

“iso(1).org(3).dod(6).internet(1).private(4).enterprise(1). lucent(1751).mibs(2).orinocomibs(4). orinocoSys(1) ”

oriSystemContactPhoneNumber OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The phone number for the contact person.
This object is supported by the following ORiNOCO Devices:
- Access Point 2000"
::= { orinocoSys 6 }

以上这个物件oriSystemContactPhoneNumber的OID为1.3.6.1.4.1.1751.2.4.1.6.0 ,只要你把这个OID以标准的SNMP格式传到AP2000 ,AP2000便会以准的SNMP格式回传oriSystemContactPhoneNumber数值

SNMP的架构
SNMP是目前最普遍用于各式网际网络(不特指Internet )的网管协定,SNMP如同其名、是个颇单纯的协定,但其特点却足以应付各种网络的网管需求。

一个SNMP 网管系统,由代理器( AGENT ) 及网管系统(NMS) 组成,SNMP 代理器是附在网络设备内的程式模块,它可取得所依附装置的网络资讯,并透过网络将这些资讯采用SNMP 协定提供予网管系统。

SNMP 代理器所依附装置可以是任何形态的网络设备,包括电脑主机、终端机、网络印表机、路由器、 桥接器等等,这些装置的规模有大有小,其计算能力、储存空间等亦有限制,为令SNMP 代理器能普遍安装于各种网络装置,在定义时即考虑各装置在网管需求的交集,并令代理器的存在不会对原装置造成太大负担。

网管系统(NMS) 通常是部专职的主机,它负责收集由各代理器传来的网络资讯,并提供网络整体的分析、统计等图表及数据,由于各装置上的代理器被设计的很小巧,它们只负责回应装置的资讯,所以主要的计算负担即落在NMS,故NMS 通常是配备有高速的CPU、大量记忆体、磁碟机空间的工作站级电脑,并且也配备良好的图形操作介面以方便管理操作及图表的输出。

SNMP指令
SNMP v2定义了五种基本操作供网管系统(NMS)存取各SNMP代理器维护的变量,代理器也可不定时向NMS回覆异常情况(Trap)资讯,这些操作是

GetRequest (读取请求),由NMS发送给代理器,用来读取一个变量值。

GetNextRequest (读取下一个请求),由NMS发送给代理器,用来读取一个变量值,主要是用来读取一个表中的项目值。

GetResponse (读取回应) ,由代理器发送给NMS,以回应GetRequest及GetNextRequest,包含NMS所请求的变量值。

SetRequest (设置请求),由NMS 发送给代理器,用来设置一个变量值。

Trap (异常情况),由代理器单向发送给NMS,用来报告一个异常情况,例如设备重新启动,NMS 不会对Trap 作任何回应。

不是所有网络设备都有SNMP功能,厂家需要花额外人手去编写代理器,对于一些廉价设备,这种投入不化算,用户亦没有这种要求,但对于一些中大型网络中的设备,SNMP则是必需的。

你可能感兴趣的:(网络协议,网络应用,项目管理,资讯,tivoli)