News

NTP Leap Second File

Scopo

Il daemon NTP ntpd può essere configurato per utilizzare un leap second file  (un semplice file di testo in un formato specifico) per:

  • determinare se un secondo è stato programmato per il futuro imminente

  • determinare l'offset tra UTC e TAI ed inviarlo al kernel del sistema operativo (se il kernel lo supporta)

  • passare l'offset TAI ai client NTP tramite il protocollo autokey

Annunci dei Leap Second da IERS

L’ Earth Orientation Center of the International Earth Rotation and reference systems Service (IERS), situato presso l'Observatoire de Paris, in Francia, determina quando un secondo deve essere inserito nella scala temporale UTC. Un grafico che mostra come si è evoluta la volta UTC nel corso degli anni può essere trovato qui: https://hpiers.obspm.fr/eop-pc/earthor/utc/leap2.gif

Un bollettino C viene pubblicato ogni sei mesi per stabilire se sia previsto un secondo per la fine di Giugno o Dicembre successivi. L'ultimo bollettino C pubblicato è disponibile sotto questo link: https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat

Informazioni Fornite dal Leap Second File

Accanto alla tabella delle date del secondo e dell'offset TAI il Leap Second File del secondo conteneva solamente un timestamp indicante l'ultima modifica del file, in una riga che inizia con un commento speciale #$. Successivamente il formato è stato esteso per includere anche la data di scadenza del file, contrassegnata dal commento speciale #@, e un hash SHA1, contrassegnato dal commento speciale #h. I timestamp nel Leap Second File vengono visualizzati nel formato NTP, ovvero i secondi dal 1900-01-01 alle 00:00:00.

Tabella offset TAI

La parte principale del Leap Second File contiene una tabella di date che indica quando la differenza tra le scale di tempo TAI e UTC cambia a causa di un secondo, ad esempio:

3550089600

3644697600

3692217600

35

36

37

# 1 lug 2012

# 1 lug 2015

# 1 gen 2017

La prima colonna è un timestamp in formato NTP (secondi dal 1900-01-01) che indica l'epoca in cui è entrato in vigore un nuovo offset TAI / UTC e la seconda colonna indica il nuovo valore di offset valido dopo l'epoca. Ogni volta che l'offset cambia, ciò è dovuto all'inserimento (o alla cancellazione, in teoria) di un secondo immediatamente prima dell'inizio della nuova epoca. La terza colonna inizia con un carattere di commento # e indica la data dell'inizio dell'epoca.

Data di scadenza

Le applicazioni possono utilizzare la data di scadenza per distinguere il caso in cui sia disponibile un file valido, indicando se sia stato pianificato un Leap Second in futuro, o meno, dal controllo della data di scadenza di quest’ultimo. La data di scadenza del Leap Second File dovrebbe essere di circa 11 mesi dopo la sua pubblicazione.

  • L'ultimo bollettino C è stato pubblicato all'inizio di Gennaio, indicando se è previsto un Leap Second per la fine di Giugno

  • Il prossimo bollettino C è stato pubblicato all'inizio di Luglio per sapere se è previsto un Leap Second per la fine di Dicembre

Quindi, dopo il bollettino C pubblicato a gennaio, sappiamo se un secondo salto avverrà a giugno o meno. Ma sappiamo anche che non ci saranno più cambiamenti da luglio a fine dicembre. Quindi un Leap Second File pubblicato a gennaio può essere valido fino a pochi giorni prima del 31 dicembre. Poiché il file successivo viene pubblicato dopo il bollettino C in luglio, ma la versione precedente del file è ancora valida fino a dicembre, gli utenti hanno più di 5 mesi di tempo per fornire ai propri server NTP un file Leap Second aggiornato. Più lungo è l'intervallo di sovrapposizione dei file, più lungo sarà l'intervallo durante il quale gli script possono verificare la presenza di un file aggiornato.

SHA1 Hash

