当前位置: 首页 > 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网络
  • [译]如何构建服务器端web组件,为何要构建?
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • CSS盒模型深入
  • Lsb图片隐写
  • Python连接Oracle
  • 爱情 北京女病人
  • 扑朔迷离的属性和特性【彻底弄清】
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 阿里云服务器购买完整流程
  • 如何正确理解,内页权重高于首页?
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​ssh免密码登录设置及问题总结
  • #include到底该写在哪
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (2)Java 简介
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (Forward) Music Player: From UI Proposal to Code
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (三)模仿学习-Action数据的模仿
  • (一)SpringBoot3---尚硅谷总结
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET连接MongoDB数据库实例教程
  • .NET下的多线程编程—1-线程机制概述
  • .NET学习教程二——.net基础定义+VS常用设置
  • /etc/fstab 只读无法修改的解决办法
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • [ C++ ] STL---string类的使用指南
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [bzoj1324]Exca王者之剑_最小割
  • [bzoj1901]: Zju2112 Dynamic Rankings
  • [C++]四种方式求解最大子序列求和问题
  • [codeforces]Checkpoints