snmp 获得硬件信息_计算机网络基础课程—简单网络管理协议(SNMP)

ffd1cc0e13845df0440deac4e32002e8.gif

简单网络管理协议

(Simple Network Management Protocol)

•除了提供网络层服务的协议和使用那些服务的应用程序,因特网还需要运行一些让管理员进行设备管理、调试问题、控制路由、监测机器状态的软件。这种行为称为网络管理。

•随着网络技术的飞速发展,网络数量、网络设备越来越多,而且许多设备来自各个不同的厂家,如何管理这些设备就变得更加重要了。

•从设备来看,基于TCP/IP得网络管理包含两个部分:网络管理站和被管理的网络单元(也叫被管设备)。(见下下页示例图)

–网络管理站是运行管理进程的主机。一般都是带有彩色监视器的工作站,可以显示所有被管设备的状态(例如连线是否掉落、各连线上的流量状况)。

–被管设备主要包括种类繁多的被管主机和被管路由器,但都应该是运行TCP/IP协议的。在被管设备中需要运行与管理相关的软件,叫做代理程序(Agent)或代理进程。

–管理站作为客户,运行客户端的软件;而各个被管设备运行的代理程序为服务器端程序

•为进行管理,管理进程(客户端)需要和代理程序(服务器端)进行通信,这种通信可以有两种方式:

–管理进程向代理进程发出请求,询问一个具体的参数(如询问网络单元中不可达的端口数目)或者要求代理进程改变某些参数值(如把 IP 数据包的生存期改为 64 TTL)

–代理进程主动向管理进程报告有某些重要的事件发生(如某个连接口故障)

•单个被管设备可能接收多个管理站的管理。管理软件使用授权机制来确保只有获得授权的管理员才能管理相应的设备。同时也支持多等级授权。例如:允许多个管理员从某个路由器获得信息,但是只允许其中一部分的管理员能修改和控制路由。

759f4d6ff2ee3f0db1460e2ec762ff29.png

•最初,许多网络都在链路层协议中包含管理协议,这样,即使高层协议失效,也可以在底层进行控制。

•但是,对于广域网,基于TCP/IP的因特网不可能只用单一的链路层协议,而是通常是由多种物理网络由IP路由连接而成。因此,因特网管理和单一网络管理是不同的。这种不同表现在:

–单一网络的管理工作站不能控制异质路由设备

–受控实体不使用相同的链路层协议

–管理工作站控制的机器可能在因特网中的任意一个节点,管理工作站有可能需要控制和它不在同一物理网络中的设备,因此除非使用端到端的高层连接,管理工作站不能与受控设备进行通信。

•因此因特网管理协议工作在应用层,使用运输层协议进行通信。

•管理协议工作在运输层之上有如下的好处:

–协议可以设计成与硬件无关,因而相同的协议可以用于所有被管设备

–从管理员的角度来看,单一的管理协议集意味着所有的路由将响应相同的命令集,通过使用TCP/IP通信,管理员可以控制整个IP网络,而无需直接接触具体的每个物理网络或路由器类型。

•当然,工作在应用层也提出了更多的要求:

–就需要下层协议都是在正常工作的,否则无法进行网管所需要的高层通信

–需要操作系统也是正常工作的,操作系统不正常,就不可能达到应用层

•基于TCP/IP的网络管理协议分为两个部分:

–其一是管理中所需要的数据及其格式,分别为:

•管理信息库(Management Information Base)

•管理信息结构(Structure of Management Information)

–其二是规定运行在管理站上的客户软件如何与管理代理进行通信,这部分定义了客户与服务器端交换信息的格式和意义。即简单网络管理协议。

•下面分别介绍

>

•简单网络管理协议(Simple Network Management Protocol)

•SNMP 规定管理进程如何与管理代理进行通信,定义了客户与服务器端交换信息的格式和意义。此外,提供管理授权机制。

•早期的管理方式是提供一些管理命令,如重启系统用reboot、删除或增加路由用 delete 或 add 等等。但是这种方式的一个重要缺陷是对于每种数据项的每种操作都必须定义一个单独的命令,这样,当出现一种新的数据项时,需要增加相应的协议。

•SNMP采取另一种方式,

