Introducción
El protocolo de tiempo de precisión (PTP) es un protocolo de sincronización de sincronización de precisión de nanosegundos distribuido para redes de paquetes. La precisión del PTP proviene del soporte de hardware para PTP en las tarjetas de interfaz de red (NIC) del switch y del servidor. El PTP utiliza el grupo multicast 224.0.1.129 y los puertos UDP 319 y 320. El estándar PTP actual es IEEE 1588-2008 Precision Time Protocol (PTP) versión 2 (PTPv2)
La escalabilidad del PTP proviene del hecho de que este protocolo tiene un concepto de Reloj de Límites (BC), que puede ser varios saltos físicos/lógicos a distancia del reloj Gran Maestro (GM) y actúa como punto de re-calibración para los mensajes que contienen marcas de tiempo. Los Nexus 3ks se implementan ampliamente en Data Centers (DC) para actuar como BC y proporcionar horarios precisos a los servidores conectados a la red de área local (LAN). El BC y el GM necesitan ser accesibles únicamente a través de la capa 3 (conectividad IP). Puede haber varias capas de BC entre el GM y el cliente final PTP. Puede haber varios GM para proporcionar redundancia y Nexus 3K seleccionará el mejor GM a través del algoritmo Best Master Clock (BMC).
Contribuido por: Nishad Mohiuddeen
Editado por: Kumar Sridhar
Configuración PTP:
N3k(config)# feature ptp
Este comando habilita el PTP en el switch.
N3k(config)# ptp source <ip address>
Este comando especifica la dirección IP de origen para los paquetes PTP generados por el switch.
N3k(config)# slot/puerto Ethernet de interfaz
N3k(config-if)# ptp
Este comando habilita el PTP en un puerto. El Cisco Nexus 3548 es un reloj de frontera, por lo que tiene puertos maestro y esclavo. No hay diferencia de configuración entre un puerto maestro y un puerto esclavo. Ambos están configurados con la opción "ptp" y el algoritmo BMC determinará si el puerto es un puerto PTP esclavo o puerto maestro.
N3k(config)# clock protocol ptp
Este comando configura el switch para que utilice PTP para actualizar el calendario del sistema. Esta configuración mantiene el reloj del switch sincronizado con PTP. Si no se habilita este comando, el switch no impedirá la propagación del reloj PTP en sus puertos maestros. Sin embargo, el origen de la hora será el reloj local Nexus.
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
Configure los valores de prioridad para el reloj local (oscilador). Un valor numérico más bajo indica una prioridad más alta.
N3k(config)# sin capacidad para ptp grand master
De forma predeterminada, Nexus 3k es "apto para el gran maestro ptp", por lo que inhabilita esta capacidad para sincronizarse con el GM.
Parámetros opcionales bajo la interfaz (configure para que coincida el parámetro con GM):
N3k(config)# slot/puerto Ethernet de interfaz
N3k(config-if)# ptp delay-request minimum interval 3
N3k(config-if)# intervalo de anuncio ptp 2
N3k(config-if)# intervalo de sincronización ptp 0
Verificación:
N3k# show ptp clock
Tipo de dispositivo PTP: Reloj límite
Identidad del reloj: 00:62:ec:ff:fe:40:05:81
Dominio del reloj: 0
Número de puertos PTP: 2
Prioridad1: 1
Prioridad2: 1
Calidad del reloj:
Clase: 248
Precisión: 254
Desplazamiento (variación de registro): 65535
Desplazamiento desde maestro: 0
Retraso de trayecto medio: 0
Pasos eliminados: 0
Hora del reloj local:lunes 5 de junio 00:00:23 2017
N3k# show ptp parent
PROPIEDADES PRINCIPALES PTP
Reloj principal:
Identidad del reloj principal: 00:0c:ec:ff:fe:08:12:b1
Número de puerto principal: 1
Desplazamiento principal observado (variación de registro): N/A
Tasa de cambio de la fase de reloj principal observada: N/A
Reloj de abuelo:
Identidad del reloj de la abuela: 00:0c:ec:ff:fe:08:12:b1
Calidad del reloj del abuelo:
Clase: <<<<
Precisión: 32
Desplazamiento (variación de registro): 22752
Prioridad1: 128
Prioridad2: 128
N3k# show ptp brief
estado del puerto PTP
—
Estado de Puerto
— —
Esclavo Eth1/5 << hacia GM
Eth1/24 Master <<< hacia el host
Escucha Eth1/24 <<< no se ha detectado ningún GM o host válido
N3k#show run | en reloj (para comprobar clock-protocol)
N3k#show ptp counters all (para verificar el Tx y Rx de los mensajes PTP como Sync, Announce, Delay_Req, Delay_Resp etc.)
N3k# show ptp counters interface ethernet 1/24
Contadores de Paquetes PTP de la Interfaz Eth1/24:
—
Tipo de paquete TX RX
— — —
Anuncio 558 4479
Sync 1773 8941
Seguimiento 1754 8950
Solicitud de retraso 35 0
Respuesta de demora 0 35
PDelay Request 0 0
PDelay Res 0 0
PDelay Seguimiento 0 0
Gestión 0
—
N3k#show ptp fixes (para verificar las marcas de hora de corrección de PTP)
PTP correcciones pasadas
—
Corrección(ns) de tiempo SUP de puerto esclavo Retraso(ns) de ruta media
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Eth1/24 Mon Jun 5 05:48:45 2017 171026 -51 1806
24/05/05:48:46 2017 171727 -2 1806
Eth1/24 Mon Jun 5 05:48:47 2017 173329 -47 1806
Eth1/24 Mon Jun 5 05:48:48 2017 174047 86 1806
Eth1/24 Mon Jun 5 05:48:49 2017 175690 -55 1794
Eth1/24 Mon 5 jun 05:48:50 2017 235577 -6 1794
Eth1/24 Mon Jun 5 05:48:51 2017 178035 -44 1794
Eth1/24 Mon 5 jun. 05:48:52 2017 178804 83 1794
Eth1/24 Mon 5 jun. 05:48:53 2017 180371 35 1794
Eth1/24 Mon Jun 5 05:48:54 2017 181839 -48 1794
Eth1/24 Mon Jun 5 05:48:55 2017 183667 -42 1794
Eth1/24 Mon Jun 5 05:48:56 2017 184423 -5 1794
Eth1/24 Mon Jun 5 05:48:57 2017 186030 113 1794
Eth1/24 Mon Jun 5 05:48:58 2017 186653 -48 1794
Eth1/24 Mon Jun 5 05:48:59 2017 188298 -6 1794
Eth1/24 Mon 5 jun 05:49:00 2017 189000 -88 1794
<snip>
Resolución de problemas:
1. Compruebe si puede hacer ping al GM desde el PTP (conectividad de unidifusión).
2. Verifique el protocolo de reloj, que debe ser PTP, mediante
N3k#‘show run’ | en reloj
3. De forma predeterminada, los N3Ks son "capaces de ser grandes maestros". Necesita desactivarla mediante
N3k# no ptp Grandmaster-capability
4. Utilice el comando show ptp brief para verificar si el estado del puerto es ‘Escuchando’.
5. A continuación, haga una captura de etanalyzer.
ethanalyzer local interface inbound-hi capture-filter "udp port 320" limit-capture-frames 0 <<< Anuncio y seguimiento
ethanalyzer local interface inbound-hi capture-filter "udp port 319" limit-capture-frames 0 << Sync
Del lado de PTP GM habría mensajes de anuncio y sincronización. TEl cliente enviará Retraso_Req y GM enviará Retraso_Resp.
Si no se capturan paquetes en el analizador etálico, puede ser un problema prioritario. Si el Nexus 3k recibe paquetes PTP con menor prioridad (o clase de reloj en caso de igual prioridad), descartará el paquete y no saltará a la CPU.
6. La mejor manera es hacer capturas de paquetes (para obtener el paquete entre GM y BC) para ver por qué el BC no se sincroniza con el GM. De la captura podemos verificar la prioridad PTP enviada por GM mirando el mensaje ‘Anunciar’ que viene del GM. Si la prioridad es menor (valor numérico más alto) que la prioridad configurada en el BC, cambie la prioridad PTP del BC a un valor numérico más alto.
7. Si el BC (Nexus3k) está sincronizado con GM pero los hosts/servidores descendentes no lo están, busque "Retraso_Req_Message" desde el host/servidor. Si no está presente, entonces hay un error con el daemon PTP en host/servidor.