xref: /freebsd/contrib/ntp/ntpd/ntp.conf.html (revision bd18fd57db1df29da1a3adf94d47924a977a29c2)
1<html lang="en">
2<head>
3<title>NTP Configuration File User's Manual</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="NTP Configuration File User's Manual">
6<meta name="generator" content="makeinfo 4.7">
7<link title="Top" rel="top" href="#Top">
8<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
9<meta http-equiv="Content-Style-Type" content="text/css">
10<style type="text/css"><!--
11  pre.display { font-family:inherit }
12  pre.format  { font-family:inherit }
13  pre.smalldisplay { font-family:inherit; font-size:smaller }
14  pre.smallformat  { font-family:inherit; font-size:smaller }
15  pre.smallexample { font-size:smaller }
16  pre.smalllisp    { font-size:smaller }
17  span.sc { font-variant:small-caps }
18  span.roman { font-family: serif; font-weight: normal; }
19--></style>
20</head>
21<body>
22<h1 class="settitle">NTP Configuration File User's Manual</h1>
23<div class="node">
24<p><hr>
25<a name="Top"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#ntp_002econf-Description">ntp.conf Description</a>,
26Previous:&nbsp;<a rel="previous" accesskey="p" href="#dir">(dir)</a>,
27Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
28<br>
29</div>
30
31<h2 class="unnumbered">NTP's Configuration File User Manual</h2>
32
33<p>This document describes the configuration file for the NTP Project's
34<code>ntpd</code> program.
35
36  <p>This document applies to version 4.2.8p6 of <code>ntp.conf</code>.
37
38  <div class="shortcontents">
39<h2>Short Contents</h2>
40<ul>
41<a href="#Top">NTP's Configuration File User Manual</a>
42</ul>
43</div>
44
45<ul class="menu">
46<li><a accesskey="1" href="#ntp_002econf-Description">ntp.conf Description</a>
47<li><a accesskey="2" href="#ntp_002econf-Notes">ntp.conf Notes</a>
48</ul>
49
50<div class="node">
51<p><hr>
52<a name="ntp_002econf-Description"></a>Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
53Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
54<br>
55</div>
56
57<!-- node-name,  next,  previous,  up -->
58<h3 class="section">Description</h3>
59
60<p>The behavior of  <code>ntpd</code> can be changed by a configuration file,
61by default <code>ntp.conf</code>.
62
63<div class="node">
64<p><hr>
65<a name="ntp_002econf-Notes"></a>
66<br>
67</div>
68
69<h3 class="section">Notes about ntp.conf</h3>
70
71<p><a name="index-ntp_002econf-1"></a><a name="index-Network-Time-Protocol-_0028NTP_0029-daemon-configuration-file-format-2"></a>
72
73  <p>The
74<code>ntp.conf</code>
75configuration file is read at initial startup by the
76<code>ntpd(1ntpdmdoc)</code>
77daemon in order to specify the synchronization sources,
78modes and other related information.
79Usually, it is installed in the
80<span class="file">/etc</span>
81directory,
82but could be installed elsewhere
83(see the daemon's
84<code>-c</code>
85command line option).
86
87  <p>The file format is similar to other
88<span class="sc">unix</span>
89configuration files.
90Comments begin with a
91#
92character and extend to the end of the line;
93blank lines are ignored.
94Configuration commands consist of an initial keyword
95followed by a list of arguments,
96some of which may be optional, separated by whitespace.
97Commands may not be continued over multiple lines.
98Arguments may be host names,
99host addresses written in numeric, dotted-quad form,
100integers, floating point numbers (when specifying times in seconds)
101and text strings.
102
103  <p>The rest of this page describes the configuration and control options.
104The
105"Notes on Configuring NTP and Setting up an NTP Subnet"
106page
107(available as part of the HTML documentation
108provided in
109<span class="file">/usr/share/doc/ntp</span>)
110contains an extended discussion of these options.
111In addition to the discussion of general
112<a href="#Configuration-Options">Configuration Options</a>,
113there are sections describing the following supported functionality
114and the options used to control it:
115     <ul>
116<li><a href="#Authentication-Support">Authentication Support</a>
117<li><a href="#Monitoring-Support">Monitoring Support</a>
118<li><a href="#Access-Control-Support">Access Control Support</a>
119<li><a href="#Automatic-NTP-Configuration-Options">Automatic NTP Configuration Options</a>
120<li><a href="#Reference-Clock-Support">Reference Clock Support</a>
121<li><a href="#Miscellaneous-Options">Miscellaneous Options</a>
122</ul>
123
124  <p>Following these is a section describing
125<a href="#Miscellaneous-Options">Miscellaneous Options</a>.
126While there is a rich set of options available,
127the only required option is one or more
128<code>pool</code>,
129<code>server</code>,
130<code>peer</code>,
131<code>broadcast</code>
132or
133<code>manycastclient</code>
134commands.
135<div class="node">
136<p><hr>
137<a name="Configuration-Support"></a>
138<br>
139</div>
140
141<h4 class="subsection">Configuration Support</h4>
142
143<p>Following is a description of the configuration commands in
144NTPv4.
145These commands have the same basic functions as in NTPv3 and
146in some cases new functions and new arguments.
147There are two
148classes of commands, configuration commands that configure a
149persistent association with a remote server or peer or reference
150clock, and auxiliary commands that specify environmental variables
151that control various related operations.
152
153<h5 class="subsubsection">Configuration Commands</h5>
154
155<p>The various modes are determined by the command keyword and the
156type of the required IP address.
157Addresses are classed by type as
158(s) a remote server or peer (IPv4 class A, B and C), (b) the
159broadcast address of a local interface, (m) a multicast address (IPv4
160class D), or (r) a reference clock address (127.127.x.x).
161Note that
162only those options applicable to each command are listed below.
163Use
164of options not listed may not be caught as an error, but may result
165in some weird and even destructive behavior.
166
167  <p>If the Basic Socket Interface Extensions for IPv6 (RFC-2553)
168is detected, support for the IPv6 address family is generated
169in addition to the default support of the IPv4 address family.
170In a few cases, including the reslist billboard generated
171by ntpdc, IPv6 addresses are automatically generated.
172IPv6 addresses can be identified by the presence of colons
173:
174in the address field.
175IPv6 addresses can be used almost everywhere where
176IPv4 addresses can be used,
177with the exception of reference clock addresses,
178which are always IPv4.
179
180  <p>Note that in contexts where a host name is expected, a
181<code>-4</code>
182qualifier preceding
183the host name forces DNS resolution to the IPv4 namespace,
184while a
185<code>-6</code>
186qualifier forces DNS resolution to the IPv6 namespace.
187See IPv6 references for the
188equivalent classes for that address family.
189     <dl>
190<dt><code>pool</code> <kbd>address</kbd> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>server</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[burst]</code> <code>[iburst]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>peer</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code><br><dt><code>broadcast</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code><br><dt><code>manycastclient</code> <kbd>address</kbd> <code>[key </code><kbd>key</kbd> <kbd>|</kbd><code> autokey]</code> <code>[version </code><kbd>version</kbd><code>]</code> <code>[prefer]</code> <code>[minpoll </code><kbd>minpoll</kbd><code>]</code> <code>[maxpoll </code><kbd>maxpoll</kbd><code>]</code> <code>[ttl </code><kbd>ttl</kbd><code>]</code><dd></dl>
191
192  <p>These five commands specify the time server name or address to
193be used and the mode in which to operate.
194The
195<kbd>address</kbd>
196can be
197either a DNS name or an IP address in dotted-quad notation.
198Additional information on association behavior can be found in the
199"Association Management"
200page
201(available as part of the HTML documentation
202provided in
203<span class="file">/usr/share/doc/ntp</span>).
204     <dl>
205<dt><code>pool</code><dd>For type s addresses, this command mobilizes a persistent
206client mode association with a number of remote servers.
207In this mode the local clock can synchronized to the
208remote server, but the remote server can never be synchronized to
209the local clock.
210<br><dt><code>server</code><dd>For type s and r addresses, this command mobilizes a persistent
211client mode association with the specified remote server or local
212radio clock.
213In this mode the local clock can synchronized to the
214remote server, but the remote server can never be synchronized to
215the local clock.
216This command should
217<em>not</em>
218be used for type
219b or m addresses.
220<br><dt><code>peer</code><dd>For type s addresses (only), this command mobilizes a
221persistent symmetric-active mode association with the specified
222remote peer.
223In this mode the local clock can be synchronized to
224the remote peer or the remote peer can be synchronized to the local
225clock.
226This is useful in a network of servers where, depending on
227various failure scenarios, either the local or remote peer may be
228the better source of time.
229This command should NOT be used for type
230b, m or r addresses.
231<br><dt><code>broadcast</code><dd>For type b and m addresses (only), this
232command mobilizes a persistent broadcast mode association.
233Multiple
234commands can be used to specify multiple local broadcast interfaces
235(subnets) and/or multiple multicast groups.
236Note that local
237broadcast messages go only to the interface associated with the
238subnet specified, but multicast messages go to all interfaces.
239In broadcast mode the local server sends periodic broadcast
240messages to a client population at the
241<kbd>address</kbd>
242specified, which is usually the broadcast address on (one of) the
243local network(s) or a multicast address assigned to NTP.
244The IANA
245has assigned the multicast group address IPv4 224.0.1.1 and
246IPv6 ff05::101 (site local) exclusively to
247NTP, but other nonconflicting addresses can be used to contain the
248messages within administrative boundaries.
249Ordinarily, this
250specification applies only to the local server operating as a
251sender; for operation as a broadcast client, see the
252<code>broadcastclient</code>
253or
254<code>multicastclient</code>
255commands
256below.
257<br><dt><code>manycastclient</code><dd>For type m addresses (only), this command mobilizes a
258manycast client mode association for the multicast address
259specified.
260In this case a specific address must be supplied which
261matches the address used on the
262<code>manycastserver</code>
263command for
264the designated manycast servers.
265The NTP multicast address
266224.0.1.1 assigned by the IANA should NOT be used, unless specific
267means are taken to avoid spraying large areas of the Internet with
268these messages and causing a possibly massive implosion of replies
269at the sender.
270The
271<code>manycastserver</code>
272command specifies that the local server
273is to operate in client mode with the remote servers that are
274discovered as the result of broadcast/multicast messages.
275The
276client broadcasts a request message to the group address associated
277with the specified
278<kbd>address</kbd>
279and specifically enabled
280servers respond to these messages.
281The client selects the servers
282providing the best time and continues as with the
283<code>server</code>
284command.
285The remaining servers are discarded as if never
286heard.
287</dl>
288
289  <p>Options:
290     <dl>
291<dt><code>autokey</code><dd>All packets sent to and received from the server or peer are to
292include authentication fields encrypted using the autokey scheme
293described in
294<a href="#Authentication-Options">Authentication Options</a>.
295<br><dt><code>burst</code><dd>when the server is reachable, send a burst of eight packets
296instead of the usual one.
297The packet spacing is normally 2 s;
298however, the spacing between the first and second packets
299can be changed with the calldelay command to allow
300additional time for a modem or ISDN call to complete.
301This is designed to improve timekeeping quality
302with the
303<code>server</code>
304command and s addresses.
305<br><dt><code>iburst</code><dd>When the server is unreachable, send a burst of eight packets
306instead of the usual one.
307The packet spacing is normally 2 s;
308however, the spacing between the first two packets can be
309changed with the calldelay command to allow
310additional time for a modem or ISDN call to complete.
311This is designed to speed the initial synchronization
312acquisition with the
313<code>server</code>
314command and s addresses and when
315<code>ntpd(1ntpdmdoc)</code>
316is started with the
317<code>-q</code>
318option.
319<br><dt><code>key</code> <kbd>key</kbd><dd>All packets sent to and received from the server or peer are to
320include authentication fields encrypted using the specified
321<kbd>key</kbd>
322identifier with values from 1 to 65534, inclusive.
323The
324default is to include no encryption field.
325<br><dt><code>minpoll</code> <kbd>minpoll</kbd><br><dt><code>maxpoll</code> <kbd>maxpoll</kbd><dd>These options specify the minimum and maximum poll intervals
326for NTP messages, as a power of 2 in seconds
327The maximum poll
328interval defaults to 10 (1,024 s), but can be increased by the
329<code>maxpoll</code>
330option to an upper limit of 17 (36.4 h).
331The
332minimum poll interval defaults to 6 (64 s), but can be decreased by
333the
334<code>minpoll</code>
335option to a lower limit of 4 (16 s).
336<br><dt><code>noselect</code><dd>Marks the server as unused, except for display purposes.
337The server is discarded by the selection algroithm.
338<br><dt><code>prefer</code><dd>Marks the server as preferred.
339All other things being equal,
340this host will be chosen for synchronization among a set of
341correctly operating hosts.
342See the
343"Mitigation Rules and the prefer Keyword"
344page
345(available as part of the HTML documentation
346provided in
347<span class="file">/usr/share/doc/ntp</span>)
348for further information.
349<br><dt><code>ttl</code> <kbd>ttl</kbd><dd>This option is used only with broadcast server and manycast
350client modes.
351It specifies the time-to-live
352<kbd>ttl</kbd>
353to
354use on broadcast server and multicast server and the maximum
355<kbd>ttl</kbd>
356for the expanding ring search with manycast
357client packets.
358Selection of the proper value, which defaults to
359127, is something of a black art and should be coordinated with the
360network administrator.
361<br><dt><code>version</code> <kbd>version</kbd><dd>Specifies the version number to be used for outgoing NTP
362packets.
363Versions 1-4 are the choices, with version 4 the
364default.
365</dl>
366
367<h5 class="subsubsection">Auxiliary Commands</h5>
368
369     <dl>
370<dt><code>broadcastclient</code><dd>This command enables reception of broadcast server messages to
371any local interface (type b) address.
372Upon receiving a message for
373the first time, the broadcast client measures the nominal server
374propagation delay using a brief client/server exchange with the
375server, then enters the broadcast client mode, in which it
376synchronizes to succeeding broadcast messages.
377Note that, in order
378to avoid accidental or malicious disruption in this mode, both the
379server and client should operate using symmetric-key or public-key
380authentication as described in
381<a href="#Authentication-Options">Authentication Options</a>.
382<br><dt><code>manycastserver</code> <kbd>address</kbd> <kbd>...</kbd><dd>This command enables reception of manycast client messages to
383the multicast group address(es) (type m) specified.
384At least one
385address is required, but the NTP multicast address 224.0.1.1
386assigned by the IANA should NOT be used, unless specific means are
387taken to limit the span of the reply and avoid a possibly massive
388implosion at the original sender.
389Note that, in order to avoid
390accidental or malicious disruption in this mode, both the server
391and client should operate using symmetric-key or public-key
392authentication as described in
393<a href="#Authentication-Options">Authentication Options</a>.
394<br><dt><code>multicastclient</code> <kbd>address</kbd> <kbd>...</kbd><dd>This command enables reception of multicast server messages to
395the multicast group address(es) (type m) specified.
396Upon receiving
397a message for the first time, the multicast client measures the
398nominal server propagation delay using a brief client/server
399exchange with the server, then enters the broadcast client mode, in
400which it synchronizes to succeeding multicast messages.
401Note that,
402in order to avoid accidental or malicious disruption in this mode,
403both the server and client should operate using symmetric-key or
404public-key authentication as described in
405<a href="#Authentication-Options">Authentication Options</a>.
406<br><dt><code>mdnstries</code> <kbd>number</kbd><dd>If we are participating in mDNS,
407after we have synched for the first time
408we attempt to register with the mDNS system.
409If that registration attempt fails,
410we try again at one minute intervals for up to
411<code>mdnstries</code>
412times.
413After all,
414<code>ntpd</code>
415may be starting before mDNS.
416The default value for
417<code>mdnstries</code>
418is 5.
419</dl>
420<div class="node">
421<p><hr>
422<a name="Authentication-Support"></a>
423<br>
424</div>
425
426<h4 class="subsection">Authentication Support</h4>
427
428<p>Authentication support allows the NTP client to verify that the
429server is in fact known and trusted and not an intruder intending
430accidentally or on purpose to masquerade as that server.
431The NTPv3
432specification RFC-1305 defines a scheme which provides
433cryptographic authentication of received NTP packets.
434Originally,
435this was done using the Data Encryption Standard (DES) algorithm
436operating in Cipher Block Chaining (CBC) mode, commonly called
437DES-CBC.
438Subsequently, this was replaced by the RSA Message Digest
4395 (MD5) algorithm using a private key, commonly called keyed-MD5.
440Either algorithm computes a message digest, or one-way hash, which
441can be used to verify the server has the correct private key and
442key identifier.
443
444  <p>NTPv4 retains the NTPv3 scheme, properly described as symmetric key
445cryptography and, in addition, provides a new Autokey scheme
446based on public key cryptography.
447Public key cryptography is generally considered more secure
448than symmetric key cryptography, since the security is based
449on a private value which is generated by each server and
450never revealed.
451With Autokey all key distribution and
452management functions involve only public values, which
453considerably simplifies key distribution and storage.
454Public key management is based on X.509 certificates,
455which can be provided by commercial services or
456produced by utility programs in the OpenSSL software library
457or the NTPv4 distribution.
458
459  <p>While the algorithms for symmetric key cryptography are
460included in the NTPv4 distribution, public key cryptography
461requires the OpenSSL software library to be installed
462before building the NTP distribution.
463Directions for doing that
464are on the Building and Installing the Distribution page.
465
466  <p>Authentication is configured separately for each association
467using the
468<code>key</code>
469or
470<code>autokey</code>
471subcommand on the
472<code>peer</code>,
473<code>server</code>,
474<code>broadcast</code>
475and
476<code>manycastclient</code>
477configuration commands as described in
478<a href="#Configuration-Options">Configuration Options</a>
479page.
480The authentication
481options described below specify the locations of the key files,
482if other than default, which symmetric keys are trusted
483and the interval between various operations, if other than default.
484
485  <p>Authentication is always enabled,
486although ineffective if not configured as
487described below.
488If a NTP packet arrives
489including a message authentication
490code (MAC), it is accepted only if it
491passes all cryptographic checks.
492The
493checks require correct key ID, key value
494and message digest.
495If the packet has
496been modified in any way or replayed
497by an intruder, it will fail one or more
498of these checks and be discarded.
499Furthermore, the Autokey scheme requires a
500preliminary protocol exchange to obtain
501the server certificate, verify its
502credentials and initialize the protocol
503
504  <p>The
505<code>auth</code>
506flag controls whether new associations or
507remote configuration commands require cryptographic authentication.
508This flag can be set or reset by the
509<code>enable</code>
510and
511<code>disable</code>
512commands and also by remote
513configuration commands sent by a
514<code>ntpdc(1ntpdcmdoc)</code>
515program running in
516another machine.
517If this flag is enabled, which is the default
518case, new broadcast client and symmetric passive associations and
519remote configuration commands must be cryptographically
520authenticated using either symmetric key or public key cryptography.
521If this
522flag is disabled, these operations are effective
523even if not cryptographic
524authenticated.
525It should be understood
526that operating with the
527<code>auth</code>
528flag disabled invites a significant vulnerability
529where a rogue hacker can
530masquerade as a falseticker and seriously
531disrupt system timekeeping.
532It is
533important to note that this flag has no purpose
534other than to allow or disallow
535a new association in response to new broadcast
536and symmetric active messages
537and remote configuration commands and, in particular,
538the flag has no effect on
539the authentication process itself.
540
541  <p>An attractive alternative where multicast support is available
542is manycast mode, in which clients periodically troll
543for servers as described in the
544<a href="#Automatic-NTP-Configuration-Options">Automatic NTP Configuration Options</a>
545page.
546Either symmetric key or public key
547cryptographic authentication can be used in this mode.
548The principle advantage
549of manycast mode is that potential servers need not be
550configured in advance,
551since the client finds them during regular operation,
552and the configuration
553files for all clients can be identical.
554
555  <p>The security model and protocol schemes for
556both symmetric key and public key
557cryptography are summarized below;
558further details are in the briefings, papers
559and reports at the NTP project page linked from
560<code>http://www.ntp.org/</code>.
561
562<h5 class="subsubsection">Symmetric-Key Cryptography</h5>
563
564<p>The original RFC-1305 specification allows any one of possibly
56565,534 keys, each distinguished by a 32-bit key identifier, to
566authenticate an association.
567The servers and clients involved must
568agree on the key and key identifier to
569authenticate NTP packets.
570Keys and
571related information are specified in a key
572file, usually called
573<span class="file">ntp.keys</span>,
574which must be distributed and stored using
575secure means beyond the scope of the NTP protocol itself.
576Besides the keys used
577for ordinary NTP associations,
578additional keys can be used as passwords for the
579<code>ntpq(1ntpqmdoc)</code>
580and
581<code>ntpdc(1ntpdcmdoc)</code>
582utility programs.
583
584  <p>When
585<code>ntpd(1ntpdmdoc)</code>
586is first started, it reads the key file specified in the
587<code>keys</code>
588configuration command and installs the keys
589in the key cache.
590However,
591individual keys must be activated with the
592<code>trusted</code>
593command before use.
594This
595allows, for instance, the installation of possibly
596several batches of keys and
597then activating or deactivating each batch
598remotely using
599<code>ntpdc(1ntpdcmdoc)</code>.
600This also provides a revocation capability that can be used
601if a key becomes compromised.
602The
603<code>requestkey</code>
604command selects the key used as the password for the
605<code>ntpdc(1ntpdcmdoc)</code>
606utility, while the
607<code>controlkey</code>
608command selects the key used as the password for the
609<code>ntpq(1ntpqmdoc)</code>
610utility.
611
612<h5 class="subsubsection">Public Key Cryptography</h5>
613
614<p>NTPv4 supports the original NTPv3 symmetric key scheme
615described in RFC-1305 and in addition the Autokey protocol,
616which is based on public key cryptography.
617The Autokey Version 2 protocol described on the Autokey Protocol
618page verifies packet integrity using MD5 message digests
619and verifies the source with digital signatures and any of several
620digest/signature schemes.
621Optional identity schemes described on the Identity Schemes
622page and based on cryptographic challenge/response algorithms
623are also available.
624Using all of these schemes provides strong security against
625replay with or without modification, spoofing, masquerade
626and most forms of clogging attacks.
627
628  <p>The Autokey protocol has several modes of operation
629corresponding to the various NTP modes supported.
630Most modes use a special cookie which can be
631computed independently by the client and server,
632but encrypted in transmission.
633All modes use in addition a variant of the S-KEY scheme,
634in which a pseudo-random key list is generated and used
635in reverse order.
636These schemes are described along with an executive summary,
637current status, briefing slides and reading list on the
638<a href="#Autonomous-Authentication">Autonomous Authentication</a>
639page.
640
641  <p>The specific cryptographic environment used by Autokey servers
642and clients is determined by a set of files
643and soft links generated by the
644<code>ntp-keygen(1ntpkeygenmdoc)</code>
645program.
646This includes a required host key file,
647required certificate file and optional sign key file,
648leapsecond file and identity scheme files.
649The
650digest/signature scheme is specified in the X.509 certificate
651along with the matching sign key.
652There are several schemes
653available in the OpenSSL software library, each identified
654by a specific string such as
655<code>md5WithRSAEncryption</code>,
656which stands for the MD5 message digest with RSA
657encryption scheme.
658The current NTP distribution supports
659all the schemes in the OpenSSL library, including
660those based on RSA and DSA digital signatures.
661
662  <p>NTP secure groups can be used to define cryptographic compartments
663and security hierarchies.
664It is important that every host
665in the group be able to construct a certificate trail to one
666or more trusted hosts in the same group.
667Each group
668host runs the Autokey protocol to obtain the certificates
669for all hosts along the trail to one or more trusted hosts.
670This requires the configuration file in all hosts to be
671engineered so that, even under anticipated failure conditions,
672the NTP subnet will form such that every group host can find
673a trail to at least one trusted host.
674
675<h5 class="subsubsection">Naming and Addressing</h5>
676
677<p>It is important to note that Autokey does not use DNS to
678resolve addresses, since DNS can't be completely trusted
679until the name servers have synchronized clocks.
680The cryptographic name used by Autokey to bind the host identity
681credentials and cryptographic values must be independent
682of interface, network and any other naming convention.
683The name appears in the host certificate in either or both
684the subject and issuer fields, so protection against
685DNS compromise is essential.
686
687  <p>By convention, the name of an Autokey host is the name returned
688by the Unix
689<code>gethostname(2)</code>
690system call or equivalent in other systems.
691By the system design
692model, there are no provisions to allow alternate names or aliases.
693However, this is not to say that DNS aliases, different names
694for each interface, etc., are constrained in any way.
695
696  <p>It is also important to note that Autokey verifies authenticity
697using the host name, network address and public keys,
698all of which are bound together by the protocol specifically
699to deflect masquerade attacks.
700For this reason Autokey
701includes the source and destinatino IP addresses in message digest
702computations and so the same addresses must be available
703at both the server and client.
704For this reason operation
705with network address translation schemes is not possible.
706This reflects the intended robust security model where government
707and corporate NTP servers are operated outside firewall perimeters.
708
709<h5 class="subsubsection">Operation</h5>
710
711<p>A specific combination of authentication scheme (none,
712symmetric key, public key) and identity scheme is called
713a cryptotype, although not all combinations are compatible.
714There may be management configurations where the clients,
715servers and peers may not all support the same cryptotypes.
716A secure NTPv4 subnet can be configured in many ways while
717keeping in mind the principles explained above and
718in this section.
719Note however that some cryptotype
720combinations may successfully interoperate with each other,
721but may not represent good security practice.
722
723  <p>The cryptotype of an association is determined at the time
724of mobilization, either at configuration time or some time
725later when a message of appropriate cryptotype arrives.
726When mobilized by a
727<code>server</code>
728or
729<code>peer</code>
730configuration command and no
731<code>key</code>
732or
733<code>autokey</code>
734subcommands are present, the association is not
735authenticated; if the
736<code>key</code>
737subcommand is present, the association is authenticated
738using the symmetric key ID specified; if the
739<code>autokey</code>
740subcommand is present, the association is authenticated
741using Autokey.
742
743  <p>When multiple identity schemes are supported in the Autokey
744protocol, the first message exchange determines which one is used.
745The client request message contains bits corresponding
746to which schemes it has available.
747The server response message
748contains bits corresponding to which schemes it has available.
749Both server and client match the received bits with their own
750and select a common scheme.
751
752  <p>Following the principle that time is a public value,
753a server responds to any client packet that matches
754its cryptotype capabilities.
755Thus, a server receiving
756an unauthenticated packet will respond with an unauthenticated
757packet, while the same server receiving a packet of a cryptotype
758it supports will respond with packets of that cryptotype.
759However, unconfigured broadcast or manycast client
760associations or symmetric passive associations will not be
761mobilized unless the server supports a cryptotype compatible
762with the first packet received.
763By default, unauthenticated associations will not be mobilized
764unless overridden in a decidedly dangerous way.
765
766  <p>Some examples may help to reduce confusion.
767Client Alice has no specific cryptotype selected.
768Server Bob has both a symmetric key file and minimal Autokey files.
769Alice's unauthenticated messages arrive at Bob, who replies with
770unauthenticated messages.
771Cathy has a copy of Bob's symmetric
772key file and has selected key ID 4 in messages to Bob.
773Bob verifies the message with his key ID 4.
774If it's the
775same key and the message is verified, Bob sends Cathy a reply
776authenticated with that key.
777If verification fails,
778Bob sends Cathy a thing called a crypto-NAK, which tells her
779something broke.
780She can see the evidence using the
781<code>ntpq(1ntpqmdoc)</code>
782program.
783
784  <p>Denise has rolled her own host key and certificate.
785She also uses one of the identity schemes as Bob.
786She sends the first Autokey message to Bob and they
787both dance the protocol authentication and identity steps.
788If all comes out okay, Denise and Bob continue as described above.
789
790  <p>It should be clear from the above that Bob can support
791all the girls at the same time, as long as he has compatible
792authentication and identity credentials.
793Now, Bob can act just like the girls in his own choice of servers;
794he can run multiple configured associations with multiple different
795servers (or the same server, although that might not be useful).
796But, wise security policy might preclude some cryptotype
797combinations; for instance, running an identity scheme
798with one server and no authentication with another might not be wise.
799
800<h5 class="subsubsection">Key Management</h5>
801
802<p>The cryptographic values used by the Autokey protocol are
803incorporated as a set of files generated by the
804<code>ntp-keygen(1ntpkeygenmdoc)</code>
805utility program, including symmetric key, host key and
806public certificate files, as well as sign key, identity parameters
807and leapseconds files.
808Alternatively, host and sign keys and
809certificate files can be generated by the OpenSSL utilities
810and certificates can be imported from public certificate
811authorities.
812Note that symmetric keys are necessary for the
813<code>ntpq(1ntpqmdoc)</code>
814and
815<code>ntpdc(1ntpdcmdoc)</code>
816utility programs.
817The remaining files are necessary only for the
818Autokey protocol.
819
820  <p>Certificates imported from OpenSSL or public certificate
821authorities have certian limitations.
822The certificate should be in ASN.1 syntax, X.509 Version 3
823format and encoded in PEM, which is the same format
824used by OpenSSL.
825The overall length of the certificate encoded
826in ASN.1 must not exceed 1024 bytes.
827The subject distinguished
828name field (CN) is the fully qualified name of the host
829on which it is used; the remaining subject fields are ignored.
830The certificate extension fields must not contain either
831a subject key identifier or a issuer key identifier field;
832however, an extended key usage field for a trusted host must
833contain the value
834<code>trustRoot</code>;.
835Other extension fields are ignored.
836
837<h5 class="subsubsection">Authentication Commands</h5>
838
839     <dl>
840<dt><code>autokey</code> <code>[</code><kbd>logsec</kbd><code>]</code><dd>Specifies the interval between regenerations of the session key
841list used with the Autokey protocol.
842Note that the size of the key
843list for each association depends on this interval and the current
844poll interval.
845The default value is 12 (4096 s or about 1.1 hours).
846For poll intervals above the specified interval, a session key list
847with a single entry will be regenerated for every message
848sent.
849<br><dt><code>controlkey</code> <kbd>key</kbd><dd>Specifies the key identifier to use with the
850<code>ntpq(1ntpqmdoc)</code>
851utility, which uses the standard
852protocol defined in RFC-1305.
853The
854<kbd>key</kbd>
855argument is
856the key identifier for a trusted key, where the value can be in the
857range 1 to 65,534, inclusive.
858<br><dt><code>crypto</code> <code>[cert </code><kbd>file</kbd><code>]</code> <code>[leap </code><kbd>file</kbd><code>]</code> <code>[randfile </code><kbd>file</kbd><code>]</code> <code>[host </code><kbd>file</kbd><code>]</code> <code>[sign </code><kbd>file</kbd><code>]</code> <code>[gq </code><kbd>file</kbd><code>]</code> <code>[gqpar </code><kbd>file</kbd><code>]</code> <code>[iffpar </code><kbd>file</kbd><code>]</code> <code>[mvpar </code><kbd>file</kbd><code>]</code> <code>[pw </code><kbd>password</kbd><code>]</code><dd>This command requires the OpenSSL library.
859It activates public key
860cryptography, selects the message digest and signature
861encryption scheme and loads the required private and public
862values described above.
863If one or more files are left unspecified,
864the default names are used as described above.
865Unless the complete path and name of the file are specified, the
866location of a file is relative to the keys directory specified
867in the
868<code>keysdir</code>
869command or default
870<span class="file">/usr/local/etc</span>.
871Following are the subcommands:
872          <dl>
873<dt><code>cert</code> <kbd>file</kbd><dd>Specifies the location of the required host public certificate file.
874This overrides the link
875<span class="file">ntpkey_cert_</span><kbd>hostname</kbd>
876in the keys directory.
877<br><dt><code>gqpar</code> <kbd>file</kbd><dd>Specifies the location of the optional GQ parameters file.
878This
879overrides the link
880<span class="file">ntpkey_gq_</span><kbd>hostname</kbd>
881in the keys directory.
882<br><dt><code>host</code> <kbd>file</kbd><dd>Specifies the location of the required host key file.
883This overrides
884the link
885<span class="file">ntpkey_key_</span><kbd>hostname</kbd>
886in the keys directory.
887<br><dt><code>iffpar</code> <kbd>file</kbd><dd>Specifies the location of the optional IFF parameters file.This
888overrides the link
889<span class="file">ntpkey_iff_</span><kbd>hostname</kbd>
890in the keys directory.
891<br><dt><code>leap</code> <kbd>file</kbd><dd>Specifies the location of the optional leapsecond file.
892This overrides the link
893<span class="file">ntpkey_leap</span>
894in the keys directory.
895<br><dt><code>mvpar</code> <kbd>file</kbd><dd>Specifies the location of the optional MV parameters file.
896This
897overrides the link
898<span class="file">ntpkey_mv_</span><kbd>hostname</kbd>
899in the keys directory.
900<br><dt><code>pw</code> <kbd>password</kbd><dd>Specifies the password to decrypt files containing private keys and
901identity parameters.
902This is required only if these files have been
903encrypted.
904<br><dt><code>randfile</code> <kbd>file</kbd><dd>Specifies the location of the random seed file used by the OpenSSL
905library.
906The defaults are described in the main text above.
907<br><dt><code>sign</code> <kbd>file</kbd><dd>Specifies the location of the optional sign key file.
908This overrides
909the link
910<span class="file">ntpkey_sign_</span><kbd>hostname</kbd>
911in the keys directory.
912If this file is
913not found, the host key is also the sign key.
914</dl>
915     <br><dt><code>keys</code> <kbd>keyfile</kbd><dd>Specifies the complete path and location of the MD5 key file
916containing the keys and key identifiers used by
917<code>ntpd(1ntpdmdoc)</code>,
918<code>ntpq(1ntpqmdoc)</code>
919and
920<code>ntpdc(1ntpdcmdoc)</code>
921when operating with symmetric key cryptography.
922This is the same operation as the
923<code>-k</code>
924command line option.
925<br><dt><code>keysdir</code> <kbd>path</kbd><dd>This command specifies the default directory path for
926cryptographic keys, parameters and certificates.
927The default is
928<span class="file">/usr/local/etc/</span>.
929<br><dt><code>requestkey</code> <kbd>key</kbd><dd>Specifies the key identifier to use with the
930<code>ntpdc(1ntpdcmdoc)</code>
931utility program, which uses a
932proprietary protocol specific to this implementation of
933<code>ntpd(1ntpdmdoc)</code>.
934The
935<kbd>key</kbd>
936argument is a key identifier
937for the trusted key, where the value can be in the range 1 to
93865,534, inclusive.
939<br><dt><code>revoke</code> <kbd>logsec</kbd><dd>Specifies the interval between re-randomization of certain
940cryptographic values used by the Autokey scheme, as a power of 2 in
941seconds.
942These values need to be updated frequently in order to
943deflect brute-force attacks on the algorithms of the scheme;
944however, updating some values is a relatively expensive operation.
945The default interval is 16 (65,536 s or about 18 hours).
946For poll
947intervals above the specified interval, the values will be updated
948for every message sent.
949<br><dt><code>trustedkey</code> <kbd>key</kbd> <kbd>...</kbd><dd>Specifies the key identifiers which are trusted for the
950purposes of authenticating peers with symmetric key cryptography,
951as well as keys used by the
952<code>ntpq(1ntpqmdoc)</code>
953and
954<code>ntpdc(1ntpdcmdoc)</code>
955programs.
956The authentication procedures require that both the local
957and remote servers share the same key and key identifier for this
958purpose, although different keys can be used with different
959servers.
960The
961<kbd>key</kbd>
962arguments are 32-bit unsigned
963integers with values from 1 to 65,534.
964</dl>
965
966<h5 class="subsubsection">Error Codes</h5>
967
968<p>The following error codes are reported via the NTP control
969and monitoring protocol trap mechanism.
970     <dl>
971<dt>101<dd>(bad field format or length)
972The packet has invalid version, length or format.
973<br><dt>102<dd>(bad timestamp)
974The packet timestamp is the same or older than the most recent received.
975This could be due to a replay or a server clock time step.
976<br><dt>103<dd>(bad filestamp)
977The packet filestamp is the same or older than the most recent received.
978This could be due to a replay or a key file generation error.
979<br><dt>104<dd>(bad or missing public key)
980The public key is missing, has incorrect format or is an unsupported type.
981<br><dt>105<dd>(unsupported digest type)
982The server requires an unsupported digest/signature scheme.
983<br><dt>106<dd>(mismatched digest types)
984Not used.
985<br><dt>107<dd>(bad signature length)
986The signature length does not match the current public key.
987<br><dt>108<dd>(signature not verified)
988The message fails the signature check.
989It could be bogus or signed by a
990different private key.
991<br><dt>109<dd>(certificate not verified)
992The certificate is invalid or signed with the wrong key.
993<br><dt>110<dd>(certificate not verified)
994The certificate is not yet valid or has expired or the signature could not
995be verified.
996<br><dt>111<dd>(bad or missing cookie)
997The cookie is missing, corrupted or bogus.
998<br><dt>112<dd>(bad or missing leapseconds table)
999The leapseconds table is missing, corrupted or bogus.
1000<br><dt>113<dd>(bad or missing certificate)
1001The certificate is missing, corrupted or bogus.
1002<br><dt>114<dd>(bad or missing identity)
1003The identity key is missing, corrupt or bogus.
1004</dl>
1005  <div class="node">
1006<p><hr>
1007<a name="Monitoring-Support"></a>
1008<br>
1009</div>
1010
1011<h4 class="subsection">Monitoring Support</h4>
1012
1013<p><code>ntpd(1ntpdmdoc)</code>
1014includes a comprehensive monitoring facility suitable
1015for continuous, long term recording of server and client
1016timekeeping performance.
1017See the
1018<code>statistics</code>
1019command below
1020for a listing and example of each type of statistics currently
1021supported.
1022Statistic files are managed using file generation sets
1023and scripts in the
1024<span class="file">./scripts</span>
1025directory of this distribution.
1026Using
1027these facilities and
1028<span class="sc">unix</span>
1029<code>cron(8)</code>
1030jobs, the data can be
1031automatically summarized and archived for retrospective analysis.
1032
1033<h5 class="subsubsection">Monitoring Commands</h5>
1034
1035     <dl>
1036<dt><code>statistics</code> <kbd>name</kbd> <kbd>...</kbd><dd>Enables writing of statistics records.
1037Currently, eight kinds of
1038<kbd>name</kbd>
1039statistics are supported.
1040          <dl>
1041<dt><code>clockstats</code><dd>Enables recording of clock driver statistics information.
1042Each update
1043received from a clock driver appends a line of the following form to
1044the file generation set named
1045<code>clockstats</code>:
1046<pre class="verbatim">
1047          49213 525.624 127.127.4.1 93 226 00:08:29.606 D
1048     </pre>
1049
1050          <p>The first two fields show the date (Modified Julian Day) and time
1051(seconds and fraction past UTC midnight).
1052The next field shows the
1053clock address in dotted-quad notation.
1054The final field shows the last
1055timecode received from the clock in decoded ASCII format, where
1056meaningful.
1057In some clock drivers a good deal of additional information
1058can be gathered and displayed as well.
1059See information specific to each
1060clock for further details.
1061<br><dt><code>cryptostats</code><dd>This option requires the OpenSSL cryptographic software library.
1062It
1063enables recording of cryptographic public key protocol information.
1064Each message received by the protocol module appends a line of the
1065following form to the file generation set named
1066<code>cryptostats</code>:
1067<pre class="verbatim">
1068          49213 525.624 127.127.4.1 message
1069     </pre>
1070
1071          <p>The first two fields show the date (Modified Julian Day) and time
1072(seconds and fraction past UTC midnight).
1073The next field shows the peer
1074address in dotted-quad notation, The final message field includes the
1075message type and certain ancillary information.
1076See the
1077<a href="#Authentication-Options">Authentication Options</a>
1078section for further information.
1079<br><dt><code>loopstats</code><dd>Enables recording of loop filter statistics information.
1080Each
1081update of the local clock outputs a line of the following form to
1082the file generation set named
1083<code>loopstats</code>:
1084<pre class="verbatim">
1085          50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
1086     </pre>
1087
1088          <p>The first two fields show the date (Modified Julian Day) and
1089time (seconds and fraction past UTC midnight).
1090The next five fields
1091show time offset (seconds), frequency offset (parts per million -
1092PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
1093discipline time constant.
1094<br><dt><code>peerstats</code><dd>Enables recording of peer statistics information.
1095This includes
1096statistics records of all peers of a NTP server and of special
1097signals, where present and configured.
1098Each valid update appends a
1099line of the following form to the current element of a file
1100generation set named
1101<code>peerstats</code>:
1102<pre class="verbatim">
1103          48773 10847.650 127.127.4.1 9714 -0.001605376 0.000000000 0.001424877 0.000958674
1104     </pre>
1105
1106          <p>The first two fields show the date (Modified Julian Day) and
1107time (seconds and fraction past UTC midnight).
1108The next two fields
1109show the peer address in dotted-quad notation and status,
1110respectively.
1111The status field is encoded in hex in the format
1112described in Appendix A of the NTP specification RFC 1305.
1113The final four fields show the offset,
1114delay, dispersion and RMS jitter, all in seconds.
1115<br><dt><code>rawstats</code><dd>Enables recording of raw-timestamp statistics information.
1116This
1117includes statistics records of all peers of a NTP server and of
1118special signals, where present and configured.
1119Each NTP message
1120received from a peer or clock driver appends a line of the
1121following form to the file generation set named
1122<code>rawstats</code>:
1123<pre class="verbatim">
1124          50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
1125     </pre>
1126
1127          <p>The first two fields show the date (Modified Julian Day) and
1128time (seconds and fraction past UTC midnight).
1129The next two fields
1130show the remote peer or clock address followed by the local address
1131in dotted-quad notation.
1132The final four fields show the originate,
1133receive, transmit and final NTP timestamps in order.
1134The timestamp
1135values are as received and before processing by the various data
1136smoothing and mitigation algorithms.
1137<br><dt><code>sysstats</code><dd>Enables recording of ntpd statistics counters on a periodic basis.
1138Each
1139hour a line of the following form is appended to the file generation
1140set named
1141<code>sysstats</code>:
1142<pre class="verbatim">
1143          50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
1144     </pre>
1145
1146          <p>The first two fields show the date (Modified Julian Day) and time
1147(seconds and fraction past UTC midnight).
1148The remaining ten fields show
1149the statistics counter values accumulated since the last generated
1150line.
1151               <dl>
1152<dt>Time since restart <code>36000</code><dd>Time in hours since the system was last rebooted.
1153<br><dt>Packets received <code>81965</code><dd>Total number of packets received.
1154<br><dt>Packets processed <code>0</code><dd>Number of packets received in response to previous packets sent
1155<br><dt>Current version <code>9546</code><dd>Number of packets matching the current NTP version.
1156<br><dt>Previous version <code>56</code><dd>Number of packets matching the previous NTP version.
1157<br><dt>Bad version <code>71793</code><dd>Number of packets matching neither NTP version.
1158<br><dt>Access denied <code>512</code><dd>Number of packets denied access for any reason.
1159<br><dt>Bad length or format <code>540</code><dd>Number of packets with invalid length, format or port number.
1160<br><dt>Bad authentication <code>10</code><dd>Number of packets not verified as authentic.
1161<br><dt>Rate exceeded <code>147</code><dd>Number of packets discarded due to rate limitation.
1162</dl>
1163          <br><dt><code>statsdir</code> <kbd>directory_path</kbd><dd>Indicates the full path of a directory where statistics files
1164should be created (see below).
1165This keyword allows
1166the (otherwise constant)
1167<code>filegen</code>
1168filename prefix to be modified for file generation sets, which
1169is useful for handling statistics logs.
1170<br><dt><code>filegen</code> <kbd>name</kbd> <code>[file </code><kbd>filename</kbd><code>]</code> <code>[type </code><kbd>typename</kbd><code>]</code> <code>[link | nolink]</code> <code>[enable | disable]</code><dd>Configures setting of generation file set name.
1171Generation
1172file sets provide a means for handling files that are
1173continuously growing during the lifetime of a server.
1174Server statistics are a typical example for such files.
1175Generation file sets provide access to a set of files used
1176to store the actual data.
1177At any time at most one element
1178of the set is being written to.
1179The type given specifies
1180when and how data will be directed to a new element of the set.
1181This way, information stored in elements of a file set
1182that are currently unused are available for administrational
1183operations without the risk of disturbing the operation of ntpd.
1184(Most important: they can be removed to free space for new data
1185produced.)
1186
1187          <p>Note that this command can be sent from the
1188<code>ntpdc(1ntpdcmdoc)</code>
1189program running at a remote location.
1190               <dl>
1191<dt><code>name</code><dd>This is the type of the statistics records, as shown in the
1192<code>statistics</code>
1193command.
1194<br><dt><code>file</code> <kbd>filename</kbd><dd>This is the file name for the statistics records.
1195Filenames of set
1196members are built from three concatenated elements
1197<code>prefix</code>,
1198<code>filename</code>
1199and
1200<code>suffix</code>:
1201                    <dl>
1202<dt><code>prefix</code><dd>This is a constant filename path.
1203It is not subject to
1204modifications via the
1205<kbd>filegen</kbd>
1206option.
1207It is defined by the
1208server, usually specified as a compile-time constant.
1209It may,
1210however, be configurable for individual file generation sets
1211via other commands.
1212For example, the prefix used with
1213<kbd>loopstats</kbd>
1214and
1215<kbd>peerstats</kbd>
1216generation can be configured using the
1217<kbd>statsdir</kbd>
1218option explained above.
1219<br><dt><code>filename</code><dd>This string is directly concatenated to the prefix mentioned
1220above (no intervening
1221/).
1222This can be modified using
1223the file argument to the
1224<kbd>filegen</kbd>
1225statement.
1226No
1227<span class="file">..</span>
1228elements are
1229allowed in this component to prevent filenames referring to
1230parts outside the filesystem hierarchy denoted by
1231<kbd>prefix</kbd>.
1232<br><dt><code>suffix</code><dd>This part is reflects individual elements of a file set.
1233It is
1234generated according to the type of a file set.
1235</dl>
1236               <br><dt><code>type</code> <kbd>typename</kbd><dd>A file generation set is characterized by its type.
1237The following
1238types are supported:
1239                    <dl>
1240<dt><code>none</code><dd>The file set is actually a single plain file.
1241<br><dt><code>pid</code><dd>One element of file set is used per incarnation of a ntpd
1242server.
1243This type does not perform any changes to file set
1244members during runtime, however it provides an easy way of
1245separating files belonging to different
1246<code>ntpd(1ntpdmdoc)</code>
1247server incarnations.
1248The set member filename is built by appending a
1249.
1250to concatenated
1251<kbd>prefix</kbd>
1252and
1253<kbd>filename</kbd>
1254strings, and
1255appending the decimal representation of the process ID of the
1256<code>ntpd(1ntpdmdoc)</code>
1257server process.
1258<br><dt><code>day</code><dd>One file generation set element is created per day.
1259A day is
1260defined as the period between 00:00 and 24:00 UTC.
1261The file set
1262member suffix consists of a
1263.
1264and a day specification in
1265the form
1266<code>YYYYMMdd</code>.
1267<code>YYYY</code>
1268is a 4-digit year number (e.g., 1992).
1269<code>MM</code>
1270is a two digit month number.
1271<code>dd</code>
1272is a two digit day number.
1273Thus, all information written at 10 December 1992 would end up
1274in a file named
1275<kbd>prefix</kbd>
1276<kbd>filename</kbd>.19921210.
1277<br><dt><code>week</code><dd>Any file set member contains data related to a certain week of
1278a year.
1279The term week is defined by computing day-of-year
1280modulo 7.
1281Elements of such a file generation set are
1282distinguished by appending the following suffix to the file set
1283filename base: A dot, a 4-digit year number, the letter
1284<code>W</code>,
1285and a 2-digit week number.
1286For example, information from January,
128710th 1992 would end up in a file with suffix
1288.No . Ns Ar 1992W1 .
1289<br><dt><code>month</code><dd>One generation file set element is generated per month.
1290The
1291file name suffix consists of a dot, a 4-digit year number, and
1292a 2-digit month.
1293<br><dt><code>year</code><dd>One generation file element is generated per year.
1294The filename
1295suffix consists of a dot and a 4 digit year number.
1296<br><dt><code>age</code><dd>This type of file generation sets changes to a new element of
1297the file set every 24 hours of server operation.
1298The filename
1299suffix consists of a dot, the letter
1300<code>a</code>,
1301and an 8-digit number.
1302This number is taken to be the number of seconds the server is
1303running at the start of the corresponding 24-hour period.
1304Information is only written to a file generation by specifying
1305<code>enable</code>;
1306output is prevented by specifying
1307<code>disable</code>.
1308</dl>
1309               <br><dt><code>link</code> | <code>nolink</code><dd>It is convenient to be able to access the current element of a file
1310generation set by a fixed name.
1311This feature is enabled by
1312specifying
1313<code>link</code>
1314and disabled using
1315<code>nolink</code>.
1316If link is specified, a
1317hard link from the current file set element to a file without
1318suffix is created.
1319When there is already a file with this name and
1320the number of links of this file is one, it is renamed appending a
1321dot, the letter
1322<code>C</code>,
1323and the pid of the ntpd server process.
1324When the
1325number of links is greater than one, the file is unlinked.
1326This
1327allows the current file to be accessed by a constant name.
1328<br><dt><code>enable</code> <code>|</code> <code>disable</code><dd>Enables or disables the recording function.
1329</dl>
1330          </dl>
1331     </dl>
1332<div class="node">
1333<p><hr>
1334<a name="Access-Control-Support"></a>
1335<br>
1336</div>
1337
1338<h4 class="subsection">Access Control Support</h4>
1339
1340<p>The
1341<code>ntpd(1ntpdmdoc)</code>
1342daemon implements a general purpose address/mask based restriction
1343list.
1344The list contains address/match entries sorted first
1345by increasing address values and and then by increasing mask values.
1346A match occurs when the bitwise AND of the mask and the packet
1347source address is equal to the bitwise AND of the mask and
1348address in the list.
1349The list is searched in order with the
1350last match found defining the restriction flags associated
1351with the entry.
1352Additional information and examples can be found in the
1353"Notes on Configuring NTP and Setting up a NTP Subnet"
1354page
1355(available as part of the HTML documentation
1356provided in
1357<span class="file">/usr/share/doc/ntp</span>).
1358
1359  <p>The restriction facility was implemented in conformance
1360with the access policies for the original NSFnet backbone
1361time servers.
1362Later the facility was expanded to deflect
1363cryptographic and clogging attacks.
1364While this facility may
1365be useful for keeping unwanted or broken or malicious clients
1366from congesting innocent servers, it should not be considered
1367an alternative to the NTP authentication facilities.
1368Source address based restrictions are easily circumvented
1369by a determined cracker.
1370
1371  <p>Clients can be denied service because they are explicitly
1372included in the restrict list created by the restrict command
1373or implicitly as the result of cryptographic or rate limit
1374violations.
1375Cryptographic violations include certificate
1376or identity verification failure; rate limit violations generally
1377result from defective NTP implementations that send packets
1378at abusive rates.
1379Some violations cause denied service
1380only for the offending packet, others cause denied service
1381for a timed period and others cause the denied service for
1382an indefinate period.
1383When a client or network is denied access
1384for an indefinate period, the only way at present to remove
1385the restrictions is by restarting the server.
1386
1387<h5 class="subsubsection">The Kiss-of-Death Packet</h5>
1388
1389<p>Ordinarily, packets denied service are simply dropped with no
1390further action except incrementing statistics counters.
1391Sometimes a
1392more proactive response is needed, such as a server message that
1393explicitly requests the client to stop sending and leave a message
1394for the system operator.
1395A special packet format has been created
1396for this purpose called the "kiss-of-death" (KoD) packet.
1397KoD packets have the leap bits set unsynchronized and stratum set
1398to zero and the reference identifier field set to a four-byte
1399ASCII code.
1400If the
1401<code>noserve</code>
1402or
1403<code>notrust</code>
1404flag of the matching restrict list entry is set,
1405the code is "DENY"; if the
1406<code>limited</code>
1407flag is set and the rate limit
1408is exceeded, the code is "RATE".
1409Finally, if a cryptographic violation occurs, the code is "CRYP".
1410
1411  <p>A client receiving a KoD performs a set of sanity checks to
1412minimize security exposure, then updates the stratum and
1413reference identifier peer variables, sets the access
1414denied (TEST4) bit in the peer flash variable and sends
1415a message to the log.
1416As long as the TEST4 bit is set,
1417the client will send no further packets to the server.
1418The only way at present to recover from this condition is
1419to restart the protocol at both the client and server.
1420This
1421happens automatically at the client when the association times out.
1422It will happen at the server only if the server operator cooperates.
1423
1424<h5 class="subsubsection">Access Control Commands</h5>
1425
1426     <dl>
1427<dt><code>discard</code> <code>[average </code><kbd>avg</kbd><code>]</code> <code>[minimum </code><kbd>min</kbd><code>]</code> <code>[monitor </code><kbd>prob</kbd><code>]</code><dd>Set the parameters of the
1428<code>limited</code>
1429facility which protects the server from
1430client abuse.
1431The
1432<code>average</code>
1433subcommand specifies the minimum average packet
1434spacing, while the
1435<code>minimum</code>
1436subcommand specifies the minimum packet spacing.
1437Packets that violate these minima are discarded
1438and a kiss-o'-death packet returned if enabled.
1439The default
1440minimum average and minimum are 5 and 2, respectively.
1441The monitor subcommand specifies the probability of discard
1442for packets that overflow the rate-control window.
1443<br><dt><code>restrict</code> <code>address</code> <code>[mask </code><kbd>mask</kbd><code>]</code> <code>[</code><kbd>flag</kbd> <kbd>...</kbd><code>]</code><dd>The
1444<kbd>address</kbd>
1445argument expressed in
1446dotted-quad form is the address of a host or network.
1447Alternatively, the
1448<kbd>address</kbd>
1449argument can be a valid host DNS name.
1450The
1451<kbd>mask</kbd>
1452argument expressed in dotted-quad form defaults to
1453<code>255.255.255.255</code>,
1454meaning that the
1455<kbd>address</kbd>
1456is treated as the address of an individual host.
1457A default entry (address
1458<code>0.0.0.0</code>,
1459mask
1460<code>0.0.0.0</code>)
1461is always included and is always the first entry in the list.
1462Note that text string
1463<code>default</code>,
1464with no mask option, may
1465be used to indicate the default entry.
1466In the current implementation,
1467<code>flag</code>
1468always
1469restricts access, i.e., an entry with no flags indicates that free
1470access to the server is to be given.
1471The flags are not orthogonal,
1472in that more restrictive flags will often make less restrictive
1473ones redundant.
1474The flags can generally be classed into two
1475categories, those which restrict time service and those which
1476restrict informational queries and attempts to do run-time
1477reconfiguration of the server.
1478One or more of the following flags
1479may be specified:
1480          <dl>
1481<dt><code>ignore</code><dd>Deny packets of all kinds, including
1482<code>ntpq(1ntpqmdoc)</code>
1483and
1484<code>ntpdc(1ntpdcmdoc)</code>
1485queries.
1486<br><dt><code>kod</code><dd>If this flag is set when an access violation occurs, a kiss-o'-death
1487(KoD) packet is sent.
1488KoD packets are rate limited to no more than one
1489per second.
1490If another KoD packet occurs within one second after the
1491last one, the packet is dropped.
1492<br><dt><code>limited</code><dd>Deny service if the packet spacing violates the lower limits specified
1493in the discard command.
1494A history of clients is kept using the
1495monitoring capability of
1496<code>ntpd(1ntpdmdoc)</code>.
1497Thus, monitoring is always active as
1498long as there is a restriction entry with the
1499<code>limited</code>
1500flag.
1501<br><dt><code>lowpriotrap</code><dd>Declare traps set by matching hosts to be low priority.
1502The
1503number of traps a server can maintain is limited (the current limit
1504is 3).
1505Traps are usually assigned on a first come, first served
1506basis, with later trap requestors being denied service.
1507This flag
1508modifies the assignment algorithm by allowing low priority traps to
1509be overridden by later requests for normal priority traps.
1510<br><dt><code>nomodify</code><dd>Deny
1511<code>ntpq(1ntpqmdoc)</code>
1512and
1513<code>ntpdc(1ntpdcmdoc)</code>
1514queries which attempt to modify the state of the
1515server (i.e., run time reconfiguration).
1516Queries which return
1517information are permitted.
1518<br><dt><code>noquery</code><dd>Deny
1519<code>ntpq(1ntpqmdoc)</code>
1520and
1521<code>ntpdc(1ntpdcmdoc)</code>
1522queries.
1523Time service is not affected.
1524<br><dt><code>nopeer</code><dd>Deny packets which would result in mobilizing a new association.
1525This
1526includes broadcast and symmetric active packets when a configured
1527association does not exist.
1528It also includes
1529<code>pool</code>
1530associations, so if you want to use servers from a
1531<code>pool</code>
1532directive and also want to use
1533<code>nopeer</code>
1534by default, you'll want a
1535<code>restrict source ...</code> <code>line</code> <code>as</code> <code>well</code> <code>that</code> <code>does</code>
1536<br><dt>not<dd>include the
1537<code>nopeer</code>
1538directive.
1539<br><dt><code>noserve</code><dd>Deny all packets except
1540<code>ntpq(1ntpqmdoc)</code>
1541and
1542<code>ntpdc(1ntpdcmdoc)</code>
1543queries.
1544<br><dt><code>notrap</code><dd>Decline to provide mode 6 control message trap service to matching
1545hosts.
1546The trap service is a subsystem of the ntpdq control message
1547protocol which is intended for use by remote event logging programs.
1548<br><dt><code>notrust</code><dd>Deny service unless the packet is cryptographically authenticated.
1549<br><dt><code>ntpport</code><dd>This is actually a match algorithm modifier, rather than a
1550restriction flag.
1551Its presence causes the restriction entry to be
1552matched only if the source port in the packet is the standard NTP
1553UDP port (123).
1554Both
1555<code>ntpport</code>
1556and
1557<code>non-ntpport</code>
1558may
1559be specified.
1560The
1561<code>ntpport</code>
1562is considered more specific and
1563is sorted later in the list.
1564<br><dt><code>version</code><dd>Deny packets that do not match the current NTP version.
1565</dl>
1566
1567     <p>Default restriction list entries with the flags ignore, interface,
1568ntpport, for each of the local host's interface addresses are
1569inserted into the table at startup to prevent the server
1570from attempting to synchronize to its own time.
1571A default entry is also always present, though if it is
1572otherwise unconfigured; no flags are associated
1573with the default entry (i.e., everything besides your own
1574NTP server is unrestricted).
1575</dl>
1576<div class="node">
1577<p><hr>
1578<a name="Automatic-NTP-Configuration-Options"></a>
1579<br>
1580</div>
1581
1582<h4 class="subsection">Automatic NTP Configuration Options</h4>
1583
1584<h5 class="subsubsection">Manycasting</h5>
1585
1586<p>Manycasting is a automatic discovery and configuration paradigm
1587new to NTPv4.
1588It is intended as a means for a multicast client
1589to troll the nearby network neighborhood to find cooperating
1590manycast servers, validate them using cryptographic means
1591and evaluate their time values with respect to other servers
1592that might be lurking in the vicinity.
1593The intended result is that each manycast client mobilizes
1594client associations with some number of the "best"
1595of the nearby manycast servers, yet automatically reconfigures
1596to sustain this number of servers should one or another fail.
1597
1598  <p>Note that the manycasting paradigm does not coincide
1599with the anycast paradigm described in RFC-1546,
1600which is designed to find a single server from a clique
1601of servers providing the same service.
1602The manycast paradigm is designed to find a plurality
1603of redundant servers satisfying defined optimality criteria.
1604
1605  <p>Manycasting can be used with either symmetric key
1606or public key cryptography.
1607The public key infrastructure (PKI)
1608offers the best protection against compromised keys
1609and is generally considered stronger, at least with relatively
1610large key sizes.
1611It is implemented using the Autokey protocol and
1612the OpenSSL cryptographic library available from
1613<code>http://www.openssl.org/</code>.
1614The library can also be used with other NTPv4 modes
1615as well and is highly recommended, especially for broadcast modes.
1616
1617  <p>A persistent manycast client association is configured
1618using the manycastclient command, which is similar to the
1619server command but with a multicast (IPv4 class
1620<code>D</code>
1621or IPv6 prefix
1622<code>FF</code>)
1623group address.
1624The IANA has designated IPv4 address 224.1.1.1
1625and IPv6 address FF05::101 (site local) for NTP.
1626When more servers are needed, it broadcasts manycast
1627client messages to this address at the minimum feasible rate
1628and minimum feasible time-to-live (TTL) hops, depending
1629on how many servers have already been found.
1630There can be as many manycast client associations
1631as different group address, each one serving as a template
1632for a future ephemeral unicast client/server association.
1633
1634  <p>Manycast servers configured with the
1635<code>manycastserver</code>
1636command listen on the specified group address for manycast
1637client messages.
1638Note the distinction between manycast client,
1639which actively broadcasts messages, and manycast server,
1640which passively responds to them.
1641If a manycast server is
1642in scope of the current TTL and is itself synchronized
1643to a valid source and operating at a stratum level equal
1644to or lower than the manycast client, it replies to the
1645manycast client message with an ordinary unicast server message.
1646
1647  <p>The manycast client receiving this message mobilizes
1648an ephemeral client/server association according to the
1649matching manycast client template, but only if cryptographically
1650authenticated and the server stratum is less than or equal
1651to the client stratum.
1652Authentication is explicitly required
1653and either symmetric key or public key (Autokey) can be used.
1654Then, the client polls the server at its unicast address
1655in burst mode in order to reliably set the host clock
1656and validate the source.
1657This normally results
1658in a volley of eight client/server at 2-s intervals
1659during which both the synchronization and cryptographic
1660protocols run concurrently.
1661Following the volley,
1662the client runs the NTP intersection and clustering
1663algorithms, which act to discard all but the "best"
1664associations according to stratum and synchronization
1665distance.
1666The surviving associations then continue
1667in ordinary client/server mode.
1668
1669  <p>The manycast client polling strategy is designed to reduce
1670as much as possible the volume of manycast client messages
1671and the effects of implosion due to near-simultaneous
1672arrival of manycast server messages.
1673The strategy is determined by the
1674<code>manycastclient</code>,
1675<code>tos</code>
1676and
1677<code>ttl</code>
1678configuration commands.
1679The manycast poll interval is
1680normally eight times the system poll interval,
1681which starts out at the
1682<code>minpoll</code>
1683value specified in the
1684<code>manycastclient</code>,
1685command and, under normal circumstances, increments to the
1686<code>maxpolll</code>
1687value specified in this command.
1688Initially, the TTL is
1689set at the minimum hops specified by the ttl command.
1690At each retransmission the TTL is increased until reaching
1691the maximum hops specified by this command or a sufficient
1692number client associations have been found.
1693Further retransmissions use the same TTL.
1694
1695  <p>The quality and reliability of the suite of associations
1696discovered by the manycast client is determined by the NTP
1697mitigation algorithms and the
1698<code>minclock</code>
1699and
1700<code>minsane</code>
1701values specified in the
1702<code>tos</code>
1703configuration command.
1704At least
1705<code>minsane</code>
1706candidate servers must be available and the mitigation
1707algorithms produce at least
1708<code>minclock</code>
1709survivors in order to synchronize the clock.
1710Byzantine agreement principles require at least four
1711candidates in order to correctly discard a single falseticker.
1712For legacy purposes,
1713<code>minsane</code>
1714defaults to 1 and
1715<code>minclock</code>
1716defaults to 3.
1717For manycast service
1718<code>minsane</code>
1719should be explicitly set to 4, assuming at least that
1720number of servers are available.
1721
1722  <p>If at least
1723<code>minclock</code>
1724servers are found, the manycast poll interval is immediately
1725set to eight times
1726<code>maxpoll</code>.
1727If less than
1728<code>minclock</code>
1729servers are found when the TTL has reached the maximum hops,
1730the manycast poll interval is doubled.
1731For each transmission
1732after that, the poll interval is doubled again until
1733reaching the maximum of eight times
1734<code>maxpoll</code>.
1735Further transmissions use the same poll interval and
1736TTL values.
1737Note that while all this is going on,
1738each client/server association found is operating normally
1739it the system poll interval.
1740
1741  <p>Administratively scoped multicast boundaries are normally
1742specified by the network router configuration and,
1743in the case of IPv6, the link/site scope prefix.
1744By default, the increment for TTL hops is 32 starting
1745from 31; however, the
1746<code>ttl</code>
1747configuration command can be
1748used to modify the values to match the scope rules.
1749
1750  <p>It is often useful to narrow the range of acceptable
1751servers which can be found by manycast client associations.
1752Because manycast servers respond only when the client
1753stratum is equal to or greater than the server stratum,
1754primary (stratum 1) servers fill find only primary servers
1755in TTL range, which is probably the most common objective.
1756However, unless configured otherwise, all manycast clients
1757in TTL range will eventually find all primary servers
1758in TTL range, which is probably not the most common
1759objective in large networks.
1760The
1761<code>tos</code>
1762command can be used to modify this behavior.
1763Servers with stratum below
1764<code>floor</code>
1765or above
1766<code>ceiling</code>
1767specified in the
1768<code>tos</code>
1769command are strongly discouraged during the selection
1770process; however, these servers may be temporally
1771accepted if the number of servers within TTL range is
1772less than
1773<code>minclock</code>.
1774
1775  <p>The above actions occur for each manycast client message,
1776which repeats at the designated poll interval.
1777However, once the ephemeral client association is mobilized,
1778subsequent manycast server replies are discarded,
1779since that would result in a duplicate association.
1780If during a poll interval the number of client associations
1781falls below
1782<code>minclock</code>,
1783all manycast client prototype associations are reset
1784to the initial poll interval and TTL hops and operation
1785resumes from the beginning.
1786It is important to avoid
1787frequent manycast client messages, since each one requires
1788all manycast servers in TTL range to respond.
1789The result could well be an implosion, either minor or major,
1790depending on the number of servers in range.
1791The recommended value for
1792<code>maxpoll</code>
1793is 12 (4,096 s).
1794
1795  <p>It is possible and frequently useful to configure a host
1796as both manycast client and manycast server.
1797A number of hosts configured this way and sharing a common
1798group address will automatically organize themselves
1799in an optimum configuration based on stratum and
1800synchronization distance.
1801For example, consider an NTP
1802subnet of two primary servers and a hundred or more
1803dependent clients.
1804With two exceptions, all servers
1805and clients have identical configuration files including both
1806<code>multicastclient</code>
1807and
1808<code>multicastserver</code>
1809commands using, for instance, multicast group address
1810239.1.1.1.
1811The only exception is that each primary server
1812configuration file must include commands for the primary
1813reference source such as a GPS receiver.
1814
1815  <p>The remaining configuration files for all secondary
1816servers and clients have the same contents, except for the
1817<code>tos</code>
1818command, which is specific for each stratum level.
1819For stratum 1 and stratum 2 servers, that command is
1820not necessary.
1821For stratum 3 and above servers the
1822<code>floor</code>
1823value is set to the intended stratum number.
1824Thus, all stratum 3 configuration files are identical,
1825all stratum 4 files are identical and so forth.
1826
1827  <p>Once operations have stabilized in this scenario,
1828the primary servers will find the primary reference source
1829and each other, since they both operate at the same
1830stratum (1), but not with any secondary server or client,
1831since these operate at a higher stratum.
1832The secondary
1833servers will find the servers at the same stratum level.
1834If one of the primary servers loses its GPS receiver,
1835it will continue to operate as a client and other clients
1836will time out the corresponding association and
1837re-associate accordingly.
1838
1839  <p>Some administrators prefer to avoid running
1840<code>ntpd(1ntpdmdoc)</code>
1841continuously and run either
1842<code>sntp(1sntpmdoc)</code>
1843or
1844<code>ntpd(1ntpdmdoc)</code>
1845<code>-q</code>
1846as a cron job.
1847In either case the servers must be
1848configured in advance and the program fails if none are
1849available when the cron job runs.
1850A really slick
1851application of manycast is with
1852<code>ntpd(1ntpdmdoc)</code>
1853<code>-q</code>.
1854The program wakes up, scans the local landscape looking
1855for the usual suspects, selects the best from among
1856the rascals, sets the clock and then departs.
1857Servers do not have to be configured in advance and
1858all clients throughout the network can have the same
1859configuration file.
1860
1861<h5 class="subsubsection">Manycast Interactions with Autokey</h5>
1862
1863<p>Each time a manycast client sends a client mode packet
1864to a multicast group address, all manycast servers
1865in scope generate a reply including the host name
1866and status word.
1867The manycast clients then run
1868the Autokey protocol, which collects and verifies
1869all certificates involved.
1870Following the burst interval
1871all but three survivors are cast off,
1872but the certificates remain in the local cache.
1873It often happens that several complete signing trails
1874from the client to the primary servers are collected in this way.
1875
1876  <p>About once an hour or less often if the poll interval
1877exceeds this, the client regenerates the Autokey key list.
1878This is in general transparent in client/server mode.
1879However, about once per day the server private value
1880used to generate cookies is refreshed along with all
1881manycast client associations.
1882In this case all
1883cryptographic values including certificates is refreshed.
1884If a new certificate has been generated since
1885the last refresh epoch, it will automatically revoke
1886all prior certificates that happen to be in the
1887certificate cache.
1888At the same time, the manycast
1889scheme starts all over from the beginning and
1890the expanding ring shrinks to the minimum and increments
1891from there while collecting all servers in scope.
1892
1893<h5 class="subsubsection">Manycast Options</h5>
1894
1895     <dl>
1896<dt><code>tos</code> <code>[ceiling </code><kbd>ceiling</kbd><code> | cohort { 0 | 1 } | floor </code><kbd>floor</kbd><code> | minclock </code><kbd>minclock</kbd><code> | minsane </code><kbd>minsane</kbd><code>]</code><dd>This command affects the clock selection and clustering
1897algorithms.
1898It can be used to select the quality and
1899quantity of peers used to synchronize the system clock
1900and is most useful in manycast mode.
1901The variables operate
1902as follows:
1903          <dl>
1904<dt><code>ceiling</code> <kbd>ceiling</kbd><dd>Peers with strata above
1905<code>ceiling</code>
1906will be discarded if there are at least
1907<code>minclock</code>
1908peers remaining.
1909This value defaults to 15, but can be changed
1910to any number from 1 to 15.
1911<br><dt><code>cohort</code> <code>{0 | 1}</code><dd>This is a binary flag which enables (0) or disables (1)
1912manycast server replies to manycast clients with the same
1913stratum level.
1914This is useful to reduce implosions where
1915large numbers of clients with the same stratum level
1916are present.
1917The default is to enable these replies.
1918<br><dt><code>floor</code> <kbd>floor</kbd><dd>Peers with strata below
1919<code>floor</code>
1920will be discarded if there are at least
1921<code>minclock</code>
1922peers remaining.
1923This value defaults to 1, but can be changed
1924to any number from 1 to 15.
1925<br><dt><code>minclock</code> <kbd>minclock</kbd><dd>The clustering algorithm repeatedly casts out outlier
1926associations until no more than
1927<code>minclock</code>
1928associations remain.
1929This value defaults to 3,
1930but can be changed to any number from 1 to the number of
1931configured sources.
1932<br><dt><code>minsane</code> <kbd>minsane</kbd><dd>This is the minimum number of candidates available
1933to the clock selection algorithm in order to produce
1934one or more truechimers for the clustering algorithm.
1935If fewer than this number are available, the clock is
1936undisciplined and allowed to run free.
1937The default is 1
1938for legacy purposes.
1939However, according to principles of
1940Byzantine agreement,
1941<code>minsane</code>
1942should be at least 4 in order to detect and discard
1943a single falseticker.
1944</dl>
1945     <br><dt><code>ttl</code> <kbd>hop</kbd> <kbd>...</kbd><dd>This command specifies a list of TTL values in increasing
1946order, up to 8 values can be specified.
1947In manycast mode these values are used in turn
1948in an expanding-ring search.
1949The default is eight
1950multiples of 32 starting at 31.
1951</dl>
1952<div class="node">
1953<p><hr>
1954<a name="Reference-Clock-Support"></a>
1955<br>
1956</div>
1957
1958<h4 class="subsection">Reference Clock Support</h4>
1959
1960<p>The NTP Version 4 daemon supports some three dozen different radio,
1961satellite and modem reference clocks plus a special pseudo-clock
1962used for backup or when no other clock source is available.
1963Detailed descriptions of individual device drivers and options can
1964be found in the
1965"Reference Clock Drivers"
1966page
1967(available as part of the HTML documentation
1968provided in
1969<span class="file">/usr/share/doc/ntp</span>).
1970Additional information can be found in the pages linked
1971there, including the
1972"Debugging Hints for Reference Clock Drivers"
1973and
1974"How To Write a Reference Clock Driver"
1975pages
1976(available as part of the HTML documentation
1977provided in
1978<span class="file">/usr/share/doc/ntp</span>).
1979In addition, support for a PPS
1980signal is available as described in the
1981"Pulse-per-second (PPS) Signal Interfacing"
1982page
1983(available as part of the HTML documentation
1984provided in
1985<span class="file">/usr/share/doc/ntp</span>).
1986Many
1987drivers support special line discipline/streams modules which can
1988significantly improve the accuracy using the driver.
1989These are
1990described in the
1991"Line Disciplines and Streams Drivers"
1992page
1993(available as part of the HTML documentation
1994provided in
1995<span class="file">/usr/share/doc/ntp</span>).
1996
1997  <p>A reference clock will generally (though not always) be a radio
1998timecode receiver which is synchronized to a source of standard
1999time such as the services offered by the NRC in Canada and NIST and
2000USNO in the US.
2001The interface between the computer and the timecode
2002receiver is device dependent, but is usually a serial port.
2003A
2004device driver specific to each reference clock must be selected and
2005compiled in the distribution; however, most common radio, satellite
2006and modem clocks are included by default.
2007Note that an attempt to
2008configure a reference clock when the driver has not been compiled
2009or the hardware port has not been appropriately configured results
2010in a scalding remark to the system log file, but is otherwise non
2011hazardous.
2012
2013  <p>For the purposes of configuration,
2014<code>ntpd(1ntpdmdoc)</code>
2015treats
2016reference clocks in a manner analogous to normal NTP peers as much
2017as possible.
2018Reference clocks are identified by a syntactically
2019correct but invalid IP address, in order to distinguish them from
2020normal NTP peers.
2021Reference clock addresses are of the form
2022<code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd>,
2023where
2024<kbd>t</kbd>
2025is an integer
2026denoting the clock type and
2027<kbd>u</kbd>
2028indicates the unit
2029number in the range 0-3.
2030While it may seem overkill, it is in fact
2031sometimes useful to configure multiple reference clocks of the same
2032type, in which case the unit numbers must be unique.
2033
2034  <p>The
2035<code>server</code>
2036command is used to configure a reference
2037clock, where the
2038<kbd>address</kbd>
2039argument in that command
2040is the clock address.
2041The
2042<code>key</code>,
2043<code>version</code>
2044and
2045<code>ttl</code>
2046options are not used for reference clock support.
2047The
2048<code>mode</code>
2049option is added for reference clock support, as
2050described below.
2051The
2052<code>prefer</code>
2053option can be useful to
2054persuade the server to cherish a reference clock with somewhat more
2055enthusiasm than other reference clocks or peers.
2056Further
2057information on this option can be found in the
2058"Mitigation Rules and the prefer Keyword"
2059(available as part of the HTML documentation
2060provided in
2061<span class="file">/usr/share/doc/ntp</span>)
2062page.
2063The
2064<code>minpoll</code>
2065and
2066<code>maxpoll</code>
2067options have
2068meaning only for selected clock drivers.
2069See the individual clock
2070driver document pages for additional information.
2071
2072  <p>The
2073<code>fudge</code>
2074command is used to provide additional
2075information for individual clock drivers and normally follows
2076immediately after the
2077<code>server</code>
2078command.
2079The
2080<kbd>address</kbd>
2081argument specifies the clock address.
2082The
2083<code>refid</code>
2084and
2085<code>stratum</code>
2086options can be used to
2087override the defaults for the device.
2088There are two optional
2089device-dependent time offsets and four flags that can be included
2090in the
2091<code>fudge</code>
2092command as well.
2093
2094  <p>The stratum number of a reference clock is by default zero.
2095Since the
2096<code>ntpd(1ntpdmdoc)</code>
2097daemon adds one to the stratum of each
2098peer, a primary server ordinarily displays an external stratum of
2099one.
2100In order to provide engineered backups, it is often useful to
2101specify the reference clock stratum as greater than zero.
2102The
2103<code>stratum</code>
2104option is used for this purpose.
2105Also, in cases
2106involving both a reference clock and a pulse-per-second (PPS)
2107discipline signal, it is useful to specify the reference clock
2108identifier as other than the default, depending on the driver.
2109The
2110<code>refid</code>
2111option is used for this purpose.
2112Except where noted,
2113these options apply to all clock drivers.
2114
2115<h5 class="subsubsection">Reference Clock Commands</h5>
2116
2117     <dl>
2118<dt><code>server</code> <code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd> <code>[prefer]</code> <code>[mode </code><kbd>int</kbd><code>]</code> <code>[minpoll </code><kbd>int</kbd><code>]</code> <code>[maxpoll </code><kbd>int</kbd><code>]</code><dd>This command can be used to configure reference clocks in
2119special ways.
2120The options are interpreted as follows:
2121          <dl>
2122<dt><code>prefer</code><dd>Marks the reference clock as preferred.
2123All other things being
2124equal, this host will be chosen for synchronization among a set of
2125correctly operating hosts.
2126See the
2127"Mitigation Rules and the prefer Keyword"
2128page
2129(available as part of the HTML documentation
2130provided in
2131<span class="file">/usr/share/doc/ntp</span>)
2132for further information.
2133<br><dt><code>mode</code> <kbd>int</kbd><dd>Specifies a mode number which is interpreted in a
2134device-specific fashion.
2135For instance, it selects a dialing
2136protocol in the ACTS driver and a device subtype in the
2137parse
2138drivers.
2139<br><dt><code>minpoll</code> <kbd>int</kbd><br><dt><code>maxpoll</code> <kbd>int</kbd><dd>These options specify the minimum and maximum polling interval
2140for reference clock messages, as a power of 2 in seconds
2141For
2142most directly connected reference clocks, both
2143<code>minpoll</code>
2144and
2145<code>maxpoll</code>
2146default to 6 (64 s).
2147For modem reference clocks,
2148<code>minpoll</code>
2149defaults to 10 (17.1 m) and
2150<code>maxpoll</code>
2151defaults to 14 (4.5 h).
2152The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
2153</dl>
2154     <br><dt><code>fudge</code> <code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd> <code>[time1 </code><kbd>sec</kbd><code>]</code> <code>[time2 </code><kbd>sec</kbd><code>]</code> <code>[stratum </code><kbd>int</kbd><code>]</code> <code>[refid </code><kbd>string</kbd><code>]</code> <code>[mode </code><kbd>int</kbd><code>]</code> <code>[flag1 0 | 1]</code> <code>[flag2 0 | 1]</code> <code>[flag3 0 | 1]</code> <code>[flag4 0 | 1]</code><dd>This command can be used to configure reference clocks in
2155special ways.
2156It must immediately follow the
2157<code>server</code>
2158command which configures the driver.
2159Note that the same capability
2160is possible at run time using the
2161<code>ntpdc(1ntpdcmdoc)</code>
2162program.
2163The options are interpreted as
2164follows:
2165          <dl>
2166<dt><code>time1</code> <kbd>sec</kbd><dd>Specifies a constant to be added to the time offset produced by
2167the driver, a fixed-point decimal number in seconds.
2168This is used
2169as a calibration constant to adjust the nominal time offset of a
2170particular clock to agree with an external standard, such as a
2171precision PPS signal.
2172It also provides a way to correct a
2173systematic error or bias due to serial port or operating system
2174latencies, different cable lengths or receiver internal delay.
2175The
2176specified offset is in addition to the propagation delay provided
2177by other means, such as internal DIPswitches.
2178Where a calibration
2179for an individual system and driver is available, an approximate
2180correction is noted in the driver documentation pages.
2181Note: in order to facilitate calibration when more than one
2182radio clock or PPS signal is supported, a special calibration
2183feature is available.
2184It takes the form of an argument to the
2185<code>enable</code>
2186command described in
2187<a href="#Miscellaneous-Options">Miscellaneous Options</a>
2188page and operates as described in the
2189"Reference Clock Drivers"
2190page
2191(available as part of the HTML documentation
2192provided in
2193<span class="file">/usr/share/doc/ntp</span>).
2194<br><dt><code>time2</code> <kbd>secs</kbd><dd>Specifies a fixed-point decimal number in seconds, which is
2195interpreted in a driver-dependent way.
2196See the descriptions of
2197specific drivers in the
2198"Reference Clock Drivers"
2199page
2200(available as part of the HTML documentation
2201provided in
2202<span class="file">/usr/share/doc/ntp</span>).
2203<br><dt><code>stratum</code> <kbd>int</kbd><dd>Specifies the stratum number assigned to the driver, an integer
2204between 0 and 15.
2205This number overrides the default stratum number
2206ordinarily assigned by the driver itself, usually zero.
2207<br><dt><code>refid</code> <kbd>string</kbd><dd>Specifies an ASCII string of from one to four characters which
2208defines the reference identifier used by the driver.
2209This string
2210overrides the default identifier ordinarily assigned by the driver
2211itself.
2212<br><dt><code>mode</code> <kbd>int</kbd><dd>Specifies a mode number which is interpreted in a
2213device-specific fashion.
2214For instance, it selects a dialing
2215protocol in the ACTS driver and a device subtype in the
2216parse
2217drivers.
2218<br><dt><code>flag1</code> <code>0</code> <code>|</code> <code>1</code><br><dt><code>flag2</code> <code>0</code> <code>|</code> <code>1</code><br><dt><code>flag3</code> <code>0</code> <code>|</code> <code>1</code><br><dt><code>flag4</code> <code>0</code> <code>|</code> <code>1</code><dd>These four flags are used for customizing the clock driver.
2219The
2220interpretation of these values, and whether they are used at all,
2221is a function of the particular clock driver.
2222However, by
2223convention
2224<code>flag4</code>
2225is used to enable recording monitoring
2226data to the
2227<code>clockstats</code>
2228file configured with the
2229<code>filegen</code>
2230command.
2231Further information on the
2232<code>filegen</code>
2233command can be found in
2234<a href="#Monitoring-Options">Monitoring Options</a>.
2235</dl>
2236     </dl>
2237<div class="node">
2238<p><hr>
2239<a name="Miscellaneous-Options"></a>
2240<br>
2241</div>
2242
2243<h4 class="subsection">Miscellaneous Options</h4>
2244
2245     <dl>
2246<dt><code>broadcastdelay</code> <kbd>seconds</kbd><dd>The broadcast and multicast modes require a special calibration
2247to determine the network delay between the local and remote
2248servers.
2249Ordinarily, this is done automatically by the initial
2250protocol exchanges between the client and server.
2251In some cases,
2252the calibration procedure may fail due to network or server access
2253controls, for example.
2254This command specifies the default delay to
2255be used under these circumstances.
2256Typically (for Ethernet), a
2257number between 0.003 and 0.007 seconds is appropriate.
2258The default
2259when this command is not used is 0.004 seconds.
2260<br><dt><code>calldelay</code> <kbd>delay</kbd><dd>This option controls the delay in seconds between the first and second
2261packets sent in burst or iburst mode to allow additional time for a modem
2262or ISDN call to complete.
2263<br><dt><code>driftfile</code> <kbd>driftfile</kbd><dd>This command specifies the complete path and name of the file used to
2264record the frequency of the local clock oscillator.
2265This is the same
2266operation as the
2267<code>-f</code>
2268command line option.
2269If the file exists, it is read at
2270startup in order to set the initial frequency and then updated once per
2271hour with the current frequency computed by the daemon.
2272If the file name is
2273specified, but the file itself does not exist, the starts with an initial
2274frequency of zero and creates the file when writing it for the first time.
2275If this command is not given, the daemon will always start with an initial
2276frequency of zero.
2277
2278     <p>The file format consists of a single line containing a single
2279floating point number, which records the frequency offset measured
2280in parts-per-million (PPM).
2281The file is updated by first writing
2282the current drift value into a temporary file and then renaming
2283this file to replace the old version.
2284This implies that
2285<code>ntpd(1ntpdmdoc)</code>
2286must have write permission for the directory the
2287drift file is located in, and that file system links, symbolic or
2288otherwise, should be avoided.
2289<br><dt><code>dscp</code> <kbd>value</kbd><dd>This option specifies the Differentiated Services Control Point (DSCP) value,
2290a 6-bit code.  The default value is 46, signifying Expedited Forwarding.
2291<br><dt><code>enable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><br><dt><code>disable</code> <code>[auth | bclient | calibrate | kernel | mode7 | monitor | ntp | stats | unpeer_crypto_early | unpeer_crypto_nak_early | unpeer_digest_early]</code><dd>Provides a way to enable or disable various server options.
2292Flags not mentioned are unaffected.
2293Note that all of these flags
2294can be controlled remotely using the
2295<code>ntpdc(1ntpdcmdoc)</code>
2296utility program.
2297          <dl>
2298<dt><code>auth</code><dd>Enables the server to synchronize with unconfigured peers only if the
2299peer has been correctly authenticated using either public key or
2300private key cryptography.
2301The default for this flag is
2302<code>enable</code>.
2303<br><dt><code>bclient</code><dd>Enables the server to listen for a message from a broadcast or
2304multicast server, as in the
2305<code>multicastclient</code>
2306command with default
2307address.
2308The default for this flag is
2309<code>disable</code>.
2310<br><dt><code>calibrate</code><dd>Enables the calibrate feature for reference clocks.
2311The default for
2312this flag is
2313<code>disable</code>.
2314<br><dt><code>kernel</code><dd>Enables the kernel time discipline, if available.
2315The default for this
2316flag is
2317<code>enable</code>
2318if support is available, otherwise
2319<code>disable</code>.
2320<br><dt><code>mode7</code><dd>Enables processing of NTP mode 7 implementation-specific requests
2321which are used by the deprecated
2322<code>ntpdc(1ntpdcmdoc)</code>
2323program.
2324The default for this flag is disable.
2325This flag is excluded from runtime configuration using
2326<code>ntpq(1ntpqmdoc)</code>.
2327The
2328<code>ntpq(1ntpqmdoc)</code>
2329program provides the same capabilities as
2330<code>ntpdc(1ntpdcmdoc)</code>
2331using standard mode 6 requests.
2332<br><dt><code>monitor</code><dd>Enables the monitoring facility.
2333See the
2334<code>ntpdc(1ntpdcmdoc)</code>
2335program
2336and the
2337<code>monlist</code>
2338command or further information.
2339The
2340default for this flag is
2341<code>enable</code>.
2342<br><dt><code>ntp</code><dd>Enables time and frequency discipline.
2343In effect, this switch opens and
2344closes the feedback loop, which is useful for testing.
2345The default for
2346this flag is
2347<code>enable</code>.
2348<br><dt><code>stats</code><dd>Enables the statistics facility.
2349See the
2350<a href="#Monitoring-Options">Monitoring Options</a>
2351section for further information.
2352The default for this flag is
2353<code>disable</code>.
2354<br><dt><code>unpeer_crypto_early</code><dd>By default, if
2355<code>ntpd(1ntpdmdoc)</code>
2356receives an autokey packet that fails TEST9,
2357a crypto failure,
2358the association is immediately cleared.
2359This is almost certainly a feature,
2360but if, in spite of the current recommendation of not using autokey,
2361you are
2362.B still
2363using autokey
2364.B and
2365you are seeing this sort of DoS attack
2366disabling this flag will delay
2367tearing down the association until the reachability counter
2368becomes zero.
2369You can check your
2370<code>peerstats</code>
2371file for evidence of any of these attacks.
2372The
2373default for this flag is
2374<code>enable</code>.
2375<br><dt><code>unpeer_crypto_nak_early</code><dd>By default, if
2376<code>ntpd(1ntpdmdoc)</code>
2377receives a crypto-NAK packet that
2378passes the duplicate packet and origin timestamp checks
2379the association is immediately cleared.
2380While this is generally a feature
2381as it allows for quick recovery if a server key has changed,
2382a properly forged and appropriately delivered crypto-NAK packet
2383can be used in a DoS attack.
2384If you have active noticable problems with this type of DoS attack
2385then you should consider
2386disabling this option.
2387You can check your
2388<code>peerstats</code>
2389file for evidence of any of these attacks.
2390The
2391default for this flag is
2392<code>enable</code>.
2393<br><dt><code>unpeer_digest_early</code><dd>By default, if
2394<code>ntpd(1ntpdmdoc)</code>
2395receives what should be an authenticated packet
2396that passes other packet sanity checks but
2397contains an invalid digest
2398the association is immediately cleared.
2399While this is generally a feature
2400as it allows for quick recovery,
2401if this type of packet is carefully forged and sent
2402during an appropriate window it can be used for a DoS attack.
2403If you have active noticable problems with this type of DoS attack
2404then you should consider
2405disabling this option.
2406You can check your
2407<code>peerstats</code>
2408file for evidence of any of these attacks.
2409The
2410default for this flag is
2411<code>enable</code>.
2412</dl>
2413     <br><dt><code>includefile</code> <kbd>includefile</kbd><dd>This command allows additional configuration commands
2414to be included from a separate file.
2415Include files may
2416be nested to a depth of five; upon reaching the end of any
2417include file, command processing resumes in the previous
2418configuration file.
2419This option is useful for sites that run
2420<code>ntpd(1ntpdmdoc)</code>
2421on multiple hosts, with (mostly) common options (e.g., a
2422restriction list).
2423<br><dt><code>leapsmearinterval</code> <kbd>seconds</kbd><dd>This EXPERIMENTAL option is only available if
2424<code>ntpd(1ntpdmdoc)</code>
2425was built with the
2426<code>--enable-leap-smear</code>
2427option to the
2428<code>configure</code>
2429script.
2430It specifies the interval over which a leap second correction will be applied.
2431Recommended values for this option are between
24327200 (2 hours) and 86400 (24 hours).
2433.Sy DO NOT USE THIS OPTION ON PUBLIC-ACCESS SERVERS!
2434See http://bugs.ntp.org/2855 for more information.
2435<br><dt><code>logconfig</code> <kbd>configkeyword</kbd><dd>This command controls the amount and type of output written to
2436the system
2437<code>syslog(3)</code>
2438facility or the alternate
2439<code>logfile</code>
2440log file.
2441By default, all output is turned on.
2442All
2443<kbd>configkeyword</kbd>
2444keywords can be prefixed with
2445=,
2446+
2447and
2448-,
2449where
2450=
2451sets the
2452<code>syslog(3)</code>
2453priority mask,
2454+
2455adds and
2456-
2457removes
2458messages.
2459<code>syslog(3)</code>
2460messages can be controlled in four
2461classes
2462(<code>clock</code>, <code>peer</code>, <code>sys</code> and <code>sync</code>).
2463Within these classes four types of messages can be
2464controlled: informational messages
2465(<code>info</code>),
2466event messages
2467(<code>events</code>),
2468statistics messages
2469(<code>statistics</code>)
2470and
2471status messages
2472(<code>status</code>).
2473
2474     <p>Configuration keywords are formed by concatenating the message class with
2475the event class.
2476The
2477<code>all</code>
2478prefix can be used instead of a message class.
2479A
2480message class may also be followed by the
2481<code>all</code>
2482keyword to enable/disable all
2483messages of the respective message class.Thus, a minimal log configuration
2484could look like this:
2485<pre class="verbatim">
2486     logconfig =syncstatus +sysevents
2487</pre>
2488
2489     <p>This would just list the synchronizations state of
2490<code>ntpd(1ntpdmdoc)</code>
2491and the major system events.
2492For a simple reference server, the
2493following minimum message configuration could be useful:
2494<pre class="verbatim">
2495     logconfig =syncall +clockall
2496</pre>
2497
2498     <p>This configuration will list all clock information and
2499synchronization information.
2500All other events and messages about
2501peers, system events and so on is suppressed.
2502<br><dt><code>logfile</code> <kbd>logfile</kbd><dd>This command specifies the location of an alternate log file to
2503be used instead of the default system
2504<code>syslog(3)</code>
2505facility.
2506This is the same operation as the -l command line option.
2507<br><dt><code>setvar</code> <kbd>variable</kbd> <code>[default]</code><dd>This command adds an additional system variable.
2508These
2509variables can be used to distribute additional information such as
2510the access policy.
2511If the variable of the form
2512<code>name</code><code>=</code><kbd>value</kbd>
2513is followed by the
2514<code>default</code>
2515keyword, the
2516variable will be listed as part of the default system variables
2517(<code>rv</code> command)).
2518These additional variables serve
2519informational purposes only.
2520They are not related to the protocol
2521other that they can be listed.
2522The known protocol variables will
2523always override any variables defined via the
2524<code>setvar</code>
2525mechanism.
2526There are three special variables that contain the names
2527of all variable of the same group.
2528The
2529<code>sys_var_list</code>
2530holds
2531the names of all system variables.
2532The
2533<code>peer_var_list</code>
2534holds
2535the names of all peer variables and the
2536<code>clock_var_list</code>
2537holds the names of the reference clock variables.
2538<br><dt><code>tinker</code> <code>[allan </code><kbd>allan</kbd><code> | dispersion </code><kbd>dispersion</kbd><code> | freq </code><kbd>freq</kbd><code> | huffpuff </code><kbd>huffpuff</kbd><code> | panic </code><kbd>panic</kbd><code> | step </code><kbd>step</kbd><code> | stepback </code><kbd>stepback</kbd><code> | stepfwd </code><kbd>stepfwd</kbd><code> | stepout </code><kbd>stepout</kbd><code>]</code><dd>This command can be used to alter several system variables in
2539very exceptional circumstances.
2540It should occur in the
2541configuration file before any other configuration options.
2542The
2543default values of these variables have been carefully optimized for
2544a wide range of network speeds and reliability expectations.
2545In
2546general, they interact in intricate ways that are hard to predict
2547and some combinations can result in some very nasty behavior.
2548Very
2549rarely is it necessary to change the default values; but, some
2550folks cannot resist twisting the knobs anyway and this command is
2551for them.
2552Emphasis added: twisters are on their own and can expect
2553no help from the support group.
2554
2555     <p>The variables operate as follows:
2556          <dl>
2557<dt><code>allan</code> <kbd>allan</kbd><dd>The argument becomes the new value for the minimum Allan
2558intercept, which is a parameter of the PLL/FLL clock discipline
2559algorithm.
2560The value in log2 seconds defaults to 7 (1024 s), which is also the lower
2561limit.
2562<br><dt><code>dispersion</code> <kbd>dispersion</kbd><dd>The argument becomes the new value for the dispersion increase rate,
2563normally .000015 s/s.
2564<br><dt><code>freq</code> <kbd>freq</kbd><dd>The argument becomes the initial value of the frequency offset in
2565parts-per-million.
2566This overrides the value in the frequency file, if
2567present, and avoids the initial training state if it is not.
2568<br><dt><code>huffpuff</code> <kbd>huffpuff</kbd><dd>The argument becomes the new value for the experimental
2569huff-n'-puff filter span, which determines the most recent interval
2570the algorithm will search for a minimum delay.
2571The lower limit is
2572900 s (15 m), but a more reasonable value is 7200 (2 hours).
2573There
2574is no default, since the filter is not enabled unless this command
2575is given.
2576<br><dt><code>panic</code> <kbd>panic</kbd><dd>The argument is the panic threshold, normally 1000 s.
2577If set to zero,
2578the panic sanity check is disabled and a clock offset of any value will
2579be accepted.
2580<br><dt><code>step</code> <kbd>step</kbd><dd>The argument is the step threshold, which by default is 0.128 s.
2581It can
2582be set to any positive number in seconds.
2583If set to zero, step
2584adjustments will never occur.
2585Note: The kernel time discipline is
2586disabled if the step threshold is set to zero or greater than the
2587default.
2588<br><dt><code>stepback</code> <kbd>stepback</kbd><dd>The argument is the step threshold for the backward direction,
2589which by default is 0.128 s.
2590It can
2591be set to any positive number in seconds.
2592If both the forward and backward step thresholds are set to zero, step
2593adjustments will never occur.
2594Note: The kernel time discipline is
2595disabled if
2596each direction of step threshold are either
2597set to zero or greater than .5 second.
2598<br><dt><code>stepfwd</code> <kbd>stepfwd</kbd><dd>As for stepback, but for the forward direction.
2599<br><dt><code>stepout</code> <kbd>stepout</kbd><dd>The argument is the stepout timeout, which by default is 900 s.
2600It can
2601be set to any positive number in seconds.
2602If set to zero, the stepout
2603pulses will not be suppressed.
2604</dl>
2605     <br><dt><code>rlimit</code> <code>[memlock </code><kbd>Nmegabytes</kbd><code> | stacksize </code><kbd>N4kPages</kbd><code> filenum </code><kbd>Nfiledescriptors</kbd><code>]</code><dd>
2606          <dl>
2607<dt><code>memlock</code> <kbd>Nmegabytes</kbd><dd>Specify the number of megabytes of memory that should be
2608allocated and locked.
2609Probably only available under Linux, this option may be useful
2610when dropping root (the
2611<code>-i</code>
2612option).
2613The default is 32 megabytes on non-Linux machines, and -1 under Linux.
2614-1 means "do not lock the process into memory".
26150 means "lock whatever memory the process wants into memory".
2616<br><dt><code>stacksize</code> <kbd>N4kPages</kbd><dd>Specifies the maximum size of the process stack on systems with the
2617<code>mlockall()</code>
2618function.
2619Defaults to 50 4k pages (200 4k pages in OpenBSD).
2620<br><dt><code>filenum</code> <kbd>Nfiledescriptors</kbd><dd>Specifies the maximum number of file descriptors ntpd may have open at once. Defaults to the system default.
2621</dl>
2622     <br><dt><code>trap</code> <kbd>host_address</kbd> <code>[port </code><kbd>port_number</kbd><code>]</code> <code>[interface </code><kbd>interface_address</kbd><code>]</code><dd>This command configures a trap receiver at the given host
2623address and port number for sending messages with the specified
2624local interface address.
2625If the port number is unspecified, a value
2626of 18447 is used.
2627If the interface address is not specified, the
2628message is sent with a source address of the local interface the
2629message is sent through.
2630Note that on a multihomed host the
2631interface used may vary from time to time with routing changes.
2632
2633     <p>The trap receiver will generally log event messages and other
2634information from the server in a log file.
2635While such monitor
2636programs may also request their own trap dynamically, configuring a
2637trap receiver will ensure that no messages are lost when the server
2638is started.
2639<br><dt><code>hop</code> <kbd>...</kbd><dd>This command specifies a list of TTL values in increasing order, up to 8
2640values can be specified.
2641In manycast mode these values are used in turn in
2642an expanding-ring search.
2643The default is eight multiples of 32 starting at
264431.
2645</dl>
2646
2647  <p>This section was generated by <strong>AutoGen</strong>,
2648using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp.conf</code> program.
2649This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
2650
2651<ul class="menu">
2652<li><a accesskey="1" href="#ntp_002econf-Files">ntp.conf Files</a>:                   Files
2653<li><a accesskey="2" href="#ntp_002econf-See-Also">ntp.conf See Also</a>:                See Also
2654<li><a accesskey="3" href="#ntp_002econf-Bugs">ntp.conf Bugs</a>:                    Bugs
2655<li><a accesskey="4" href="#ntp_002econf-Notes">ntp.conf Notes</a>:                   Notes
2656</ul>
2657
2658<div class="node">
2659<p><hr>
2660<a name="ntp_002econf-Files"></a>
2661<br>
2662</div>
2663
2664<h4 class="subsection">ntp.conf Files</h4>
2665
2666     <dl>
2667<dt><span class="file">/etc/ntp.conf</span><dd>the default name of the configuration file
2668<br><dt><span class="file">ntp.keys</span><dd>private MD5 keys
2669<br><dt><span class="file">ntpkey</span><dd>RSA private key
2670<br><dt><span class="file">ntpkey_</span><kbd>host</kbd><dd>RSA public key
2671<br><dt><span class="file">ntp_dh</span><dd>Diffie-Hellman agreement parameters
2672</dl>
2673<div class="node">
2674<p><hr>
2675<a name="ntp_002econf-See-Also"></a>
2676<br>
2677</div>
2678
2679<h4 class="subsection">ntp.conf See Also</h4>
2680
2681<p><code>ntpd(1ntpdmdoc)</code>,
2682<code>ntpdc(1ntpdcmdoc)</code>,
2683<code>ntpq(1ntpqmdoc)</code>
2684
2685  <p>In addition to the manual pages provided,
2686comprehensive documentation is available on the world wide web
2687at
2688<code>http://www.ntp.org/</code>.
2689A snapshot of this documentation is available in HTML format in
2690<span class="file">/usr/share/doc/ntp</span>.
2691<br>
2692
2693  <p><br>
2694David L. Mills, <em>Network Time Protocol (Version 4)</em>, RFC5905
2695<div class="node">
2696<p><hr>
2697<a name="ntp_002econf-Bugs"></a>
2698<br>
2699</div>
2700
2701<h4 class="subsection">ntp.conf Bugs</h4>
2702
2703<p>The syntax checking is not picky; some combinations of
2704ridiculous and even hilarious options and modes may not be
2705detected.
2706
2707  <p>The
2708<span class="file">ntpkey_</span><kbd>host</kbd>
2709files are really digital
2710certificates.
2711These should be obtained via secure directory
2712services when they become universally available.
2713<div class="node">
2714<p><hr>
2715<a name="ntp_002econf-Notes"></a>
2716<br>
2717</div>
2718
2719<h4 class="subsection">ntp.conf Notes</h4>
2720
2721<p>This document was derived from FreeBSD.
2722
2723</body></html>
2724
2725