当前位置: 首页 > news >正文

[网络工程师]-应用层协议-SNMP

        简单网络管理协议(Simple Network Management Protocol,SNMP)是在应用层上进行网络设备间通信的管理协议,可以用于网络状态监视、网络参数设定、网络流量统计与分析、发现网络故障等。SNMP基于UDP协议,由SNMP协议、管理信息库和管理信息结构组成。

1、SNMP协议

1.1 SNMP PDU

        SNMP规定了5个重要的协议数据单元PDU,也叫SNMP报文。SNMP报文可以分为从管理站到代理的SNMP报文和从代理到管理站的SNMP报文(SNMP报文建议不超过484个字节)。常见的SNMP报文如下表所示:

从管理站到代理的SNMP报文从代理到管理站的SNMP报文
从一个数据项取数据把值存储到一个数据项
Get-Request
(从代理进程出提取一个或多个数据项)
Set-Request
(设置代理进程的一个或多个数据项)
Get-Response
(是代理进程作为对Get-RequestGet-Next-RequestSet-Request的响应)
Get-Next-Request
(从代理进程处提取一个或多个数据项的下一个数据项)
Trap
(代理进程主动发出的报文,通知管理进程有某些时间发生)

        SNMP协议实体发送请求和应答报文的默认端口号是161,SNMP代理发送陷阱报文(Trap)的默认端口号是162。

1.2 SNMP版本

        目前SNMP有SNMPv1、SNMPv2、SNMPv3三个版本,各版本的特点如下所示:

版本特点
SNMPv1易于实现:使用团体名认证(属于同一团体的管理站和被管理站才能互相认证)
SNMPv2可以实现分布和集中两种方式的管理:增加管理站之间的信息交换;改进管理信息机构;增加多协议支持;引入信息模块的概念(包括MIB模块、MIB的依从性声明模块、代理能力说明模块)
SNMPv3模块化设计;提供安全的支持;基于用户的安全模型

1.3 SNMPv2接收报文和发送报文

        SNMPv2接收报文的过程:

        1)对报文进行语法检查,丢弃出错的报文;

        2)把SNMP报文部分、源端口号和目标端口号交给认证服务。如果认证失败,发送一个陷阱,丢弃报文;

        3)如果认证通过,则把SNMP报文转换成ASN.1的形式(抽象语法标记,描述了一种对数据进行表示、编码、传输和解码的数据格式);

        4)协议实体对SNMP报文做语法检查。如果通过检查,则根据团体名和适当的访问策略作相应的处理。

         SNMPv2发送报文的过程:

        1)根据要实现的协议操作构造SNMP报文;

        2)把SNMP报文、源端口、目标端口以及要加入的团体名传送给认证服务,认证服务产生认证码或对数据进行加密,返回结果;

        3)加入版本号和团体名构造报文;

        4)进行BER编码(将 ASN.1 类型的值编码成比特流),产生0/1比特串并发送出去。

1.4 SNMPv3安全分类

        在SNMPv3中有两类安全威胁是一定要提供防护的:主要安全威胁和次要安全威胁。

        1)主要安全威胁:修改信息和假冒。修改信息是指擅自修改SNMP报文,篡改管理操作,伪造管理对象;假冒就是冒充用户标识。

        2)次要安全威胁:修改报文流和消息泄露。修改报文流可能出现乱序、延长、重放的威胁;消息泄露则可能造成SNMP之间的信息被窃听。

        另外有两种服务不被保护或者无法保护:拒绝服务和通信分析。

1.5 SNMP轮询监控

        SNMP采用轮询监控方式,管理者按一定时间间隔向代理获取管理信息,并根据管理信息判断是否有异常事件发生。当管理对象发生紧急情况时,可以使用名为Trap信息的报文主动报告。轮询监控的主要优点是对代理资源要求不高,缺点是管理通信开销大。SNMP的基本功能包括网络性能监控、网络差错检测和网络配置。

        假定在SNMP网络管理中,轮询周期是N,单个设备轮询时间为T,网络没有拥塞,则

