1.SNMP名词解释
SNMP(Simple Network Management Protocol),即简单网络管理协议,主要是用于网络(包括网络设备)管理的协议。
SNMP的基本原理可以通过下面一个例子来解释。
医院的住院部一般由一个护士站和若干个病房组成。出于管理的需要,护士站需要知道病人的血压、体温、脉搏等体征数据。为了获得这些数据,护士要定期向病人采集这些数据。另一方面,护士需要对病人进行一些护理操作和医疗处理,而护士不可能每时每刻在患者身边观察,当患者有重要的情况发生时,需要通知护士。所以,每个病房都有按铃、电话等设施。在医院里,因为医疗手续、护理操作等比较繁琐,病人治疗时一般都有家人陪护。陪护者一般照顾病人的起居、处理医疗手续等事情。
这种模式跟SNMP的工作方式是一样的。管理员需要向设备获取数据,所以SNMP提供了读操作;管理员需要向设备执行设置操作,所以SNMP提供了写操作;设备需要在重要状态变化的时候,向管理站通报事件的发生,所以SNMP提供了Trap操作。
2.SNMP结构组成
2.1.SNMP支持的网管操作
对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置。同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能够主动地上报重要状态,这就是告警功能。
由此,我们可以得到SNMP需要支持的管理操作。
(1)读取网络设备的状态信息、配置参数等。比如,一个网关有几个网络接口、每个接口的配置和当前状态;IP层的发送和接收数据包各有多少;TCP层的状态,等等。
(2)远程配置设备参数。比如,管理站想让一个路由器在某个网络节点上的服务暂时停止,以达到调整网络容量的目的;管理站想在路由器的路由表中增加一条路由记录;管理站想把一台工作站的网卡的MTU设置为最大值,等等。
(3)设备实时上报重要信息给管理站。比如,网络设备在重要状态变化的时候希望管理站能及时获知这种变化,设备在重要状态变化时主动向管理站发送消息,通知状态的改变;服务器的一个网卡不能正常工作了,发送一条网卡不能正常工作的消息到管理站。
2.2.SNMP的实现结构
在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储及数据分析等。被管理的设备上则运行一个SNMP代理(Agent),代理实现设备与管理站的SNMP通信。
网络管理系统(NMS)是系统的总控台,向管理员提供界面以获取与改变设备的配置、参数、状态、操作等信息。管理站与代理(Agent)进行通信,执行相应的Set与Get操作,读取或设置设备配置,并接收代理发过来的告警(Trap)。
代理(Agent)介于管理站与设备之间,与管理站通信并响应管理站的请求,从设备获取相应数据,或对设备进行相应设置,响应管理站的请求。代理也需要具有根据设备的相应状态使用MIB中定义的Trap向管理站主动上报的能力。代理是网络管理的代理人,负责管理站和设备SNMP操作的传递。站在管理站的角度,代理是操作的执行者,站在设备的角度,代理是操作的发起者。
代理服务器(Proxy)是一种特殊的代理,在不能直接使用SNMP协议的地方,比如异种网络、不同版本SNMP代理等情况,代理服务器代替相关设备向管理站提供一种外观,为设备代理SNMP协议的实现。管理站看起来面对着一个SNMP设备,其实这是有代理服务器所模拟出来的,代理服务器做了异种网络或不同版本代理和相应SNMP请求的数据转换工作。
3.SNMP中的关键词
(1)ASN.1是高级的数据描述语言,描述数据类型、结构、组织及编码方法。包含语法符号和编码规则两大部分。SNMP使用ASN.1描述协议数据单元(PDU)和管理信息库(MIB)。
(2)BER是ASN.1中的基本编码规则。描述具体的ASN.1对象如何编码为比特流在网络上进行传输。SNMP使用BER作为编码方案,数据首先经过BER编码,再经由传输层协议(一般是UDP)发送往接收方。接收方在SNMP的端口上收到PDU后,经过BER解码后,得到具体的SNMP操作数据。
(3)SMI是SNMP的描述方法。规定了使用到的ASN.1子类型、符号。ASN.1功能很强大,但SNMP只用到其中一小部分内容,为了方便使用,对这部分内容做了描述,限定了范围,这就是SMI。SMI规定了使用到的ASN.1类型、宏、符号集等。SMI是ASN.1的一个子集和超集。
(4)MIB是SNMP中使用到的管理信息库,定义了数据格式、类型、顺序、意义等,使用SMI中定义的类型和ASN.1中的基本类型进行对象描述,是一个使用SMI描述的管理信息库。每一类关心的事件都有一组MIB,比如网络接口有一颗MIB树,TCP有一颗MIB树,UDP也有一颗状态树。
(5)PDU是SNMP的协议数据单元。PDU是基本的通信格式,使用ASN.1描述,使用BER编码,通过传输层协议传送。