🏛️ ArchiZeroTrust CCIE Device Management NTP
🕐 Device Management · NTP

NTP — Network Time Protocol

Synchronisation de l'horloge, hiérarchie stratum, authentification, timestamps de logs et pièges classiques CCIE/ENARSI.

NTP (RFC 5905) : Protocole de synchronisation d'horloge. Fondamental pour la corrélation des logs, le débogage distribué, l'authentification par certificat, et les protocoles sensibles au temps (Kerberos, BGP avec timestamps, etc.). UDP port 123.
Hiérarchie Stratum
Stratum 0
Horloge atomique / GPS
↓ (signal) Stratum 1
Serveur NTP primaire
↓ NTP Stratum 2
Serveur NTP secondaire
↓ NTP Stratum 3–15
Clients/serveurs cascadés
Stratum 16 = horloge non synchronisée (unsynchronized) — équivalent "invalide"
ntp master <stratum> = le routeur devient lui-même source NTP (stratum configurable)
Maximum 15 niveaux de cascade avant Stratum 16
Modes NTP sur IOS
ModeCommandeRôle
Client ntp server <ip> Se synchronise sur un serveur NTP. Pas de service aux autres.
Serveur ntp master <stratum> Annonce sa propre horloge comme source. Sert les clients NTP.
Peer ntp peer <ip> Synchronisation bidirectionnelle. Le meilleur des deux sert l'autre.
Broadcast client ntp broadcast client Reçoit des broadcasts NTP sur l'interface (passif).
Broadcast server ntp broadcast Envoie des broadcasts NTP sur l'interface (actif).
Deux horloges sur IOS

⏱️ Software Clock

Horloge logicielle maintenue par IOS. Consultée par show clock. Synchronisée par NTP. Perdue lors d'un reboot si pas de hardware clock.

show clock
*15:42:00.506 CET Fri Jun 28 2019
! * = non authoritative (pas sync NTP)
! Sans * = synchronisée

🔧 Hardware Clock (Calendar)

Horloge matérielle (RTC), persiste après reboot. Présente sur la plupart des plateformes. NTP ne la met pas à jour automatiquement — il faut le configurer explicitement.

show calendar
! Synchroniser le calendar sur la software clock
ntp update-calendar
! ou manuellement :
clock update-calendar
L'idée centrale : UTC est l'heure de référence mondiale — elle ne change jamais, pas d'heure d'été, pas de décalage. Toutes les autres timezones sont définies comme UTC + ou − un offset. Sur IOS, l'horloge interne tourne toujours en UTC. Ce qu'on voit dépend de la configuration clock timezone.
UTC — la référence absolue

🌍 UTC — Coordinated Universal Time

UTC est l'étalon mondial. Il ne dépend d'aucun pays, ne change pas avec les saisons (pas d'heure d'été). Tous les autres fuseaux horaires sont exprimés par rapport à UTC.

Quand il est 12h00 UTC, il est simultanément :

TimezoneNomHeurePériode
UTC+0UTC / GMT12:00toujours
UTC+1CET — Central European Time13:00hiver (oct → mars)
UTC+2CEST — Central European Summer Time14:00été (mars → oct)
CET vs CEST — l'heure d'été

❄️ CET — Heure d'hiver

Central European Time
UTC +1 heure

Période : dernier dimanche d'octobre → dernier dimanche de mars

France, Belgique, Suisse, Espagne, Italie, Allemagne… en hiver.

! IOS :
clock timezone CET 1 0
! UTC 12:00 → show clock = 13:00 CET

☀️ CEST — Heure d'été

Central European Summer Time
UTC +2 heures

Période : dernier dimanche de mars → dernier dimanche d'octobre

Même pays qu'en CET mais en été — le "changement d'heure".

