CISCO-NTP-MIB
AI MIB Summary
The CISCO-NTP-MIB enables SNMP-based monitoring and management of Cisco devices acting as Network Time Protocol (NTP) servers and clients, exposing critical synchronization metrics including clock offset, round-trip delay, and dispersion. It facilitates the observation of NTP association states, peer relationships, and stratum levels to validate timekeeping accuracy and detect synchronization failures within the hierarchical master-slave architecture.
This MIB module defines a MIB which provides mechanisms to monitor an NTP server.
The MIB is derived from the Technical Report #Management of the NTP with SNMP# TR No. 98-09 authored by A.S. Sethi and Dave Mills in the University of Delaware.
Below is a brief overview of NTP system architecture and implementation model. This will help understand the objects defined below and their relationships.
NTP Intro: The Network Time Protocol (NTP) Version 3, is used to synchronize timekeeping among a set of distributed time servers and clients. The service model is based on a returnable-time design which depends only on measured clock offsets, but does not require reliable message delivery. The synchronization subnet uses a self-organizing, hierarchical master-slave configuration, with synchronization paths determined by a minimum-weight spanning tree. While multiple masters (primary servers) may exist, there is no requirement for an election protocol.
System Archiecture: In the NTP model a number of primary reference sources, synchronized by wire or radio to national standards, are connected to widely accessible resources, such as backbone gateways, and operated as primary time servers. The purpose of NTP is to convey timekeeping information from these servers to other time servers via the Internet and also to cross-check clocks and mitigate errors due to equipment or propagation failures. Some number of local-net hosts or gateways, acting as secondary time servers, run NTP with one or more of the primary servers. In order to reduce the protocol overhead, the secondary servers distribute time via NTP to the remaining local-net hosts. In the interest of reliability, selected hosts can be equipped with less accurate but less expensive radio clocks and used for backup in case of failure of the primary and/or secondary servers or communication paths between them.
NTP is designed to produce three products: clock offset, round-trip delay and dispersion, all of which are relative to a selected reference clock. Clock offset represents the amount to adjust the local clock to bring it into correspondence with the reference clock. Roundtrip delay provides the capability to launch a message to arrive at the reference clock at a specified time. Dispersion represents the maximum error of the local clock relative to the reference clock. Since most host time servers will synchronize via another peer time server, there are two components in each of these three products, those determined by the peer relative to the primary reference source of standard time and those measured by the host relative to the peer. Each of these components are maintained separately in the protocol in order to facilitate error control and management of the subnet itself. They provide not only precision measurements of offset and delay, but also definitive maximum error bounds, so that the user interface can determine not only the time, but the quality of the time as well.
Implementation Model: In what may be the most common client/server model a client sends an NTP message to one or more servers and processes the replies as received. The server interchanges addresses and ports, overwrites certain fields in the message, recalculates the checksum and returns the message immediately. Information included in the NTP message allows the client to determine the server time with respect to local time and adjust the local clock accordingly. In addition, the message includes information to calculate the expected timekeeping accuracy and reliability, as well as select the best from possibly several servers.
While the client/server model may suffice for use on local nets involving a public server and perhaps many workstation clients, the full generality of NTP requires distributed participation of a number of client/servers or peers arranged in a dynamically reconfigurable, hierarchically distributed configuration. It also requires sophisticated algorithms for association management, data manipulation and local-clock control.
Glossary:
1. Host: Refers to an instantiation of the NTP
protocol on a local processor.
2. Peer: Refers to an instantiation of the NTP
protocol on a remote processor connected by a network path from the local host.
59
Objects
Active
Status
4
Dependencies
Imported Objects
Objects
59 total| Object Name |
|---|
ciscoNtpMIB OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168 |
RFC1155-SMI Unknown .1.3.6.1.4.1.9.9.168 |
ciscoNtpMIBObjects OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.1 |
cntpSystem OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.1.1 |
cntpSysLeapTwo-bit code warning of an impending leap second to
be inserted in the NTP timescale. This object can be
set only when the cntpSysStratum has a value of 1.rw NTPLeapIndicator -- Rsyntax INTEGER { -- ?? enum value of zero may cause problems -- noWarning(0), -- addSecond(1), -- subtractSecond(2), -- alarm(3) -- } .1.3.6.1.4.1.9.9.168.1.1.1 |
cntpSysStratumThe stratum of the local clock. If the value is set
to 1, i.e., this is a primary reference, then the
Primary-Clock procedure described in Section 3.4.6,
in RFC-1305 is invoked.rw NTPStratum -- Rsyntax INTEGER .1.3.6.1.4.1.9.9.168.1.1.2 |
cntpSysPrecisionSigned integer indicating the precision
of the system clock, in seconds to the nearest
power of two. The value must be rounded to the
next larger power of two; for instance, a 50-Hz
(20 ms) or 60-Hz (16.67 ms) power-frequency clock
would be assigned the value -5 (31.25 ms), while a
1000-Hz (1 ms) crystal-controlled clock would be
assigned the value -9 (1.95 ms).ro INTEGER(-20..20) .1.3.6.1.4.1.9.9.168.1.1.3 |
cntpSysRootDelayA signed fixed-point number indicating the total
round-trip delay in seconds, to the primary reference
source at the root of the synchronization subnet.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.1.4 |
cntpSysRootDispersionThe maximum error in seconds, relative to the
primary reference source at the root of the
synchronization subnet. Only positive values greater
than zero are possible.ro NTPUnsignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.1.5 |
cntpSysRefIdThe reference identifier of the local clock.ro NTPRefId -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.1.6 |
cntpSysRefTimeThe local time when the local clock was last
updated. If the local clock has never been
synchronized, the value is zero.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.1.7 |
cntpSysPollThe interval at which the NTP server polls other NTP
servers to synchronize its clock.ro NTPPollInterval -- Rsyntax INTEGER(-20..20) .1.3.6.1.4.1.9.9.168.1.1.8 |
cntpSysPeerThe current synchronization source. This will
contain the unique association identifier
cntpPeersAssocId of the corresponding peer entry in
the cntpPeersVarTable of the peer acting as the
synchronization source. If there is no peer, the
value will be 0.ro NTPAssocIdentifier -- Rsyntax INTEGER .1.3.6.1.4.1.9.9.168.1.1.9 |
cntpSysClockThe current local time. Local time is derived from
the hardware clock of the particular machine and
increments at intervals depending on the design used.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.1.10 |
cntpPeers OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.1.2 |
cntpPeersVarTableThis table provides information on the peers with
which the local NTP server has associations. The
peers are also NTP servers but running on different
hosts. SEQUENCE OF CntpPeersVarEntry .1.3.6.1.4.1.9.9.168.1.2.1 |
cntpPeersVarEntryEach peers' entry provides NTP information retrieved
from a particular peer NTP server. Each peer is
identified by a unique association identifier.
Entries are automatically created when the user
configures the NTP server to be associated with remote
peers. Similarly entries are deleted when the user
removes the peer association from the NTP server.
Entries can also be created by the management station
by setting values for the following objects:
cntpPeersPeerAddress, cntpPeersHostAddress and
cntpPeersMode and making the cntpPeersEntryStatus as
active(1). At the least, the management station has
to set a value for cntpPeersPeerAddress to make the
row active. CntpPeersVarEntry .1.3.6.1.4.1.9.9.168.1.2.1.1 |
cntpPeersAssocIdAn integer value greater than 0 that uniquely
identifies a peer with which the local NTP server
is associated. NTPAssocIdentifier -- Rsyntax INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.1 |
cntpPeersConfiguredThis is a bit indicating that the association
was created from configuration information and
should not be de-associated even if the peer
becomes unreachable.ro TruthValue -- Rsyntax INTEGER { -- true(1), -- false(2) -- } .1.3.6.1.4.1.9.9.168.1.2.1.1.2 |
cntpPeersPeerAddressThe IP address of the peer. When creating a new
association, a value for this object should be set
before the row is made active.rw IpAddress .1.3.6.1.4.1.9.9.168.1.2.1.1.3 |
cntpPeersPeerPortThe UDP port number on which the peer receives NTP
mesages.ro INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.4 |
cntpPeersHostAddressThe IP address of the local host. Multi-homing can
be supported using this object.rw IpAddress .1.3.6.1.4.1.9.9.168.1.2.1.1.5 |
cntpPeersHostPortThe UDP port number on which the local host receives
NTP messages.ro INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.6 |
cntpPeersLeapTwo-bit code warning of an impending leap
second to be inserted in the NTP timescale of
the peer.ro NTPLeapIndicator -- Rsyntax INTEGER { -- ?? enum value of zero may cause problems -- noWarning(0), -- addSecond(1), -- subtractSecond(2), -- alarm(3) -- } .1.3.6.1.4.1.9.9.168.1.2.1.1.7 |
cntpPeersModeThe association mode of the NTP server, with values
coded as followw,
0, unspecified
1, symmetric active - A host operating in this mode
sends periodic messages regardless of the
reachability state or stratum of its peer. By
operating in this mode the host announces its
willingness to synchronize and be synchronized
by the peer
2, symmetric passive - This type of association is
ordinarily created upon arrival of a message
from a peer operating in the symmetric active
mode and persists only as long as the peer is
reachable and operating at a stratum level
less than or equal to the host; otherwise, the
association is dissolved. However, the
association will always persist until at least
one message has been sent in reply. By
operating in this mode the host announces its
willingness to synchronize and be synchronized
by the peer
3, client - A host operating in this mode sends
periodic messages regardless of the
reachability state or stratum of its peer. By
operating in this mode the host, usually a LAN
workstation, announces its willingness to be
synchronized by, but not to synchronize the peer
4, server - This type of association is ordinarily
created upon arrival of a client request message
and exists only in order to reply to that
request, after which the association is
dissolved. By operating in this mode the host,
usually a LAN time server, announces its
willingness to synchronize, but not to be
synchronized by the peer
5, broadcast - A host operating in this mode sends
periodic messages regardless of the
reachability state or stratum of the peers.
By operating in this mode the host, usually a
LAN time server operating on a high-speed
broadcast medium, announces its willingness to
synchronize all of the peers, but not to be
synchronized by any of them
6, reserved for NTP control messages
7, reserved for private use.
When creating a new peer association, if no value
is specified for this object, it defaults to
symmetricActive(1).rw Enumeration .1.3.6.1.4.1.9.9.168.1.2.1.1.8 |
cntpPeersStratumThe stratum of the peer clock.ro NTPStratum -- Rsyntax INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.9 |
cntpPeersPeerPollThe interval at which the peer polls the local host.ro NTPPollInterval -- Rsyntax INTEGER(-20..20) .1.3.6.1.4.1.9.9.168.1.2.1.1.10 |
cntpPeersHostPollThe interval at which the local host polls the peer.ro NTPPollInterval -- Rsyntax INTEGER(-20..20) .1.3.6.1.4.1.9.9.168.1.2.1.1.11 |
cntpPeersPrecisionSigned integer indicating the precision of the peer
clock, in seconds to the nearest power of two. The
value must be rounded to the next larger power of
two; for instance, a 50-Hz (20 ms) or 60-Hz
(16.67 ms) power-frequency clock would be assigned
the value -5 (31.25 ms), while a 1000-Hz (1 ms)
crystal-controlled clock would be assigned the value
-9 (1.95 ms).ro INTEGER(-20..20) .1.3.6.1.4.1.9.9.168.1.2.1.1.12 |
cntpPeersRootDelayA signed fixed-point number indicating the total
round-trip delay in seconds, from the peer to the
primary reference source at the root of the
synchronization subnet.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.13 |
cntpPeersRootDispersionThe maximum error in seconds, of the peer clock
relative to the primary reference source at the root
of the synchronization subnet. Only positive values
greater than zero are possible.ro NTPUnsignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.14 |
cntpPeersRefIdThe reference identifier of the peer.ro NTPRefId -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.15 |
cntpPeersRefTimeThe local time at the peer when its clock was last
updated. If the peer clock has never been
synchronized, the value is zero.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.16 |
cntpPeersOrgTimeThe local time at the peer, when its latest
NTP message was sent. If the peer becomes unreachable
the value is set to zero.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.17 |
cntpPeersReceiveTimeThe local time, when the latest NTP message from
the peer arrived. If the peer becomes unreachable
the value is set to zero.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.18 |
cntpPeersTransmitTimeThe local time at which the NTP message departed the
sender.ro NTPTimeStamp -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.19 |
cntpPeersUpdateTimeThe local time, when the most recent NTP message was
received from the peer that was used to calculate the
skew dispersion. This represents only the 32-bit
integer part of the NTPTimestamp.rodeprecated INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.20 |
cntpPeersReachA shift register of used to determine the
reachability status of the peer, with bits entering
from the least significant (rightmost) end. A peer is
considered reachable if at least one bit in this
register is set to one i.e, if the value of this
object is non-zero.
The data in the shift register would be populated by
the NTP protocol procedures.ro INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.21 |
cntpPeersTimerThe interval in seconds, between transmitted NTP
messages from the local host to the peer.ro INTEGER .1.3.6.1.4.1.9.9.168.1.2.1.1.22 |
cntpPeersOffsetThe estimated offset of the peer clock relative to
the local clock, in seconds. The host determines the
value of this object using the NTP clock-filter
algorithm.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.23 |
cntpPeersDelayThe estimated round-trip delay of the peer clock
relative to the local clock over the network path
between them, in seconds. The host determines the
value of this object using the NTP clock-filter
algorithm.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.24 |
cntpPeersDispersionThe estimated maximum error of the peer clock
relative to the local clock over the network path
between them, in seconds. The host determines the
value of this object using the NTP clock-filter
algorithm.ro NTPUnsignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.2.1.1.25 |
cntpPeersFilterValidEntriesThe number of valid entries for a peer in the
Filter Register Table. Since, the Filter Register
Table is optional, this object will have a value 0
if the Filter Register Table is not implemented.ro Gauge .1.3.6.1.4.1.9.9.168.1.2.1.1.26 |
cntpPeersEntryStatusThe status object for this row. When a management
station is creating a new row, it should set the
value for cntpPeersPeerAddress atleast, before the row
can be made active(1).rw RowStatus -- Rsyntax INTEGER { -- active(1), -- notInService(2), -- notReady(3), -- createAndGo(4), -- createAndWait(5), -- destroy(6) -- } .1.3.6.1.4.1.9.9.168.1.2.1.1.27 |
cntpPeersUpdateTimeRev1The local time, when the most recent NTP message was
received from the peer that was used to calculate the
skew dispersion. This represents only the 32-bit
integer part of the NTPTimestamp.ro Gauge .1.3.6.1.4.1.9.9.168.1.2.1.1.28 |
cntpFilter OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.1.3 |
cntpFilterRegisterTableThe following table contains NTP state variables
used by the NTP clock filter and selection algorithms.
This table depicts a shift register. Each stage in
the shift register is a 3-tuple consisting of the
measured clock offset, measured clock delay and
measured clock dispersion associated with a single
observation.
An important factor affecting the accuracy and
reliability of time distribution is the complex of
algorithms used to reduce the effect of statistical
errors and falsetickers due to failure of various
subnet components, reference sources or propagation
media. The NTP clock-filter and selection algorithms
are designed to do exactly this. The objects in the
filter register table below are used by these
algorthims to minimize the error in the calculated
time. SEQUENCE OF CntpFilterRegisterEntry .1.3.6.1.4.1.9.9.168.1.3.2 |
cntpFilterRegisterEntryEach entry corresponds to one stage of the shift
register, i.e., one reading of the variables clock
delay, clock offset and clock dispersion.
Entries are automatically created whenever a peer is
configured and deleted when the peer is removed. CntpFilterRegisterEntry .1.3.6.1.4.1.9.9.168.1.3.2.1 |
cntpFilterIndexAn integer value in the specified range that is used
to index into the table. The size of the table is
fixed at 8. Each entry identifies a particular
reading of the clock filter variables in the shift
register.
Entries are added starting at index 1. The index
wraps back to 1 when it reaches 8. When the index
wraps back, the new entries will overwrite the old
entries effectively deleting the old entry. INTEGER .1.3.6.1.4.1.9.9.168.1.3.2.1.1 |
cntpFilterPeersOffsetThe offset of the peer clock relative to the
local clock in seconds.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.3.2.1.2 |
cntpFilterPeersDelayRound-trip delay of the peer clock relative to the
local clock over the network path between them, in
seconds. This variable can take on both positive and
negative values, depending on clock precision and
skew-error accumulation.ro NTPSignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.3.2.1.3 |
cntpFilterPeersDispersionThe maximum error of the peer clock relative to the
local clock over the network path between them, in
seconds. Only positive values greater than zero are
possible.ro NTPUnsignedTimeValue -- Rsyntax OCTET STRING .1.3.6.1.4.1.9.9.168.1.3.2.1.4 |
ciscoNtpMIBConformance OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3 |
ciscoNtpMIBCompliances OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.1 |
ciscoNtpMIBCompliance OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.1.1 |
ciscoNtpMIBGroups OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.2 |
ciscoNtpSysGroup OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.2.1 |
ciscoNtpPeersGroup OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.2.2 |
ciscoNtpFilterGroup OBJECT IDENTIFIER .1.3.6.1.4.1.9.9.168.3.2.3 |