A P P E N D I X B

SNMP Command Examples

This section provides examples of how to use the following SNMP commands:

Topics |
--- | ---
Description | Links
Command examples | snmpget Command snmpwalk Command snmpbulkwalk Command snmptable Command snmpset Command snmptrapd Command

Note - All command examples given in this section are executed on the SNMP management station, unless instructions indicate otherwise.

Note - The example SNMP commands presented in this appendix are based on the Net-SNMP sample applications and, therefore, will only work as presented if you have Net-SNMP and the Net-SNMP sample applications installed.

Before using SNMP, be sure to install the ILOM MIBs files in the directory where net-snmp tools load MIBs or where your SNMP tool of choice loads MIBs. See the following URL for additional information on net-snmp:

`http://net-snmp.sourceforge.net/wiki/index.php/
TUT:Using_and_loading_MIBS`

### snmpget Command

    snmpget -mALL -v1 -cpublic snmp_agent_Ip_address sysName.0

As stated in the description of the sysName.0 MIB object in the SNMPv2-MIB, this command returns an administratively assigned name for this managed node. By convention, this is the node’s fully-qualified domain name. If the name is unknown, the value returned is the zero-length string.

For example:

    % snmpget -v2c -cprivate -mALL snmp_agent_Ip_address sysName.0 sysObjectID.0 ilomCtrlDateAndTime.0
    SNMPv2-MIB::sysName.0 = STRING: SUNSPHOSTNAME
    SNMPv2-MIB::sysObjectID.0 = OID: SUN-ILOM-SMI-MIB::sunILOMSystems
    SUN-ILOM-CONTROL-MIB::ilomCtrlDateAndTime.0 = STRING: 2007-12-10,20:33:32.0

In addition to the sysName.0 object, this command displays the content of the sysObjectID.0 and the ilomCtrlDateAndTime.0 MIB objects. Notice that the MIB file name is given for each MIB object as part of the reply.

The following descriptions of the MIB objects are taken from the MIB files.

- sysName - An administratively assigned name for this managed node. By convention, this is the node’s fully-qualified domain name. If the name is unknown, the value is the zero-length string.

- sysObjectID - The vendor’s authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises sub-tree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining ‘what kind of box’ is being managed.

- ilomCtrlDataAndTime - The date and time of the device.

### snmpwalk Command

The `snmpwalk` command performs a sequence of chained `GETNEXT` requests automatically. It is a work saving command. Rather than having to issue a series of snmpgetnext requests, one for each object ID, or node, in a sub-tree, you can simply issue one `snmpwalk` request on the root node of the sub-tree and the command gets the value of every node in the sub-tree.

For example:

    % snmpwalk -mALL -v1 -cpublic snmp_agent_Ip_address system
    SNMPv2-MIB::sysDescr.0 = STRING: ILOM machine custom description
    SNMPv2-MIB::sysObjectID.0 = OID: SUN-ILOM-SMI-MIB::sunILOMSystems
    DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (16439826) 1 day, 21:39:58.26
    SNMPv2-MIB::sysContact.0 = STRING: set via snmp test
    SNMPv2-MIB::sysName.0 = STRING: SUNSPHOSTNAME
    SNMPv2-MIB::sysLocation.0 = STRING:
    SNMPv2-MIB::sysServices.0 = INTEGER: 72
    SNMPv2-MIB::sysORLastChange.0 = Timeticks: (14) 0:00:00.14
    SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
    SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB
    SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB
    SNMPv2-MIB::sysORID.4 = OID: RFC1213-MIB::ip
    SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB
    SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
    SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
    SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance
    SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
    SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers
    SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities
    SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations
    SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations
    SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations
    SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP.
    SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB.
    SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching.
    SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model.
    SNMPv2-MIB::sysORUpTime.1 = Timeticks: (1) 0:00:00.01
    SNMPv2-MIB::sysORUpTime.2 = Timeticks: (2) 0:00:00.02
    SNMPv2-MIB::sysORUpTime.3 = Timeticks: (2) 0:00:00.02
    SNMPv2-MIB::sysORUpTime.4 = Timeticks: (2) 0:00:00.02
    SNMPv2-MIB::sysORUpTime.5 = Timeticks: (2) 0:00:00.02
    SNMPv2-MIB::sysORUpTime.6 = Timeticks: (2) 0:00:00.02
    SNMPv2-MIB::sysORUpTime.7 = Timeticks: (14) 0:00:00.14
    SNMPv2-MIB::sysORUpTime.8 = Timeticks: (14) 0:00:00.14
    SNMPv2-MIB::sysORUpTime.9 = Timeticks: (14) 0:00:00.14

### snmpbulkwalk Command

The `snmpbulkwalk` command uses the GETBULK SNMP protocol feature to query for an entire tree of information about a network entity. This command can pack more objects into the packets by specifying “repeaters.” As a result, the `snmpbulkwalk` command is faster than the `snmpwalk` command.

