简单网络管理协议(SNMP)

简单网络管理协议(SNMP)是一种应用程序层协议,用于监视和管理局域网(LAN)或广域网(WAN)上的网络设备。SNMP的目的是为网络设备(如路由器,服务器和打印机)提供一种通用语言,以便与网络管理系统(NMS)共享信息。

该协议的客户端/服务器体系结构包含三个组件:SNMP管理器,SNMP代理和管理信息库(MIB)。SNMP管理器充当客户端,SNMP代理充当服务器,管理信息库充当服务器的数据库。当SNMP管理器向代理询问问题时,代理将使用MIB提供答案。

SNMP协议有多种版本,并且SNMP非常流行,以至于大多数网络设备都预先捆绑了SNMP代理。但是,为了使用该协议,网络管理员必须首先更改其网络设备的默认配置设置,以便SNMP代理可以与网络的管理系统进行通信。

SNMP是Internet工程任务组(IETF)定义的原始Internet协议套件的一部分。该协议的最新版本SNMPv3包括用于身份验证,加密和访问控制的安全机制。

SNMP的工作方式

网络设备和服务上的SNMP软件代理与网络管理系统通信以中继状态信息和配置更改。NMS提供了一个界面,管理员可以从该界面发出 批处理命令并接收自动警报。

SNMP依靠管理信息库(MIB)的概念来组织有关设备度量标准信息的交换方式。MIB是网络设备组件和状态信息的形式描述。可以为物联网(IoT)中的任何网络设备创建MIB,包括IP摄像机,车辆,工业设备和医疗设备。除硬件外,SNMP还可用于监视服务,例如动态主机配置协议(DHCP)。

SNMP在网络设备和网络管理系统之间混合使用了推挽式通信。与MIB驻留在网络设备上的SNMP代理不断收集状态信息,但是仅在请求时或在网络的某些方面超过称为陷阱的预定义阈值时,才将信息推送到网络监视系统。陷阱消息通常在发生重大事件(例如严重的错误情况)时发送到管理服务器。

SNMP还包括“通知”消息类型,该消息类型允许网络监视工具确认来自设备的消息。通知消息允许代理重置触发的警报。网络管理工具还可以使用“设置”消息通过SNMP代理对网络设备进行更改。此功能允许网络管理器响应新的网络事件进行更改设备配置。

在大多数情况下,SNMP以同步模型运行,由SNMP管理器和代理启动的通信发送响应。通常,SNMP使用UDP作为其传输协议。用于SNMP流量的众所周知的UDP端口是161(SNMP)和162(SNMPTRAP)。这两个端口是基本默认值,并且在所有版本的SNMP中都相同。

由于协议体系结构的简单性,SNMP被称为“简单”。SNMP可以发出读取或写入命令,例如重置密码或更改配置设置。它还可以报告使用了多少带宽,CPU和内存。SNMP是使用最广泛的协议之一,它在广泛的硬件上受支持-从路由器,交换机和无线访问点等常规网络设备到打印机,扫描仪和物联网(IoT)设备等端点。

SNMP的组件

SNMP管理的网络中有四个主要组件:

  •         SNMP代理:该软件在受监视的硬件或服务上运行,收集有关磁盘空间, 带宽使用和其他重要网络性能指标的数据。当由SNMP管理器查询时,代理将请求的信息发送回管理系统。如果发生错误,座席也可以主动通知NMS。大多数设备都预先安装了SNMP代理,但是通常需要将其打开和配置。
  •         SNMP管理的网络节点:这些是运行代理的网络设备和服务。
  •         SNMP管理器:网络管理系统(NMS)是一个软件平台,充当代理向其提供信息的集中控制台。NMS将主动请求代理定期发送更新,并且网络管理员可以使用该信息做什么在很大程度上取决于NMS的功能丰富程度。有几种免费的SNMP管理器可用,但是通常它们的功能或可支持的节点数受到限制。另一方面,企业级平台为更复杂的网络提供高级功能,其中一些产品支持多达数万个网络节点。
  •         管理信息库(MIB):此数据库是一个文本文件(.mib),它逐项列出并描述了可以使用SNMP查询或控制的特定设备上的所有对象。每个MIB项都分配有一个对象标识符(OID)。

SNMP的工作方式

SNMP可以使用网络设备与管理系统之间的推拉通信混合功能来执行多种功能。它可以发出读或写命令,例如重设密码或更改配置设置。它还可以报告使用了多少带宽,CPU和内存,如果超出了预定义的阈值,某些SNMP管理器会自动向管理员发送电子邮件或文本消息警报。

在大多数情况下,SNMP以同步模型运行,由SNMP管理器发起的通信和代理发送响应。这些命令和消息通常通过用户数据报协议(UDP)或传输控制协议/互联网协议(TCP / IP)传输,称为协议数据单元(PDU):

  • GETRequest:由SNMP管理器生成,并发送给代理以获取变量的值,该变量的值由其OID标识, MIB 。
  • 响应:由代理发送到SNMP管理器,作为对GETRequest,GETNEXTRequest,GETBULKRequest和SETRequest的答复而发出。包含请求的变量的值。
  • GETNEXTRequest:由SNMP管理器发送给代理,以检索MIB层次结构中下一个OID的值。
  • GETBULKRequest:由SNMP管理器发送到代理,以有效地获取潜在的大量数据,尤其是大表。
  • SETRequest:由SNMP管理器发送给代理以发出配置或命令。
  • TRAP:代理发送到SNMP管理器的异步警报,用于指示发生了重要事件,例如错误或故障。
  • INFORMRequest:类似于TRAP的异步警报,但需要SNMP管理器确认收到。

Leave a Comment