L'hash garantisce solo l'integrità di un file. Non dimostra che il file provenga da una fonte certificata. Per una maggiore sicurezza il file deve essere firmato utilizzando un certificato di chiave pubblica che può essere controllato anche dopo che il file sia già stato scaricato. In realtà c'è solo una sicurezza parziale se il file viene scaricato tramite un link https e non c'è alcuna sicurezza se viene scaricato da un semplice sito FTP.

Convenzioni di denominazione

Il nome originale del Leap Second File è leap-seconds.nnnnnnn, dove nnnnnnn è l'ora NTP dell'ultima modifica. Di solito c'è un link simbolico leap-seconds.list che punta alla versione attuale del file. Il collegamento semplifica i download automatici del file dopo che è stato aggiornato.

Utilizzo con ntpd

I dettagli sull'utilizzo del Leap Second File sono cambiati leggermente nelle varie versioni di ntpd.

Configurazione di ntpd per utilizzare il Second Leap File

Per ntpd 4.2.6 e successivi è sufficiente specificare il percorso del file in ntp.conf:

leapfile "/path/to your/leap-file"

Le versioni di ntpd precedenti alla 4.2.6 valutano il Leap Second File solo se la funzione autokey è stata abilitata e configurata correttamente. Innanzitutto la directory crypto deve essere specificata in ntp.conf tramite la direttiva keysdir:

keysdir "/etc/ntp"

Quindi il Leap Second File deve essere posizionato nella directory specificata, e all'interno di quella directory deve essere creato un collegamento simbolico che punti a quel file: ntpkey_leap → leap-seconds.list

ntpkey_leap è il nome standard per il collegamento, ma può essere sovrascritto da un parametro di configurazione.

In entrambi i casi, la funzione autokey può essere utilizzata per inoltrare le informazioni dal Leap Second File del secondo ai client che sono stati configurati correttamente per l'uso della chiave automatica. I nodi NTP visualizzano un numero tai = valido nell'output del comando ntpq -c rv, se dispongono di un Leap Second File locale o ricevono la tabella del Leap Second da un server tramite autokey.

Versioni di ntpd che si comportano diversamente

Le versioni attuali di ntpd (4.2.8 e successive) controllano realmente la data di scadenza del Leap Second File e smettono di usarlo dopo che il file è scaduto. Inoltre, ntpd controlla il file almeno una volta al giorno e lo ricarica automaticamente se è stato aggiornato. Le versioni precedenti di ntpd incluso il 4.2.6 non ricaricano automaticamente un Leap Second File aggiornato, quindi il daemon NTP dovette essere riavviato dopo che il file sia stato aggiornato. Inoltre, queste versioni di ntpd non controllano la data di scadenza e accettano i file scaduto. Di conseguenza, anche gli annunci del Leap Second validi provenienti da altre fonti potrebbero essere scartati se il Leap Second File è stato configurato ma non aggiornato. Guarda anche: http://bugs.ntp.org/show_bug.cgi?id=861#c46

 

Siti che forniscono un Leap Second File saltato

Il Leap Second File da NIST

Informazioni generali sui servizi di timing internet del NIST sono disponibili all'indirizzo: https://www.nist.gov/pml/time-and-frequency-division/services/internet-time-service-its

Originariamente la versione NIST del Leap Second File è stata resa disponibile pubblicamente tramite accesso FTP a ciascuno dei server orari NIST. Tuttavia, in base ad una nota sulla loro pagina Web, l'accesso FTP ai time server è stato eliminato e tutti i file pubblici, incluso il Leap Second File, sono stati spostati ei seguenti siti FTP pubblici:

ftp://ftp.nist.gov/pub/time (elenco di directory)

ftp://ftp.nist.gov/pub/time/leap-seconds.list (Second Leap File)

e

ftp://ftp.boulder.nist.gov/pub/time (elenco di directory)

ftp://ftp.boulder.nist.gov/pub/time/leap-seconds.list (Second Leap File)

Questi server FTP forniscono anche il codice sorgente di un piccolo programma C che può essere utilizzato per calcolare o verificare l'hash SHA1 di un leap second file.

 

