SNMP

我们在这里为您介绍以下相关内容:

什么是SNMP?

简单网络管理协议(SNMP)是由互联网架构委员会(IAB)为网络设备之间的信息交换,在RFC1157中定义的一个应用层协议。它是传输控制协议和网络协议(TCP&IP)协议组的组成部分。

SNMP是一个被业界广泛接受的互联网管理和监视协议,它绑定了许多专业的网络要素。在启用网络管理和监视任务之前,您需要配置SNMP代理,使之与网络管理系统(NMS)建立通信。

SNMP的基本组件都是什么,它们有什么功能?

SNMP包括

SNMP管理器

管理器或者管理系统是一个单独的实体,负责与被管设备上的SNMP代理通信。通常在一台计算机上运行一个或多个网络管理系统。

SNMP管理器的关键作用
  • 轮询代理
  • 从代理获取响应
  • 在代理上设置变量
  • 从代理同步事件

被管设备

被管设备或网络元素,是网络的组成不要,它要求对某些模块进行监视,如路由器、交换机、服务器、工作站、打印机、UPS等。

SNMP代理

代理是网络元素上安装的一个程序,启用代理可以允许它收集本地机器的管理信息数据,当SNMP管理器查询它的时候,它会将这些数据提供给SNMP管理器, 这些代理可以是标准的(网络SNMP),也可以是厂商特制的(如HP insight agent)。

SNMP代理的关键作用
  • 收集本地设备的管理信息
  • 存储并检索在MIB中定义的管理信息
  • 为管理器检索事件
  • 为一些非SNMP的可管理网络节点扮演一个代理的角色
基本的SNMP通信示意图
snmp组件

管理信息数据库(MIB)

每个SNMP代理都存储着一份描述被管设备参数的信息数据库,SNMP管理器通过这个数据库请求代理,以获取特定的管理信息,将需要的信息重送给网络管理系统(NSM)。 这个在代理和管理器之间通用的数据库,称为管理信息库(MIB)。

这些MIB通常包含为网络中的硬件节点定义的统计和控制标准值,SNMP也支持使用私有MIB来扩展在特定代理上定义的标准。

换句话讲,MIB文件存储的是SNMP管理器可以询问代理的问题,代理按照MIB中定义的信息收集和存储本地数据,这样,SNMP管理器就可以从各种类型的代理上,获知对应的答案。

MIB架构和对象标识符(对象ID或OID)

管理信息库(MIB)是管理网络要素的一个信息集合,它由被管对象组成,这些对象通过对象标识符(OID)来标识。

每个标识符都是唯一的,表示特定的被管设备特点。当被查询时,每个标识符所返回的值也会不同。如文本、数字、计数等

这里有两种被管对象或者OID:标量和表。通过下面的示例你可以简单明了的知道它们的含义

  • 标量:设备的厂商名称,结果只能存在一个。(也就是,标量对象定义的是一个单独的实例)
  • 表:四核CPU的利用率,这里我们得到的结果是每个CPU核心的利用率,也就意味着一个OID存在4个结果。(也就是,表对象可以定义多个与对象相关的实例,将他们集合在MIB表中)

每OID在MIB中是分层次的组织在一起的,MIB的分层模式可通过树结果显示出来。

典型的OID是一串整数值与点交错的字串,如"sysDescr" 的OID为 .1.3.6.1.2.1.1.1

MIB树形示意图
mib-oid树
 

SNMP基本命令

简单明了的信息交换使得SNMP称为一个被人广为接受的协议,而主要的原因则是简明的命令:

  • GET:GET操作是管理器向被管设备发出的请求,它用于从被管设备中检索数据。
  • GET NEXT:这个操作和GET类似,而不同的地方是,它主要是获取MIB中下一个OID的值。
  • GET BULK:GETBULK操作用来从大的MIB表中提取大量数据。
  • SET:管理员经常使用这个选项来修改或指派被管设备的值。
  • TRAPS:与上面从SNMP管理器发起的命令不同,TRAPS是代理发起的,它是SNMP代理在特定事件出现后,发给SNMP管理器的信号。
  • INFORM:这个命令和TRAP相似,由代理发起,此外,INFORM还包括SNMP管理器接收消息后确认信息。
  • RESPONSE:这个命令用来返回值,或者SNMP管理器检测到的动作信号。
 

典型的SNMP通信模式

作为TCP⁄IP协议组件的一部分,SNMP消息使用用户数据报协议(UDP)封装,通过网络协议传送。 以下为图例说明:

snmp层

GET⁄ GET NEXT⁄ GET BULK⁄ SET

snmp获取响应

 

TRAP

snmp陷阱

 

INFORM

snmp通知确认

 

SNMP默认使用161端口,TRAP⁄ INFORM使用162端口传输信息。
 

SNMP版本

从SNMP初代开始,它已经经历了许多的重大变更和更新。但是SNMP v1和v2c仍旧是应用最多的版本。 虽然SNMP v3相较于旧的版本更加的安全,开始慢慢的起步发展,但是在市场上还未被广泛接受。

SNMPv1:

这是协议的第一代版本,定义在RFCs 1155和1157中

SNMPv2c:

这是改进版的协议,对协议包的类型、传输映射、MIB架构等方面进行了加强,但是仍旧使用现有的SNMPv1管理架构(基于安全字符串,因此称为SNMPv2c)。它定义在RFC 1901、RFC 1905、RFC 1906、RFC 2578中。

SNMPv3:

SNMPv3是定义了安全的SNMP版本,SNMPv3也促进来SNMP条目的远程配置。它定义在RFC 1905、RFC 1906、RFC 3411、RFC 3412、RFC 3414、RFC 3415中。

SNMP每个版本的功能都更加的成熟和丰富,此外,在安全方面也逐渐加强,以下为各版本的安全技术对比:

SNMP v1 基于团体字符串的安全模式
SNMP v2c 基于团体字符串的安全模式
SNMP v2u 基于用户的安全模式
SNMP v2 基于团体的安全模式
SNMP v3 基于用户的安全模式

其它实用链接

提示: OpManager支持所有SNMP版本,您可以监视任何启用了SNMP的设备,通过处理SNMP陷阱来监视和管理它的性能。

我们的客户