基于SNMP/MIB的网络数据获取系统设计与实现(二)

4),SNMP的基本原理

一个SNMP管理的网络包含三个主要部分: 被管理设备、代理和网络管理系统(NMSs.1-1 描述了这三个组成的关系。

 

1-1SNMP被管理网络包含被管理设备、代理和网络管理系统

一个被管理设备是一个包含一个SNMP代理并处于被管理的网络中的一个网络结点。被管理设备收集和存储管理信息,并使用SNMP使这些信息对网络管理系统有用。被管理设备有时被称为网络元素,可能是路由器和访问服务器,交换机和网桥,集线器,计算机主机或打印机。

网络管理系统执行应用程序监控被管理设备。网络管理系统为网络管理提供大量的处理和内存资源。在任何被管理的网络中至少存在一个网络管理系统。

  代理(agent)是一种特殊的软件(或固件),它包含了关于一个特殊设备和/或该设备所处环境的信息。当一个代理被安装到一个设备上时,上述的设备就被列为“被管理的”。换句话说,代理就是一个数据库。 

  数据库中所包含的数据随被安装设备的不同而不同。举例来说,在一个路由器上,代理将包含关于路由选择表、接收和发送包的总数等信息。而对于一个网桥来说,数据库可能包含关于转发包数目和过滤表等信息。代理是与网络管理控制台通信的软件或固件。在这个控制台的“链路”上可以执行以下任务:网络管理工作站可以从代理中获得关于设备的信息。

网络管理工作站可以修改、增加或者删除代理中的表项,例如在由代理所维护的数据库中的路由选择表表项。网络管理工作站可以为一个特定的自陷设置阈值。 可以向网络管理工作站发送自陷。请记住,在被管理设备中的代理并不是自愿提供信息的,除非当有一个阈值被超过的事件发生时。 在一些偶然的情况下,在一个特定的设备上可能因为系统资源的缺乏,或者因为该设备不支持SNMP代理所需要的传输协议,而不能实现一个SNMP代理。这是否就意味着你不能监视这个设备呢?答案并不是这样的,在这种情况下并不是完全没有办法的。你可以使用受托代理(proxy agent),它相当于外部设备(foreign device)。  

  受托代理并非在被管理的外部设备上运行,而是在另一个设备上运行。网络管理工作站首先与受托代理联系,并且指出(通过某种方法)受托代理与外部设备的一致性。然后受托代理把它接收到的协议命令翻译成任何一种外部设备所支持的管理协议。在这种情况下,受托代理就被称为应用程序网关(application gateway)。  

  如果外部设备不支持任何管理协议,那么受托代理必须使用一些被动的方法来监视这个设备。举例来说,一个令牌环网桥的受托代理可以监视它的性能,并且如果它检测到任何由网桥所报告的拥挤错误时,它就会产生自陷。幸运的是,目前大多数网际互联设备类型都是支持SNMP可管理设备的,所以你可以很容易地使用一个SNMP可管理设备,例如集线器、网桥和路由器。有一些厂商甚至还在他们的网卡上提供SNMP代理。

2,管理信息库MIB

每个受管理的SNMP设备均维护包含统计信息及其他数据的数据库。我们称之为管理信息基或MIB MIB的每一项包含一种信息:对象类型、语法、访问字段及状态字段等。 MIB的项通常由协议规定,并且严格遵守抽象语法规则1(ASN.1)的格式。

对象类型为项的名称,通常为简单的名字。语法是一个值字段,通常为字符串或整型,并不是所有的MIB的项均包含值字段。访问字段用于定义项的访问权限,通常有以下四类:只读、可读/写、只可写或不可访问。状态字段包含指示值,标明MIB项是否为命令、可选或作废。命令表示受管理的设备必须执行该项。可选表示受管理的设备可以选择执行该项,作废表示不执行。

目前执行的MIB有两种,MIB-1MIB-2。两者结构不同,MIB-1创建于1988年,其表中包含114项,分为两组,支持MIB-1的受管理的设备必须支持所有的适用于该设备的组。例如:受管理的打印机不能执行处理外部网关协议的项,与外部网关协议 (EGP)相关的项用于路由器或类似的设备。打印机需要指明它可处理的项。

MIB-2是MIB-1的扩展,于1990年提出。它包含171项共分为10组。除了扩展了原有的组外,又新增加了组。与MIB-1类似,支持MIB-2的设备必须执行所有适用于该类型的组。用户将会发现许多设备仅支持MIB-1而不支持MIB-2

除了MIB-1MIB-2外,还有许多正在测试的MIB,它们包含许多不同的组和项。但它们并未被广泛使用。某些公司开发 MIB以供自己使用,某些厂商也提供对这些 MIB的支持。

3画的是管理信息库的一部分,它又称为对象命名(object naming tree)。

1-2 管理信息库的对象命名举例

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

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

MIB-I中定义了114种管理对象,并分为8个组,分别为system,interface,at,ip,icmp,tcp,udp,egp组。MIB-IIMIB-I兼容,电脑但增加了三个新的管理对象。分别时cmot组,transmission组和snmp组,其中:

 

1)        system:有关系统的整体信息。