Here is example of an `snmpwalk` command with approximate start and end time stamps.

    % date
    Fri Dec 14 12:21:44 EST 2007
    % snmpwalk -mALL -v2c -cprivate snmp_agent_Ip_address entPhysicalTable>time3
    % date
    Fri Dec 14 12:21:53 EST 2007

Here is example of an `snmpbulkwalk` command performing the same operation. Notice that the `snmpbulkwalk` command is faster than the `snmpwalk` command.

    % date
    Fri Dec 14 12:40:57 EST 2007
    % snmpbulkwalk -mALL -v2c -cprivate snmp_agent_Ip_address entPhysicalTable>time7
    % date
    Fri Dec 14 12:41:03 EST 2007

### snmptable Command

The `snmptable` command retrieves the contents of an SNMP table and displays the contents in a tabular format, that is, one table row at a time, such that the resulting output resembles the table being retrieved. This is contrasted with the `snmpwalk` command, which displays the contents of the table one column at a time.

Here is an example of the `snmptable` command:

    % snmptable -mALL -v2c -cprivate snmp_agent_Ip_address sysORTable
    SNMP table: SNMPv2-MIB::sysORTable
    sysORID
    sysORDescr
    sysORUpTime
    IF-MIB::ifMIB
    The MIB module to describe generic objects for network interface sub-layers.
    0:0:00:00.01
    SNMPv2-MIB::snmpMIB
    The MIB module for SN MPv2 entities.
    0:0:00:00.02
    TCP-MIB::tcpMIB
    The MIB module for managing TCP implementations.
    0:0:00:00.02
    RFC1213-MIB::ip
    The MIB module for managing IP and ICMP implementations.
    0:0:00:00.02
    UDP-MIB::udpMIB
     The MIB module for managing UDP implementations.
    0:0:00:00.02
    SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
    View-based Access Control Model for SNMP.
    0:0:00:00.02
    SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
    The SNMP Management Architecture MIB.
    0:0:00:00.14
    SNMP-MPD-MIB::snmpMPDCompliance
    The MIB for Message Processing and Dispatching.
    0:0:00:00.14
    SNMP-USER-BASED-SM-MIB::usmMIBCompliance
    The management information definitions for the SNMP User-based Security Model.
    0:0:00:00.14

Note - While the `snmpget`, `snmpgetnext`, and `snmpwalk` command can be used on any type of MIB object, the `snmptable` command can only be used on MIB table objects. If this command is given any other type of object ID, it will be rejected. This restriction applies to a tableEntry object, a table column object, and any object that represents information within a table. Only a MIB table object ID can be used with the `snmptable` command.

In the examples of the `snmptable` command, the `-Ci` and `-Cb` options are used. For example, here is an `snmptable` command with the `-Ci` option:

    % snmptable -Ci -mALL -v2c -cprivate snmp_agent_IP_address sunPlatFanTable
    SNMP table: SUN-PLATFORM-MIB::sunPlatFanTable
    index sunPlatFanClass
    10             fan
    11             fan
    17             fan
    23             fan
    29             fan
    30             fan
    36             fan
    42             fan

Here is an example of an `snmptable` command without the `-Ci` option. Notice that the index column is not displayed:

    % snmptable -mALL -v2c -cprivate snmp_agent_Ip_address sunPlatFanTable
    SNMP table: SUN-PLATFORM-MIB::sunPlatFanTable
sunPlatFanClass fan fan fan fan fan fan fan fan

Here is an example of an `snmptable` command with the `-Ci` and `-Cb` options. The output is abbreviated.

    % snmptable -Ci -Cb -mALL -v2c -cprivate snmp_agent_IP_address entPhysicalTable
    SNMP table: ENTITY-MIB::entPhysicalTable
    index
    Descr
    VendorType
    ContainedIn
     1
    ? SNMPv2-SMI::zeroDotZero
    0
    chassis

Here is an example of the same `snmptable` command with the `-Ci` option but without the `-Cb` option. Again the output is abbreviated. Notice that the name of the MIB object is repeated on each heading.

    % snmptable -Ci -mALL -v2c -cprivate snmp_agent_IP_address entPhysicalTable
    SNMP table: ENTITY-MIB::entPhysicalTable
    index
    entPhysicalDescr
    entPhysicalVendorType
    entPhysicalContainedIn
     1
    ?SNMPv2-SMI::zeroDotZero
    0
    chassis

Here is another example of an `snmptable` command with both the `-Ci` and `-Cb` options. Notice that the MIB object is not repeated on each heading.

    % snmptable -Cb -Ci -mALL -v2c -cprivate snmp_agent_IP_address ilomCtrlAlertsTable
    SNMP table: SUN-ILOM-CONTROL-MIB::ilomCtrlAlertsTable
     in-dex
    Sever-ity
    Type
    Dest-ina-tion-IP
    Dest-ina-tion-Email
    SNMPVer-sion
    SNMP-CommunityOrUsername
    EmailEventClassFil-ter
    Email Event Type Filter
    1
    crit-ical
    email
    ?
    0.0.0.0
    v1
    public
     none
     none
    2
     dis-able
    ipmipet
    0.0.0.0
    ?
    v1
    public
     ?
     ?
    3
     dis-able
    ipmipet
    0.0.0.0
    ?
    v1
    public
     ?
     ?
    4
     dis-able
    ipmipet
    0.0.0.0
    ?
    v1
    public
     ?
     ?
    .

    .

    .

    15
     dis-able
    ipmipet
    0.0.0.0
    ?
    v1
    public
     ?
     ?

