什么是SNMP
SNMP简单网络管理协议是一种应用层协议,他为不同种类和厂商的网络设备提供够一个统一的管理接口,对这些设备进行监控,每个应用层协议都有一个传输层协议作为辅助,SNMP的报文就是用UDP来传输的,网络管理员可以利用SNMP平台在网络上的任意节点完成信息查询、信息修改等工作。
-
为什么SNMP以UDP为报文承载,udp不是不可靠吗?
SNMP 的设计目标是 简单、轻量、高效,UDP 的特性与这些目标高度契合:
-
低开销:UDP 没有连接建立和维护的开销,适合频繁的查询和响应操作。
-
快速响应:UDP 的传输延迟低,适合实时性要求较高的网络管理任务。
-
简单实现:UDP 协议本身简单,易于在资源受限的设备(如路由器、交换机)上实现。
尽管 UDP 是不可靠的,但 SNMP 通过超时重试、数据包大小限制和应用层可靠性机制,弥补了 UDP 的不足。在大多数网络管理场景中,UDP 的性能和效率优势远远超过了其不可靠性带来的影响。
SNMP的基本组件
SNMP基本组件包括网络管理系统(NMS)、代理进程(Agent)、被管对象(Managed Object)和管理信息库(MIB)。
NMS
NMS在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。
-
NMS可以向设备上的Agent发出请求,查询或修改一个具体的参数值。
-
NMS可以接收设备上的Agent主动发送的Trap信息,来获知被管理设备当前的状态。
Agent
Agent是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。
-
Agent接收到NMS的请求信息后,通过MIB表完成相应指令后,并把操作结果响应给NMS。
-
当设备发生故障或者其它事件时,设备会通过Agent主动发送信息给NMS,向NMS报告设备当前的状态变化。
Managed Object
Managed Object指被管理对象。每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件,也可以是在硬件、软件(如路由选择协议)上配置的参数集合。
MIB
MIB是一个数据库,指明了被管理设备所维护的变量,是能够被Agent查询和设置的信息。MIB在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。通过MIB,可以完成以下功能:
-
Agent通过查询MIB,可以获知设备当前的状态信息。
-
Agent通过修改MIB,可以设置设备的状态参数。
SNMP的MIB采用树型结构,每个对象标识符OID对应于树中的一个管理对象,该树的每个分支都有一个数字和一个名称,并且每个点都以从该树的顶部到该点的完整路径命名,如system的OID为1.3.6.1.2.1.1,interfaces的OID为1.3.6.1.2.1.2。
SNMP版本
SNMP有三种版本:SNMPv1,SNMPv2c和SNMPv3。
-
SNMPv1:基于团体名认证,安全性较差,且返回报文的错误码也较少。它在RFC 1155和RFC 1157中定义。
-
SNMPv2c:引入了GetBulk和Inform操作,支持更多的标准错误码信息,支持更多的数据类型。它在RFC 1901,RFC 1905和RFC 1906中定义。
-
GetBulk:管理站发送 GetBulk 报文,报文中会指定起始 OID 以及希望获取的对象数量等参数。代理设备接收到请求后,会从指定的起始 OID 开始,按照顺序尽可能多地获取并返回相应 OID 的值。如果在获取过程中遇到无法继续获取的情况,比如到达 MIB 树的叶子节点或者超出了可访问的范围,代理设备会返回已经获取到的数据,并在报文中标记相关的状态信息,常用于需要一次性获取大量网络设备信息。
-
Inform:与 Trap 操作类似,当一个代理设备检测到某些需要上级管理站知晓的重要事件时,就可以通过 Inform 操作向管理站发送通知,但 Inform 操作要求接收方管理设备对收到的通知进行确认回复,以确保通知的可靠传递。
-
-
SNMPv3:提供了基于USM(User Security Module)的认证加密和基于VACM的访问控制。
SNMP端口
SNMP如何工作?
一旦网络中启动SNMP协议,NMS作为整个网络的网管中心,会对设备进行管理。每个被管理设备都包含驻留在设备上的Agent、多个被管对象和MIB,NMS通过与运行在被管理设备上的Agent交互,由Agent通过对设备端的MIB的操作,完成NMS的指令。SNMP的工作原理是将协议数据单元(也称为SNMP GET请求)发送到响应SNMP的网络设备。用户通过网络监控工具可以跟踪所有通信过程,并从SNMP获取数据。
Trap不属于NMS对被管理设备的基本操作,它是被管理设备的自发行为。当被管理设备达到告警的触发条件时,会通过SNMP Agent向NMS发送Trap消息,告知设备侧出现的异常情况,便于网络管理人员及时处理。