Network protocols

NOTE

It is possible that some properties or resources described in this section are not implemented in iLO 4 and iLO 5.

This section provides information about the network protocols controlled by HPE iLO. The exhaustive list of iLO network protocols can be retrieved from the standard URI at /redfish/v1/Managers/1/NetworkProtocol.

Simple Network Management Protocol

HPE iLO supports the Simple Network Management Protocol (SNMP). SNMP traps are generated by Redfish events posted in the iLO Integrated Management Logs (IML). iLO SNMP Object Identifiers (OIDs) are defined in the HPE Systems Insight Manager (SIM) MIB update kit. To cross reference an SNMP trap with REST alerts information, see the REST alerts table in the iLO user guide.

TIP

If you make a mistake in the following iLOrest examples, you can always delete property changes in the cache, by reloading the a fresh schema/data-type (ilorest select Schema. --refresh ):

Copy
Copied
ilorest select Schema.
ilorest set Property="Bad Value"
ilorest select Schema. --refresh

SNMP enablement

SNMP enablement is performed by setting the SNMP/ProtocolEnabled property to true under the Redfish standard ManagerNetworkProtocol URI.

Generic PATCH requestBody requestiLOrest (verbose mode)iLOrest response
Copy
Copied
PATCH /redfish/v1/Managers/1/NetworkProtocol
Copy
Copied
{
    "SNMP": {
        "ProtocolEnabled": true
    }
}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest select ManagerNetworkProtocol
ilorest set SNMP/ProtocolEnabled=True --commit
ilorest logout
Copy
Copied
Selected option(s): #ManagerNetworkProtocol.v1_0_0.ManagerNetworkProtocol
Added the following patch:
{
  "SNMP/ProtocolEnabled": true
}
Committing changes...
Changes are being made to path: /redfish/v1/Managers/1/NetworkProtocol/

HTTP Response Code: [200]
MessageId: iLO.2.18.ResetRequired
Description: The operation completed successfully.
Message: The operation completed successfully.
Resolution:
iLOrest return code: 0

SNMPv1 enablement

SNMPv1 is enabled when the SNMPv1Enabled key is set to true, under the /redfish/v1/Managers/1/SnmpService URI.

NOTE

An iLO reset is required when a PATCH request is performed on that property.

Generic PATCH requestBodyiLOrest (verbose)iLOrest response
Copy
Copied
PATCH /redfish/v1/Managers/1/SnmpService
Copy
Copied
{
    "SNMPv1Enabled": true,
    "SNMPv1RequestsEnabled" : true,
    "SNMPv1TrapEnabled" : true

}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest set SNMPv1Enabled=False SNMPv1RequestsEnabled=False SNMPv1TrapEnabled=False
ilorest status
ilorest -vv --commit 
ilorest iloreset 
Copy
Copied
HTTP Response Code: [200]
MessageId: Base.1.4.Success
Description: The operation completed successfully.
Message: The operation completed successfully.
Resolution:
iLOrest return code: 0

SNMP configuration

SNMPv3 configuration can only be performed when the SNMP is enabled. SNMPv1 configuration can only be performed when the SNMP and the SNMPv1 are enabled.

SNMP ports configuration

The SNMP default port number (161) can be modified with a PATCH request of the SNMP/Port property under the Redfish standard ManagerNetworkProtocol URI.

The SNMP default trap port (162) can be modified with a PATCH request of the OEM/Hpe/SNMPTrapPort property under the ManagerNetworkProtocol URI.

Generic PATCH requestBodyiLOrest
Copy
Copied
PATCH /redfish/v1/Managers/1/NetworkProtocol
Copy
Copied
"SNMP": {
        "Port": <integer>
    },
"Oem": {
        "Hpe": {
            "SNMPTrapPort": <integer>
        }
}
Copy
Copied
ilorest select ManagerNetworkProtocol.
ilorest set SNMP/Port=4567 Oem/Hpe/SNMPTrapPort=7654
ilorest status
ilorest commit
ilorest iloreset

