Jan,
Jan Kasprzak wrote:
Hello,
thanks for the explanation. Few questions, though:
Martin Burnicki wrote:
: [email protected] wrote:
: > Sorry for maybe asking the obvious but
: >
: > - How to check if ntp is configured with a leap second file? Must it be
: > listed in ntp.conf or is there some default set?
:
: If you run "ntpq -c rv" and the output shows a "tai" value then ntpd has
: read a leap second file. For example:
:
: pc-martin:/etc # ntpq -c rv
: associd=0 status=0414 leap_none, sync_uhf_radio, 1 event, freq_mode,
: version="ntpd [email protected] Wed Apr 8 08:20:36 UTC 2015 (3)",
: processor="x86_64", system="Linux/3.16.7-7-desktop", leap=00, stratum=1,
: precision=-23, rootdelay=0.000, rootdisp=7937.673, refid=shm0,
: reftime=d8d9160e.2c2467ac Wed, Apr 15 2015 18:53:34.172,
: clock=d8d91616.da49a196 Wed, Apr 15 2015 18:53:42.852, peer=55606, tc=4,
: mintc=3, offset=-0.053, frequency=0.000, sys_jitter=0.000000,
: clk_jitter=0.019, clk_wander=0.000, tai=35, leapsec=201507010000,
: expire=201512280000
What is the best way to get the leap seconds file? The first
URL in Google search results is apparently redirecting to itself:
I think the best/easiest way is to use wget or curl.
Potential problems I've encountered are:
1.) Temporarily not reachable: retry later or use a different server
2.) The name also resolves to IPv6 addresses, but your local network is
IPv4 only: use "wget -4"
3.) Access is https only but wget can't validate the certificate:
Configure wget so that it can validate the certificate, or use "wget
--no-check-certificate", or use your favorite browser to download the
file manually.
For those who are going to complain about using --no-check-certificate:
This is as safe as downloading using a http or ftp link. ;-)
http://www.ietf.org/timezones/data/leap-seconds.list
Indeed this URL doesn't seem to work right now, but used to work some
time ago.
USNO provides a leap second file:
ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list
Unfortunately there are sometimes also problems with the NIST link:
ftp://time.nist.gov/pub/
However, a copy of the NIST file is available via the Meinberg web site
via https:
https://www.meinberg.de/download/ntp/leap-seconds.list
Recently the IERS who publishes Bulletin C also started to provide a
leap second file, which is also available via https:
https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list
: > - Without a leap second file ntp will simply decide based on the
: > majority of upstream ntp servers it it will pass the information or will
: > it pass the information from the "*" upstream?
:
: ntpd 4.2.6 and newer requires a majority of configured upstream servers
: to accept and send a leap second warning, *or* a refclock which can
: provide it, *or* a current leap second file which supersedes both other
: types of source.
Apparently the majority of my upstream servers do not send
the leap second info - at least my "ntpq -c rv" does not show the "tai" value:
>
associd=0 status=061b leap_none, sync_ntp, 1 event, leap_event,
version="ntpd [email protected] Wed Dec 24 11:18:58 UTC 2014 (1)",
processor="x86_64", system="Linux/xxx-gentoo", leap=00, stratum=2,
precision=-23, rootdelay=4.481, rootdisp=32.150, refid=147.231.2.6,
reftime=d8d9d764.d4be8e2e Thu, Apr 16 2015 8:38:28.831,
clock=d8d9daa4.cc61c706 Thu, Apr 16 2015 8:52:20.798, peer=36704,
tc=10, mintc=3, offset=0.185567, frequency=17.438, sys_jitter=0.130071,
clk_jitter=0.164, clk_wander=0.013
Usually the tai value is only set if the local ntpd has read a local
copy of the leap second file.
Eventually this is also the case if the leap second table has been
passed down from an upstream server via the autokey protocol. However,
this works *only* if both the server and the client are using autokey
and have been configured properly. I have to admit that I've never tried
autokey with regard to the passing the leap second table on to clients.
So your ntpd doesn't seem to have a leap second file, or hasn't been
configured correctly to use the file, if it is available. See also the
syslog messages generated when ntpd starts up.
Using a leap second file is important for NTP stratum 1 servers using
refclocks. As reported here on the list, there are 3rd party GPS
receivers out there which provide faulty announcements of a leap second,
there are serial protocols like NMEA which AFAIK don't include a leap
second warning flag, and thus are unable to pass a leap second warning
to ntpd, and there are time sources which only provide a leap second
announcement very late (e.g. 1 hour for DCF-77, a few seconds for IRIG
time codes).
In these cases using a current leap second file can help to get it
working. Please note, though, than in case of faulty GPS receivers,
there may be an additional problem if the GPS receiver has already
*applied* the leap second internally, and thus already outputs a time
which is off by 1 s.
How can I tell which upstream servers announce the upcoming
leap second?
NTP servers provide its clients with a leap second announcement flag in
the NTP packet sent to the clients. However, this flag is only set about
24 hours before the leap second occurs. This means you don't see this
right now, but you should see it on June 30 UTC.
While an NTP node has accepted a leap second announcement it reports
this in the "leap" bits displayed by "ntpq -c rv".
On a test system here, if I run a leap second simulation, this looks like:
~ # date -u; ntpq -c rv
Tue Jun 30 23:47:18 UTC 2015
associd=0 status=4419 leap_add_sec, sync_uhf_radio, 1 event, leap_armed,
version="ntpd [email protected] Mon Mar 30 09:33:55 UTC 2015 (1)",
processor="i586", system="Linux/3.7.1", leap=01, stratum=1,
precision=-18, rootdelay=0.000, rootdisp=474.732, refid=MRS,
reftime=d93da906.00d96445 Tue, Jun 30 2015 23:47:18.003,
clock=d93da906.1e08fc00 Tue, Jun 30 2015 23:47:18.117, peer=52969, tc=3,
mintc=3, offset=34.848942, frequency=160.724, sys_jitter=2.118422,
clk_jitter=10.744, clk_wander=0.000, tai=35, leapsec=201507010000,
expire=201512280000
See the date, 2015-06-30, and "leap=01" in the output.
: If your server has a leap second file and inserts the leap second, but
: the upstream servers you have configured don't insert the leap second
: then your server will observe a 1 s offset after the leap second and,
: and will re-synchronize to the upstream server(s) a few minutes later,
: i.e. step the time to be wrong like the servers.
So it is better to not have the leap seconds file configured,
when my upstream servers do not announce the tai offset?
You don't need it in this case, but you can use it.
A leap second file contains a table of *all* leap seconds, and the TAI
offset after each leap second. So if ntpd can use/read the leap second
file it can tell the true current TAI offset. However, the TAI offset is
not *required* for proper operation. Ntpd just gets the last recent leap
date from the file and starts to send a leap second warning to its
clients (and also handles the leap second for its own system time) when
the leap date is approaching.
The NTP network protocol only provides an announcement flag that a leap
second is to be applied at the end of the UTC day. If the server sends
the announcement correctly then this is sufficient to let the clients
insert the leap second correctly. Of course in this case the TAI offset
may not be correct since not all table entries are available, but that
doesn't matter.
I just mentioned the tai variable as a hint how you can easily check if
the running ntpd is using a leap second file, or not.
Martin
--
Martin Burnicki
Senior Software Engineer
MEINBERG Funkuhren GmbH & Co. KG
Email: [email protected]
Phone: +49 (0)5281 9309-14
Fax: +49 (0)5281 9309-30
Lange Wand 9, 31812 Bad Pyrmont, Germany
Amtsgericht Hannover 17HRA 100322
Geschäftsführer/Managing Directors: Günter Meinberg, Werner Meinberg,
Andre Hartmann, Heiko Gerstung
Web: http://www.meinberg.de
_______________________________________________
pool mailing list
[email protected]
http://lists.ntp.org/listinfo/pool