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