2)        interface: 关于每一个从系统到子网接口的信息。

3)        at: (地址转换,被替换):Internet到子网地址映射地址转化表的描述。

4)        icmp: 与系统种ICMP实现与执行经历有关的信息。

5)        tcp:与系统TCP实现和执行经历有关的信息。

6)        udp:与系统UDP实现和执行经历有关的信息。

7)        egp:与系统EGP实现和执行经历有关的信息。

8)        dot3(传输):有关每个系统接口的传输方案和访问协议的信息。

9)        snmp:与系统SNMP实现和执行经历有关的信息。

 下面介绍几个重要的几个组:

1-1system

对象

语法

访问

说明

sysDescr

DisplayString

RO

对硬件,操作系统等实体的说明

SysObjectID

OBJECT

IDENTIFIER

RO

实体包含的网络管理子系统的供应商授权身份

sysUpTime

TimeTicks

RO

自系统的网络管理部分最近一次重启的时间

sysContact

DisplayString

SIZE(0…255)

RW

被管理节点联系人的身份和联系信息

System

DisplayString

SIZE(0…255)

RW

在管理商赋予被管理节点的名称

SysServices

INTEGER(0…127)

RO

该节点的物理位置

SysLocation

DisplayString

SIZE(0…255)

RW

该节点的物理位置

 

1-2Interfaces

<td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: #f4f4f4; padding-left: 5.4pt; padding-bottom: 0cm; border-left: #f4f4f4; width: 53.4pt; padding-top: 0cm; border-bottom: wi

对象

语法

访问

说明

ifNumber

INTEGER

RO

网络接口的数量

ifTable

SEQUENCE OF ifEntry

NA

接口条目的列表

ifIndex

INTEGER

NA

每一个接口的唯一取值

ifDescr

DisplayString(SIZE(0`255)

RO

关于接口的信息,包括制造商的名称,产品名称和硬件接口版本

ifType

INTEGER

RO

接口的类型,按照物理,链路协议进行区分

ifMtu

INTEGER

RO

最大协议数据单元的大小。按字节算

ifSpeed

Gauge

RO

接口的当前数据速率容量的估计

ifPhysAddress

PhysAdress

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 GETBULK和SNMP SET,还为陷阱和表格处理提供了现成的组件。这些组件便于简单和快速地开发和部署SNMPv1、SNMPv2c和SNMPv3管理应用程序。 使用基于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、SNMPv2c和SNMPv3 SNMPv3安全: 支持HMAC-SHA-96,HMAC-MD5-96,CBC-DES和128位AES加密。 稳健的SMIv1和SMIv2 MIB解析器: 无缝解析任何OEM供应商的MIB定义。 MIB加载: 可以选择从预编译文件、串行文件数据库加载MIB文件以增强性能。 IPv6(Internet Protocol Version 6): 提供与基于IPv6和IPv4的设备之间的连通性。 SNMP广播: 面向网络广播SNMP数据包,从而自动发现网络中的SNMP设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值