Como é que um dos meus interruptores desliga por dois minutos, apesar do ntp?

11

Acabei de notar por puro acaso que um dos meus comutadores Cisco 4500 está com o relógio dando errado: está mais de 2 minutos atrás , apesar do NTP aparentemente funcional. Na minha opinião, nem um único segundo deve ser considerado aceitável pelos sistemas envolvidos. Além disso, eu não teria notado a diferença nos diagnósticos, se não tivesse comparado com um simples relógio de parede.

Alguns detalhes

Aqui estão as informações de ntp para alguns dos meus hosts (10.0.99.1, 10.0.99.2, 10.0.1.119, 10.0.99.241) que estão se referindo parcialmente um ao outro para fallback, mas principalmente devem, em última análise, sincronizar com o 10.0.0.1, que novamente puxa o tempo de fora. Portanto, a discrepância de tempo não pode resultar de diferentes fontes de tempo originais. Como as observações me deixaram um tanto paranóica, "tem hora correta" dos seguintes meios: show clock(ou date) produzi uma saída que corresponde ao meu relógio de parede e ao relógio do sistema local (o que é bom de acordo com http://time.is ) com um erro certamente abaixo de 1 segundos (precisão de eu pressionar ENTER enquanto assisto meu relógio local)

10.0.1.119 (Ubuntu) tem hora correta

$ ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+10.0.99.1       10.0.0.1         3 u  855 1024  377    0.904   -2.658   0.113
*10.0.0.1        130.149.17.8     2 u  266 1024  377    0.253    0.909   0.127

10.0.99.241 (Cisco 2960) tem hora correta

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.99.1       10.0.0.1         3     28     64   377  1.462  85.288 19.758
+~10.0.99.2       10.0.1.119       4     29     64   377  1.297  83.515  5.369
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.2 (Cico 4500) tem hora correta

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
+~10.0.99.1       10.0.0.1         3      6   1024   111  1.148  -1.618 42.875
*~10.0.1.119      10.0.0.1         3     31   1024   377  0.043   1.687  1.064
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

10.0.99.1 (Cisco 4500) fica para trás em cerca de 2 minutos 6 segundos

#sho ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~10.0.0.1        130.149.17.8     2    274   1024   377 15.625   3.681 30.403
+~10.0.99.2       10.0.1.119       4    415   1024   376 15.625   0.855 33.276
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

#sho ntp status 
Clock is synchronized, stratum 3, reference is 10.0.0.1      
nominal freq is 250.0000 Hz, actual freq is 249.9988 Hz, precision is 2**6
reference time is DAD8B428.54C6BAEA (20:36:24.331 MESZ Sat May 7 2016)
clock offset is 3.6818 msec, root delay is 32.80 msec
root dispersion is 71.74 msec, peer dispersion is 30.40 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000004720 s/s
system poll interval is 1024, last update was 683 sec ago.

Questões

  1. Como é que 10.0.99.1 está tão longe?
  2. Como os sistemas sincronizados com 10.0.99.1 estão corretos?
  3. Como devo aprender com a saída da sho ntp status10.0.99.1 que o relógio está realmente totalmente fora de sincronia (comparado a todos os hosts e relógios de referência mencionados em sho ntp asso)? Para mim, a saída parece totalmente um "Eu sou totalmente feliz" muito elaborado.

EDIT: Pela demanda popular, a produção desho clock detail

10.0.99.1

#sho clock detail 
13:06:38.605 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016

10.0.99.2

#sho clock detail 
13:10:54.083 MESZ Tue May 10 2016
Time source is NTP
Summer time starts 02:00:00 MEZ Sun Mar 27 2016
Summer time ends 03:00:00 MESZ Sun Oct 30 2016
Hagen von Eitzen
fonte
Não consigo localizar nenhum sistema no qual os endereços IP que você configurou como servidores ntp usados ​​por cada dispositivo. E vejo um loop e alguns usando um ao outro como servidores ntp. Acredito que nesses casos você deve especificá-los como pares ntp em vez de servidores. Embora eu deva admitir que não sei exatamente a diferença que faz, se você a especificar como ponto ou servidor. Além disso, não estou convencido de que seja uma boa ideia deixar tudo sincronizar através de um único host ( 10.0.0.1). Mas não acho que nenhuma das minhas observações possa explicar diretamente a causa do seu problema atual.
Kasperd
2
Um problema flagrante com sua configuração de ntp é que cada host está configurado com o pior número possível de fontes de tempo. "Um homem com um relógio sabe que horas são, um homem com dois relógios nunca tem certeza ..." Qualquer outro número é melhor que dois, quatro é provavelmente a melhor escolha, dá uma almofada se um estiver indisponível e ainda sai três fontes.
dfc
4
Toda a sua configuração NTP precisa ser reconsiderada. Você precisa trabalhar com os níveis de estrato. Como o @kasperd apontou, você pode ter um problema com um loop. Você deve sincronizar apenas com servidores com um nível mais baixo de estrato e os que estão no mesmo nível de estrato podem ser emparelhados, mas não devem se usar como servidores. Os dispositivos emparelhados ainda precisam de um ou mais servidores em um nível mais baixo de estrato como fonte (s) autorizada (s), mas tentarão se alinhar a outros pares. Não use dispositivos ocupados (por exemplo, comutadores principais) como servidores NTP.
Ron Maupin
3
Algo muito estranho está acontecendo. Toda a saída NTP é razoavelmente normal e mostra boa sincronização. No entanto, seu comando para obter tempo do dispositivo deu um tempo muito distante. Isso sugere que, por algum motivo, o dispositivo com o tempo de folga não está ajustando o relógio do sistema a partir do subsistema ntp.
David Schwartz
1
Parece realmente que você encontrou um bug e provavelmente o único caminho a seguir é reiniciá-lo e esperar que ele desapareça ou entre em contato com a Cisco.
Derobert 14/05

Respostas:

2

Estou um pouco relutante em postar isso como resposta, porque a causa original ainda não está clara. No entanto, o problema parece estar resolvido - pelo menos por enquanto.


Após os comentários feitos por htm11h , decidi atualizar o firmware. E, de fato, agora que estou executando um firmware mais recente, o relógio parece coincidir com a hora correta.

Mas isso significa que o novo firmware foi a solução? Infelizmente não. Na minha primeira tentativa de carregar o novo firmware, esqueci de alterar o registro de configuração, que ainda estava no padrão de fábrica. Portanto, minha primeira reinicialização terminou na mesma imagem ROM original que o roteador estava executando há quase quatro anos (ou seja, desde a inicialização). E, no entanto, isso foi suficiente para que o relógio fizesse um grande ajuste e depois continuasse sincronizado. Isso sugere que uma simples reinicialização pode ter ajudado - temporariamente. Por sua vez, isso significa que o tempo agora correto mostrado com o firmware mais recente ainda pode se afastar do tempo ntp nos próximos anos. Levará alguns dias até que eu possa dizer com segurança se o relógio perdeu ou não cerca de 5 segundos por dia ...

Por enquanto, o caso está encerrado.

Hagen von Eitzen
fonte
1

Trabalhei bastante com o projeto NTP Pool desde meados dos anos 90 e executei vários servidores NTP Stratum-1 GPS Synced aqui. Como outros já disseram, você precisa de mais de 2 servidores para obter tempo. Eu costumo usar 4 aqui pelas razões expostas por Ron Maupin acima. Além disso, conforme listado, você precisa procurar loops e definir itens como servidores versus pares.

O desvio de tempo pode ser devido a um bug conhecido no IOS que foi corrigido nesta atualização do IOS, que trata do ntp.drift não ser excluído ou atualizado corretamente e, portanto, o problema do desvio. Além disso, 4 anos sem reinicialização ou atualização devem ter deixado você em um local bastante ruim em termos de segurança, pois as atualizações de segurança do IOS são bastante frequentes.

Aqui está um excelente post sobre como configurar o NTP no Cisco IOS http://packetlife.net/blog/2011/mar/28/cisco-ios-clocks-and-ntp/

Espero que isso seja útil. Por favor, pergunte se você tem mais perguntas ou problemas.

George Kasica
fonte
0

Divulgação completa: ocasionalmente, apenas brinquei com as configurações do switch, e de modo algum sou um especialista em NTP.

Dito isso, eu costumava ver o daemon NTP nos sistemas RHEL 5.x (sim, vou voltar, mas você disse que seu switch tinha uma imagem de ~ 4 anos ...) ficar preso em um estado "feliz" , onde parecia achar que estava perfeitamente sincronizado, mas claramente não estava. Usaríamos uma sessão do ClusterSSH para executar "date" em todos os sistemas simultaneamente, e isso às vezes mostraria até 5 minutos de desvio entre os sistemas. Se bem me lembro, só conseguimos resolver o problema reiniciando o daemon e, finalmente, fizemos o cron reiniciar o serviço todas as noites ...

Não é de forma alguma uma solução ideal, mas você pode adotar uma abordagem semelhante com um trabalho cron para conectar-se ao comutador e iniciar uma reinicialização ou, de alguma forma, "chutar" o daemon NTP no comutador?

Espero que isto ajude!

Dan
fonte