Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NTPD(8)			    System Manager's Manual		       NTPD(8)

NAME
       ntpd -- Network Time Protocol (NTP) daemon

SYNOPSIS
       ntpd   [-aAbDdgLmnPqx]	[-c  conffile]	[-f  driftfile]	 [-k  keyfile]
	    [-l	 logfile]  [-p	pidfile]  [-r  broadcastdelay]	[-s  statsdir]
	    [-t	key] [-v variable] [-V variable]

DESCRIPTION
       The ntpd	utility	is an operating	system daemon which sets and maintains
       the  system  time  of  day  in  synchronism with	Internet standard time
       servers.	 It is a complete implementation of the	Network	Time  Protocol
       (NTP)  version 4, but also retains compatibility	with version 3,	as de-
       fined by	RFC-1305, and version 1	and 2,	as  defined  by	 RFC-1059  and
       RFC-1119, respectively.

       The ntpd	utility	does most computations in 64-bit floating point	arith-
       metic  and  does	 relatively  clumsy 64-bit fixed point operations only
       when necessary to preserve the ultimate precision, about	 232  picosec-
       onds.   While  the  ultimate  precision is not achievable with ordinary
       workstations and	networks of today, it may be required with future  gi-
       gahertz CPU clocks and gigabit LANs.

       Ordinarily,  ntpd  reads	 the ntp.conf(5) configuration file at startup
       time in order to	determine the synchronization  sources	and  operating
       modes.	It  is	also  possible to specify a working, although limited,
       configuration entirely on the command line, obviating the  need	for  a
       configuration  file.   This  may	 be particularly useful	when the local
       host is to be configured	as  a  broadcast/multicast  client,  with  all
       peers being determined by listening to broadcasts at run	time.

       If  NetInfo  support is built into ntpd,	then ntpd will attempt to read
       its configuration from the NetInfo if the default ntp.conf(5) file can-
       not be read and no file is specified by the -c option.

       Various internal	ntpd variables can be displayed	and configuration  op-
       tions  altered while the	ntpd is	running	using the ntpq(8) and ntpdc(8)
       utility programs.

       When ntpd starts	it looks at the	value of umask 2,  and	if  zero  ntpd
       will set	the umask 2 to 022.

       The following options are available:

       -a      Require cryptographic authentication for	broadcast client, mul-
	       ticast  client and symmetric passive associations.  This	is the
	       default.

       -A      Do  not	require	 cryptographic	authentication	for  broadcast
	       client,	multicast  client  and symmetric passive associations.
	       This is almost never a good idea.

       -b      Enable the client to synchronize	to broadcast servers.

       -c conffile
	       Specify the name	and path of the	 configuration	file,  default
	       /etc/ntp.conf.

       -d      Specify	debugging mode.	 This option may occur more than once,
	       with each occurrence indicating greater detail of display.  You
	       need to compile ntpd with DEBUG in order	to use this.

       -D level
	       Specify debugging level directly.

       -f driftfile
	       Specify the name	 and  path  of	the  frequency	file,  default
	       /etc/ntp.drift.	 This  is  the same operation as the driftfile
	       driftfile configuration command.

       -g      Normally, ntpd exits with a message to the system  log  if  the
	       offset exceeds the panic	threshold, which is 1000 s by default.
	       This  option allows the time to be set to any value without re-
	       striction; however, this	can happen only	once.  If the  thresh-
	       old  is	exceeded  after	that, ntpd will	exit with a message to
	       the system log.	This option can	be used	with the -q and	-x op-
	       tions.  See the tinker command for other	options.

       -k keyfile
	       Specify the name	and path of the	symmetric  key	file,  default
	       /etc/ntp.keys.	This is	the same operation as the keys keyfile
	       configuration command.

       -l logfile
	       Specify the name	and path of the	log file.  The default is  the
	       system  log  file.   This  is the same operation	as the logfile
	       logfile configuration command.

       -L      Do not listen to	virtual	IPs.  The default is to	listen.

       -m      Enable the client to synchronize	to multicast  servers  at  the
	       IPv4 multicast group address 224.0.1.1.

       -n      Do not fork.

       -N      To  the	extent permitted by the	operating system, run the ntpd
	       at the highest priority.

       -p pidfile
	       Specify the name	and path of the	file used to record  the  ntpd
	       process	ID.  This is the same operation	as the pidfile pidfile
	       configuration command.

       -P priority
	       To the extent permitted by the operating	system,	run  the  ntpd
	       at the specified	priority.

       -q      Exit the	ntpd just after	the first time the clock is set.  This
	       behavior	 mimics	that of	the ntpdate(8) program,	which is to be
	       retired.	 The -g	and -x options can be used with	 this  option.
	       Note: The kernel	time discipline	is disabled with this option.

       -r broadcastdelay
	       Specify the default propagation delay from the broadcast/multi-
	       cast  server to this client.  This is necessary only if the de-
	       lay cannot be computed automatically by the protocol.

       -s statsdir
	       Specify the directory path for files created by the  statistics
	       facility.   This	is the same operation as the statsdir statsdir
	       configuration command.

       -t key  Add a key number	to the trusted key list.  This option can  oc-
	       cur more	than once.

       -v variable

       -V variable
	       Add a system variable listed by default.

       -x      Normally,  the  time  is	 slewed	if the offset is less than the
	       step threshold, which is	128 ms	by  default,  and  stepped  if
	       above  the threshold.  This option sets the threshold to	600 s,
	       which is	well within the	accuracy window	to set the clock manu-
	       ally.  Note: Since the slew rate	of  typical  Unix  kernels  is
	       limited	to  0.5	 ms/s,	each  second of	adjustment requires an
	       amortization interval of	2000 s.	 Thus, an adjustment  as  much
	       as 600 s	will take almost 14 days to complete.  This option can
	       be used with the	-g and -q options.  See	the tinker command for
	       other  options.	 Note:	The kernel time	discipline is disabled
	       with this option.

   How NTP Operates
       The ntpd	utility	operates by exchanging messages	with one or more  con-
       figured	servers	 at  designated	poll intervals.	 When started, whether
       for the first or	subsequent times, the  program	requires  several  ex-
       changes from the	majority of these servers so the signal	processing and
       mitigation  algorithms  can  accumulate	and groom the data and set the
       clock.  In order	to protect the network from bursts, the	 initial  poll
       interval	 for  each server is delayed an	interval randomized over a few
       seconds.	 At the	default	initial	poll interval of 64s, several  minutes
       can elapse before the clock is set.  The	initial	delay to set the clock
       can  be	reduced	using the iburst keyword with the server configuration
       command,	as described in	ntp.conf(5).

       Most operating systems and hardware of today incorporate	a time-of-year
       (TOY) chip to maintain the time during periods when the power  is  off.
       When  the machine is booted, the	chip is	used to	initialize the operat-
       ing system time.	 After the machine has synchronized to a  NTP  server,
       the  operating  system  corrects	 the  chip from	time to	time.  In case
       there is	no TOY chip or for some	reason its time	 is  more  than	 1000s
       from the	server time, ntpd assumes something must be terribly wrong and
       the  only  reliable action is for the operator to intervene and set the
       clock by	hand.  This causes ntpd	to exit	with a panic  message  to  the
       system  log.   The -g option overrides this check and the clock will be
       set to the server time regardless of the	chip time.   However,  and  to
       protect against broken hardware,	such as	when the CMOS battery fails or
       the  clock  counter  becomes defective, once the	clock has been set, an
       error greater than 1000s	will cause ntpd	to exit	anyway.

       Under ordinary conditions, ntpd adjusts the clock  in  small  steps  so
       that  the  timescale  is	effectively continuous and without discontinu-
       ities.  Under conditions	of extreme network congestion,	the  roundtrip
       delay jitter can	exceed three seconds and the synchronization distance,
       which is	equal to one-half the roundtrip	delay plus error budget	terms,
       can  become very	large.	The ntpd algorithms discard sample offsets ex-
       ceeding 128 ms, unless the interval during which	no  sample  offset  is
       less  than 128 ms exceeds 900s.	The first sample after that, no	matter
       what the	offset,	steps the clock	to the indicated  time.	  In  practice
       this  reduces  the false	alarm rate where the clock is stepped in error
       to a vanishingly	low incidence.

       As the result of	this behavior, once the	clock has been	set,  it  very
       rarely  strays  more  than  128 ms, even	under extreme cases of network
       path congestion and jitter.  Sometimes,	in  particular	when  ntpd  is
       first  started,	the  error  might exceed 128 ms.  This may on occasion
       cause the clock to be set backwards if the local	 clock	time  is  more
       than 128	s in the future	relative to the	server.	 In some applications,
       this behavior may be unacceptable.  If the -x option is included	on the
       command line, the clock will never be stepped and only slew corrections
       will be used.

       The  issues  should be carefully	explored before	deciding to use	the -x
       option.	The maximum slew rate possible is limited  to  500  parts-per-
       million	(PPM)  as a consequence	of the correctness principles on which
       the NTP protocol	and algorithm design are based.	 As a result, the  lo-
       cal  clock  can	take  a	long time to converge to an acceptable offset,
       about 2,000 s for each second  the  clock  is  outside  the  acceptable
       range.	During	this  interval	the local clock	will not be consistent
       with any	other network clock and	the system cannot be used for distrib-
       uted applications that require correctly	synchronized network time.

       In spite	of the above precautions, sometimes when large	frequency  er-
       rors  are  present  the resulting time offsets stray outside the	128-ms
       range and an eventual step or slew time	correction  is	required.   If
       following  such	a  correction the frequency error is so	large that the
       first sample is outside the acceptable  range,  ntpd  enters  the  same
       state  as  when	the ntp.drift file is not present.  The	intent of this
       behavior	is to quickly correct the frequency and	restore	 operation  to
       the  normal  tracking  mode.   In  the most extreme cases ( time.ien.it
       comes to	mind), there may be occasional step/slew corrections and  sub-
       sequent	frequency  corrections.	  It  helps  in	these cases to use the
       burst keyword when configuring the server.

   Frequency Discipline
       The ntpd	behavior at startup depends on	whether	 the  frequency	 file,
       usually	ntp.drift,  exists.  This file contains	the latest estimate of
       clock frequency error.  When the	ntpd is	started	and the	file does  not
       exist,  the ntpd	enters a special mode designed to quickly adapt	to the
       particular system clock oscillator  time	 and  frequency	 error.	  This
       takes  approximately 15 minutes,	after which the	time and frequency are
       set to nominal values and the ntpd enters normal	mode, where  the  time
       and  frequency  are continuously	tracked	relative to the	server.	 After
       one hour	the frequency file is created and the current frequency	offset
       written to it.  When the	ntpd is	started	and the	file does  exist,  the
       ntpd  frequency is initialized from the file and	enters normal mode im-
       mediately.  After that the current frequency offset is written  to  the
       file at hourly intervals.

   Operating Modes
       The ntpd	utility	can operate in any of several modes, including symmet-
       ric  active/passive, client/server broadcast/multicast and manycast, as
       described in the	"Association Management" page (available  as  part  of
       the  HTML  documentation	 provided in /usr/share/doc/ntp).  It normally
       operates	continuously while monitoring for small	changes	 in  frequency
       and trimming the	clock for the ultimate precision.  However, it can op-
       erate  in a one-time mode where the time	is set from an external	server
       and frequency is	set from a  previously	recorded  frequency  file.   A
       broadcast/multicast  or	manycast  client  can discover remote servers,
       compute server-client propagation delay correction factors and  config-
       ure  itself automatically.  This	makes it possible to deploy a fleet of
       workstations without specifying configuration details specific  to  the
       local environment.

       By default, ntpd	runs in	continuous mode	where each of possibly several
       external	 servers  is  polled  at  intervals determined by an intricate
       state machine.  The state machine measures the incidental roundtrip de-
       lay jitter and oscillator frequency wander and determines the best poll
       interval	using a	heuristic algorithm.  Ordinarily, and in most  operat-
       ing  environments,  the state machine will start	with 64s intervals and
       eventually increase in steps to 1024s.  A small amount of random	varia-
       tion is introduced in order to avoid bunching at	the servers.  In addi-
       tion, should a server become unreachable	for some time, the poll	inter-
       val is increased	in steps to 1024s in order to reduce network overhead.

       In some cases it	may not	be practical for ntpd to run continuously.   A
       common workaround has been to run the ntpdate(8)	program	from a cron(8)
       job  at	designated  times.   However,  this  program does not have the
       crafted signal processing, error	checking and mitigation	algorithms  of
       ntpd.  The -q option is intended	for this purpose.  Setting this	option
       will  cause  ntpd  to  exit  just after setting the clock for the first
       time.  The procedure for	initially setting the clock is the same	as  in
       continuous  mode;  most	applications will probably want	to specify the
       iburst keyword with the server configuration command.  With  this  key-
       word a volley of	messages are exchanged to groom	the data and the clock
       is  set	in about 10 s.	If nothing is heard after a couple of minutes,
       the daemon times	out and	exits.	After a	suitable period	 of  mourning,
       the ntpdate(8) program may be retired.

       When  kernel  support  is  available to discipline the clock frequency,
       which is	the case for stock Solaris, Tru64, Linux and FreeBSD, a	useful
       feature is available to discipline the clock frequency.	First, ntpd is
       run in continuous mode with selected servers in order  to  measure  and
       record  the intrinsic clock frequency offset in the frequency file.  It
       may take	some hours for the frequency and offset	to settle down.	  Then
       the  ntpd  is  stopped  and  run	in one-time mode as required.  At each
       startup,	the frequency is read from the file and	initializes the	kernel
       frequency.

   Poll	Interval Control
       This version of NTP includes an intricate state machine to  reduce  the
       network	load while maintaining a quality of synchronization consistent
       with the	observed jitter	and wander.  There are a  number  of  ways  to
       tailor the operation in order enhance accuracy by reducing the interval
       or  to  reduce network overhead by increasing it.  However, the user is
       advised to carefully consider the consequences of changing the poll ad-
       justment	range from the default minimum of 64 s to the default  maximum
       of 1,024	s.  The	default	minimum	can be changed with the	tinker minpoll
       command to a value not less than	16 s.  This value is used for all con-
       figured	associations,  unless  overridden by the minpoll option	on the
       configuration command.  Note that most device drivers will not  operate
       properly	 if the	poll interval is less than 64 s	and that the broadcast
       server and manycast client associations will also use the default,  un-
       less overridden.

       In  some	 cases involving dial up or toll services, it may be useful to
       increase	the minimum interval to	a few tens of minutes and maximum  in-
       terval  to  a  day  or so.  Under normal	operation conditions, once the
       clock discipline	loop has stabilized the	interval will be increased  in
       steps  from  the	minimum	to the maximum.	 However, this assumes the in-
       trinsic clock frequency error is	small enough for the  discipline  loop
       correct it.  The	capture	range of the loop is 500 PPM at	an interval of
       64s  decreasing by a factor of two for each doubling of interval.  At a
       minimum of 1,024	s, for example,	the capture range is only 31 PPM.   If
       the intrinsic error is greater than this, the drift file	ntp.drift will
       have  to	 be specially tailored to reduce the residual error below this
       limit.  Once this is done, the drift file is automatically updated once
       per hour	and is available to initialize	the  frequency	on  subsequent
       daemon restarts.

   The huff-n'-puff Filter
       In  scenarios  where a considerable amount of data are to be downloaded
       or uploaded over	telephone modems, timekeeping quality can be seriously
       degraded.  This occurs because the differential delays on the  two  di-
       rections	 of transmission can be	quite large.  In many cases the	appar-
       ent time	errors are so large as to exceed the step threshold and	a step
       correction can occur during and after the data transfer is in progress.

       The huff-n'-puff	filter is designed to correct the apparent time	offset
       in these	cases.	It depends on knowledge	of the propagation delay  when
       no  other  traffic  is present.	In common scenarios this occurs	during
       other than work hours.  The filter maintains a shift register that  re-
       members	the  minimum delay over	the most recent	interval measured usu-
       ally in hours.  Under conditions	of severe delay, the  filter  corrects
       the apparent offset using the sign of the offset	and the	difference be-
       tween the apparent delay	and minimum delay.  The	name of	the filter re-
       flects  the  negative  (huff) and positive (puff) correction, which de-
       pends on	the sign of the	offset.

       The filter is activated by the tinker command and huffpuff keyword,  as
       described in ntp.conf(5).

FILES
       /etc/ntp.conf   the default name	of the configuration file
       /etc/ntp.drift  the default name	of the drift file
       /etc/ntp.keys   the default name	of the key file

SEE ALSO
       ntp.conf(5), ntpdate(8),	ntpdc(8), ntpq(8)

       In  addition  to	the manual pages provided, comprehensive documentation
       is available on the world wide web at http://www.ntp.org/.  A  snapshot
       of    this    documentation    is   available   in   HTML   format   in
       /usr/share/doc/ntp.

       David L.	Mills, Network Time Protocol (Version 1), RFC1059.

       David L.	Mills, Network Time Protocol (Version 2), RFC1119.

       David L.	Mills, Network Time Protocol (Version 3), RFC1305.

BUGS
       The ntpd	utility	has gotten rather fat.	While not huge,	it has	gotten
       larger than might be desirable for an elevated-priority ntpd running on
       a workstation, particularly since many of the fancy features which con-
       sume  the  space	 were designed more with a busy	primary	server,	rather
       than a high stratum workstation in mind.

FreeBSD	10.0			 May 18, 2010			       NTPD(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ntpd&sektion=8&manpath=FreeBSD+10.0-RELEASE>

home | help