SNMP协议及著名的MIB详解

SNMP协议以及著名的MIB详解

SNMP协议介绍
  简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。
1. SNMP基本原理
  SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。下图10是NMS公司网络产品中SNMP协议的实现模型。

2.MIB介绍

在SNMP中,我们都应该知道著名的MIB了。那么这个具体是什么作用呢?在此我们就来详细介绍一下这个SNMP
mib的具体作用。管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。图1画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department
of
Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。


 

在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1)
.2.1}。这种标识为对象标识符。

最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib-2所包含的信息类别已超过40个

应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。

AdventNet SNMP API 4概述 AdventNet SNMP API为基于SNMP的网络管理应用提供了一个全面的开发工具包。AdventNet的SNMP栈包含一系列强大的Java SNMP库,用来为监控跟踪网络元素创建实时的应用程序,这些应用程序是可靠的、可伸展的且独立于OS的。 开发人员可以利用AdventNet的SNMP库来创建独立的、基于web的分布式(EJB、CORBA或RMI)基于SNMP的网络管理应用程序。Java SNMP库除了提供基本的SNMP操作,如:SNMP GET、SNMP GETNEXT、SNMP GETBULKSNMP SET,还为陷阱表格处理提供了现成的组件。这些组件便于简单快速地开发部署SNMPv1、SNMPv2cSNMPv3管理应用程序。 使用基于Java的SNMP API构建的SNMP管理应用程序(管理器)能够接收SNMP陷阱,并能基于预定义的标准来处理这些陷阱,实现有效的SNMP管理。 用于SNMP应用开发的可视IDE: AdventNet SNMP API集成了一个易于使用的可视化IDE(Integrated Development Environment) SNMP Design Studio,大大简化了SNMP管理应用程序的开发部署。自动的代码生成功能减少了源代码中的人为错误,从而改进了产品的质量并降低了开发的时间成本。SNMP Design Studio还为代码编辑、调试、维护封装提供了内置的工具。 AdventNet SNMP API重要特征: 多语言支持: 完全支持SNMPv1、SNMPv2cSNMPv3 SNMPv3安全: 支持HMAC-SHA-96,HMAC-MD5-96,CBC-DES128位AES加密。 稳健的SMIv1SMIv2 MIB解析器: 无缝解析任何OEM供应商的MIB定义。 MIB加载: 可以选择从预编译文件、串行文件或数据库加载MIB文件以增强性能。 IPv6(Internet Protocol Version 6): 提供与基于IPv6IPv4的设备之间的连通性。 SNMP广播: 面向网络广播SNMP数据包,从而自动发现网络中的SNMP设备。
04-02
### Management Information Base (MIB) 的定义与作用 Management Information Base (MIB) 是一种虚拟数据库,用于存储网络设备的管理性能信息[^4]。在网络管理领域,MIB 提供了一种标准化的方式来描述访问这些信息。通过 MIB,网络管理员可以监控控制网络中的各种资源。 SNMP(Simple Network Management Protocol)通常依赖于 MIB 来实现其功能。MIB 中的信息被组织成层次结构,并由对象标识符(OID)唯一标识每一个节点或变量[^5]。这种设计使得 SNMP 能够高效地查询设置特定参数。 #### MIB 的主要组成部分 1. **对象定义**: 每个可管理的对象都有一个唯一的 OID 相应的语法说明。 2. **树状结构**: 所有的 OIDs 组织在一个逻辑上的倒立树形结构下,便于分类检索。 3. **标准与私有分支**: IANA 分配了不同的顶级编号给国际标准机构其他实体,从而区分公共标准厂商专有扩展[^6]。 以下是 Python 实现的一个简单例子来展示如何读取某个设备的 MIB 数据: ```python from pysnmp.hlapi import * errorIndication, errorStatus, errorIndex, varBinds = next( getCmd(SnmpEngine(), CommunityData('public'), UdpTransportTarget(('demo.snmplabs.com', 161)), ContextData(), ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))) if errorIndication: print(errorIndication) elif errorStatus: print('%s at %s' % (errorStatus.prettyPrint(), errorIndex and varBinds[int(errorIndex)-1][0] or '?')) else: for varBind in varBinds: print(' = '.join([x.prettyPrint() for x in varBind])) ``` 此脚本利用 PySNMP 库连接到远程主机 `demo.snmplabs.com` 并获取系统描述信息。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值