随笔- 3  文章- 0  评论- 0 
2009年10月18日

安装PySNMP还是略微有点麻烦,首先我们要下载PySNMP,和它的一些依赖,当然假设您的电脑上已经装了Python了。

  • 下载PySNMP:

http://sourceforge.net/projects/pysnmp/files/

我下的时候是pysnmp-4.1.11a.tar.gz,是4.1.11a版本的,同时还有一个pysnmp-mibs-0.0.7a.tar.gz,这个是MIB文件,下好了,暂时不用,后面会讲这个到底干什么的。

  • 下载ASN.1 library for Python:

http://sourceforge.net/projects/pyasn1/files/

这个是PySNMP的依赖,必须下的。我下载的时候,最新版本是pyasn1-0.0.9a.tar.gz。

  • 下载Python Cryptography Toolkit:

http://www.amk.ca/python/code/crypto.html

这个东东是用来加密用的,SNMPv3标准支持加密么,但是安装的时候就有点麻烦了,因为是需要C编译的,我为了省心直接下载了一个已经编译好的版本,当然它也只能用于特定操作系统的特定版本Python了,如果你需要其它的操作系统或者Python版本,那就辛苦一下自己编译吧。

编译好的版本见下:

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

我下的是pycrypto-2.0.1.win32-py2.6.exe 。

 

 

下载好了,那么开始安装啦,先装pyasn1-0.0.9a.tar.gz,解压后,直接在dos窗口运行setup.py install,一大堆提示后出现

Writing C:\Python26\Lib\site-packages\pyasn1-0.0.9a-py2.6.egg-info

就OK了。

接下来是Python Cryptography Toolkit,直接运行pycrypto-2.0.1.win32-py2.6,一路Next就可以了。

最后就是PySNMP了,和pyasn1一样,解压后,直接在窗口运行setup.py install,最后会出现

Writing C:\Python26\Lib\site-packages\pysnmp-4.1.11a-py2.6.egg-info

 

装完了以后,让我们来测试一下安装的成果。

在Pysnmp解压的目录下有一个example的目录,首先运行

\examples\v3arch\agent\cmdrsp.py

可以直接双击运行(当然前提是你绑定好了py文件的映射了),或者在DOS窗口下运行python cmdrsp.py。

接下来就是去DOS窗口运行\examples\v3arch\manager\getgen.py

在DOS窗口会出现:

1.3.6.1.2.1.1.1.0 = Example Command Responder

(千万别双击啊,要不然一闪而过,你可看不见这个结果了。)

 

如果上面的example的例子测试通过了,那就说明你的安装都OK,我们就可以不如PySNMP的世界啦。

posted @ 2009-10-18 22:09 qigo4c 阅读(691) 评论(0) 编辑

1、网络管理的基本概念

网络是现在生活当中必不可少的东西,没有它可以说还真没有办法工作和生活。但是面对组成这个网络的众多网络设备,管理起来可不是很简单的事情。

真的难以想象,我目前在敲得这些字,要经过多少厂家的不同型号的设备才会让大家看到。网络的复杂性使管理变得相当痛苦。

要管理网络设备,首先当然是要知道网络设备上的已有信息,其次是能够通过某种手段去改变设备上的信息,从而改变设备的行为。

想想我们这个世界的那些研究员、科学家当然非常早的就想到了这一点,网络管理早在30多年前就开始慢慢形成。而目前事实上的工业标准就是SNMP(简单网络管理协议)。

那么我们首先了解一下作为一个网络管理标准协议的东西,必须具有哪几部分的必须要有的内容呢?

a、网络管理是在两个不同的设备上面交换信息,并对交换的信息由一个一致的处理,这个就是“协议”,也就是设备和设备之间必须有一个统一的标准来传递信息,并有一种非常容易达到一致处理方式的规定。

不同设备间信息的传递是信息都是非常复杂的,SNMP定义了一个非常简单的规则来扩充各个设备的定义,后面会讲具体的。

b、网络设备都是基于受限情况下的系统,它的CPU、内存、存储空间都是极其有限的,因此SNMP就必须满足能够使用非常少的CPU和内存。而基于SNMP的网络管理软件就必须能够同时处理众多的请求,因为网络设备是非常多的,都需要统一到网络管理软件上来。

c、信息传输的安全性,毕竟网络管理都是基于远程的管理,因此必须将传输的信息加密,早期的SNMPv1,SNMPv2c都无法真正满足信息加密的要求,直到SNMPv3的出现,终于能够满足基于用户密码验证和传输信息加密的要求了。

 

2、SNMP的架构

SNMP管理模型定义了三种实体:Agent、Master和Proxy。

Agent是运行在设备侧,用于向Master提供设备信息或接受来自Master的信息。

Master运行在网络管理程序上,它会向设备提出获取信息的请求,并对获得到的信息进行处理。

Proxy是用来解决在Master和Agent之间存在防火墙等情况下,不能直接通信的时候所使用的。有时候,Master和Agent因为不同的SNMP版本无法通信时,Proxy也可以代为作为转换网关。

在这里需要特别强调的一点是,在现代的SNMP标准上,Agent往往可以讲它分成两部分来考虑:Subagent和Master Agent,在Master Agent和Subagent之间可以使用一种非常简单的SNMP来进行通信。

作为被管理的Agent,它可以用概念性的表来对自己的信息进行管理,而Master可以使用如Get之类的请求,来要求Agent返回比管理设备的相关信息。同时也有一种机制,叫做Trap,可以让Agent主动的去告诉Master相关信息。 

对于被管理的网络设备对象,如何去命名这些对方,并对不同类型的设备进行区分呢?这个就要靠叫做OID的东西了,OID就是一串加上点分隔的一串数字,它可以用来代表一类事物。

posted @ 2009-10-18 21:27 qigo4c 阅读(469) 评论(0) 编辑