• # GetNext, c'est Walk.

    Posté par (site web personnel) . En réponse au message Un pitit snmpwalk...?. Évalué à 3.

    Il n'y a que trois requêtes disponibles avec SNMP, pour le manager:
    - Get,
    - GetNext,
    - Set.

    Il en existe deux autres mais uniquement disponibles pour l'agent:
    - GetResponse,
    - Trap.

    GetNext demande donc à l'agent de retourner la valeur *suivante*. C'est très utile quand l'OID que tu as dispose d'un index ou est sous la forme d'une table.
    Par exemple, si je fais:

    $ snmpwalk -v 1 -c public localhost ifDescr
    IF-MIB::ifDescr.1 = STRING: lo
    IF-MIB::ifDescr.2 = STRING: eth0

    J'obtiens plusieurs valeurs.
    Si j'avais essayé directement avec snmpget, j'aurais obtenu ceci:
    $ snmpget -v 1 -c public localhost ifDescr
    Error in packet
    Reason: (noSuchName) There is no such variable name in this MIB.
    Failed object: IF-MIB::ifDescr

    La raison est qu'il peut y avoir plusieurs interfaces et donc, elles sont indexées. Évidemment, il nous est impossible de savoir à l'avance quel numéro sera affecté à quel interface. Le numéro d'index est donc à rajouter à l'OID pour avoir l'information. Voici les index:
    $ snmpwalk -v 1 -c public localhost ifIndex
    IF-MIB::ifIndex.1 = INTEGER: 1
    IF-MIB::ifIndex.2 = INTEGER: 2

    Dans la nomenclature du module Perl Net::SNMP, GetNext correspond à Walk, ce qui est plus proche de la nomenclature du protocole SNMP.

    J'espère avoir été plus clair, sinon, tu pourras toujours voir la documentation de Christian Caleca. ;-)

    http://christian.caleca.free.fr/snmp/le_protocole.htm