SNMP settings

General SNMP settings can be set in under the HpeiLOSnmpService URI.

Generic PATCH requestBodyiLOrest
Copy
Copied
PATCH /redfish/v1/Managers/1/SnmpService
Copy
Copied
{
    "Location": "My Location",
    "Contact": "Contact Name",
    "Role": "My role",
    "RoleDetail": "My role details",
    "ReadCommunities": [
        "communitystring1",
        "communitystring2",
        "communitystring3"
    ]
}
Copy
Copied
ilorest select HpeiLOSnmpService.
ilorest set Location="My Location" Contact="Contact Name"
ilorest set Role="My role" RoleDetail="My role details"
ilorest set ReadCommunities/=["CommunityString1","CommunityString2","CommunityString3"]
ilorest status
ilorest commit
ilorest iloreset
Warning

A space between the elements of the ReadCommunities array leads to the following error:

'[CommunityString1,' is not a valid setting for 'ReadCommunities', expecting an array

SNMPv3 settings

Specific SNMPv3 settings can be provided under the /redfish/v1/Managers/1/SnmpService URI.

Generic PATCH requestBodyiLOrest
Copy
Copied
PATCH /redfish/v1/Managers/1/SnmpService
Copy
Copied
{
    "SNMPv3EngineID": "0x8000000001020304",
    "SNMPv3InformRetryAttempt": 2,
    "SNMPv3InformRetryIntervalSeconds": 15
}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest select HpeiLOSnmpService.
ilorest set SNMPv3EngineID="0x8000000001020304" SNMPv3InformRetryAttempt=2 SNMPv3InformRetryIntervalSeconds=15
ilorest status
ilorest commit
ilorest iloreset

SNMP alerts

SNMP alerts properties can be set under the /redfish/v1/Managers/1/SnmpService URI.

The following properties have been added in HpeiLOSnmpService version 2.4.0:

  • SNMPv1RequestsEnabled : Enables/disables (Boolean) iLO to receive external SNMPv1 requests.
  • SNMPv1TrapEnabled : Enables/disables (Boolean) iLO to send SNMPv1 traps to the remote management systems configured in the alert destination.
  • SNMPv3RequestsEnabled : Enables/disables (Boolean) iLO to receive external SNMPv3 requests.
  • SNMPv3TrapEnabled : Enables/disables (Boolean) iLO to send SNMPv3 traps to the remote management systems configured in the alert destination.
NOTE
  • SNMPv1Enabled enables both SNMPv1RequestsEnabled and SNMPv1TrapEnabled .
  • AlertsEnabled enables both SNMPv1TrapEnabled and SNMPv3TrapEnabled .
  • Enabling either SNMPv1RequestsEnabled or SNMPv1TrapEnabled enables SNMPv1Enabled .
  • Enabling either SNMPv1TrapEnabled or SNMPv3TrapEnabled enables AlertsEnabled .
Generic PATCH requestBodyiLOrest
Copy
Copied
PATCH /redfish/v1/Managers/1/SnmpService
Copy
Copied
{
    "TrapSourceHostname": "Manager",
    "AlertsEnabled": true,
    "SNMPv1Enabled": false,
    "Oem": {
        "Hpe": {
            "SNMPColdStartTrapBroadcast": false
        }
    },
    "PeriodicHSATrapConfig": "Disabled"
}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest select HpeiLOSnmpService.
ilorest set TrapSourceHostname="Manager"
ilorest set AlertsEnabled=True
ilorest set SNMPv1Enabled=False
ilorest set Oem/Hpe/SNMPColdStartTrapBroadcast=False
ilorest set PeriodicHSATrapConfig="Disabled" 
ilorest status
ilorest commit
ilorest reset

SNMP alert destinations

Add an SNMP alert destination with a POST request in the HpeSNMPAlertDestinationCollection URI.

