Introduction
O Precision Time Protocol (PTP) é um protocolo de sincronização de temporização de precisão de nanossegundos distribuído para redes de pacotes. A precisão do PTP vem do suporte de hardware do PTP nas placas de interface de rede (NICs) do switch e do servidor. O PTP usa o grupo multicast 224.0.1.129 e as portas UDP 319 e 320. O padrão PTP atual é IEEE 1588-2008 Precision Time Protocol (PTP) versão 2 (PTPv2)
A escalabilidade do PTP vem do fato de que esse protocolo tem um conceito de Boundary Clock (BC), que pode ser vários saltos físicos/lógicos distantes do relógio do Grand Master (GM) e atua como um ponto de recalibração para as mensagens que contêm timestamps. Os Nexus 3ks são amplamente implantados em data centers (DCs) para atuar como BC e fornecer temporizações precisas aos servidores conectados à LAN (Local Area Network, rede local). O BC e o GM precisam estar acessíveis somente através da Camada 3 (conectividade ip). Pode haver várias camadas de BC entre o cliente final GM e PTP. Pode haver vários GMs para fornecer redundância e O Nexus 3K selecionará o melhor GM através do algoritmo Best Master Clock (BMC).
Contribuído por: Nishad Mohiuddeen
Editado por: Kumar Sridhar
Configuração do PTP:
N3k(config)# recurso ptp
Esse comando ativa o PTP no switch.
N3k(config)# ptp source <ip address>
Esse comando especifica o endereço IP origem dos pacotes PTP gerados pelo switch.
N3k(config)# interface slot/porta Ethernet
N3k(config-if)# ptp
Esse comando ativa o PTP em uma porta. O Cisco Nexus 3548 é um relógio de limite, portanto ele tem portas master e slave. Não há diferença de configuração entre uma porta mestre e uma porta escrava. Ambos são configurados com a opção "ptp" e o algoritmo BMC determinará se a porta é uma porta mestre ou escrava PTP.
N3k(config)# clock protocol ptp
Esse comando configura o switch para usar o PTP para atualizar o calendário do sistema. Essa configuração mantém o relógio do switch sincronizado com o PTP. Não habilitar esse comando não impedirá que o switch propague o relógio PTP em suas portas mestre. No entanto, a fonte de tempo será o relógio local do Nexus.
N3k(config)# ptp priority1 <0-255>
N3k(config)# ptp priority2 <0-255>
Configure os valores de prioridade para o relógio local (oscilador). Valor numérico mais baixo indica prioridade mais alta.
N3k(config)# sem capacidade para ptp Grandmaster
Por padrão, o Nexus 3k é "compatível com ptp Grandmaster", portanto, desative esse recurso para ser sincronizado com o GM.
Parâmetros opcionais na interface (configure para corresponder o parâmetro com GM):
N3k(config)# interface slot/porta Ethernet
N3k(config-if)# intervalo mínimo de solicitação de retardo ptp 3
N3k(config-if)#ptp anunciar intervalo 2
N3k(config-if)# intervalo de sincronização de ptp 0
Verificação:
N3k# show ptp clock
Tipo de dispositivo PTP: relógio de limite
Identidade do relógio: 00:62:ec:ff:fe:40:05:81
Domínio do relógio: 0
Número de portas PTP: 2
Prioridade 1: 1
Prioridade 2: 1
Qualidade do relógio:
Classe: 248
Precisão : 254
Deslocamento (variação de log): 65535
Deslocamento do mestre: 0
Atraso médio do caminho: 0
Etapas removidas: 0
Hora do relógio local:Seg Jun 5 00:00:23 2017
N3k# show ptp parent
PROPRIEDADES DO PTP PAI
Relógio pai:
Identidade do relógio pai: 00:0c:ec:ff:fe:08:12:b1
Número da porta pai: 1
Deslocamento pai observado (variação de log): N/A
Taxa de alteração da fase de relógio principal observada: N/A
Relógio do avô:
Identidade do relógio do avô: 00:0c:ec:ff:fe:08:12:b1
Qualidade do relógio do vovô:
Classe: 6 <<<
Precisão: 32
Deslocamento (variação de log): 22752
Prioridade 1: 128
Prioridade 2: 128
N3k# show ptp brief
status da porta PTP
—
Estado da porta
—
Escravo Eth1/5 << para GM
Mestre Eth1/24 <<<< em direção ao host
Eth1/24 Ouvindo <<< sem GM ou host válido detectado
N3k#show run | no relógio (para verificar o protocolo de clock)
N3k#show ptp counters all (para verificar o Tx e o Rx de mensagens PTP como Sincronização, Anúncio, Retardo_Req, Delay_Resp etc.)
N3k# show ptp counters interface ethernet 1/24
Contadores de Pacotes PTP da Interface Eth1/24:
—
Tipo de pacote TX RX
— —
Anúncio 558 4479
Sync 1773 8941
Acompanhamento 1754 8950
Solicitação de atraso 35 0
Resposta de atraso 0 35
PDelay Request 0 0
PDelay Res 0 0
PDelay Segulowup 0 0
Gestão 0 0
—
N3k#mostrar correções de ptp (para verificar os timestamps de correção de PTP)
correções passadas de PTP
—
Correção(ões) de tempo SUP de porta escrava Atraso(s) de caminho(s)
— — —
Eth1/24 Mon 5 05:48:45 2017 171026 -51 1806
Eth1/24 Mon Jun 5 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 Jun 5 05:48:50 2017 235577 -6 1794
Eth1/24 Mon 5 05:48:51 2017 178035 -44 1794
Eth1/24 Mon Jun 5 05:48:52 2017 178804 83 1794
Eth1/24 Mon Jun 5 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 5 05:48:56 2017 184423 -5 1794
Eth1/24 Mon 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 Jun 5 05:49:00 2017 189000 -88 1794
<snip>
Troubleshooting:
1. Verifique se você pode fazer ping no GM a partir do PTP (conectividade unicast).
2. Verifique o protocolo de relógio, que deve ser PTP, via
N3k#show run | em relógio
3. Por padrão, os N3Ks são "habilitados para o grande mestre". Precisa desabilitá-lo via
N3k# no ptp Grandmaster
4. Use o comando show ptp brief para verificar se o estado da porta é "Ouvindo".
5. Em seguida, faça uma captura de analisador de éteres.
eethanalyzer local interface inbound-hi capture-filter "udp port 320" limit-captured-frames 0 << Announce and Follow up
eethanalyzer local interface inbound-hi capture-filter "udp port 319" limit-captured-frames 0 << Sync
Do lado do PTP GM, há mensagens de Anúncio e Sincronização. TO cliente enviará Delay_Req e o GM enviará Delay_Resp.
Se nenhum pacote for capturado no analisador de eventos, isso pode ser um problema prioritário. Se o Nexus 3k receber pacotes PTP com prioridade mais baixa (ou classe de relógio em caso de prioridade igual) ele descartará o pacote e não cravará a CPU.
6. A melhor maneira é fazer capturas de pacotes (para obter o pacote entre GM e BC) para ver por que o BC não está sincronizando com o GM. A partir da captura, podemos verificar a prioridade de PTP enviada pelo GM, observando a mensagem "Announce" vinda do GM. Se a prioridade for menor (valor numérico mais alto) que a prioridade configurada no BC, altere a prioridade PTP do BC para um valor numérico mais alto.
7. Se o BC (Nexus3k) estiver sincronizado com o GM, mas os hosts/servidores de downstream não estiverem, procure "Delay_Req_Message" do host/servidor. Se não estiver presente, há algo errado com o daemon PTP no host/servidor.