SNMP是简单网络管理协议,于协助管理网络和SLAview基础协议的最常用协议之一。是一种应用层协议(OSI 模型的第 7 层),通常使用 UDP 传输协议的端口 161。SNMP 的历史可以追溯到 1988 年的RFC 1067,随着技术需求的出现,它在安全性和性能方面已经发展提升了不少。
SNMP协议最早在1988年由IETF(互联网工程任务组)定义,用于在TCP/IP网络上管理和监控网络设备。这些设备包括路由器、交换机、服务器、打印机、甚至是物联网设备等。
管理信息库(MIB):SNMP使用MIB(Management Information Base)来定义设备的管理数据。MIB是一种数据库,包含了每个网络设备的可管理对象,这些对象以树状结构存储,每个对象都有唯一的标识符(OID,Object Identifier)。
SNMP代理与管理器:SNMP系统主要由两部分组成:SNMP代理和SNMP管理器。代理运行在被管理的网络设备上,收集并存储设备的管理数据。管理器则是运行在网络管理系统上的应用程序,它通过SNMP协议与代理通信,获取管理数据或发送配置命令。
作为第 7 层协议的优势在于可以抽象其他网络层。因此,网络管理员可以控制原始网络之外的设备。由于对网络和处理资源的消耗很少,该协议最终得到传播,并因此被纳入相当简单的设备中,例如打印机。
SNMP 可帮助网络管理员定位网络中的意外问题和故障。通过使用 SNMP 管理器(例如 SLAview),可以直观地查看流量统计图表、打印机墨粉水平、多个设备的 CPU 和内存,甚至是设备中执行的进程数量。
除了 SNMP 管理器之外,每个需要监控的设备还需要一个 SNMP 代理。代理将接收来自管理器的请求并返回信息,如下图结构所示。
SNMP协议通过简单的命令集进行操作,主要包括以下几种类型:
Trap:SNMP代理主动发送Trap消息到管理器,报告设备状态的变化或故障。这是SNMP的一种非请求响应机制,用于告知管理器紧急情况或错误。
SNMP有多个版本,其中主要的版本包括:
SNMPv1:最早的版本,提供了基本的管理功能,但安全性较差。
SNMPv2c:增强了SNMPv1的功能,尤其是在性能和错误处理方面,但在安全性上仍然依赖简单的社区字符串。
SNMPv3:引入了强大的安全机制,包括认证和加密功能,大大提高了网络管理的安全性。
SNMP是一个应用层协议,专门用于网络设备的管理和监控。它通过在网络设备上运行的代理收集数据,并通过管理器获取这些数据或发送配置命令。虽然SNMP已经存在多年,但它依然是网络管理中的一个重要工具,尤其是在监控大规模网络基础设施时,发挥着不可替代的作用。