pysnmp.sourceforge.net
HOME QUICK START DOCUMENTATION EXAMPLES DOWNLOAD
DEVELOPMENT | CONTACT |

SNMP v1:

Read/Write Communities

SNMP v2c:

Custom SNMP Scalars
Using multiple interfaces

SNMP v3:

USM users

WARNING: you are reading historical documentation! Please, refer here.

Command Responder

Listen and respond to SNMP GET/SET/GETNEXT/GETBULK queries with the following options:

Either of the following Net-SNMP's commands will walk this Agent:

$ snmpwalk -v3 -u usr-md5-des -l authPriv -A authkey1 -X privkey1 localhost .1.3.6

$ snmpwalk -v3 -u usr-sha-none -l authNoPriv -a SHA -A authkey1 localhost .1.3.6

$ snmpwalk -v3 -u usr-sha-aes128 -l authPriv -a SHA -A authkey1 -X privkey1 localhost .1.3.6

This example uses MD5/SHA signing and DES/AES/NONE encryption. Other hasing/ciphering algorithms could be configured to the addV3User() such as:

This Command Responder serves the default set of Managed Objects Instances through default MIB Instrumentation Controller.

from twisted.internet import reactor
from pysnmp.entity import engine, config
from pysnmp.entity.rfc3413 import cmdrsp, context
from pysnmp.carrier.twisted.dgram import udp
from pysnmp.carrier.twisted import dispatch

# Create SNMP engine with autogenernated engineID and pre-bound
# to socket transport dispatcher
snmpEngine = engine.SnmpEngine()

# Transport setup

# Instantiate and register Twisted dispatcher at SNMP engine
snmpEngine.registerTransportDispatcher(dispatch.TwistedDispatcher())

# UDP over IPv4
config.addSocketTransport(
    snmpEngine,
    udp.domainName,
    udp.UdpTwistedTransport().openServerMode(('127.0.0.1', 161))
)

# SNMPv3/USM setup

# user: usr-md5-des, auth: MD5, priv DES
config.addV3User(
    snmpEngine, 'usr-md5-des',
    config.usmHMACMD5AuthProtocol, 'authkey1',
    config.usmDESPrivProtocol, 'privkey1'
)
# user: usr-sha-none, auth: SHA, priv NONE
config.addV3User(
    snmpEngine, 'usr-sha-none',
    config.usmHMACSHAAuthProtocol, 'authkey1'
)
# user: usr-sha-none, auth: SHA, priv AES
config.addV3User(
    snmpEngine, 'usr-sha-aes128',
    config.usmHMACSHAAuthProtocol, 'authkey1',
    config.usmAesCfb128Protocol, 'privkey1'
)

# Allow full MIB access for each user at VACM
config.addVacmUser(snmpEngine, 3, 'usr-md5-des', 'authPriv',
                   (1,3,6,1,2,1), (1,3,6,1,2,1)) 
config.addVacmUser(snmpEngine, 3, 'usr-sha-none', 'authNoPriv', 
                   (1,3,6,1,2,1), (1,3,6,1,2,1)) 
config.addVacmUser(snmpEngine, 3, 'usr-sha-aes128', 'authPriv',
                   (1,3,6,1,2,1), (1,3,6,1,2,1)) 

# Get default SNMP context this SNMP engine serves
snmpContext = context.SnmpContext(snmpEngine)

# Register SNMP Applications at the SNMP engine for particular SNMP context
cmdrsp.GetCommandResponder(snmpEngine, snmpContext)
cmdrsp.SetCommandResponder(snmpEngine, snmpContext)
cmdrsp.NextCommandResponder(snmpEngine, snmpContext)
cmdrsp.BulkCommandResponder(snmpEngine, snmpContext)

# Run Twisted main loop
reactor.run()

To download this example as a Python file, please click here.


Need help? Try PySNMP mailing lists or report to library maintainers.
SourceForge Logo