02.95384218     info@sincron-sistemi.it

Cattura pacchetti NTP

Introduzione

Qual è il primo passo nella vita di un networker se vuole lavorare con un protocollo sconosciuto? Lo cattura e lo interroga. Di seguito è riportato un pcap scaricabile in cui sono visualizzati i più comuni pacchetti NTP come i messaggi base client-server, nonché i pacchetti di controllo e autenticazione. MOstrerò anche come analizzare il delta time con Wireshark, ovvero: in quanto tempo un server NTP risponde ad una richiesta. Sei invitato a scaricare il seguente pcap (zippato, 16 KB) e ad aprirlo con Wireshark per dare un'occhiata tu stesso:

Download 

In questo file sono contenuti diversi tipi di pacchetti NTP. E vanno quindi usati filtri di visualizzazione di Wireshark per dare un'occhiata a scenari specifici. La porta di destinazione UDP standard per NTP è 123, mentre la porta di origine  “potrebbe” essere 123 in ogni caso. Guardando nel flusso si dovrebbe capire l'intestazione del pacchetto. I campi più importanti sono:

  • leap indicator: "2-bit integer warning of an impending leap second to be inserted or deleted in the last minute of the current month […]."

  • version: "3-bit integer representing the NTP version number, currently 4."

  • mode: le modalità più comuni sono client (3) e server (4). Questa è la richiesta unicast di base client-server che vedrai in tutta la tua rete. Altre modalità sono "symmetric active" (2) tra peer NTP e "NTP control message" (6) per il controllo / polling dei server NTP.

  • stratum: il valore dello strato indica la distanza dal clock di riferimento. Mentre il clock di riferimento (se usato) internamente ha un valore di stratum pari a 0, il timeserver che si sincronizza con il clock avrà un valore di strato di 1. Ovvero: quando un server risponde con lo strato 1, viene collegato direttamente a un orologio di riferimento. Un NTP server che riceve il suo tempo da un server di strato 1 aumenta il valore di 1, ovvero: 2. Non si trovano valori oltre il 4 su Internet così spesso. Sono supportati valori fino a 15, mentre 16 significa non sincronizzato.

  • reference ID: "32-bit code identifying the particular server or reference clock." Per i server stratum 1 si tratta di una stringa ASCII che indica il segnale di riferimento come GPS, PPS o DCFa / DCFp. Sopra lo strato 1 questo è l'indirizzo IPv4 del Server NTP di riferimento, oppure per IPv6 "it is the first four octets of the MD5 hash of the IPv6 address."

  • transmit timestamp: "Time at the server when the response left for the client." Questo è il timestamp più interessante in quei pacchetti NTP poiché mostra l'ora in cui il client / server NTP ha ricevuto il pacchetto NTP. Se si vuole conoscere approssimativamente il tempo guardando semplicemente un pacchetto NTP, allora bisogna guardare il “transmit timestamp”.

  • key ID & MAC: presente solo quando si utilizza l'autenticazione NTP. Il key ID è il numero della chiave mentre il MAC è il digest del messaggio (attualmente MD5 o SHA-1, da non confondere con l'indirizzo MAC Ethernet).

Queste variabili sono viste nel flusso per i pacchetti NTP. Nota che su qualsiasi server o client NTP ci sono un paio di colonne che sono elencate in molti documenti e NON fanno parte dei pacchetti ma dei calcoli dagli algoritmi NTP. Sono i parametri di when, poll, reach, delay, offset e jitter.

Basic Client-Server

Nel mio pcap, udp.stream eq 21 mostra una comunicazione client-server di base. Un client NTP chiede al server il tempo. Nella risposta del server puoi vedere il suo stratum (1) e l'orologio di riferimento (DCFa). Normalmente una comunicazione NTP è in corso per tutta la durata del servizio ntp in esecuzione; interroga il server nell'intervallo di "polling". Si può osservare questo comportamento in udp.stream eq 2 dove il mio NTP timeserver chiede (come client) un altro time server su Internet. L'intervallo di “polling” in questo caso era di 64 secondi, lo stratum del server era 2, mentre l'ID di riferimento mostra l'indirizzo IPv4 (o i primi bytes dell'hash MD5 dell'indirizzo IPv6) del riferimento del time server NTP interrogato.

Symmetric Active

Quando si eseguono più NTP SERVER connessi come "peer" anziché come "server" per sincronizzare i propri orologi l'uno con l'altro, vedrete pacchetti simmetrici attivi (modalità 1) Il flusso . udp.stream eq 1 mostra il peering tra due dei miei server NTP dello strato 1.

Control

È possibile inviare pacchetti di controllo ai timeserver NTP per ottenere informazioni specifiche. Usando le query via ntpq dal mio server di monitoraggio per interrogare alcune statistiche dai server NTP di cui un esempio è udp.stream eq 15 in cui il mio server di monitoraggio ha eseguito il polling dei peer dal Timeserver NTP tramite il comando "ntpq -p ntp1.weberlab.de". Tutte le connessioni attive sono state inviate a questo server di monitoraggio, una alla volta. Quindi un paio di pacchetti NTP in pochi millisecondi.

Autenticazione: MD5, SHA-1, & NAK

Per l'autenticazione del NTP ci sono due campi aggiuntivi: l'ID della chiave e il codice di autenticazione del messaggio MAC. A seconda del metodo di autenticazione, MD5 o SHA-1, la lunghezza del MAC differisce. In udp.stream eq 33 si osserve un'autenticazione MD5, udp.stream eq 9 a SHA-1 e udp.stream eq 0 un errore nell'autenticazione, ovvero un cripto-NAK.

NTP Delta Time

Il campo “NTP Delta Time” calcola il tempo tra la richiesta del client e la rispettiva risposta del server (simile ai campi dns.time o http.time). Si può vedere questo valore calcolato tra parentesi quadre [come sempre per i campi aggiunti da Wireshark]. udp.stream eq 2:

E’ possibile utilizzare i "grafici I / O" di Wireshark per visualizzare il ntp.delta_time per determinate connessioni. Nel grafico seguente è possibile vedere nuovamente l'analisi di udp.stream eq 2, mentre l'asse Y mostra il campo ntp.delta_time. Dato che questo particolare client NTP ha inviato una richiesta NTP ogni 64 secondi, è possibile visualizzarne i segni nel grafico, oltre ad un picco vicino ai 1040 secondi della traccia:

 

Contattaci per scegliere la configurazione più adatta alla tua realtà.

Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Scrivi a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo. oppure compila il modulo di contatto sul nostro sito: https://www.sincron-sistemi.it/contatti

 

ISCRIVITI PER RICEVERE NOVITÁ E OFFERTE SPECIALI