目录

背景概述

SNMP简介

基于SNMP的网管结构概述

SNMP协议

SNMP报文格式

报文处理过程

MIB

MIB树结构

参考


背景概述

随着网络的规模越来越庞大,网络中的设备种类繁多,如何对越来越复杂的网络进行有效的管理,从而提供高质量的网络服务已成为网络管理所面临的最大挑战。网络管理已成为整个网络解决方案中重要的一部分。

网络管理通常包含4个要素:

  • 被管理节点:需要进行管理的设备。

  • 代理(Agent):跟踪被管理设备状态的软件或硬件。

  • 网络管理工作站(Manager):与在不同的被管理节点中的代理通信,并且显示这些代理状态的设备。

  • 网络管理协议:网络管理工作站和代理用来交换信息的协议。目前TCP/IP网络中应用最为广泛的网络管理协议是简单网络管理协议SNMP(Simple Network Management Protocol)

SNMP简介

SNMP(Simple Network Management Protocol) 是一套网络管理协议,虽然名字叫做简单网络管理协议,但实际上并不是字面上的意思,尤其是看到.1.3.6.1.2.1.1.1.0这样一串串诡异的数字时候,就会有点让人崩溃。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。

基于SNMP的网管结构概述

基于SNMP的网络管理体系结构中包含4个主要组成部分:

  • 网络管理站NMS(Network Management Station)

    NMS通常是一个独立的设备,运行网络管理应用程序。网络管理应用程序至少能够提供一个人机交互界面,网络管理员通过它完成绝大多数网络管理工作。

  • SNMP代理器(Agent)

    Agent是驻留在被管理设备的一个软件模块,主要负责接收和处理来自NMS的请求报文,并形成响应报文,返回给NMS;在一些紧急情况下,它会主动发送trap报文,通知NMS。

  • SNMP协议

    SNMP协议属于TCP/IP网络的应用层协议,用于在NMS和被管理设备间交互管理信息。

  • 管理信息库MIB(Management Information Base)

    MIB是一个被管理对象的集合,是NMS同Agent进行沟通的桥梁,可以使网管软件和设备进行标准对接。每一个Agent都维护这样一个MIB库,NMS可以对MIB库中对象的值进行读取或设置。

基于SNMP网络管理的示意图

从图中可以了解网络管理中涉及到的几个主要组成部分的相互关系,它们之间的通信方式描述如下:

  • NMS通过SNMP协议与设备的Agent通信,完成对MIB的读取和修改操作,从而实现对网络设备的监控与管理。

  • SNMP是NMS与Agent之间通信的载体,通过其协议数据单元PDU(Protocol Data Unit)完成信息交换。SNMP并不负责数据的实际传输,数据交换的任务是通过UDP等传输层协议来完成的。

  • Agent是设备上的代理进程,主要工作包括与NMS通信,对设备中的MIB库进行维护,以管理和监控设备中的各个模块。

  • MIB保存设备中各个模块的信息。通过对MIB信息的读写操作来完成对设备的监控和维护。

SNMP协议

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用于NMS与Agent的交互。

各种报文的操作如下:

  • get-request:从代理进程处提取一个或多个参数值。

  • get-next-request:从代理进程处提取紧跟当前参数值的下一个参数值。

  • set-request:设置代理进程的一个或多个参数值。

  • get-response:返回的一个或多个参数值。这个操作是由代理进程发出的,它是对前面3种操作的响应。

  • trap:代理进程主动发出的报文,通知管理进程有某些事件发生。

前面3种操作由NMS向Agent发出,后面2种操作由Agent向NMS发出。

SNMP报文格式

PDU类型的取值范围是0-4,正好表示5种SNMP消息。差错状态字段是一个整数,它是由代理进程标注的,指明有差错发生。

报文处理过程

Agent通过UDP端口161接收来自NMS的Request报文。

Agent接收到报文后,其基本处理过程如下:

  1. 解码:依据ASN.1基本编码规则,生成用内部数据结构表示的报文。如果此过程出现错误导致解码失败,则丢弃该报文,不做进一步处理。

  2. 比较SNMP版本号:将报文中的版本号取出,与本Agent支持的SNMP版本号比较。如果不一致,则丢弃该报文,不做进一步处理。

  3. 团体名验证:将报文中的团体名取出,此团体名由发出请求的网管站填写。如与Agent所在设备认可的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个Trap报文。SNMPv1提供较弱的安全措施,在版本3中这一功能被加强。

  4. 提取PDU:从通过验证的ASN.1对象中提出协议数据单元PDU。如果失败,丢弃报文,不做进一步处理。

  5. 处理PDU:根据不同的PDU,SNMP协议实体进行不同的处理。得到管理变量在MIB树中对应的节点,从相应的模块中得到管理变量的值,形成Response报文,编码发回网管站。

  6. 网管站得到响应报文后,经过同样的处理,最终显示结果。

MIB

MIB(管理信息库)是一个被管理对象的集合,它定义被管理对象的一系列属性,包括

  • 对象的名字

  • 对象的访问权限

  • 对象的数据类型

管理信息结构SMI(Structure of Management Information)规定了被管理的对象应该如何定义和组织,它定义了一系列MIB可以使用的数据类型,比如Counter、Gauge等。

MIB指明了网络元素所维护的变量,即能够被NMS查询和设置的信息,给出了一个网络中所有可能的被管理对象的集合的数据结构。

MIB树结构

