# ntptrace - trace a chain of NTP servers back to the primary source

| from Alice’s Adventures in Wonderland, Lewis Carroll The rabbit knows the way back.

## 1. Manual Pages

### 1.1. Manual Pages

- `ntp.conf(5)` - ntpd Configuration File

- `ntp.keys(5)` - NTP symmetric key file format

- `ntpd(8)` - Network Time Protocol (NTP) daemon

- `ntpdig(1)` - Simple Network Time Protocol (SNTP) client

- `ntpfrob(8)` - frob the local clock hardware

- `ntpkeygen(8)` - generate public and private keys

- `ntpleapfetch(8)` fetch and manage leap-offset file

- `ntploggps(1)` - log gpsd data for use by ntpviz

- `ntplogtemp(1)` - log system temperature data for use by ntpviz

- `ntpmon(1)` - real-time NTP status monitor

- `ntpq(1)` - standard NTP query program

- `ntpsnmp(1)` - an AgentX Simple Network Management Protocol sub-agent [`experimental`]

- `ntpsweep(1)` - print information about given NTP servers

- `ntptime(8)` - read and set kernel time variables

- `ntptrace(1)` - trace a chain of NTP servers back to the primary source

- `ntpviz(1)` - make offset, jitter, and other plots from logfiles

- `ntpwait(8)` - wait until ntpd is in synchronized state

## 2. Table of Contents

- SYNOPSIS

- DESCRIPTION

- OPTIONS

- Bugs

## 3. SYNOPSIS

    ntptrace [-V | --version] [-n |--numeric]
        [-m number | --max-hosts=number]
        [-r host | --host=remote]
        hostname

## 4. DESCRIPTION

`ntptrace` is a python script that uses the ntpq utility program to follow the chain of NTP servers from a given host back to the primary time source.

For `ntptrace` to work properly, each of these servers must implement the NTP Control and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 control packets. Nowadays it is usual for public timeservers to disable Mode 6 queries, so this script is unlikely to be very useful unless you have a collection of specially-configured timeservers on your LAN.

If given no arguments, ntptrace starts with localhost. Here is an example of the output from ntptrace:

    % ntptrace
    localhost: stratum 4, offset 0.0019529, synch distance 0.144135
    server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784
    usndh.edu: stratum 1, offset 0.0019298, synch distance 0.011993, refid 'GPS'

On each line, the fields are (left to right): the host name, the host stratum, the time offset between that host and the local host (as measured by `ntptrace`; this is why it is not always zero for "localhost"), the host synchronization distance, and (only for stratum-1 servers) the reference clock ID. All times are given in seconds. Note that the stratum is the server hop count to the primary source, while the synchronization distance is the estimated error relative to the primary source. These terms are precisely defined in RFC 1305.

## 5. OPTIONS

`-n`, `--numeric`

  Print IP addresses instead of hostnames.

  Output hosts as dotted-quad numeric format rather than converting to the canonical host names.

`-m` number, `--max-hosts`=number

  Maximum number of peers to trace. This option takes an integer number as its argument. The default number for this option is 99.

`-r` string, `--host`=string

  Trace a single remote host.

`-V`, `--version`

  Print the version string and exit.

## 6. Bugs

This program makes no attempt to improve accuracy by doing multiple samples.

Home Page | Site Map | Contacts