! IOS — gestion automatique :
clock summer-time CEST recurring
! UTC 12:00 → show clock = 14:00 CEST
Ce que fait IOS concrètement
HORLOGE INTERNE IOS (toujours UTC)
NTP sync
UTC 14:41:57
Horloge interne
UTC 14:41:57
CE QU'ON VOIT (dépend de la config)
Sans clock timezone show clock
14:41:57 UTC
clock timezone CET 1 (hiver) show clock
15:41:57 CET
CET + summer-time (été) show clock
16:41:57 CEST
LES LOGS (dépend de service timestamps)
service timestamps log datetime log: 14:41:57
(UTC, pas de timezone)
... localtime (hiver) log: 15:41:57 CET
(heure locale)
... localtime (été) log: 16:41:57 CEST
(heure locale)
La question de l'exam — décomposée

🎯 Pourquoi le décalage d'1 heure dans la question ?

! Ce qu'on voit dans la question :
Log timestamp  : 14:41:57   ← UTC (service timestamps log datetime sans localtime)
show clock     : 15:42:00 CET ← heure locale (clock timezone CET 1 configuré)

! Calcul :
! CET = UTC+1  →  14:41 UTC + 1h = 15:41 CET ✓
! Décalage = exactement 1h = offset CET
! Ce n'est PAS un problème de sync NTP
! C'est juste que les logs sont en UTC et show clock en heure locale

! Solution : aligner les logs sur l'heure locale
service timestamps log datetime localtime
! → logs afficheront maintenant 15:41:57 CET = même que show clock
Tableau récapitulatif — France / Europe Centrale
SituationOffset UTCExemple UTC 12:00IOS
Hiver (nov–mars) UTC+1 → CET 13:00 CET clock timezone CET 1 0
Été (mars–oct) UTC+2 → CEST 14:00 CEST clock summer-time CEST recurring
Logs IOS défaut UTC+0 12:00 (sans label) service timestamps log datetime
Logs en heure locale +1 ou +2 selon saison 13:00 CET ou 14:00 CEST service timestamps log datetime localtime
⚠️ Piège en été : Si tu configures clock timezone CET 1 sans clock summer-time CEST recurring, en été le routeur affichera 13:00 CET au lieu de 14:00 CEST — décalage d'1h avec ta montre. La commande clock summer-time CEST recurring gère le changement d'heure automatiquement aux bonnes dates.
Config IOS complète pour la France

✅ Configuration recommandée

! Fuseau horaire France / Europe Centrale
clock timezone CET 1 0
clock summer-time CEST recurring

! Résultat :
! En hiver : show clock → 13:00 CET  (UTC+1)
! En été   : show clock → 14:00 CEST (UTC+2)
! IOS gère le changement d'heure automatiquement

! Aligner les logs sur cette heure locale
service timestamps log datetime msec localtime show-timezone
! → logs en hiver : Jun 28 13:00:00.123 CET
! → logs en été   : Jun 28 14:00:00.123 CEST
Client NTP — synchronisation sur serveur externe

⚙️ Configuration client de base

! Définir le fuseau horaire (AVANT de configurer NTP)
clock timezone CET 1 0       ! UTC+1, 0 minute offset
clock summer-time CEST recurring ! heure d'été automatique

! Serveur NTP (plusieurs possibles, prefer = préféré)
ntp server 192.168.1.1
ntp server 10.0.0.1 prefer
ntp server pool.ntp.org    ! serveur public

! Source des paquets NTP (recommandé = loopback)
ntp source Loopback0
Serveur NTP interne — ntp master

⚙️ Routeur comme source NTP locale

! Le routeur devient sa propre source NTP (stratum configurable)
! Utile quand pas d'accès internet mais besoin de sync interne
ntp master 3
! stratum 3 → les clients seront stratum 4
! Défaut si omis : stratum 8

! Combinaison typique : sync sur internet ET serveur interne de fallback
ntp server 216.239.35.0   ! Google NTP
ntp master 5              ! fallback si internet indisponible
Peer NTP — synchronisation entre pairs

⚙️ Peer bidirectionnel

! Sur R1 :
ntp peer 192.168.1.2

! Sur R2 :
ntp peer 192.168.1.1

! Le routeur avec la meilleure horloge (stratum le plus bas)
! synchronise l'autre automatiquement
! Utilisé pour la redondance entre deux routeurs de distribution
Restrict — contrôle d'accès NTP