MIB以树状结构进行存储,树的叶子节点表示管理对象,它可以通过从根节点开始的一条惟一路径来识别,这也就是OID(Object Identifier)。

OID是由一些系列非负整数组成,中间以"."分割,用于唯一标识管理对象在MIB树中的位置。由SMI来保证OID不会冲突。在上图的树形结构中,mgmt对象可以标识为:1.3.6.1.2,这种标识就叫做OID。iso.org.dod.internet.private.enterprises(1.3.6.1.4.1)这个标识,是给厂家自定义而预留的,比如华为的为1.3.6.1.4.1.2011,华三的为1.3.6.1.4.1.25506。

参考

《TCP/IP详解 卷一》

SNMP原理和MIB库相关推荐

  1. 学习 koa 源码的整体架构,浅析koa洋葱模型原理和co原理

    前言 这是学习源码整体架构系列第七篇.整体架构这词语好像有点大,姑且就算是源码整体结构吧,主要就是学习是代码整体结构,不深究其他不是主线的具体函数的实现.本篇文章学习的是实际仓库的代码. 学习源码整体 ...

  2. 基于SNMP的MIB库访问实现的研究

    蔡国森 (北京工商大学  计算机学院) 摘要  SNMP是用于网络管理/代理之间的请求/应答协议.管理信息库(MIB)定义了由代理者维护的各种变量,它们由管理者来进行存取操作,从而实现具体的网络管理. ...

  3. [转]基于SNMP的MIB库访问实现的研究

    蔡国森 (北京工商大学 计算机学院) 摘要 SNMP是用于网络管理/代理之间的请求/应答协议.管理信息库(MIB)定义了由代理者维护的各种变量,它们由管理者来进行存取操作,从而实现具体的网络管理.本文 ...

  4. 设计一个互联网交换设备的SNMP MIB库“X-MIB”

    设计一个互联网交换设备的SNMP MIB库"X-MIB": 问题描述 设备型号:字符串类型 设备生产厂商:字符串类型 设备名称:字符串类型 设备位置:字符串类型 设备运行时间:Ti ...

  5. SNMP MIB库的介绍

    管理信息库MIB 管理信息指在互联网的网管框架中被管对象的集合.被管对象必须维持可供管理程序读写的若干控制和状态信息.这些被管对象构成了一个虚拟的信息存储器,即管理信息库MIB. 管理程序就使用MIB ...

  6. SM4分组加密算法原理和c语言实现

    一.前言 在之前的文章中介绍了<SM3国密杂凑值算法的原理和c语言实现>,这篇文章主要是用c语言撸一个SM4分组加密算法. 随着信息安全的普及以及等级保护等安全政策落地,国密算法越来越频繁 ...

  7. Mybatis插件原理和PageHelper结合实战分页插件(七)

    今天和大家分享下mybatis的一个分页插件PageHelper,在讲解PageHelper之前我们需要先了解下mybatis的插件原理.PageHelper 的官方网站:https://github ...

  8. HBase学习指南之HBase原理和Shell使用

    HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell 转载于: ...

  9. IAP的原理和stm8的IAP

    一.引出(IAP的原理和stm8上实现IAP的问题) 具有IAP功能的单片机,程序可以分为两部分:IAP和APP.APP是用来实现真正功能的程序,而IAP是用来远程重新编程APP的程序.单片机上电时会 ...

  10. 单链表反转的原理和python代码实现

    链表是一种基础的数据结构,也是算法学习的重中之重.其中单链表反转是一个经常会被考察到的知识点. 单链表反转是将一个给定顺序的单链表通过算法转为逆序排列,尽管听起来很简单,但要通过算法实现也并不是非常容 ...

最新文章

  1. Dockerfile构建实践
  2. !aspxpages(即!dumphttpcontext)命令输出的解释
  3. lpi linux认证权威指南 pdf,LPI Linux认证指南读书笔记
  4. 电感计算软件_一文让你了解到共模电感和差模电感的差异
  5. @Configuration与@Component区别
  6. 企业网络推广专员浅析如何通过企业网络推广的方式提升网站权重?
  7. 从0到50家AI独角兽,中国人工智能凭什么让世界刮目相看?
  8. “make -n”和 “+command”的解释
  9. BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
  10. 掌握Python爬虫基础,仅需1小时!
  11. SpringCloud Greenwich(七)集成dubbo先启动消费者(check=false),然后启动提供者无法自动发现注册
  12. zsh 主题的下载和安装
  13. tensorflow离线安装指南
  14. SPS:设置访问群体
  15. TLS 1.3套件TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256
  16. LeetCode33. 搜索旋转排序数组(二分查找)
  17. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_07 缓冲流_4_缓冲流的效率测试_复制文件...
  18. random和stochastic的区别
  19. 《炬丰科技-半导体工艺》硅片湿法清洗技术
  20. ESC/POS 打印机指令

热门文章

  1. python 拼音地名对应关系,Python使用百度地图API根据地名获取相应经纬度
  2. PMP-35项目沟通管理
  3. 2022-2028年中国位置大数据行业市场专项调查及投资前景分析报告
  4. 进化算法——组合优化
  5. IOS-App Store 提审应用步骤
  6. 搜狗输入法彻底杜绝广告以及弹窗的几种办法
  7. 公式、图片、表格等转latex
  8. Android图像压缩库Tiny更新优化 解决X509TrustManager问题,重新编译libjpeg-turbo支持cpu全架构
  9. 微信小程序引入外部icon
  10. 如何测试短信验证码平台的安全和实用性?