NOTE
  • The SNMPv1TrapEnabled option is available when SNMPv1TrapEnabled is enabled in the SNMP Alerts section.
  • The SNMPv3TrapEnabled option is available when SNMPv3TrapEnabled is enabled in the SNMP Alerts section and at least one SNMPv3 user is configured.
  • The SNMPv3Inform option is available when at least one SNMPv3 user is configured.
Generic POST requestBody
Copy
Copied
POST redfish/v1/Managers/1/SnmpService/SNMPAlertDestinations
Copy
Copied
{
    "AlertDestination": "192.168.87.41",
    "SNMPAlertProtocol": "SNMPv1Trap",
    "TrapCommunity": "public"
}

SNMPv3 users

SNMPv3 users can be managed under the HpeSNMPUsersCollection URI.

NOTE

SNMPv3user is available only if the SNMP Protocol is set to SNMPv3TrapEnabled or SNMPv3Inform.

Add SNMP userBodyiLOrest
Copy
Copied
POST /redfish/v1/Managers/1/SnmpService/SNMPUsers
Copy
Copied
{
    "SecurityName": "snmpuser",
    "AuthProtocol": "SHA",
    "AuthPassphrase": "myauthpassword",
    "PrivacyProtocol": "AES",
    "PrivacyPassphrase": "myPrivacyPassphrase",
    "UserEngineID": "0x8000000001020304"
}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest select HpeSNMPUsersCollection.
ilorest rawpost SnmpUser.json
ilorest logout

cat SnmpUser.json
{
    "/redfish/v1/Managers/1/SnmpService/SNMPUsers": {
        "SecurityName": "snmpuser",
        "AuthProtocol": "SHA",
        "AuthPassphrase": "myauthpassword",
        "PrivacyProtocol": "AES",
        "PrivacyPassphrase": "myPrivacyPassphrase",
        "UserEngineID": "0x8000000001020304" }
}

View the collection of SNMPv3 users:

Generic GET requestiLOrestBody response
Copy
Copied
GET /redfish/v1/Managers/1/SnmpService/SNMPUsers
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest select HpeSNMPUsersCollection.
ilorest get --json
ilorest logout
Copy
Copied
{
  "Description": "SNMPv3 Users Collection view",
  "Members": [
    {
      "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/1/"
    },
    {
      "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/2/"
    }
  ],
  "Name": "SNMPv3 User Collection"
}

View the properties of all SNMPv3 users:

Generic GET requestiLOrestBody response
Copy
Copied
GET /redfish/v1/Managers/1/SnmpService/SNMPUsers/?$expand=.
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest --silent rawget '/redfish/v1/Managers/1/SnmpService/SNMPUsers/?$expand=.'
ilorest logout
Copy
Copied
{
  "@odata.context": "/redfish/v1/$metadata#HpeSNMPUsersCollection.HpeSNMPUsersCollection",
  "@odata.etag": "W/\"A4394AAB\"",
  "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/",
  "@odata.type": "#HpeSNMPUsersCollection.HpeSNMPUsersCollection",
  "Description": "SNMPv3 Users Collection view",
  "Members": [
    {
      "@odata.context": "/redfish/v1/$metadata#HpeSNMPUser.HpeSNMPUser",
      "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/1/",
      "@odata.type": "#HpeSNMPUser.v2_1_0.HpeSNMPUser",
      "AuthProtocol": "MD5",
      "Id": "1",
      "PrivacyProtocol": "DES",
      "SecurityName": "test",
      "UserEngineID": "0x800000E8044D585137323430375032"
    },
    {
      "@odata.context": "/redfish/v1/$metadata#HpeSNMPUser.HpeSNMPUser",
      "@odata.id": "/redfish/v1/Managers/1/SnmpService/SNMPUsers/2/",
      "@odata.type": "#HpeSNMPUser.v2_1_0.HpeSNMPUser",
      "AuthProtocol": "SHA",
      "Id": "2",
      "PrivacyProtocol": "AES",
      "SecurityName": "snmpuser",
      "UserEngineID": "0x8000000001020304"
    }
  ],
  "Members@odata.count": 2,
  "Name": "SNMPv3 User Collection"
}