⚙️ ntp access-group

! Limiter qui peut interroger ce routeur en NTP
access-list 10 permit 192.168.0.0 0.0.255.255

ntp access-group serve-only 10
! Options :
!   peer       → autoriser sync bidirectionnelle
!   serve      → autoriser les requêtes NTP (client peut se sync sur nous)
!   serve-only → idem serve, mais ce routeur ne se sync pas sur eux
!   query-only → autoriser les requêtes d'état seulement
🎯 Question d'exam — type ENARSI/CCIE
* Jun 28 14:41:57: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Down User reset
* Jun 28 14:41:57: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.2.2 IPv4 Unicast
  topology base removed from session  User reset
* Jun 28 14:41:57: %BGP-5-ADJCHANGE: neighbor 192.168.2.2 Up
R1#show clock
*15:42:00.506 CET Fri Jun 28 2019

The clock on the device does not correspond to the timestamp of the log entries. Which action ensures consistency between the two times?

A. Configure the service timestamps log uptime command
B. Configure the logging clock synchronize command
C. Configure the service timestamps log datetime localtime command ✓
D. Make sure that the clock on the device is synchronized with an NTP server
Réponse C — Explication : Les logs affichent 14:41:57 (UTC par défaut), show clock affiche 15:42:00 CET (heure locale = UTC+1). Décalage exact = 1 heure = offset CET. La commande service timestamps log datetime localtime aligne les timestamps de logs sur l'heure locale, correspondant à ce que show clock affiche. D serait utile pour l'exactitude mais ne résout pas le décalage UTC/local.
service timestamps — toutes les options

⚙️ Syntaxe complète

! Format de base — heure depuis le dernier reboot
service timestamps log uptime
! Exemple : *0d00h05m32s: %SYS-5-CONFIG_I: ...

! Format datetime — heure système (UTC par défaut)
service timestamps log datetime
! Exemple : *Jun 28 14:41:57: %BGP-5-...

! ✅ Heure locale (même timezone que show clock)
service timestamps log datetime localtime
! Exemple : *Jun 28 15:41:57 CET: %BGP-5-...

! Avec millisecondes
service timestamps log datetime msec
! Exemple : *Jun 28 14:41:57.342: %BGP-5-...

! Avec millisecondes + heure locale + afficher timezone
service timestamps log datetime msec localtime show-timezone
! Exemple : Jun 28 15:41:57.342 CET: %BGP-5-...
! (recommandé en production)

! Idem pour les debug
service timestamps debug datetime msec localtime show-timezone
Comparaison des options
CommandeAffichageQuand utiliser
service timestamps log uptime0d05h12m33sDiagnostic post-reboot, pas de corrélation avec horloge murale
service timestamps log datetimeJun 28 14:41:57 (UTC)Corrélation multi-devices si tous en UTC
service timestamps log datetime localtimeJun 28 15:41:57 (local)RECOMMANDÉ Cohérence avec show clock, heure locale
... msec localtime show-timezoneJun 28 15:41:57.342 CETPRODUCTION Maximum de détail, timezone visible
logging synchronous — ne pas confondre

⚠️ logging synchronous ≠ synchronisation d'horloge

Cette commande (sous line vty/console) empêche les messages de log d'interrompre une ligne de commande en cours de saisie. Elle n'a aucun rapport avec la synchronisation NTP ou les timestamps.

! Sur la ligne console ou VTY
line console 0
  logging synchronous
! Effet : les logs s'affichent après la fin de la commande tapée
! Pas d'impact sur les timestamps
Configuration recommandée production

✅ Bloc NTP + timestamps complet

! 1. Fuseau horaire
clock timezone CET 1 0
clock summer-time CEST recurring

! 2. Serveurs NTP
ntp server 10.0.0.1 prefer
ntp server 10.0.0.2
ntp source Loopback0
ntp update-calendar       ! sync hardware clock

! 3. Timestamps détaillés
service timestamps log datetime msec localtime show-timezone
service timestamps debug datetime msec localtime show-timezone

