网络设备种类多种多样,不同设备厂商提供的管理接口各不相同,这使得网络管理变得愈发复杂。
在这种背景下,SNMP应运而生。
通过“利用网络管理网络”的方式,SNMP实现了对网络设备的高效和批量的管理;同时,SNMP协议也屏蔽了不同产品之间的差异,实现了不同种类和厂商的网络设备之间的统一管理。
SNMP简介SNMP(Simple Network Management Protocol) 简单网络管理协议,从字面意思可以看出它是用于网络管理的协议。
不同种类不同型号的设备(如交换机、路由器、服务器、打印机等)只要遵循这个SNMP协议,那么管理员就可以通过一些网络管理系统NMS(Network Management System)来对设备进行管控了。
默认SNMP是通过UDP161和162端口进行通信的。
目前SNMP共有v1、v2、v3三个版本,其中SNMPv1,v2采用的是明文进行传送的,SNMPv3是通过加密进行传送的。
如果对安全要求比较高就选用SNMPv3版本。
SNMP组成SNMP系统是由网络管理系统NMS、SNMP Agent、被管对象Management object和管理信息库MIB(Management Information Base)四部分组成。
NMS作为整个网络的网管中心,对设备进行管理。
每个被管理设备中都包含驻留在设备上的SNMP Agent进程、MIB和多个被管对象。
NMS通过与运行在被管理设备上的SNMP Agent交互,由SNMP Agent通过对设备端的MIB进行 *** 作,完成NMS的指令。
NMS:网络中的管理者,是一个采用SNMP协议对网络设备进行管理监视的系统,运行在NMS服务器上。
NMS可以向设备上的SNMP Agent发出请求,查询或修改一个或多个具体的参数值。
NMS也可以接收设备上的SNMP Agent主动发送的SNMP Traps,以获知被管理设备当前的一些状态信息。
SNMP Agent:被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
SNMP Agent接收到NMS的请求信息后,通过MIB表完成相应指令后,并把 *** 作结果响应给NMS。
当设备发生故障或者其它事件时,设备会通过SNMP Agent主动发送SNMP Traps给NMS,向NMS报告设备当前的状态变化。
Managed Object:被管理对象。
每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件如cpu、内存等,也可以是在硬件、软件如路由选择协议上配置的参数集合。
MIB:一个数据库,指明了被管理设备所维护的变量。
MIB在数据库中定义了被管理设备的一系列属性,如对象的名称、对象的状态、对象的访问权限和对象的数据类型等。
MIB也可以看作是NMS和SNMP Agent之间的一个接口,通过这个接口,NMS对被管理设备所维护的变量进行查询设置 *** 作。
MIB是以树状结构进行存储的。
树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别,这条路径就称为OID对象标识符(Obiect Identifier),如system的OID为1.3.6.1.2.1.1,interfaces的OID为1.3.6.1.2.1.2。
SNMP *** 作管理员需要向设备获取数据,所以 SNMP 提供了“读” *** 作;管理员需要向设备执行设置 *** 作,所以 SNMP 提供了“写” *** 作;设备需要在重要状况改变的时候,向管理员通报事件的发生,所以 SNMP 提供了“Trap” *** 作。
SNMP协议主要提供了三种用于控制MIB对象的基本 *** 作命令。
它们是:Get、Set 和 Trap。
1.Get:网络管理系统NMS主动向SNMP Agent发送查询请求。
NMS读取Agent处对象的值如内存使用率,接口流量等。
SNMP Agent接收到查询请求后,通过MIB表完成相应指令,并将结果反馈给NMS。
2.Set:NMS主动向SNMP Agent发送对设备进行Set设置 *** 作的请求管理端。
可以通过它来改动设备的配置或控制设备的运行状态。
比如可以设置设备的名称,关掉一个端口等。
SNMP Agent接收到Set请求后,通过MIB表完成相应指令,并将结果反馈给NMS。
3.Trap:SNMP Agent主动将设备产生的告警或事件上报给NMS,以便网络管理员及时了解设备当前运行的状态。
如果发生意外情况,Agent会向NMS的UDP162端口发送一个消息,告知NMS指定的变量值发生了变化。
Trap 消息可以用来通知NMS如线路的故障、硬件故障、认证失败等消息。
这样管理员可相应的作出处理。
SNMP报文SNMP报文主要由版本、团体名、SNMP PDU组成。
版本:版本标识符用于说明现在使用的是哪个版本的 SNMP。
如果是SNMPv1报文则对应字段值为0,SNMPv2c则为1。
团体名:用于在SNMP Agent与NMS之间完成认证,字符串形式,类似于密码,默认值为 public,可自行定义。
团体名包括“read”和“write”两种,执行SNMP查询Get *** 作时,采用“read”团体名进行认证;执行SNMP设置Set *** 作时,则采用“write”团体名进行认证。
SNMP PDU:协议数据单元PDU是 SNMP 消息中的数据区,即 Snmp 通信时报文数据的载体。
PDU 指明了 SNMP 的消息类型及其相关参数。
各类SNMP *** 作如Get、Set、Trap的报文封装在SNMP PDU中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)