Introduzione
Precision Time Protocol (PTP) è un protocollo distribuito di sincronizzazione della sincronizzazione della precisione in nanosecondi per le reti a pacchetti. La precisione di PTP deriva dal supporto hardware per PTP nelle schede di interfaccia di rete (NIC, Network Interface Card) di switch e server. PTP utilizza il gruppo multicast 24.0.1.129 e le porte UDP 319 e 320. Lo standard PTP corrente è IEEE 1588-2008 Precision Time Protocol (PTP) versione 2 (PTPv2)
La scalabilità di PTP deriva dal fatto che questo protocollo ha un concetto di Boundary Clock (BC), che può essere costituito da più hop fisici/logici lontani dall'orologio Grand Master (GM) e funge da punto di ri-calibrazione per i messaggi contenenti timestamp. I Nexus 3k sono ampiamente installati nei centri dati (DC) per fungere da BC e fornire intervalli precisi ai server collegati alla LAN (Local Area Network). Il BC e il GM devono essere raggiungibili solo attraverso il layer 3 (connettività ip). Ci possono essere diversi livelli di BC tra il GM e il client finale PTP. Possono esistere più GM per fornire ridondanza e Nexus 3K selezionerà il migliore GM tramite l'algoritmo Best Master Clock (BMC).
Contributo di: Nishad Mohiuddeen
Modificato da: Kumar Sridhar
Configurazione PTP:
N3k(config)# funzionalità ptp
Questo comando abilita PTP sullo switch.
N3k(config)# origine ptp <indirizzo ip>
Questo comando specifica l'indirizzo IP di origine dei pacchetti PTP generati dallo switch.
N3k(config)# interfaccia Slot/porta Ethernet
N3k(config-if)# ptp
Questo comando abilita PTP su una porta. Cisco Nexus 3548 è un clock di confine, quindi ha porte sia master che slave. Non vi sono differenze di configurazione tra una porta master e una porta slave. Entrambi sono configurati con l'opzione "ptp" e l'algoritmo BMC determinerà se la porta è una porta slave o master PTP.
N3k(config)# protocollo di clock ptp
Con questo comando lo switch viene configurato in modo da utilizzare PTP per aggiornare il calendario di sistema. In questo modo, l'orologio dello switch rimane sincronizzato con quello dello switch PTP. La mancata attivazione di questo comando non impedisce allo switch di propagare l'orologio PTP sulle sue porte master. Tuttavia, l'origine ora sarà l'orologio locale Nexus.
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
Configurare i valori di priorità per l'orologio locale (oscillatore). Il valore numerico più basso indica una priorità più alta.
N3k(config)# senza supporto per master ptp
Per impostazione predefinita Nexus 3k è "ptp gran master-able", quindi disabilitare questa funzionalità per sincronizzarsi con il GM.
Parametri facoltativi nell'interfaccia (configurati per la corrispondenza del parametro con GM):
N3k(config)# interfaccia Slot/porta Ethernet
N3k(config-if)# intervallo minimo richiesta ritardata PTP 3
N3k(config-if)# ptp intervallo di annuncio 2
N3k(config-if)# intervallo di sincronizzazione ptp 0
Verifica:
N3k# mostra orologio ptp
Tipo di dispositivo PTP: Orologio
Identità orologio: 00:62:ec:ff:fe:40:05:81
Dominio orologio: 0
Numero di porte PTP: 2
Priorità 1: 1
Priorità 2: 1
Qualità orologio:
Classe: 248
Precisione: 254
Offset (varianza log): 65535
Offset dal master: 0
Ritardo medio percorso: 0
Passaggi rimossi: 0
Ora orologio locale:lun giu 5 00:00:23 2017
N3k# mostra padre ptp
PROPRIETÀ PADRE PTP
Orologio principale:
Identità orologio padre: 00:0c:ec:ff:fe:08:12:b1
Numero porta padre: 1
Offset padre osservato (scostamento log): N/D
Frequenza di modifica fase di clock padre osservata: N/D
Orologio maestro:
Identità orologio principale: 00:0c:ec:ff:fe:08:12:b1
Qualità orologio:
Classe: 6 <<<
Precisione: 32
Offset (scostamento log): 22752
Priorità 1: 128
Priorità 2: 128
N3k# mostra descrizione comando
Stato porta PTP
—
Stato porta
—
Eth1/5 Slave <<< verso GM
Eth1/24 Master << verso l'host
Eth1/24 in ascolto << nessun host o GM valido rilevato
N3k#show run | in orologio (per controllare il protocollo clock)
N3k#show ptp conta tutti (per controllare il Tx e il Rx dei messaggi PTP come Sync, Announce, Delay_Req, Delay_Resp ecc.)
N3k# show ptp counters interface ethernet 1/24
Contatori pacchetti PTP dell'interfaccia Eth1/24:
—
Tipo di pacchetto TX RX
— —
Annuncio 558 4479
Sincr. 1773 8941
Follow-up 1754 8950
Richiesta di ritardo 35.0
Risposta di ritardo 0 35
Richiesta PDelay 0
Ris. PDelay 0
PDSelay Follow-up 0 0
Gestione 0 0
—
N3k#show ptp corrections (per controllare i timestamp delle correzioni PTP)
Correzioni passate PTP
—
Correzione tempo SUP porta slave (ns) ritardo/i medio percorso
— — —
Eth1/24 Lun Giu 5 05:48:45 2017 171026 -51 1806
Eth1/24 Lun Giu 5 05:48:46 2017 171727 -2 1806
Eth1/24 Lun Giu 5 05:48:47 2017 173329 -47 1806
Eth1/24 Mon Giu 5 05:48:48 2017 174047 86 1806
Eth1/24 Lun Giu 5 05:48:49 2017 175690 -55 1794
Eth1/24 Lun Giu 5 05:48:50 2017 235577 -6 1794
Eth1/24 Lun Giu 5 05:48:51 2017 178035 -44 1794
Eth1/24 Lun Giu 5 05:48:52 2017 178804 83 1794
Eth1/24 Lun Giu 5 05:48:53 2017 180371 35 1794
Eth1/24 Lun Giu 5 05:48:54 2017 181839 -48 1794
Eth1/24 Lun Giu 5 05:48:55 2017 183667 -42 1794
Eth1/24 Lun Giu 5 05:48:56 2017 184423 -5 1794
Mon 1/24 Giu 5 05:48:57 2017 186030 113 1794
Eth1/24 Lun Giu 5 05:48:58 2017 186653 -48 1794
Eth1/24 Lun Giu 5 05:48:59 2017 188298 -6 1794
Eth1/24 Lun Giu 5 05:49:00 2017 189000 -88 1794
<cattura>
Risoluzione dei problemi:
1. Verificare se è possibile eseguire il ping del file GM da PTP (connettività unicast).
2. Controllare il protocollo di clock, che deve essere PTP, via
N3k#show run | in tempo
3. Per impostazione predefinita, i N3K sono "compatibili con gran maestro". È necessario disabilitarlo tramite
N3k# nessun master ptp
4. Utilizzare il comando show ptp brief per verificare se lo stato della porta è "In ascolto".
5. Quindi eseguire una cattura dell'etanalizzatore.
etanalyzer local interface inbound-hi capture-filter "udp port 320" limit-capture-frames 0 <<< Annuncio e completamento
ethanalyzer local interface inbound-hi capture-filter "udp port 319" limit-capture-frames 0 <<< Sync
Dal lato PTP GM ci sarebbero messaggi Annuncio e Sincronizzazione. TIl client invierà Delay_Req e GM invierà Delay_Resp.
Se nell'analizzatore non vengono acquisiti pacchetti, potrebbe trattarsi di un problema prioritario. Se Nexus 3k riceve pacchetti PTP con priorità inferiore (o classe di clock in caso di uguale priorità), scarterà il pacchetto e non punterà alla CPU.
6. Il modo migliore è fare acquisizioni di pacchetti (per ottenere il pacchetto tra GM e BC) per capire perché il BC non è sincronizzato con il GM. Dalla cattura possiamo verificare la priorità PTP inviata da GM guardando il messaggio ‘Annuncio’ proveniente da GM. Se la priorità è inferiore (valore numerico più alto) rispetto alla priorità configurata nel BC, modificare la priorità PTP del BC in un valore numerico più alto.
7. Se il BC (Nexus3k) è sincronizzato con GM ma gli host/server a valle non lo sono, cercare "Delay_Req_Message" dall'host/server. Se non è presente, il daemon PTP nell'host/server presenta qualche problema.