! 4. Logging sur serveur syslog
logging host 10.0.0.10
logging trap informational   ! niveau 6
NTP Authentication : Mécanisme MD5 permettant à un client NTP de vérifier que le serveur est bien celui attendu. Évite les attaques d'usurpation (NTP spoofing). Requis en environnement sécurisé et souvent au CCIE.
Principe
Serveur NTP
key 1 = "SECRET"
trusted-key 1
→ paquet NTP + MD5(key1) → Client NTP
key 1 = "SECRET"
trusted-key 1
ntp server x.x.x.x key 1
Le client vérifie que le MD5 du paquet correspond à la clé configurée.
Si la clé ne correspond pas → paquet ignoré, pas de synchronisation.
Configuration

⚙️ Sur le serveur NTP

! 1. Activer l'authentification NTP
ntp authenticate

! 2. Définir la clé (id clé + algo + valeur)
ntp authentication-key 1 md5 MonSecret2024

! 3. Déclarer cette clé comme "de confiance"
ntp trusted-key 1

! 4. Se déclarer maître (si ce routeur est la source)
ntp master 3

⚙️ Sur le client NTP

! Mêmes étapes 1-3, puis associer la clé au serveur
ntp authenticate
ntp authentication-key 1 md5 MonSecret2024
ntp trusted-key 1

! Associer la clé à ce serveur spécifique
ntp server 10.0.0.1 key 1

! Vérification
show ntp associations detail
! Chercher : authenticated
! Si absent : clé manquante ou mismatch
⚠️ Piège fréquent : Oublier ntp trusted-key côté client. Sans cette commande, même si la clé est définie, le client n'accepte pas les paquets authentifiés. Les trois commandes sont obligatoires des deux côtés : ntp authenticate + ntp authentication-key + ntp trusted-key.
Plusieurs clés — rotation

⚙️ Multiple trusted keys

! Plusieurs clés permettent une rotation sans interruption
ntp authentication-key 1 md5 AncienneClé
ntp authentication-key 2 md5 NouvelleClé
ntp trusted-key 1
ntp trusted-key 2

! Le serveur peut signer avec key 2, les clients acceptent
! key 1 ET key 2 pendant la transition
NTP dans un VRF de management : En architecture OOB (Out-of-Band), le trafic de management transite par une VRF dédiée. NTP, SSH, SNMP doivent être configurés pour utiliser cette VRF — sinon ils cherchent le serveur dans le VRF global et ne trouvent pas la route.
Configuration NTP VRF-aware

⚙️ ntp server vrf

! Créer le VRF de management
vrf definition MGMT
 address-family ipv4
 exit-address-family

! Associer l'interface de management au VRF
interface GigabitEthernet0
 vrf forwarding MGMT
 ip address 192.168.100.1 255.255.255.0

! NTP server dans le VRF MGMT
ntp server vrf MGMT 192.168.100.254

! Source NTP dans le VRF
ntp source GigabitEthernet0

! Avec authentification dans un VRF
ntp authenticate
ntp authentication-key 1 md5 MonSecret
ntp trusted-key 1
ntp server vrf MGMT 192.168.100.254 key 1
Vérification dans un VRF

🔍 Commandes VRF-aware

show ntp associations vrf MGMT
show ntp status vrf MGMT
ping vrf MGMT 192.168.100.254
! Toujours pinger le serveur NTP avant de debugger
💡 Tip : Sur IOS-XE, la commande ntp server vrf MGMT est supportée nativement. Sur certains IOS plus anciens, il faut utiliser ip vrf forwarding sur l'interface source et ntp source <if>. Vérifier la version IOS si la commande n'est pas reconnue.
Commandes essentielles

🔍 show ntp status

show ntp status

Clock is synchronized, stratum 4, reference is 10.0.0.1
nominal freq is 250.0000 Hz, actual freq is 249.9990 Hz, precision is 2**10
ntp uptime is 120000 (1/100 of seconds), resolution is 4004
reference time is E1234567.89ABCDEF (15:42:00.506 CET Fri Jun 28 2019)
clock offset is 0.5442 msec, root delay is 1.27 msec
root dispersion is 7813.50 msec, peer dispersion is 0.02 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000004 s/s
system poll interval is 64, last update was 42 sec ago.