•SNMP 规定了两类从管理进程到代理的基本命令:

–从一个数据项取数据,这包括两个命令:

•get-request:从代理进程处提取一个或多个数据项

•get-next-request:从代理进程处提取一个或多个数据项的下一个数据项(关于“下一个”于数据格式有关,在后面讲。)

–把值存储到一个数据项中。

•set-request:设置代理进程的一个或多个数据项

•而其他的命令都是通过这两类命令来实现。

•从代理进程到管理进程规定了两个操作:

–get-response:这个操作是代理进程作为对上述三个管理进程操作的响应。

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

•前四种操作是简单的请求--应答方式,而 SNMP 传输通常使用UDP ,因而需要使用超时重传机制。

•SNMP 报文格式:

6b3a4f8aa5c43556b20ff824213f422e.png

SNMP报文使用ASN.1编码,其各字段长度取决于其取值,因此整个长度(除了IP、UDP首部长度确定)不是固定的。

•Abstract Syntax Notation 1 是一种形式语言,有两种表示方式:

–供人阅读使用的

–压缩编码表示,用于通信协议

•特点:

–无歧义

–标准化

–互操作

•版本字段的值为SNMP版本号减 1

•共同体字段是管理进程与代理进程之间的明文格式的口令,默认值为 public

PDU类型字段

cb32a59c352f94f1ffe6ccb3f091f842.png

0-3时的报文格式如上述表格

而为4时有所不同

•请求标识由管理进程在命令中设置,由代理进程在响应中返回。该字段用于使客户进程能够将服务器进程发出的响应和客户进程先前发出的查询进行匹配。

•差错状态字段由代理进程标注,指明有差错发生,差错发生在哪个参数。

de8fced66ac30b85e14904697cd48440.png

•差错索引字段是一个整数偏移量,指明当有差错发生时,差错发生在哪个参数。它是由代理进程标注的,且只在差错状态为2、3、4时才进行标注。

•名称和值字段是要请求的数据名称或要设置的变量名称以及其值。

•信息管理库(Management Information Base)(MIB-II RFC 1213 1991)

•本标准指定主机和路由器等被管设备需要保存的数据项,以及可以对这些数据项进行的操作。例如:MIB 规定 IP 软件必须保存到达每个网络接口的8位组的数目,并规定网络管理软件只能读这项数据。

•MIB把管理信息划分为八组,每组都有若干种数据项:

ecf9bb47a6f3b5d060a4fb0c36b7d949.png

010c1f9767fc2771f2ec1be9051080b6.png

•管理信息结构(Structure of Management Information)(RFC 1155)

•对MIB中允许的变量类型进行约束,定义MIB 中各种数据项的数据结构和表示符号,并指定命名变量的规则。SMI规定所有的MIB变量也必须使用ASN.1。

•SNMP中使用的数据类型如下:

–INTEGER、OCTER STRING、……、SEQUENDE OF等共12种。

•MIB变量的命名采用对象标识符(Object Identifier),所用对象标识符组成一个名称空间,由OSI 与 ITU 共同管理对象标识符命名体系利用对象标识符命名体系可以为任意对象命名(如每个国际协议标准都有一个名称)

•每个命名都是全球唯一的绝对名称

•名称空间为一个层次结构(类似DNS)(如下页图)

f17ea46ed9f2aaf87b31ef1977618f87.png

8b822c02480497ef2238e05b08910475.png

•说明:

•层次结构中每个节点的对象标识符是由从根节点到其上的数字序列组成,如 mib 的对象标识符为 1.3.6.1.2.1,为方便阅读也可以用相应的字符序列 iso.org.dod.internet.mgmt.mib

•可以看到在MIB中说明的八个组实际上是对象标识符空间中mib节点的8个子节点。这8个节点进一步可以往下分,即为各个组的变量。例如 ipInReceives 是 ip 下的第三个节点,则其对象标识符为:1.3.6.1.2.1.4.3 ,相应字符序列为:iso.org.dod.internet.mgmt.mib.ip.ipInReceives

•末尾为0表明是一个变量的实例:如1.3.6.1.2.1.4.3 .0,标识一个1.3.6.1.2.1.4.3 (ipInReceives的)变量的实例。