Il Leap Second File di IERS

All'inizio del 2014 è stato suggerito che l'IERS avrebbe dovuto fornire anche un Leap Second File.  A differenza del NIST, che è un’organizzazione statunitense, il servizio internazionale di rotazione della Terra è un'istituzione internazionale. In particolare, quest’ultimo punto è molto importante per l'accettazione internazionale del Leap Second File, soprattutto per i paesi che non sono in buoni rapporti con gli Stati Uniti. Ciò è stato sottolineato in una presentazione al Future Of UTC Conference 2013 a Charlottesville: http://futureofutc.org

Fortunatamente l'IERS ha effettivamente reso disponibile una propria versione del Leap Second File, tramite https:

https://hpiers.obspm.fr/iers/bul/bulc/ntp/ (elenco di directory)

https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list (file current leapseconds)

Il Leap Second File presso USNO

Anche l'US Naval Observatory (USNO) fornisce una propria versione del Leap Second File:

ftp://tycho.usno.navy.mil/pub/ntp/ (elenco di directory)

ftp://tycho.usno.navy.mil/pub/ntp/leap-seconds.list (file current leapseconds)

Il Leap Second File fornito da Olson / IANA TZ DB

Il database Olson TZ (TZ DB) ospitato presso IANA https://www.iana.org/time-zones e fornisce un set di file di descrizione del fuso orario, incluse le informazioni sull'ora legale per l'anno corrente e per gli anni passati. Oltre ai file di descrizione del fuso orario contiene anche un file leapseconds in un formato diverso rispetto al file originale del NIST. La versione TZ DB del file viene utilizzata per implementare correttamente i cosiddetti fusi orari coretti. Originariamente la versione TZ DB del leapSecond File non forniva nemmeno una data di scadenza. Questo è stato incluso solo dopo un suggerimento: https://www.ietf.org/mail-archive/web/tzdist/current/msg01135.html

Le versioni correnti dell'archivio di distribuzione di TZ DB contengono anche una copia della ista dei LeapSecond File dal formato NIST, nonché lo script leapseconds.awk che viene utilizzato per generare la versione TZ DB del file. La versione di sviluppo del database TZ è gestita su GitHub: https://github.com/eggert/tz

e alcuni dettagli sono disponibili sulla homepage di Paul Eggert all'indirizzo: https://web.cs.ucla.edu/~eggert/tz/

Il leap Second File Leap in IETF

La pagina web IETF su https://www.ietf.org/timezones/data/ fornisce i file estratti dall'ultimo archivio di distribuzione TZ DB, e anche un file in formato NIST. Poiché il file leapseconds nella distribuzione TZ DB viene aggiornato solo quando un nuovo archivio viene distribuito, dopo la pubblicazione di un nuovo file leapseconds, potrebbe essere necessario del tempo prima che una nuova versione del file diventi disponibile tramite la distribuzione TZ DB, e quindi tramite il IETF sito web, gli aggiornamenti di solito appaiono molto più tardi rispetto ai siti originali.

Il Leap Second File di Meinberg

Meinberg fornisce una copia del Leap Second File IERS a

https://www.meinberg.de/download/ntp/leap-seconds.list o

https://www.meinberg.de/download/ntp/leap_second

Sommario

Un sondaggio di potenziali fonti per un Leap Second ha dimostrato che potrebbe non essere facile ottenere una copia corrente del file: https://pairlist6.pair.net/pipermail/leapsecs/2015-December/006132.html

Nei server NIST il file è disponibile solo tramite FTP, ma non tramite una connessione sicura. Anche il server USNO non fornisce una connessione sicura. Il sito IETF fornisce una connessione sicura, ma il file viene aggiornato solo con un certo ritardo. Quindi la migliore opportunità è scaricare il file da IERS o la copia del file IERS dal sito di Meinberg.


Per approfondire o per abilitare le funzionalità descritte qui sopra non esitate a contattaci.

Categorie

I più letti