一、SNMP 概念
SNMP 即简单网络管理协议(Simple Network Management Protocol)。
- 一种应用层协议,主要用于网络管理系统与被管理的网络设备(如路由器、交换机、服务器等)之间进行通信和信息交换。
- 主要使用两个端口,UDP 161 端口通常用于管理站向代理发送请求以及代理向管理站返回响应;UDP 162 端口则主要用于接收代理主动发送给管理站的通知(Trap)消息。
- 通过 SNMP,网络管理员可以远程监控和管理网络设备的各种状态和参数,比如设备的运行状态、性能指标(如 CPU 利用率、内存使用情况、网络流量等)、配置信息等。
- SNMP 通常包括管理站、代理和管理信息库(MIB)等要素。管理站用于发起管理操作,代理则运行在被管理设备上,响应管理站的请求并提供相关信息,而 MIB 定义了具体可管理的对象和属性
二、SNMP 组件
管理站(Manager):
- 整个 SNMP 网络管理体系中的核心控制部分。
- 作为网络管理任务的发起者和决策者,确定需要执行的具体管理操作和目标。
- 具备强大的信息处理和分析能力,能够解读从代理处接收到的数据,并基于此做出明智的管理决策。
- 向分布在网络中的各个代理发送多样化的管理指令,例如请求设备状态信息、配置参数的获取或修改等。
- 负责接收来自代理的反馈信息,这些信息包括被管理设备当前的状态、性能数据以及对管理指令的响应结果等。通过对这些反馈信息的分析和整合,管理站能够全面了解网络的运行状况。
代理(Agent):
- 作为设备与管理站之间的桥梁,运行在特定的网络设备上,与管理站建立通信连接。
- 当接收到来自管理站的请求时,代理会迅速响应,并按照要求收集和整理设备的相关状态和信息。
- 代理负责向管理站准确报告设备的各种状态,包括但不限于硬件的工作状态、软件的运行情况、网络连接的性能等。
- 代理还会将设备的特定信息,如配置参数、系统日志等传递给管理站,以协助管理站进行全面的监控和管理。
管理信息库(MIB):
- 一个精心组织和构建的数据库,其中包含了丰富多样的被管理对象信息。
- 这些信息详细定义了网络设备中可以被管理和监控的具体参数和属性,涵盖了从基本的设备配置到复杂的性能指标等各个方面。
- MIB 采用了层次化的结构进行组织,通过特定的标识符和分类方式,使得管理站能够准确地识别和访问所需的被管理对象。
- 为管理站和代理之间的信息交流提供了统一的标准和规范,确保了信息的一致性和可读性。
- 通过对 MIB 中定义的被管理对象的操作和查询,管理站可以获取到关于网络设备的详细情况,从而实现对网络的有效管理和监控。
被管对象(Managed Object):
- 代表了网络设备中具体的、可被明确识别和管理的资源或属性。
- 涵盖的范围广泛,可能包括设备的物理特性(如接口状态)、性能相关的数据(如 CPU 使用率、内存占用率)、系统配置信息(如网络协议参数)等。
- 每个被管对象都具有独一无二的标识符,这使得管理站可以准确地指向和操作特定的被管对象。
- 被管对象的定义和描述基于 MIB,MIB 规定了每个被管对象的属性、数据类型、可允许的操作等详细信息。
- 通过对被管对象的监控和管理,网络管理员可以深入了解网络设备的内部状态和运行情况,及时发现问题并采取相应的措施进行调整和优化。
三、SNMP 版本
**SNMP 协议目前有 3 个版本,分别是 V1、V2C、V3。不同版本之间的差异主要体现在安全性、消息封装格式、GET 效率等方面。**V1 是 SNMP 协议的最初版本,提供最小限度的网络管理功能。基于团体名认证,安全性较差,且返回报文的错误码较少。
- V2C 在 V1 版本的基础上引入了 GetBulk 和 Inform 操作,支持更多的标准错误码信息,支持更多的数据类型(Counter64、Counter32)。
- V3 在安全性方面进行了增强,提供了基于 USM(User Security Module)的认证加密和基于 VACM(View-based Access Control Model)的访问控制。V3 版本支持的操作和 V2C 版本支持的操作一样。
四、SNMP 原理
- 管理站与代理通信:管理站通过 UDP 协议向代理发送请求消息,代理接收到请求后,根据请求内容从相关的被管对象中获取数据或执行相应操作,并将结果封装在响应消息中通过 UDP 回传给管理站。
- 变量呈现与管理:SNMP 代理以变量呈现管理资料,管理系统通过 GET、GETNEXT 和 GETBULK 协定指令取回资讯,或在需要时使用 SET 协定指令配置更新或控制系统。
- 事件报告与通知:代理可以在特定事件发生时(如设备故障、状态改变等)主动向管理站发送陷阱(Trap)消息,以通知管理站出现了异常情况。管理站也可以通过 SNMP 接收网络节点的通知消息以及告警事件报告等来获知网络出现的问题。
五、SNMP 应用
- 网络设备监控:实时监测网络中的路由器、交换机、防火墙等设备的运行状态,如接口状态、流量、丢包率等。
- 服务器监控:监控服务器的性能参数,如 CPU 利用率、内存使用情况、磁盘空间等。
- 网络拓扑管理:帮助构建和维护网络拓扑结构,及时发现设备的添加、移除或故障。
- 性能管理:分析网络和设备的性能趋势,以便进行优化和规划。
- 故障诊断:通过收集的信息快速定位网络故障的位置和原因。
- 资源管理:合理分配和管理网络资源,确保资源的有效利用。
- 安全管理:可以监测一些与安全相关的参数,辅助进行网络安全管理。
- 环境监控:在一些数据中心等场景,用于监控温度、湿度等环境参数。