! "synchronized" → horloge valide ✓
! "unsynchronized" → stratum 16, problème de sync
! stratum = niveau dans la hiérarchie
! reference = IP du serveur utilisé
! clock offset = décalage en ms par rapport au serveur

🔍 show ntp associations

show ntp associations

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.0.1       .GPS.            1     42     64   377   1.270   0.544   0.021
 ~10.0.0.2       10.0.0.1         2     18     64   377   2.100  -0.120   0.018

! Symboles devant l'adresse :
! *  = serveur actuellement utilisé (synchronized)
! +  = bon candidat (sélectionnable)
! -  = éliminé par l'algorithme de sélection
! ~  = configuré comme serveur
! =  = peer
!
! reach = 377 (octal) → 8 requêtes consécutives reçues (parfait)
! reach = 0   → aucune réponse reçue

🔍 show ntp associations detail

show ntp associations detail

10.0.0.1 configured, authenticated, our_master, sane, valid, stratum 1
ref ID .GPS., time E1234567.89ABCDEF (15:41:50.535 CET Fri Jun 28 2019)
our mode client, peer mode server, our poll intvl 64, peer poll intvl 64
root delay 0.00 msec, root disp 0.00, reach 377, sync dist 1.750
delay 1.27 msec, offset 0.5442 msec, dispersion 0.02 msec, jitter 0.01 msec
precision 2**-19, version 4
assoc ID 1, assoc name 10.0.0.1
assoc in packets 42, assoc out packets 42, assoc error packets 0
org time 00000000.00000000 (00:00:00.000 UTC Thu Feb  7 2036)
rec time E1234567.89ABCDEF (15:42:00.506 CET Fri Jun 28 2019)
xmt time E1234568.90BCDEF0 (15:42:00.507 CET Fri Jun 28 2019)
filtdelay =    1.27    1.28    1.26    1.30
filtoffset=    0.54    0.55    0.53    0.56

! "authenticated" → auth NTP fonctionne ✓
! "our_master"   → on utilise ce peer comme référence

📋 Checklist de vérification NTP

! 1. Horloge synchronisée ?
show ntp status          → "Clock is synchronized"

! 2. Quel serveur est utilisé ?
show ntp associations    → chercher le * devant l'IP

! 3. Auth fonctionne ?
show ntp associations detail → "authenticated"

! 4. Heure affichée correcte ?
show clock detail        → timezone, sans *

! 5. Hardware clock à jour ?
show calendar            → doit correspondre à show clock

! 6. Timestamps des logs alignés ?
show logging             → comparer l'heure des messages
1

Logs UTC, show clock heure locale — décalage apparent

Par défaut, service timestamps log datetime utilise UTC. Si clock timezone est configuré, show clock affiche l'heure locale. Le décalage visible n'est pas un bug NTP — c'est une divergence UTC/localtime. Solution : service timestamps log datetime localtime.

2

Stratum 16 = horloge invalide

Un routeur configuré avec ntp server mais dont le serveur est injoignable affiche stratum 16 dans show ntp status et le message Clock is unsynchronized. Le * devant show clock indique la même chose. Vérifier la connectivité UDP 123 vers le serveur.

3

ntp authenticate sans ntp trusted-key = pas de sync

Si ntp authenticate est activé mais ntp trusted-key est absent, le routeur rejette tous les paquets NTP non-authentifiés — y compris les serveurs publics. Soit désactiver l'auth, soit configurer les clés des deux côtés.

4

ntp master sans ntp server = horloge locale, pas de sync externe

ntp master 3 seul fait du routeur une source NTP basée sur sa propre horloge locale (non synchronisée). Si cette horloge dérive, tous les clients dérivent aussi. Toujours combiner avec ntp server externe et mettre ntp master à un stratum plus élevé comme fallback.

5

Hardware clock (calendar) non mis à jour par NTP

