Sincronizzazione del tempo con NTP

Questa sezione descrive i metodi per mantenere l'ora esatta del proprio computer, utile per i server, ma non necessario (o desiderabile) per computer desktop.

NTP è un protocollo TCP/IP per sincronizzare l'ora attraverso la rete: un client richiede l'ora corrente a un server e usa questa per impostare il proprio orologio.

Dietro questa semplice descrizione c'è molta complessità. Ci sono vari livelli di server NTP, con il primo livello di server NTP collegati a orologi atomici (spesso tramite GPS) e il secondo e terzo livello di server che si dividono il carico delle attuali richieste. Anche il programma client è molto più complesso di quanto si possa pensare: deve considerare i ritardi di comunicazione e correggere l'ora in modo tale da non invalidare tutti gli altri processi che sono in esecuzione sul server. Fortunatamente tutta questa complessità è nascosta all'utente.

Ubuntu ha due metodi per impostare automaticamente l'orologio: ntpdate e ntpd.

ntpdate

Ubuntu dispone di ntpdate come programma predefinito e viene eseguito all'avvio per impostare l'ora in base al server NTP di Ubuntu. L'orologio di un server, comunque, può deviare considerevolmente tra un avvio e l'altro ed è quindi utile occasionalmente correggerne l'orario. Il metodo più semplice per fare questo è quello di eseguire ntpdate attraverso cron ogni giorno. Con un editor di testo, come utente root, creare il file /etc/cron.daily/ntpdate e aggiungervi:

ntpdate ntp.ubuntu.com

Il file /etc/cron.daily/ntpdate deve essere eseguibile.

sudo chmod 755 /etc/cron.daily/ntpdate

ntpd

ntpdate è uno strumento abbastanza semplice, può regolare l'ora una sola volta al giorno in un'unica modifica, mentree il demone di ntp (ntpd) è molto più raffinato. Calcola lo spostamento dell'orologio del proprio sistema e lo regola continuamente, così non ci sono mai grandi modifiche che possono portare a file di registro inconsistenti. Il costo di questo è un leggero uso di processore e memoria, ma trascurabili per un server moderno.

Per usare ntpd:

sudo apt-get install ntp

Modificare i server NTP

In entrambi i casi, il sistema userà il server NTP di Ubuntu ntp.ubuntu.com. Questo è sufficiente, ma potrebbe esser necessario utilizzare più server per aumentare l'accuratezza e la capacità di recupero o per usare un server nel proprio fuso orario. Per fare questo con ntpdate, modificare il contenuto del file /etc/cron.daily/ntpdate in:

ntpdate ntp.ubuntu.com pool.ntp.org 

Per ntpd, modificare il file /etc/ntp.conf per aggiungere altri server:

server ntp.ubuntu.com
server pool.ntp.org

Nell'esempio precedente, è stato inserito pool.ntp.org, un'ottima soluzione che usa il metodo round-robin DNS per scegliere un server da un gruppo di server, dividendone il carico. Per migliorare ancora ci sono gruppi per differenti regioni. Per esempio, per l'Italia è possibile usare it.pool.ntp.org al posto di pool.ntp.org. Per maggiori informazioni, consultare il sito web http://www.pool.ntp.org/.

È possibile anche cercare con Google dei server NTP all'interno del proprio fuso orario e aggiungerli nella configurazione. Per verificare se un server funziona, basta digitare sudo ntpdate ntp.nome.server e vedere cosa succede.