Come mai uno dei miei interruttori è spento di due minuti nonostante ntp?


11

Ho appena notato per puro caso che uno dei miei switch Cisco 4500 ha l'orologio che non va: è più di 2 minuti indietro nonostante apparentemente funzionale ntp. A mio avviso, anche un solo secondo non dovrebbe essere considerato accettabile per i sistemi coinvolti. Inoltre, non avrei notato la differenza rispetto alla diagnostica, se non l'avessi confrontato con un semplice orologio da parete.

Alcuni dettagli

Ecco le informazioni ntp per alcuni dei miei host (10.0.99.1, 10.0.99.2, 10.0.1.119, 10.0.99.241) che si riferiscono in parte l'uno all'altro per fallback, ma principalmente dovrebbero infine alla fine sincronizzarsi con 10.0.0.1, che di nuovo tira il tempo dall'esterno. Quindi la discrepanza temporale non può derivare da diverse fonti temporali originali. Come le osservazioni mi hanno reso un po 'paranoico, "ha l'ora corretta" nei seguenti mezzi: show clock(o date) ha prodotto un output che corrisponde al mio orologio da parete e al mio orologio di sistema locale (che va bene secondo http://time.is ) con un errore sicuramente inferiore a 1 secondo (precisione di quando premo ENTER mentre guardo il mio orologio locale)

10.0.1.119 (Ubuntu) ha l'ora corretta

$ ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+10.0.99.1       10.0.0.1         3 u  855 1024  377    0.904   -2.658   0.113
*10.0.0.1        130.149.17.8     2 u  266 1024  377    0.253    0.909   0.127

10.0.99.241 (Cisco 2960) ha l'ora corretta

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.99.1       10.0.0.1         3     28     64   377  1.462  85.288 19.758
+~10.0.99.2       10.0.1.119       4     29     64   377  1.297  83.515  5.369
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.2 (Cico 4500) ha l'ora corretta

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
+~10.0.99.1       10.0.0.1         3      6   1024   111  1.148  -1.618 42.875
*~10.0.1.119      10.0.0.1         3     31   1024   377  0.043   1.687  1.064
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.1 (Cisco 4500) è in ritardo di circa 2 minuti e 6 secondi

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.0.1        130.149.17.8     2    274   1024   377 15.625   3.681 30.403
+~10.0.99.2       10.0.1.119       4    415   1024   376 15.625   0.855 33.276
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

#sho ntp status 
Clock is synchronized, stratum 3, reference is 10.0.0.1      
nominal freq is 250.0000 Hz, actual freq is 249.9988 Hz, precision is 2**6
reference time is DAD8B428.54C6BAEA (20:36:24.331 MESZ Sat May 7 2016)
clock offset is 3.6818 msec, root delay is 32.80 msec
root dispersion is 71.74 msec, peer dispersion is 30.40 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000004720 s/s
system poll interval is 1024, last update was 683 sec ago.

Domande

  1. Come mai 10.0.99.1 è così lontano?
  2. Come mai i sistemi sincronizzati con 10.0.99.1 sono corretti?
  3. Come devo imparare dall'output di sho ntp status10.0.99.1 che l'orologio è in realtà totalmente fuori sincrono (rispetto a tutti gli host e gli orologi di riferimento citati in sho ntp asso)? Per me l'output sembra totalmente elaborato "Sono totalmente felice".

EDIT: A grande richiesta, l'output disho clock detail

10.0.99.1

#sho clock detail 
13:06:38.605 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016

10.0.99.2

#sho clock detail 
13:10:54.083 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016

Non riesco a individuare alcun sistema in cui gli indirizzi IP sono stati configurati come server ntp utilizzati da ciascun dispositivo. E vedo un loop e un paio che si usano come server ntp. Credo che in quei casi dovresti specificarli come peer ntp piuttosto che server. Anche se devo ammettere che non so quale sia esattamente la differenza fa se lo specifichi come peer o server. Inoltre, non sono convinto che sia una buona idea lasciare che tutto si sincronizzi attraverso un singolo host ( 10.0.0.1). Ma non credo che nessuna delle mie osservazioni possa spiegare direttamente la causa del tuo attuale problema.
Kasperd,

2
Un problema evidente con la tua configurazione ntp è che ogni host è configurato con il peggior numero possibile di fonti di tempo. "Un uomo con un orologio sa che ore sono, un uomo con due orologi non è mai sicuro ..." Qualsiasi altro numero è migliore di due, quattro è probabilmente la scelta migliore, dà un cuscino se uno non è disponibile e se ne va ancora tre fonti.
dfc

4
L'intera configurazione NTP deve essere riconsiderata. Devi lavorare con livelli di strato. Come ha sottolineato @kasperd, potresti avere un problema con un loop. È necessario sincronizzare solo i server con un livello di strato inferiore e quelli con lo stesso livello di strato potrebbero essere sottoposti a peering, ma non utilizzarsi a vicenda come server. I dispositivi con peer necessitano ancora di uno o più server a un livello di strato inferiore come fonti di autorevolezza, ma cercheranno di allinearsi ad altri peer. Non utilizzare dispositivi occupati (ad esempio switch core) come server NTP.
Ron Maupin,

3
Sta succedendo qualcosa di molto strano. Tutto l'output ntp è ragionevolmente normale e mostra una buona sincronizzazione. Eppure il tuo comando per ottenere il tempo dal dispositivo ha dato un tempo lontano. Ciò suggerisce che per qualche motivo, il dispositivo con l'ora disattivata non sta impostando l'orologio di sistema dal suo sottosistema ntp.
David Schwartz,

1
Sembra davvero che tu abbia trovato un bug, e probabilmente l'unico modo per farlo è riavviarlo e sperare che vada via o contattare Cisco.
derobert,

Risposte:


2

Sono un po 'riluttante a postare questo come una risposta perché la causa originale non è ancora chiara. Tuttavia, il problema sembra essere risolto, almeno per il momento.


In seguito ai commenti di htm11h , ho deciso di aggiornare il firmware. E infatti, ora che sto funzionando con un firmware più recente, l'orologio sembra corrispondere all'ora corretta.

Ma questo significa che il nuovo firmware era la soluzione? Sfortunatamente no. Nel mio primo tentativo di caricare il nuovo firmware, ho dimenticato di cambiare il registro di configurazione, che era ancora nelle sue impostazioni di fabbrica. Pertanto, il mio primo riavvio è finito nella stessa immagine ROM originale su cui il router era in esecuzione da quasi quattro anni (ovvero dalla sua accensione iniziale). Eppure, questo è stato sufficiente affinché l'orologio potesse apportare un'enorme regolazione e quindi rimanere sincronizzato. Ciò suggerisce che un semplice riavvio potrebbe aver aiutato - temporaneamente. A sua volta, ciò significa che il tempo ora corretto mostrato con il firmware più recente potrebbe ancora allontanarsi dal tempo ntp negli anni a venire. Ci vorranno alcuni giorni prima che riesca a capire se l'orologio ha perso circa 5 secondi al giorno ...

Per ora, il caso è chiuso.


1

Ho lavorato parecchio con il progetto NTP Pool dalla metà degli anni '90 ed ho eseguito qui diversi server sincronizzati GPS NTP Stratum-1. Come altri hanno affermato, sono necessari più di 2 server per ottenere tempo da. Di solito uso 4 qui per i motivi indicati da Ron Maupin sopra. Inoltre, come elencato, devi cercare i loop e impostare le cose come server o peer.

La deriva del tempo potrebbe essere dovuta a un bug noto in IOS che è stato corretto in questo aggiornamento IOS che si occupava di ntp.drift che non veniva cancellato o aggiornato correttamente e quindi il problema di deriva. Anche 4 ANNI senza riavvio o aggiornamento devono averti lasciato in una brutta situazione per quanto riguarda la sicurezza poiché gli aggiornamenti di IOS Security escono abbastanza frequentemente.

Ecco un eccellente post sulla configurazione di NTP su Cisco IOS http://packetlife.net/blog/2011/mar/28/cisco-ios-clocks-and-ntp/

Spero sia utile. Si prega di chiedere se avete ulteriori domande o problemi.


0

Divulgazione completa: ho solo occasionalmente armeggiato con switch config e non sono affatto un esperto NTP.

Detto questo, vedevo il demone NTP sui sistemi RHEL 5.x (sì, torno indietro, ma hai detto che il tuo switch aveva un'immagine di ~ 4 anni ...) rimanere bloccato in uno stato "felice" , dove sembrava pensare che fosse perfettamente sincronizzato ma chiaramente non lo era. Useremmo una sessione ClusterSSH per eseguire "date" su tutti i sistemi contemporaneamente, e questo a volte mostrerebbe fino a 5 minuti di deriva tra i sistemi. Se ricordo bene, potremmo solo risolvere il problema riavviando il demone e, in definitiva, facendo riavviare il servizio cron ogni notte ...

Non è affatto una soluzione ideale, ma potresti essere in grado di adottare un approccio simile con un processo cron per collegarti allo switch e avviare un riavvio o in qualche modo "kick" il demone NTP sullo switch?

Spero che questo ti aiuti!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.