Definitions of Managed Objects for Network Time Protocol Version 4 (NTPv4)
Extracted elements (24)
Some values are provided in both numeric and human-readable (DisplayString) format to simplify representation of status information; where the two representations differ, the numeric representation takes precedence.
The NtpDateTime textual convention explicitly prohibits use for setting the time of the node querying it, because NTP (or at least SNTP) should be used for that purpose rather than SNMP polling.
ntpAssocAddressType supports IPv4, IPv6, IPv4 with zone index (ipv4z), and IPv6 with zone index (ipv6z), enabling the MIB to represent associations over both address families including scoped addresses.
Deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. It is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security (authentication and privacy).
It is RECOMMENDED that implementers consider the security features provided by the SNMPv3 framework, including full support for SNMPv3 cryptographic mechanisms for authentication and privacy.
Eight SNMP notifications are defined: ntpEntNotifModeChange, ntpEntNotifStratumChange, ntpEntNotifSyspeerChanged, ntpEntNotifAddAssociation, ntpEntNotifRemoveAssociation, ntpEntNotifConfigChanged, ntpEntNotifLeapSecondAnnounced, and ntpEntNotifHeartbeat.
ntpAssociationStatisticsTable provides per-association packet counters: ntpAssocStatInPkts, ntpAssocStatOutPkts, and ntpAssocStatProtocolError, indexed by ntpAssocId.
ntpAssociationTable provides per-association status including name, refclock driver ID, IPv4/IPv6 address (with optional zone index), time offset, stratum, jitter, delay, and root dispersion.
ntpEntHeartbeatInterval (default 60 seconds, read-write) controls the interval for heartbeat notifications. If set to 0 with the heartbeat bit enabled, exactly one heartbeat is sent. The value is stored persistently across restarts.
ntpEntNotifBits is a read-write BITS object that enables or disables each of eight SNMP notifications: entNotifModeChange(1), entNotifStratumChange(2), entNotifSyspeerChanged(3), entNotifAddAssociation(4), entNotifRemoveAssociation(5), entNotifConfigChanged(6), entNotifLeapSecondAnnounced(7), entNotifHeartbeat(8). Stored persistently.
ntpEntObjectsGroup1 (mandatory) includes: ntpEntSoftwareName, ntpEntSoftwareVersion, ntpEntSoftwareVendor, ntpEntSystemType, ntpEntStatusEntityUptime, ntpEntStatusDateTime, ntpAssocName, ntpAssocRefId, ntpAssocAddressType, ntpAssocAddress.
ntpEntStatPktModeTable tracks packets sent and received broken down by NTP packet mode: symetricactive(1), symetricpassive(2), client(3), server(4), broadcastserver(5), broadcastclient(6).
ntpEntStatusCurrentMode reports the NTP entity's operational mode as one of: notRunning(1), notSynchronized(2), noneConfigured(3), syncToLocal(4), syncToRefclock(5), syncToRemoteServer(6), or unknown(99).
ntpEntStatusDateTime provides the current NTP date/time on the device in 128-bit NTP format; it is intended for timestamping and correlating events, not for setting the time of the querying node.
ntpEntStatusLeapSecond and ntpEntStatusLeapSecDirection provide the date and direction (+1/-1) of the next announced leap second; both are 0 if no leap second is announced.
ntpEntStatusStratum reports the NTP entity's own stratum value, which should be the syspeer's stratum plus 1, or 16 if no syspeer is available.
The NTPv4-MIB is organized into six groups: ntpEntInfo (general server information), ntpEntStatus (current NTP status), ntpAssociation (mobilized associations), ntpEntControl (control objects), ntpEntNotifObjects (notification payload objects), and SNMP notification definitions.
Two compliance levels are defined: ntpEntNTPCompliance (mandatory: ntpEntObjectsGroup1) for full NTP entities, and ntpEntSNTPCompliance (mandatory: ntpEntObjectsGroup1; optional: ntpEntObjectsGroup2 and ntpEntNotifGroup) for SNTP entities.
The NTPv4 MIB module is assigned the OBJECT IDENTIFIER { mib-2 197 } (descriptor: ntpSnmp) in the SMI Numbers registry.
ntpEntHeartbeatInterval is a read-write object that can be abused to generate notifications at up to 1 per second (if set to 1) or used to flood the management system. Access to SET operations on this object must be protected.
ntpEntNotifBits can be set by an attacker to suppress notifications for critical events (stratum changes, syspeer loss), delaying or eliminating operator awareness of NTP failures.
ntpEntSoftwareName, ntpEntSoftwareVersion, ntpEntSoftwareVendor, and ntpEntSystemType expose software and platform identity that can aid an attacker in identifying vulnerabilities; GET and NOTIFY access to these objects should be controlled and values encrypted in transit.
NtpDateTime is a 128-bit NTP date format encoded as OCTET STRING of SIZE 0 or 16. A zero-length string indicates time is not synchronized. It must not be used to set the time of the querying node.
NtpStratum is a TEXTUAL-CONVENTION encoded as Unsigned32 in the range 1..16, where 16 represents 'no stratum' (unsynchronized).