Network Time Protocol (NTP) is a standard protocol for the transfer of time across the Internet and computer networks. The NTP protocol source code is ‘open source’ and can be freely downloaded from the NTP Web site. The NTP primary development platform is Linux but ports to Windows are also available.
This article describes how to debug a NTP server installation after compilation and configuration of the distribution.
NTP Server Debugging
Once the NTP distribution is installed and configured, correct operation needs to be verified. NTP includes a number of tools that can be used to query and debug a NTP server. The most widely used tool is ‘ntpq’ – the standard NTP query utility. The ‘ntpq’ utility can be run on the NTP Server installation or from any other computer on the network. The utility can be used to inspect NTP Server system variables to verify correct operation.
Using ‘ntpq’ – The NTP Query Utility
The ‘ntpq’ utility is run from a Linux command prompt. It can be run with a number of command line options. The most useful parameter is the ‘-p’ option which display NTP server peer variables. Run the ntpq utility with the -p option, thus:
>ntpq -p 192.168.0.1 # where 192.168.0.1 is the IP address of the NTP server.
If the ntpq utility is run on the NTP server, the IP address may be omitted. Output similar to the information below may be generated.
remote refid st t when poll reach delay offset jitter
*127.127.0.32 .GPS. 1 u 18 64 377 0.000 0.412 0.015 +127.127.0.7 .MSF. 1 u 18 64 377 1.622 0.546 1.125
This first character on the left margin indicates the synchronisation status of each reference peer in the list. The currently selected reference peer is indicated by an asterisk (‘*’). Additional peers marked with a ‘+’ are also used in the computation, while peers marked with any other symbol are not used.
The ‘remote’ address corresponds to the server or peer entries in the NTP server configuration file. The ‘refid’ field indicates the time source utilised by the server. The ‘st’ field indicates the stratum, ‘t’ indicates type; unicast, multicast or local. The ‘when’ field indicates the time since the reference was last contacted. The ‘poll’ field indicates the polling frequency of the reference. The ‘delay’ field provides the round-trip delay when contacting the reference. The ‘offset’ field is the difference between the reference time and the server time. The ‘jitter’ field indicates the dispersion of time stamps received from the reference.
In the event of problems synchronising to a reference peer, a four-character status string is entered in the ‘refid’ field. The status fields may consist of one of:
- ACST – The association belongs to a anycast server.
- AUTH – Server authentication failed.
- AUTO – Autokey sequence failed.
- BCST – The association belongs to a broadcast server.
- CRYP – Cryptographic authentication or identification failed. The details should be in the system log file or the cryptostats statistics file, if configured. No further messages will be sent to the server.
- DENY – Access denied by remote server. No further messages will be sent to the server.
- DROP – Lost peer in symmetric mode. Please wait while the association is restarted.
- RSTR – Access denied due to local policy. No further messages will be sent to the server.
- INIT – The association has not yet synchronized for the first time.
- MCST – The association belongs to a manycast server.
- NKEY – No key found. Either the key was never installed or is not trusted.
- RATE – Rate exceeded. The server has temporarily denied access because the client exceeded the rate threshold.
- RMOT – Somebody is tinkering with the association from a remote host running ntpdc. Not to worry unless some rascal has stolen your keys.
- STEP – A step change in system time has occurred, but the association has not yet resynchronized.
David Evans is a technical author who specialises in NTP Server and time synchronisation systems. For more information about NTP Servers, go here.
[tags]Network Time Protocol, NTP[/tags]