SNMP 协议产生背景
如今,网络与人们的生活和工作联系越来越紧密,但随着网络的普及引发了两大问题:
- 网络规模逐渐增大,网络设备的数量成级数增加,网络管理员很难及时监控所有设备的状态、发现并修复故障。
- 网络设备可能来自不同的厂商,如果每个厂商都提供一套独立的管理接口(比如命令行),将使网络管理变得越来越复杂。
为解决以上两大问题,一套覆盖服务、协议和管理信息库的标准(SNMP)孕育而生。
总结:设备越来越多,管不过来了,需要一套协议协助管理
优点
- 基于三层协议(TCP/IP),传输层一般采用 UDP。
- 屏蔽物理设备差异
- 简单
SNMP 网络架构
NMS(Network Manager Service)
NMS 是网络中的管理者,是一个利用 SNMP 协议对网络设备进行管理和监视的系统。NMS 既可以指一台专门用来进行网络管理的服务器,也可以指某个设备中执行管理功能的一个应用程序。
NMS 可以向 Agent 发出请求,查询或修改一个或多个具体的参数值。同时,NMS 可以接收 Agent 主动发送的 Trap 信息,以获知被管理设备当前的状态。
总结:NMS 服务器可以为机房管理机器,也可以为公网上任意一台机器。管理着众多 Agent。
Agent
Agent 是网络设备中的一个应用模块,用于维护被管理设备的信息数据并响应 NMS 的请求,把管理数据汇报给发送请求的 NMS。
Agent 接收到 NMS 的请求信息后,完成查询或修改操作,并把操作结果发送给 NMS,完成响应。同时,当设备发生故障或者其他事件的时候,Agent 会主动发送 Trap 信息给 NMS,通知设备当前的状态变化。
总结:被 NMS 管理的众多服务器,可以被动接受 NMS 请求,也可主动上报信息给 NMS。
MIB
任何一个被管理的资源都表示成一个对象,称为被管理的对象。MIB 是被管理对象的集合。它定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。每个 Agent 都有自己的 MIB。MIB 也可以看作是 NMS 和 Agent 之间的一个接口,通过这个接口,NMS 可以对 Agent 中的每一个被管理对象进行读 / 写操作,从而达到管理和监控设备的目的。
以 restful 角度看,MIB 即 Agent 的众多指标资源,例如硬件信息(CPU、内存)、网络信息(流量)等。
MIB 视图
MIB 视图是 MIB 的子集合,配置 Agent 时用户可以将团体名 / 用户名与 MIB 视图绑定,从而限制 NMS 能够访问的 MIB 对象。用户可以配置 MIB 视图内的对象为 excluded 或 included。excluded 表示当前视图不包括该 MIB 子树的所有节点;included 表示当前视图包括该 MIB 子树的所有节点。
OID 和子树
MIB 是以树状结构进行存储的。树的节点表示被管理对象,它可以用从根开始的一条路径唯一地识别,这条路径就称为 OID)。如图 2 所示。管理对象 system 可以用一串数字 {1.3.6.1.2.1.1} 唯一标识,这串数字就是 system 的 OID。
子树可以用该子树根节点的 OID 来标识。如以 private 为根节点的子树的 OID 为 private 的 OID——{1.3.6.1.4}。
子树掩码
子树掩码可以和子树 OID 共同来确定一个视图的范围。子树掩码用十六进制格式表示,转化成二进制后,每个比特位对应 OID 中的一个小节,其中,
- 1 表示精确匹配,即要访问的节点 OID 与 MIB 对象子树 OID 对应小节的值必须相等;
- 0 表示通配,即要访问的节点 OID 与 MIB 对象子树 OID 对应小节的值可以不相等。
例如:子树掩码为 0xDB(二进制格式为 11011011),子树 OID 为 1.3.6.1.6.1.2.1,则对应关系如图 3 所示,所确定的视图就包括子树 OID 为 1.3..1.6..2.1(* 表示可为任意数字)的子树下的所有节点。
若子树掩码的 bit 数目大于子树 OID 的小节数,则匹配时,子树掩码的第一位与子树 OID 的第一小节对齐,第二位与第二小节对齐,以此类推,子树掩码中多出的 bit 位将被忽略
若子树掩码的 bit 数目小于子树 OID 的小节数,则匹配时,子树掩码的第一位与子树 OID 的第一小节对齐,第二位与第二小节对齐,以此类推,子树掩码中不足的 bit 位将自动设置为 1;
如果没有指定子树掩码,则使用缺省子树掩码(全 1)。
文档信息
- 本文作者:Lewin
- 本文链接:https://lewinz.com/2022/05/29/snmp-base/
- 版权声明:自由转载-非商用-非衍生-保持署名