•以上介绍的是SNMPv1,1993年,发表SNMPv2(RFC 1441),版本二的改进:

–为从代理进程读取大块数据而定义了一个新的分组

–为使在管理进程之间通信而增加了另一个分组

–定义了两个新的 MIB ,用于管理进程之间的数据

–提高了安全性, 可以对报文进行加密和鉴别

•小结

•SNMP是一种简单的管理进程和代理进程之间的请求应答协议。

•MIB中定义了所有代理进程所包含的、能够被管理进程查询和设置的变量。

•所有这些变量都以对象标识符进行标识,这些对象标识符构成了一个层次命名结构。

上海艾磊科技有限公司专门为企业提供IT咨询,IT外包,系统集成,以及各类IT增值服务。其中增值服务包括OFFICE 365云服务,鼎捷企业ERP管理软件,云备份,企业邮箱,无线覆盖,上网行为管理,VPN架设,网络安全服务,INTERNET接入,设备租赁, IP电话服务。

c6b21b95e341a4ff92c93578d58af3e6.png

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

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

相关文章

僵尸毁灭工程 服务器已停止运行,《僵尸毁灭工程》steam is not enabled错误解决方法...

Steam 上面的 Project Zomboid 因为带有 VAC 所以建服开服需要 Steam服务器认证,这也是出现 steam is not enabled 错误主要原因,也是无法和普通零售正版所建的服务器联机的罪魁祸首。分两种情况(下面 Project Zomboid 均简称PZ):1、steam版P…

spring boot 1.4默认使用 hibernate validator

spring boot 1.4默认使用 hibernate validator 5.2.4 Final实现校验功能。hibernate validator 5.2.4 Final是JSR 349 Bean Validation 1.1的具体实现。 How to disable Hibernate validation in a Spring Boot project As [M. Deinum] mentioned in a comment on my original …

python mpi开销_GitHub - hustpython/MPIK-Means

并行计算的K-Means聚类算法实现一,实验介绍聚类是拥有相同属性的对象或记录的集合,属于无监督学习,K-Means聚类算法是其中较为简单的聚类算法之一,具有易理解,运算深度块的特点.1.1 实验内容通过本次课程我们将使用C语…

服务器修改开机启动项,启动项设置_服务器开机启动项

最近很多观众老爷在苦觅关于启动项设置的解答,今天钦编为大家综合5条解答来给大家解开疑惑! 有98%玩家认为启动项设置_服务器开机启动项值得一读!启动项设置1.如何在bios设置硬盘为第一启动项详细步骤根据BIOS分类的不同操作不同:…

字符串查找字符出现次数_查找字符串作为子序列出现的次数

字符串查找字符出现次数Description: 描述: Its a popular interview question based of dynamic programming which has been already featured in Accolite, Amazon. 这是一个流行的基于动态编程的面试问题,已经在亚马逊的Accolite中得到了体现。 Pr…

Ubuntu 忘记密码的处理方法

Ubuntu系统启动时选择recovery mode,也就是恢复模式。接着选择Drop to root shell prompt ,也就是获取root权限。输入命令查看用户名 cat /etc/shadow ,$号前面的是用户名输入命令:passwd "用户名" 回车就可以输入新密码了转载于:…

服务器mdl文件转换,Simulink Project 中 MDL 到 SLX 模型文件格式的转换

打开弹体示例项目并将 MDL 文件另存为 SLX运行以下命令以创建并打开“sldemo_slproject_airframe”示例的工作副本。Simulink.ModelManagement.Project.projectDemo(airframe, svn);rebuild_s_functions(no_progress_dialog);Creating sandbox for project.Created example fil…

vue 修改div宽度_Vue 组件通信方式及其应用场景总结(1.5W字)

前言相信实际项目中用过vue的同学,一定对vue中父子组件之间的通信并不陌生,vue中采用良好的数据通讯方式,避免组件通信带来的困扰。今天笔者和大家一起分享vue父子组件之间的通信方式,优缺点,及其实际工作中的应用场景…

Java System类identityHashCode()方法及示例

系统类identityHashCode()方法 (System class identityHashCode() method) identityHashCode() method is available in java.lang package. identityHashCode()方法在java.lang包中可用。 identityHashCode() method is used to return the hashcode of the given object – B…

