1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
PYTHON SNMP FRAMEWORK
---------------------
This is a pure-Python, open source and free implementation of v1/v2c/v3
SNMP engine.
The PySNMP project has been sponsored by a PSF grant [11]. Thanks!
FEATURES
--------
* Complete SNMPv1/v2c and SNMPv3 support
* SMI framework for resolving MIB information and implementing SMI
Managed Objects
* Complete SNMP entity implementation
* USM Extended Security Options support (3DES, 192/256-bit AES encryption)
* Extensible network transports framework (UDP/IPv4, UDP/IPv6 and UNIX domain
sockets already implemented)
* Asynchronous socket-based IO API support
* Twisted, Asyncio and Trollius integration
* PySMI integration for dynamic MIB compilation
* Python eggs and py2exe friendly
* 100% Python, works with Python 2.4 though 3.5
* MT-safe (only if run locally to a thread)
Features, specific to SNMPv3 model include:
* USM authentication (MD5/SHA) and privacy (DES/AES) protocols (RFC3414)
* View-based access control to use with any SNMP model (RFC3415)
* Built-in SNMP proxy PDU converter for building multi-lingual
SNMP entities (RFC2576)
* Remote SNMP engine configuration
* Optional SNMP engine discovery
* Shipped with standard SNMP applications (RC3413)
MISFEATURES
-----------
* Much slower than C implementations. Some optimization still possible.
INSTALLATION
------------
The PySNMP package uses setuptools for package management. The PyASN1 [8]
package is required. For secure SNMPv3 communication, PyCrypto [9]
should also be installed. For MIB-related operations PySMI [10] package is
needed.
OPERATION
---------
As of this writing, PySNMP implements two SNMP architectures -- the first
is a legacy one specified by SNMPv1 & v2c standards [5]. It is quite
low-level and protocol-oriented by design. In particular, it requires
application to manage authentication and access issues, deal with transport
failures and similar housekeeping stuff.
The second model supported by PySNMP is aligned to SNMPv3 architecture,
as specified in [4]. Here is an example on querying SNMP agent
for arbitrary value (sysDescr) over SNMP v3 with authentication and
privacy enabled:
8X---------------- cut here --------------------
from pysnmp.hlapi import *
iterator = getCmd(
SnmpEngine(),
CommunityData('public'),
UdpTransportTarget(('demo.snmplabs.com', 161)),
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0))
)
errorIndication, errorStatus, errorIndex, varBinds = next(iterator)
if errorIndication: # SNMP engine errors
print errorIndication
else:
if errorStatus: # SNMP agent errors
print(%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'))
else:
for varBind in varBinds:
print('='.join([x.prettyPrint() for x in varBind]))
8X---------------- cut here --------------------
For more examples, please see the examples directory in the PySNMP distribution.
MIB SUPPORT
-----------
The pysnmp.smi package component defines and implements data model for SNMP SMI
objects. With that model, various objects defined in MIB file could be
implemented in Python, loaded into SNMP entity and used for verification and
visualisation purposes (SNMP manager side) and/or become management targets
(SNMP agent side).
The PySMI package [10] could be used for automatic, one-time convertion of
ASN.1 MIB text files into Python code snippets designed to be dynamically
loaded and used by PySNMP engine.
A large set of pre-compiled MIB files is shipped along the pysnmp-mibs
package.[2]
AVAILABILITY
------------
The PySNMP software is freely available for download from PyPI and
project homepage [1]
GETTING HELP
------------
If something does not work as expected, please, try browsing PySNMP
mailing list archives or post your question there. [7]
FEEDBACK
--------
I'm interested in bug reports and fixes, suggestions and improvements.
I'd be happy knowning whenever you used the PySNMP software for whatever
purpose. Please, send me a note then. Thanks!
REFERENCES
----------
[1] PySNMP project homepage:
http://pysnmp.sf.net
[2] Pre-compiled PySNMP MIB modules:
http://sourceforge.net/project/showfiles.php?group_id=14735
[3] PySNMP applications:
http://sourceforge.net/project/showfiles.php?group_id=14735
[4] SNMP Version 3 specification and related
http://www.ibr.cs.tu-bs.de/projects/snmpv3/
[5] SNMP Version 1/2 specifications:
http://www.ietf.org/rfc/rfc1155.txt - http://www.ietf.org/rfc/rfc1158.txt
http://www.ietf.org/rfc/rfc1901.txt - http://www.ietf.org/rfc/rfc1909.txt
[6] PySNMP mailing list archives:
http://sourceforge.net/mail/?group_id=14735
[7] PyASN1 project homepage:
http://pyasn1.sf.net
[8] PyCrypto package:
http://pycrypto.org
[9] PySMI package:
http://sf.net/projects/pysmi
[10] Python Software Foundation
http://www.python.org/psf/
=-=-=
mailto: ilya@glas.net
|