🗓️ Historique
Infrastructure de synchronisation horaire lancée en juin 2025 pour fournir une référence temporelle précise et souveraine, sans dépendre des serveurs NTP externes.
🤔 Qu'est-ce qu'un serveur NTP ?
⏰ Le problème du temps
Imaginez que vous ayez plusieurs horloges dans votre maison. Au fil du temps, elles se désynchronisent et affichent des heures différentes. C'est exactement ce qui se passe avec les ordinateurs, smartphones et autres appareils connectés à Internet.
🎯 La solution : NTP (Network Time Protocol)
NTP est un protocole qui permet à tous les appareils de se synchroniser sur la même heure précise, comme si tous les ordinateurs du monde regardaient la même horloge atomique.
📊 Les "strata" (niveaux de précision)
- Stratum 0 : Horloge de référence (GPS, atomique)
- Stratum 1 : Serveurs directement connectés à l'horloge de référence (dans mon cas : 2 serveurs avec GPS)
- Stratum 2 : Serveurs qui se synchronisent sur les Stratum 1 (dans mon cas : 1 serveur relais)
- Stratum 3+ : Le reste du monde (mes serveurs publics reçoivent 2200 requêtes/seconde, soit ~6 milliards par semaine via pool.ntp.org)
- Sécurité : Les certificats SSL ont besoin d'une heure précise
- Logs : Pour tracer les événements dans le bon ordre
- Synchronisation : Entre différents services et bases de données
- Précision : Pour les applications scientifiques et financières
- Impact global : Votre box, routeur, switch ou autres équipements se synchronisent peut-être déjà sur mes serveurs via pool.ntp.org !
- Précision : Atteindre une dérive de moins d'1ms (réussi 300 nanosecondes soit 0.3 millisecondes)
- Fiabilité : Assurer un service 24/7 sans interruption
- Sécurité : Protéger les serveurs tout en les rendant accessibles
- Intégration : Participer au pool NTP global
- Contribuer au pool NTP global
- IP : 109.190.177.203
- Monitoring : NTP Pool
- IP : 109.190.177.205
- Monitoring : NTP Pool
- IP : 109.190.177.200
- Monitoring : NTP Pool
- Matériel : Raspberry Pi 4 avec GPS NEO-8M + PPS
- RTC : DS3231 avec TCXO intégré (Temperature-Compensated Crystal Oscillator)
- Système : Raspberry Pi OS + chronyd
- Réseau : VLAN isolé, accès Internet interdit
- Exposition : UDP/123 + HTTPS/443 (monitoring)
- Hébergement : VM Debian 12 sous Proxmox VE
- Service : chronyd synchronisé aux Stratum 1
- Usage : Serveur relais public
- Exposition : UDP/123 + HTTPS/443 (monitoring)
- Aucun accès Internet depuis les serveurs NTP
- Réception uniquement : UDP/123 (NTP) + HTTPS/443 (monitoring)
- Cloisonnement réseau par VLAN via pfsense
- Filtrage pare-feu strict
- Interface de supervision hébergée côté proxy
- Monitoring en temps réel via HTTPS
- Intégration avec l'infrastructure globale
- Logs et alertes centralisés
- Pool NTP France : pool.ntp.org/zone/fr
- Documentation NTP : ntp.org
- Monitoring global : ntppool.org
- Synchronisation précise : < quelques nano secondes dérive
- Fiabilité : Redondance avec 3 serveurs
- Gratuité : Service public sans limitation
- Contribution : Participation au pool NTP global
🌍 Pourquoi c'est important ?
🚀 Ma démarche dans le fait d'en crée plusieurs chez moi sur mon infrastructure
🎯 L'objectif initial
J'ai voulu construire une infrastructure de temps qui ne dépende pas des services externes. L'idée était de créer quelque chose d'utile pour la communauté tout en apprenant les technologies de synchronisation temporelle.
🔬 L'approche expérimentale
"La création d'un sevreur ntp" m'a permis d'adopter une approche pas à pas :
1. Recherche et documentation : Étude des protocoles NTP et des meilleures pratiques
2. Prototypage : Tests avec des Raspberry Pi et modules GPS
3. Optimisation : Amélioration de la précision avec des oscillateurs TCXO
4. Déploiement : Mise en production progressive avec monitoring
🛠️ Les défis techniques
🤝 Contribution à la communauté
En créant cette infrastructure, j'ai pu :
🌐 Serveurs NTP sur NTP Pool
time1.freewebworld.fr (Stratum 1)
time2.freewebworld.fr (Stratum 1-2)
time.freewebworld.fr (Stratum 2)
🔄 Comment fonctionne NTP Pool ?
NTP Pool est un système intelligent qui distribue automatiquement les requêtes NTP entre tous les serveurs participants. Quand quelqu'un configure son appareil pour utiliser `pool.ntp.org`, le système :
1. Sélectionne aléatoirement un serveur de la zone géographique appropriée
2. Répartit la charge entre tous les serveurs disponibles
3. Assure la redondance : si un serveur tombe en panne, les autres prennent le relais
4. Mesure la qualité de chaque serveur (score 0-20)