SNMP简单网络管理协议(转载)
SNMP
SNMP
网络管理的历史
美国国防部设计了世界上头几个包交换网之一的ARPANET,在70年代,TCP/IP协议族正式被定为军方通信标准,随着此协议的广泛使用,网络管理成了一件大事。在80年代未和90年代初,网络迅速发展,许多子网数目的增多使监视网络活动成为一种必须。
在网络管理的初期,对网络的管理停留在使用ICMP和PING的基础上,但是随着网络内主机数据的不断增多,这种简单的工具已经不可能完成网络管理的工作了。
SNMP历史
随着网络数目与网络内主机数目的日益增多,单纯依靠一些网络专业进行网络管理已经不可能了,必须有一种通行的网络管理标准以及相应的管理工具使普通人也能够管理网络。第一个相关的协议是SGMP,它提供了一种直接监视网关的方法,也因此成了一种通用的网络管理工具。下来,有三种可供选择的管理工具:HEMS,SNMP和建立在TCP/IP基础上的CMIP(CMOT),因为需要使用ISO/OSI模型进行网络管理,SNMP首选CMOT作为管理工具。基本的SNMP已经被广泛使用了,所有的网络产品都提供对SNMP的支持,新开发的具有远程管理能力的SNMP是RMON,它使管理人员可以将整个子网进行管理,而不是对整个子网内的设备进行管理。
一些定义
- SNMP,Simple Network Management Protocol:简单网络管理协议
- 它是一个标准的用于管理IP网络上结点的协议。此协议包括了监视和控制变量集以及用于监视设备的两个数据格式:SMI和MIB。
- MIB,Management Information Base:管理信息库
- 由网络管理协议访问的管理对象数据库,它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量。
- SMI,Structure of Management Information:管理信息结构
- 用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。
- ASN.1,Abstract Syntax Notation One:抽象语法定义
- 用于定义语法的正式语言,在SNMP中它用于定义SNMP协议数据单元和对象的格式。
- PDU,Protocol Data Unit:协议数据单元
- 在网络中传送的数据包。
- BER,basic encoding rules:基本编码规则
- 由CCITT (X.209)和ISO (ISO 8825)指定的编码规则,它描述了如何将ASN.1类型表示为字符串。
SNMP介绍
使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。
管理代理是一种网络设备,如主机,网桥,路由器和集线器等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。
MIB是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。
最后一个方面是管理协议,也就是SNMP,SNMP的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情况。
MIB和对象
MIB包括了对象列表,这些对象与指示对象类型的OBJECT IDENTIFIER相关。MIB的结构是树形结构,有两种方式可以访问MIB中对象的值,一种是快速访问,另一种慢速访问,快速访问时只用输入一些数据,慢速访问时要加上其它信息。
SNMP MIB是对象的定义是十分严格的,定义指定了对象的数据类型,允许的形式,取值范围和与其它MIB对象的关系。ASN.1定义方法用来定义每个对象,同时也定义整个MIB结构。
有两种不同对象数据结构:通用类型的专用类型,通用类型指的是整数,字符串,空值,对象标识,序列和序列号;专用类型是指网络地址,IP地址,记数器,标准等。
若要定义对象自身,必须使用ASN.1。下面是一个基本的定义结构:
<模块名> DEFINITIONS ::=
BEGIN
EXPORTS
IMPORTS
AssignmentList
End
软件
应用程序可以显示SNMP数据,NAS公司开发的应用程序HNMS就是这方面的一个比较好的工具。详细情况请参阅:http://www.nas.nasa.gov/Groups/LAN/Trouble/HNMS.html
如果不想花钱可以在下面一些地方取得免费的管理软件
ftp://ftp.ida.liu.se/pub/isode-snmpV2/isode-8.tar.gz
ftp://allspice.lcs.mit.edu/pub/snmp/
ftp://ftp.net.cmu.edu/pub/snmp-dist/cmu-snmp2.1.2.tar
ftp://ftp.cs.utwente.nl:/pub/src/snmp
ftp://ftp.ece.ucdavis.edu/pub/snmp/ucd-snmp.tar.gz
http://www.cs.tu-bs.de/ibr/projects/nm/tkined/
http://www.cs.tu-bs.de/ibr/projects/nm/scotty/
体系结构
- 所有在应用层下的TCP/IP层都有它自己的SNMP结构
- 硬件制造商可以在它的产品中实现了相应的管理结构
- 从图上可以看到有许多MIB,但服务器只有一台
服务器处理过程
- 基站发送的请求仅有两种类型,取值和赋值
- 一个请求可以进行多个操作
ASN.1
- ASN.1是用于定义MIB对象的高层计算机语言
- SNMP使用ASN.1子集的基本类型:整数,字符串,对象标识符,序列和空值
- BER用于将ASN.1编译为SNMP可以传送的字符串,在SNMP代理间传送。对于变量ASN.1使用词典顺序进行有序排列,并定义了层次状态的名字空间
- 词典式排序可以使服务器不需要知道被请求的变量的大小而直接响应请求。
- 所有的变量都有后后缀iso.org.dod.internet.mgmt.mib或1.3.6.1.2.1
PDU
- 客户可以发送以下三个基本命令:设置,读取和取下一个
- 设置和读取指令使服务器进行直接变量映射
- 取下一个指令指定要取的变量名,服务器根据变量当前所排的字典序返回指定变量名下一个变量的值,在不知道表大小的时候这条指令十分有用
- 在层次的树状结构中可以一定前进一个结点,当然这样会因为要多次发送请求和相应于请求的数据而对网络造成不必要的压力,也可以在树状结构中一次取得多个点的数据
- 如果发生意外情况,客户会向服务器的162端口发送一个消息,告知服务器指定的变量值发生了变化。通常由服务器请求而获得的数据由服务器的161端口接收。
Hash表设计
- Hash表用于快速查找变量,Hash表是一个指针数组,每个数组指向一组具有相同Hash值的结点。
- 如果需要查找MIB变量的值,服务器根据变量名的数字表示经过Hash函数计算后得到数组索引值,通过查找数组相应元素指向的结点可以找到需要的数据
- 而在MIB中的每个元素除了使用字典序进行排序之外,还拥有一个指向下一个元素的指针,这个指针在执行取下一个指令时特别有用,在其中还包括了ASN.1名称,和能够作于此变量的所有函数的地址以及内部变量地址
- 在服务器启动时初始化这些变量的值
SNMP总结
SNMP是一种易于实现的基本的网络管理工具,它能够满足短期的管理要求。因为基于OSI的管理协议现在进展缓慢,所以它起到了一个重要的补充作用。
SNMP协议提供了用于定义网络信息和框架和用于交换信息的协议标准。SNMP模型引入了管理器和代理的概念,管理器指的是以人类管理员身份负责所有网络(或部分网络)的软件。代理指的被管理设备中的软件,它用以完成管理器所需要进行的局部管理和应急通知管理器的功能。
SNMP简单网络管理协议(转载)的更多相关文章
- SNMP简单网络管理协议
声明:以下内容是学习谌玺老师视频整理出来(http://edu.51cto.com/course/course_id-861.html) SNMP(Simple Network Management ...
- 华为、华三 交换机 开启SNMP 简单网络管理协议
[huawei]snmp-agent //使能SNMP代理 [huawei]snmp-agent sys-info version all //允许所有SNMP 支持 协议 [huawei]snmp- ...
- SNMP:简单网络管理协议
基于 TCP/IP 的网络管理包括两部分:网络管理站 (manager) 和被管理的网络单元(被管设备).这些被管设备的共同点就是都运行 TCP/IP 协议.管理进程和代理进程之间的通信有两种方式,一 ...
- 简单网络管理协议(SNMP)
SNMP是TCP/IP网络中应用最为广泛的网络管理协议,工作在TCP/IP参考模型的应用层,是一种面向无连接的协议 功能:SNMP的功能是使网络设备之间能方便的交换管理信息,从而使网络管理员了解网络运 ...
- 【计算机网络】简单网络管理协议 SNMP
计算机网络 6.7节学习笔记 SNMP: 管理网络上的对象时,必然会给该对象添加一些软件或硬件,但这种添加必须对原有对象的影响尽量小. SNMP中的管理程序和代理程序按客户-服务器方式工作.管理程序 ...
- snmp简单识记
免费snmp探测 http://webluker.com/webtools/snmp snmp简单网络管理协议(simple network management protocol)前身时sgmp简单 ...
- SNMP简单概述
一.SNMP简单概述 1.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议& ...
- SNMP 和 NetBios协议理解
一.简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF,Internet Engineering Task For ...
- SNMP学习笔记之SNMP简单概述
0x00 SNMP简单概述 0.1.什么是Snmp SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理 ...
随机推荐
- linux 开机启动过程详解
Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...
- Linux下Redis服务器安装配置
说明:操作系统:CentOS1.安装编译工具yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...
- php构造函数连接数据库
index.php require_once("mysql.config.php"); require_once("mysql.class.php"); ech ...
- JabRef 文献管理软件
JabRef 文献管理软件简明教程 大多只有使用LaTeX撰写科技论文的研究人员才能完全领略到JabRef的妙不可言,但随着对Word写作平台上BibTeX4Word插件的开发和便利应用,使用Word ...
- Ios 消息推送
手把手教你做iOS推送 http://www.cocoachina.com/industry/20130321/5862.html http://www.cnblogs.com/cdts_change ...
- DESCryptoServiceProvider
public static byte[] DESEncrypt(byte[] data, byte[] sKey) { return DESEncrypt(data, sKey, sKey); } / ...
- python 跨语言数据交互、json、pickle(序列化)、urllib、requests(爬虫模块)、XML。
Python中用于序列化的两个模块 json 用于[字符串]和 [python基本数据类型] 间进行转换 pickle 用于[python特有的类型] 和 [python基本数据类型]间进 ...
- Java并发编程核心方法与框架-CompletionService的使用
接口CompletionService的功能是以异步的方式一边生产新的任务,一边处理已完成任务的结果,这样可以将执行任务与处理任务分离.使用submit()执行任务,使用take取得已完成的任务,并按 ...
- C# 对象 序列化 XML
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- [译]了解AngularJS $resource
原文: https://learnable.com/books/angularjs-novice-to-ninja/preview/understanding-angularjs-resource-e ...