Determina la differenza di tempo tra due server Linux


23

Sto risolvendo un problema di rete di latenza su una rete. Probabilmente è un problema di nic o di cablaggio, ma mentre stavo attraversando il processo per capirlo, stavo guardando i tempi di un pacchetto ping che lasciava una scheda di rete e arrivava a un altro server. Entrambi Linux.

Quindi ho tcpdump in esecuzione su entrambi, ed eseguo un ping dall'uno all'altro e viceversa, e guardare le differenze di temporizzazione potrebbe aver fatto luce sulla provenienza della latenza.

Ora è un esercizio accademico, poiché ho bisogno di eliminare alcune cause più fondamentali, ma ero curioso di sapere come si potesse ottenere questo risultato. Dato che ntpd è installato e in esecuzione su due server, come posso confermare l'attuale discrepanza temporale tra i due server, a qualunque livello di precisione sia possibile, dato che stiamo parlando di latenza su una LAN locale, che idealmente è un millisecondo o così.

L'NTP stesso è preciso per un paio di ms in buone condizioni e poiché entrambi i server si trovano nello stesso ambiente, dovrebbero (presumibilmente) raggiungere un livello di accuratezza simile e quindi dovrebbero avere una discrepanza temporale tra di loro di solo pochi ms - ma come posso controllare questo?

Risposte:


14

Se i due server sono peer NTP, utilizzare

  ntpq -p

Che mostrerà gli offset attuali

Si noti che NTP tiene conto della latenza della rete. Se conosci l'offset di ciascun server da un server NTP comune, è più preciso che puoi ottenere utilizzando strumenti standard.


AGGIORNARE

Ho due server unix che utilizzano NTP. Vediamo che tipo di tempo stanno mantenendo:

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 hufu.ki.iif.hu  185.219.2.214    2 u   12   64    1   71.755   -0.073   0.001
 web.puflet.info 188.138.107.156  3 u   11   64    1   78.248    0.417   0.001
 84.2.44.19      10.20.75.140     2 u   10   64    1   74.721   -1.076   0.001

$ sudo /usr/sbin/ntpq -p otherbox
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp2.exa-networ 195.66.241.10    2 u  799 1024  377   43.405    7.796 218.471
+mantaray.netine 249.240.53.144   3 u  289 1024  377   34.782    8.484 212.631
*rilynn.me.uk    81.2.117.228     2 u  765 1024  377   45.665    6.804 142.023
+ntp.thirdlight. 193.67.79.202    2 u  791 1024  377   38.322    9.871 223.397

Stanno usando server diversi perché usano server dal pool ntp.

Aggiungerò temporaneamente otherbox alla configurazione di questo server in modo da poter misurare direttamente il time offset

$ sudo vi /etc/ntp.conf
 (added `server otherbox`)

$ sudo /sbin/service ntpd restart

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 gamma.h3x.no    78.70.33.22      3 u    4   64    1   34.840   -0.964   0.001
 web.puflet.info 188.138.107.156  3 u    3   64    1   78.148   -1.243   0.001
 alpha.rueckgr.a 129.69.1.153     2 u    2   64    1   61.495   -2.362   0.001
 otherbox.exampl 60.155.73.34     3 u    1   64    1    0.604  -11.286   0.001

Sembra che i timestamp sui miei due server siano diversi circa 11 ms.


Non lo sono, ottengono indipendentemente il loro tempo dai server ntp
Paul

@Paul: vedi aggiornamento
RedGrittyBrick il

Quando hai aggiunto il tuo server NTP locale a quello /etc/ntp.confdel client, presumo che tu l'abbia fatto come tale server 192.168.1.70 iburst. Inoltre, hai rimosso tutti gli altri server dall'elenco dei client?
puk

33

ntpdate -q fa quello che vuoi.

Esempio:

root@host1:~# ntpdate -q host2 
server host2, stratum 4, offset 109.584520, delay 0.77560
17 Apr 21:48:16 ntpdate[28849]: no server suitable for synchronization found

In questo caso, i server hanno una differenza di circa 110 secondi.


Questo funziona sì, ma ho bisogno di un modo per ottenere una risposta più rapida in modo da poter aggiungere l'offset in uno script di raccolta dati.
SJG,

8

Puoi anche fare quanto segue su host1:

root@host1# clockdiff -o host2
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.