NTP (Network Time Protocol)

Définition

NTP (Network Time Protocol, RFC 5905) est un protocole réseau pour synchroniser les horloges des systèmes informatiques sur des réseaux de données commutés par paquets. Il maintient une précision temporelle à quelques dizaines de millisecondes sur Internet public et une précision sous-millisecondes sur un réseau local.

NTP est critique pour les systèmes distribués, la journalisation, les certificats de sécurité et la cohérence des bases de données.

Hiérarchie NTP (Stratum)

Stratum 0 : Horloge de référence (horloge atomique, GPS, radio)
    │
    ▼
Stratum 1 : Connecté directement au Stratum 0 (serveur de temps)
    │
    ▼
Stratum 2 : Synchronisé depuis Stratum 1
    │
    ▼
Stratum 3 : Synchronisé depuis Stratum 2
    │
    ▼
...
Stratum 15 : Dernier stratum valide
    │
    ▼
Stratum 16 : Non synchronisé (erreur)

NTP vs SNTP

Fonctionnalité NTP SNTP (Simple NTP)
Complexité Algorithme complet, filtrage Simplifié, échantillon unique
Précision Millisecondes Secondes (acceptable pour la plupart)
Cas d’usage Serveurs de temps, systèmes critiques IoT, embarqué, clients simples
Utilisation ressources Plus élevée Plus faible
Norme RFC 5905 RFC 4330

NTP dans l’infrastructure

Composant Rôle NTP
Servers Doivent avoir une temps synchronisé pour les logs, l’authentification, les certificats
Databases Cohérence temporelle pour la réplication, les transactions
Kerberos Authentification basée sur le temps (limite de décalage de 5 minutes)
TLS/SSL La validité des certificats dépend de l’heure correcte
Logging Corrélation des événements sur des systèmes distribués
Kubernetes kubelet nécessite la synchronisation NTP
DNS La validation DNSSEC nécessite une heure précise

Configuration NTP (Linux)

# Vérifier le statut NTP
timedatectl status
chronyc tracking

# Serveurs NTP à utiliser
# Public pool : pool.ntp.org
# Google : time.google.com
# AWS : 169.254.169.123 (service metadata)
# Azure : 168.63.129.16 (service metadata)

# systemd-timesyncd (simple)
# /etc/systemd/timesyncd.conf
# [Time]
# NTP=time.google.com pool.ntp.org
# FallbackNTP=0.pool.ntp.org 1.pool.ntp.org

# chrony (production-grade)
# /etc/chrony.conf
# server time.google.com iburst
# server pool.ntp.org iburst
# driftfile /var/lib/chrony/drift

Sécurité NTP

  • Authentification NTP : Authentification par clé (rarement utilisée)
  • Attaques d’amplification NTP : Serveurs NTP utilisés dans les DDoS (commande monlist)
  • Mitigation : Désactiver monlist, restreindre l’accès NTP, utiliser SNTP pour les clients
  • Firewall : Autoriser le port UDP 123 (sortant uniquement pour les clients)

Alternatives NTP

Protocole Précision Cas d’usage
PTP (Precision Time Protocol) Microsecondes Trading financier, télécoms
GPS time Nanosecondes Oscillateurs disciplinés par GPS
NMEA Millisecondes Données récepteur GPS
IEEE 1588 (PTP) Sous-microseconde Automatisation industrielle

Termes liés

  • Tls — Kerberos nécessite des horloges synchronisées NTP
  • Dns — NTP garantit des horodatages de monitoring cohérents
  • Backup — NTP garantit des horodatages de sauvegarde cohérents

Références