支持的设备数X=\frac{N}{T}

2、管理信息库

        管理信息库(Management Information Base,MIB)指定主机和路由器等被管设备需要保存的数据项和可以对这些数据项进行的操作。也就是说只有MIB中的对象才能被SNMP管理。目前使用的是MIB-2,常见的MIB-2信息如下表所示:

类别(标号)描述
system(1)主机、路由器操作系统
interface(2)网络接口信息
address translation(3)地址转换(废弃多年)
ip(4)IP信息
icmp(5)ICMP信息
tcp(6)TCP信息
udp(7)UDP信息
egp(8)EGP信息
cmot(9)CMOT信息(废弃多年)

        每个MIB-2信息下面包含若干个MIB变量,如system组下的sysuptime表示距上次启动的时间,ip组下的ipDefaultTTL表示IP在生存时间字段的值。SNMP MIB中被管对象的访问方式有 只读、读写、只写和不可访问四种,不包括可执行。

3、管理信息结构

        信息管理结果(Structure of Manaement Information,SMI)定义了命名管理对象和定义对象类型(包括范围和长度)的通用规则,以及对对象和对象的值进行编码的规则。SMI的功能有命名被管理对象、存储被管对象的数据类型、编码管理数据。

相关文章:

  • 【云原生之kubernetes实战】在k8s环境下部署jpress开源网站
  • HTML+CSS+JS网页设计期末课程大作业 DW个人博客网站制作 web前端开发技术 web课程设计 网页规划与设计
  • SpringBoot_整合PageHelper
  • 【数据结构与算法】一套链表 OJ 带你轻松玩转链表
  • C/C++大学课程信息系统
  • 【网络编程】第三章 网络套接字(TCP协议程序+多进程+多线程+线程池)
  • 基于物联网设计的自反馈深紫外杀菌消毒系统(STM32F407)
  • react路由v6版本NavLink的两个小坑及解决
  • CSDN第11期周赛总结
  • 编程语言介绍
  • 【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】
  • Tomcat经验2
  • 为什么说C++太复杂(复杂到哪了?)
  • k8s部署手册-v03
  • 基于keras与tensorflow手工实现ResNet50网络
  • 【5+】跨webview多页面 触发事件(二)
  • CEF与代理
  • express + mock 让前后台并行开发
  • JavaScript HTML DOM
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java到底能干嘛?
  • Java新版本的开发已正式进入轨道,版本号18.3
  • js作用域和this的理解
  • Just for fun——迅速写完快速排序
  • Laravel核心解读--Facades
  • markdown编辑器简评
  • Service Worker
  • Spark学习笔记之相关记录
  • 机器学习 vs. 深度学习
  • 简析gRPC client 连接管理
  • 跨域
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • #pragam once 和 #ifndef 预编译头
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $(function(){})与(function($){....})(jQuery)的区别
  • $refs 、$nextTic、动态组件、name的使用
  • (ZT)一个美国文科博士的YardLife
  • (翻译)terry crowley: 写给程序员
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET : 在VS2008中计算代码度量值
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net(C#)自定义WinForm控件之小结篇
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • ::
  • :中兴通讯为何成功
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [Bugku]密码???[writeup]
  • [IDF]摩斯密码
  • [IE编程] 多页面基于IE内核浏览器的代码示例
  • 不存在具有键“test”的“IEnumerableSelectListItem”类型的 ViewData 项。
  • oracle分页排序查询,Oracle实现分页查询的SQL语法汇总
  • 第二章 变量
  • oracle一个表多触发器,oracle中同一张表多个触发器的执行顺序
  • 记学习hadoop时无法启动namenode的问题
  • oracle clob 正则法则,oracle Clob数据生成SQl
  • oracle用rowid去重
  • 10_jQuery_鼠标事件
  • ubuntuan安装oracle,Ubuntu下安装oracle客户端
  • Docker -- 系统整洁之道 -- 1