Thus, when you used the `-Cb` option with the `snmptable` command, the table output is easier to read.

Here is an example of an `snmptable` command using version 3 of the SNMP protocol:

    % snmptable -Cb -Ci -mALL -v3 -aMD5 -utestuser -Apassword -lauthNoPriv snmp_agent_Ip_address sunPlatPowerSupplyTable
    SNMP table: SUN-PLATFORM-MIB::sunPlatPowerSupplyTable
    index sunPlatPowerSupplyClass
    90             powerSupply
    92             powerSupply
    96             powerSupply

The following `snmptable` command returns an empty table.

    % snmptable -Cb -Ci -mALL -v2c -cprivate snmp_agent_Ip_address sunPlatBatteryTable
    SUN-PLATFORM-MIB::sunPlatBatteryTable: No entries

### snmpset Command

While the syntax of the `snmpset` command is similar to that of the `snmpget` command, the commands are quite different. The `snmpget` command merely reads the value of the specified object ID, while the `snmpset` command writes the value specified to the object ID. Further, along with the value to be written to the object ID, you must also specify the data type of the object ID in the `snmpset` command because SNMP objects support more than one data type.

The following example shows how use of the `snmpget` and `snmpset` commands together. The sequence of steps is as follows:

1. Use the `snmpget` command to check to current value of the MIB object.

2. Use the `snmpset` command to change the value of the MIB object.

3. Use the `snmpget` command to verify that the MIB object was in fact changed to the requested value.

    % snmpget -mALL -v2c -cprivate snmp_agent_Ip_address ilomCtrlHttpEnabled.0
    SUN-ILOM-CONTROL-MIB::ilomCtrlHttpEnabled.0 = INTEGER: false(2)
    % snmpset -mALL -v2c -cprivate snmp_agent_Ip_address ilomCtrlHttpEnabled.0 i 1
    SUN-ILOM-CONTROL-MIB::ilomCtrlHttpEnabled.0 = INTEGER: true(1)
    % snmpget -mALL -v2c -cprivate snmp_agent_Ip_address ilomCtrlHttpEnabled.0
    SUN-ILOM-CONTROL-MIB::ilomCtrlHttpEnabled.0 = INTEGER: true(1)

Note that if you try to execute this `snmpset` command using a public community, instead of private, it will not work. This is because the private community has write permission, but the public community does not. The Reason code returned by the command does not make this clear because it simply states that the object is not writable.

Here is an example:

    % snmpset -mALL -v2c -cpublic snmp_agent_Ip_address ilomCtrlHttpEnabled.0 i 1
    Error in packet.
    Reason: notWritable (That object does not support modification)

### snmptrapd Command

snmptrapd is an SNMP application that receives and logs SNMP Trap and Inform messages. Before your system can receive such messages, you must configure the trap daemon to listen for these messages.

To configure a trap daemon, perform the following steps:

1. Configure an SNMP trap destination.

For an example, see Configuring an snmptrapd Daemon.

2. Start the trap receiver application, snmptrapd.

For an example, see Starting the Trap Daemon.

3. Generate a test trap to verify that traps are being sent by the agent and received by the trap receiver.

For an example, see Testing the Trap Daemon.

Configuring an snmptrapd Daemon

The following example shows how to use the `snmpset` command to configure an `snmptrapd` daemon:

    % snmpset -mALL -v2c -cprivate snmp_agent_Ip_address ilomCtrlAlertSeverity.1 i 2 ilomCtrlAlertType.1 i 2 ilomCtrlAlertDestinationIP.1 a dest_Ip_address
    SUN-ILOM-CONTROL-MIB::ilomCtrlAlertSeverity.1 = INTEGER: critical(2)
    SUN-ILOM-CONTROL-MIB::ilomCtrlAlertType.1 = INTEGER: snmptrap(2)
    SUN-ILOM-CONTROL-MIB::ilomCtrlAlertDestinationIP.1 = IpAddress: dest_Ip_address

Starting the Trap Daemon

The following example shows how to use the `snmptrapd` command start a trap daemon:

    % snmptrapd -mALL -Lo -f -t -OvQ -e -F "%H.%J.%K:%W:%w %q from %A:%V,% %v\n"
    2007-11-29 13:21:07 NET-SNMP version 5.2.3 Started.

Testing the Trap Daemon

While the daemon is running, log in to the CLI on the host that is running the SNMP agent and type the following command:

-> `set /SP/alertmgmt/rules testalert=true`

Note - It is important to test the trap daemon to make sure it is configured properly.

The following screen shows a sample output when a `testalert` trap is received:

    SUN-ILOM-CONTROL-MIB::ilom.103.2.1.20.0 = STRING: "This is a test trap"

Copyright © 2010, Oracle and/or its affiliates. All rights reserved.