NTP synchronise la software clock uniquement. Sans ntp update-calendar, le hardware clock dérive indépendamment. Après un reboot, la software clock repart du hardware clock — si celui-ci est faux, le routeur démarre avec une mauvaise heure jusqu'à la prochaine sync NTP.

6

clock timezone non configuré = timestamps en UTC sans indication

Sans clock timezone, les logs et show clock affichent l'heure UTC sans mention du timezone. En corrélation multi-devices dans différents pays, c'est source de confusion. Toujours configurer clock timezone explicitement, même à UTC+0 (clock timezone UTC 0).

7

NTP dans un VRF : oublier "vrf" dans la commande ntp server

Si l'interface de management est dans un VRF, ntp server 192.168.1.1 (sans vrf MGMT) cherche la route dans le VRF global — introuvable. Le routeur reste à stratum 16. Solution : ntp server vrf MGMT 192.168.1.1.

8

logging synchronous ≠ synchronisation NTP (piège d'exam)

logging synchronous (sur line vty/console) ne concerne que l'affichage des messages sur le terminal — il évite que les logs interrompent une frappe. Aucun impact sur les timestamps ou la synchronisation NTP. Question d'exam classique : cette commande ne résout PAS un décalage de timestamps.

Cliquer pour révéler la réponse.
01
Les logs affichent 14h41, show clock affiche 15h42 CET. Quelle commande aligne les deux ?
service timestamps log datetime localtime — les logs utilisaient UTC, show clock affichait l'heure locale (CET = UTC+1). localtime aligne les timestamps des logs sur l'heure locale.
02
Que signifie stratum 16 dans show ntp status ?
Horloge non synchronisée (unsynchronized). Le serveur NTP configuré est injoignable ou invalide. Stratum 16 = valeur sentinelle "pas de référence valide". Vérifier la connectivité UDP 123 vers le serveur.
03
Quelles sont les 3 commandes obligatoires pour l'authentification NTP des deux côtés ?
ntp authenticate + ntp authentication-key <id> md5 <secret> + ntp trusted-key <id>. Oublier l'une des trois empêche la synchronisation authentifiée.
04
Différence entre ntp server et ntp master ?
ntp server : le routeur se synchronise sur un serveur externe (client). ntp master : le routeur devient lui-même source NTP basée sur sa propre horloge. Combinés : le routeur se sync sur internet ET sert de source interne si internet tombe.
05
Que fait logging synchronous et pourquoi ne résout-il pas un décalage de timestamps ?
logging synchronous (ligne vty/console) empêche les messages de log d'interrompre une commande en cours de saisie. N'a aucun effet sur les timestamps ni sur la synchronisation NTP — piège d'exam classique.
06
Comment configurer NTP dans un VRF de management ?
ntp server vrf MGMT <ip-serveur>. Sans le mot-clé vrf, IOS cherche la route dans le VRF global et ne trouve pas le serveur si l'interface est dans un VRF dédié.
07
Que signifie le * devant show clock ? Et devant une IP dans show ntp associations ?
Dans show clock : le * indique que l'horloge n'est PAS synchronisée (ou n'est pas authoritative). Sans * = synchronisée. Dans show ntp associations : le * devant une IP indique le serveur NTP actuellement utilisé.
08
Pourquoi configurer ntp update-calendar ?
NTP synchronise uniquement la software clock (volatile). ntp update-calendar demande à IOS de mettre à jour aussi la hardware clock (RTC). Sans cette commande, après un reboot, le routeur repart avec l'heure du hardware clock qui peut avoir dérivé.
09
Commande pour afficher les timestamps avec millisecondes, heure locale et timezone visible ?
service timestamps log datetime msec localtime show-timezone — exemple de sortie : Jun 28 15:41:57.342 CET: %BGP-5-ADJCHANGE. Recommandé en production pour la corrélation maximale.
10
Que signifie "reach 377" dans show ntp associations ?
377 en octal = 11111111 en binaire = les 8 derniers sondages NTP ont tous reçu une réponse. C'est la valeur maximale, indiquant une connectivité NTP parfaite. reach 0 = aucune réponse reçue.