Delete SNMP user

Delete SNMP user requestiLOrest
Copy
Copied
DELETE /redfish/v1/Managers/1/SnmpService/SNMPUsers/2
Copy
Copied
ilorest rawdelete --silent --response /redfish/v1/Managers/1/SnmpService/SNMPUsers/2

Send test alerts

Test alerts can be sent to alert destinations using a POST request towards HpeiLOSnmpService.SendSNMPTestAlert under the /redfish/v1/Managers/1/SnmpService URI with an empty body.

Send test alerts requestBodyiLOrest
Copy
Copied
POST /redfish/v1/Managers/1/SnmpService/Actions/HpeiLOSnmpService.SendSNMPTestAlert/
Copy
Copied
{}
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest rawpost TestAlerts.json
ilorest logout

cat TestAlerts.json
{
    "/redfish/v1/Managers/1/SnmpService/Actions/HpeiLOSnmpService.SendSNMPTestAlert/": {}
}

Intelligent Platform Management Interface

HPE iLO is able to control the use of the Intelligent Platform Management Interface ( IPMI) using the Redfish API.

The following example retrieves the state of IPMI using cURL and iLOrest.

Generic requestiLOrestcURLBody response
Copy
Copied
GET /redfish/v1/Managers/1/NetworkProtocol/?$select=IPMI
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest get --selector NetworkProtocol. --json
ilorest logout
Copy
Copied
curl --insecure --silent --location -u user:password \
     'https://ilo-ip/redfish/v1/Managers/1/NetworkProtocol/?$select=IPMI' 
Copy
Copied
{
  "IPMI": {
    "Port": 623,
    "ProtocolEnabled": true
  }
}

Manage the KCS interface feature for HPE iLO

IPMI over Keyboard Controller Style (KCS) enables management of the computer system and monitoring of the operations from within the host Operating System (OS). It is possible to enable or disable KCS for iLO 6 since version 1.40.

The following example enables the KCS interface using iLOrest and cURL.

Generic requestcURLiLOrest
Copy
Copied
PATCH /redfish/v1/Managers/1/NetworkProtocol

Workload:
{ 
"Oem": {
    "Hpe":{
      "KcsEnabled": true
        }
      }
}
Copy
Copied
curl --insecure --location --silent -u demopaq:password \
     --header 'Content-Type: application/json' \
     --request PATCH 'https://ilo-lio365g11-2/redfish/v1/Managers/1/NetworkProtocol/' \
     --data '{ 
              "Oem": {
                  "Hpe":{
                          "KcsEnabled": true }}
              }'
Copy
Copied
ilorest login <ilo-ip> -u <ilo-user> -p password
ilorest get Oem/Hpe/KcsEnabled --json
ilorest set Oem/Hpe/KcsEnabled=True --commit
ilorest logout

IPMI in-band management

In-band management operations can fail or be slow when the IPMI interrupt support is enabled in the HPE Bios service OEM extension of iLO 6 version 1.10 and later. Refer to this customer advisory for more detail.

The following example disables the KcsIpmiInterrupt attribute in the HPE Bios service subsystem of an HPE iLO 6 based server. Then it performs a graceful restart of the server.

Generic PATCH requestGeneric Graceful system restart
Copy
Copied
PATCH /redfish/v1/Systems/1/Bios/Oem/Hpe/Service/Settings

Body:
{
    "Attributes": {
    "KcsIpmiInterrupt": "Disabled"
    }
}
Copy
Copied
POST `/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/`

Body:
{
    "ResetType": "GracefulRestart"
}
TIP
  • More information concerning the HPE Bios service subsystem can be found in the Managing HPE Bios section.
  • After a modification in the BIOS settings (standard or OEM extension) and the restart of the server, it is a good practice to analyze the @Redfish.Settings object of the current settings area as explained in the Redfish error responses and messages section.