Linux中SysRq的使用(魔术键)

转:http://www.chinaunix.net/old_jh/4/902287.html 魔术键:Linux Magic System Request Key Hacks 当Linux 系统不能正常响应用户请求时, 可以使用SysRq小工具控制Linux. 一 SysRq的启用与关闭 要想启用SysRq, 需要在配置内核时设置Magic SysRq key (CO…

链接服务器访问接口返回了消息没有活动事务,因为链接服务器 SQLEHR 的 OLE DB 访问接口 SQLNCLI10 无法启动分布式事务。...

查看一下MSDTC啟動是否正確1、运行 regedt32,浏览至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC。添加一个 DWORD 值 TurnOffRpcSecurity,值数据为 1。2、重启MS DTC服务。3、打开“管理工具”的“组件服务”。a. 浏览至"启动管理工具"。b.…

micropython 蜂鸣器_基于MicroPython的TPYBoard微信远程可燃气体报警器的设计与实现...

前言在我们平时的生活中,经常看到因气体泄漏发生爆炸事故的新闻。房屋起火、人体中毒等此类的新闻报道层出不穷。这种情况下,人民就发明了可燃气体报警器。当工业环境、日常生活环境(如使用天然气的厨房)中可燃性气体发生泄露,可燃气体报警器…

Java PropertyPermission getActions()方法与示例

PropertyPermission类的getActions()方法 (PropertyPermission Class getActions() method) getActions() method is available in java.util package. getActions()方法在java.util包中可用。 getActions() method is used to get the list of current actions in the form of…

源码安装nginx以及平滑升级

源码安装nginx以及平滑升级作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。欢迎加入:高级运维工程师之路 598432640这个博客不方便上传软件包,我给大家把软件包放到百度云链接:htt…

ajax 跨站返回值,jquery ajax 跨域问题

补充回答:你的动态页只是一个请求页。例如你新建一个 get.asp 页面,用以下代码,在服务端实现像URL异步(ajax)请求,将请求结果输出。客户端页面再次用ajax(JS或者jquery的)向get.asp请求数据。两次ajax完成异域数据请求。get.asp代…

Bootstrap学习笔记系列1-------Bootstrap网格系统

目录 Bootstrap网格系统 学习笔记简单网格偏移列嵌套列列排序Bootstrap网格系统 学习笔记 简单网格 先上代码再解释 <!DOCTYPE html> <html><head><title>Bootstrap 模板</title><meta charset"utf-8"><!-- 引入 Bootstrap -…

Java类类的getDeclaringClass()方法和示例

类的类getDeclaringClass()方法 (Class class getDeclaringClass() method) getDeclaringClass() method is available in java.lang package. getDeclaringClass()方法在java.lang包中可用。 getDeclaringClass() method is used to return the declared Class object denotin…

乐高泰坦机器人视频解说_“安防”机器人将亮相服贸会

可巡视园区、自动避障、自动充电&#xff0c;实现24小时巡逻&#xff0c;与后台链接实时视频监控&#xff0c;异常检测……17日下午&#xff0c;北青-北京头条记者在特斯联科技集团有限公司的展厅中看到&#xff0c;一款“身怀绝技”的“安防”机器人备受关注。这款机器人也将在…

ios上传文件云服务器上,ios文件上传服务器

ios文件上传服务器 内容精选换一换在当前的迁移流程中&#xff0c;可能会存在迁移后ECS控制台镜像名称与实际操作系统不一致的现象。在当前机制下&#xff0c;该现象属于正常现象。该处显示的是下发ECS时使用的镜像名称&#xff0c;而不是操作系统名称。如果设置目的端时使用的…

这是一个UIImage集合类,可以很方便的对图片的染料(着色),增加亮度(闪电)和降低亮度(黑)和其他扩展的功能模块。...

2019独角兽企业重金招聘Python工程师标准>>> 这是一个UIImage集合类&#xff0c;可以很方便的对图片的染料&#xff08;着色&#xff09;&#xff0c;增加亮度&#xff08;闪电&#xff09;和降低亮度&#xff08;黑&#xff09;和其他扩展的功能模块。 在swift下实…