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

news2024/11/23 21:14:20

        简单网络管理协议(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的功能有命名被管理对象、存储被管对象的数据类型、编码管理数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【交通建模】基于模型的自主交通仿真框架附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

【深入浅出Java并发编程指南】「难点 - 核心 - 遗漏」让我们一起探索一下CyclicBarrier的技术原理和源码分析

CyclicBarrier和CountDownLatch CyclicBarrier和CountDownLatch 都位于java.util.concurrent这个包下,其工作原理的核心要点: CyclicBarrier工作原理分析 那么接下来给大家分享分析一下JDK1.8的CyclicBarrier的工作原理。 简单认识CyclicBarrier 何为…

Nginx动静分离、缓存配置、性能调优、集群配置

一. Nginx动静分离 1. 准备 1个web程序:部署在7061端口,启动 【dotnet NginxWeb.dll --urls"http://*:7061" --ip"127.0.0.1" --port7061】 Nginx程序:监听7000端口 2. 目的 比如单独启动部署在7061端口下的web程序&am…

c++ 静态库,动态库的制作和使用

文章目录1.什么是库?2.静态库的制作1.静态库的命名规则2.静态库的制作与使用1.静态库的制作2.静态库的使用3.动态库的制作1.动态库的命名规则2.动态库的制作与使用1.动态库的制作2.动态库的使用3.动态库加载失败的原因4.静态库和动态库的对比1.程序编译成可执行文件…

[附源码]Python计算机毕业设计Django基于Java的失物招领平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

时序数据库选型

目录一、当前主流的时序数据库二、各库特性1、Influxdb2、Timescale3、Druid4、Kdb5、Graphite6、RRDtool7、OpenTSDB8、TDengine9、DolphinDB三、优缺点对比因为个人用的go,所以调研及对比主要针对适配了go语言的数据库。 一、当前主流的时序数据库 排名参考于h…

基于PHP+MySQL动漫专题网站系统的设计与实现

随着时代的发展,人们兴趣爱好也越来越广泛,动漫是当前年轻人比较钟爱的一个兴趣爱好之一,每年都会有大量的动漫爱好者定期的举办一些交流活动等,但是线下的这种交流方式明显不能满足当前动漫爱好者的需求,为此我开发了…

Zen of Python(python之禅)

在python中导入import this就会显式: 以下是中文英文翻译: Beautiful is better than ugly. 优美比丑陋好 Explicit is better than implicit. 清晰比晦涩好 Simple is better than complex. 简单比复杂好 Complex is better than complicated. 复杂比错…

【全干工程师必学】一文搞懂Vue2.0

一文搞懂Vue2.0一、前端工程化二、WebPack是什么基本使用实现奇偶行变色1.初始化包管理工具2.安装jquery3.在项目中安装webpack4.在项目中配置webpack5.运行代码mode 的可选值developmentproductionwebpack.config.js 文件的作用webpack 中的默认约定自定义打包的入口与出口web…

uni-app开发常用操作速查记录

记录一下uni-app中常用的使用方法或是操作步骤,方便后期速查使用. 1.设置对象属性 2.组件中数据变化监听方法 3.微信开发者工具中全局搜索与局部搜索 4.Page对象与Componet对象组成 5.tabbar页面切换方法 6.组件中自定义函数的参数传递 7.m…

Android Jetpack Compose的基本介绍

目录一、引言:Android Jetpack1.Jetpack是什么?2. 常用的Jetpack库二、Compose的基本概念1.什么是Jetpack Compose2.Compose的编程思想三、 Compose简单的案例: 一个倒计时效果1.构建一个Compose项目2.声明一个倒计时的UI3.利用线程使其动起来4.实现效果…

快速了解Docker

目录 1.简介 2.Docker的安装及环境配置 2.1.查看是否是root用户 2.2.查看当前内核版本 2.3.更新yum源 2.4.安装Docker所需要的工具包 2.5.设置yum源 2.6.下载安装Docker 2.7.启动Docker并且设置开机自启动 2.8.测试是否安装成功 3.Docker阿里云镜像仓库配置 4.Docker常…

C++ vector

目录 1.vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.3 vector 增删查改 1.2.4 vector 迭代器失效问题。(重点) 1.2.5 vector 在OJ中的使用 2.vec…

【Linux】Linux的常见指令详解(上)

目录 前言 ls pwd cd mkdir touch rm man tree nano cp mv cat echo more/less 前言 🧁Linux作为相较于windows的另一种操作系统,同时基于其开源的优越性,使得其在各各企业的使用率极高。因此学好Linux操作系统对我们来说是…

Mongoose应用和文件文件的上传和下载

一、Express框架访问MongoDB数据库 1、目的: ​ (1)mongoose模块的使用 ​ (2)学会代码的封装:dao层、service层、接口层 ​ (3)MVC设计思想:M(Model)、V(View)、C(C…

[附源码]Python计算机毕业设计Django基于SpringBoot的演唱会购票系统论文2022

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

c#与mysql连接和操作教程(增、删、改、查)

一、mysql的连接(使用的是vs2019) 1. 在一个项目中选择 工具 > NgtGet包管理器 > 管理解决方案的NuGet程序包 2. 搜索MySql.Data,然后下载,并在右边选着对应的项目进行安装(ps:每个项目要连接数据库…

【身份证识别】基于BP神经网络实现身份证识别附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

代码随想录刷题|LeetCode 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

目录 300.最长递增子序列 思路 1、dp[i]的定义 2、递推公式 3、dp数组初始化 4、确定遍历顺序 5、推导dp数组 最长递增子序列 674. 最长连续递增序列 思路 最长连续递增序列 动态规划 贪心算法 718. 最长重复子数组 思路 1、确定dp数组的含义 2、确定递推公式 3、dp数组初始化…

docker 命令

目录 Docker 环境信息命令 docker info docker version 系统日志信息常用命令 docker events docker logs docker history 容器的生命周期管理命令 docker create docker run 常用选项 系统 网络 健康检查 命名空间选项 cgroup资源限制选项 CPU CPUset devi…