NTP está funcionando, o relógio do sistema ainda não está no tempo - o que dá?

24

Um servidor Debian Stable (5.0.3) está sendo executado ntpde conectado à Internet. Ainda assim, o relógio do sistema está errado cerca de 5 minutos.

$ /etc/init.d/ntp status
NTP server is running..

Partes relevantes (eu acho) de /etc/ntp.conf:

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

Eu sei que o NTP não necessariamente traz o relógio no tempo imediatamente. Ainda, quantas horas ou dias você precisa esperar para razoavelmente esperar que o NTP tenha feito seu trabalho e sincronizado o relógio?

Estou perdendo algum outro arquivo ou opção de configuração ou apenas fazendo algo errado? O ntp (em vez de, por exemplo, o ntpdate ) é a ferramenta certa para isso? Existe alguma maneira rápida de verificar se a configuração está correta e se os servidores NTP escolhidos retornam a hora correta?

Edit : saída de ntpq -pis:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ns1.nexellent.n .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 dnscache-madrid .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 sinister.wzw.tu .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 dnscache-frankf .INIT.          16 u    - 1024    0    0.000    0.000   0.000

Edit 2 : Acontece que o ntpdate -u 0.europe.pool.ntp.orgcomando ( sugerido por brent ) retorna

17 Dec 17:37:29 ntpdate[14195]: no server suitable for synchronization found

... mesmo em outras máquinas que comandam funcionem bem. Portanto, veremos as configurações de rede / firewall para este servidor específico (que está em uma rede diferente, acessada pela VPN).

Resolução : o culpado não era o firewall local em nosso servidor, mas as configurações de firewall em algum lugar da rede ao redor. Por isso, pedimos ao provedor de hospedagem de servidores que permitisse o NTP para nossas máquinas, e agora ele funciona bem. Por exemplo, ntpq -pagora retorna:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ns1.eunet.fi    192.36.144.23    2 u   10   64    1    1.043    0.258   0.001
 ns2.eunet.fi    62.142.10.44     2 u    9   64    1    0.671    0.135   0.001
 ns3.eunet.fi    62.142.10.44     2 u    8   64    1    0.750    0.277   0.001

(Também mudamos para servidores eunet.fi reiniciados pela empresa de hospedagem, mas isso não vem ao caso.) Os comandos na resposta de brent foram úteis porque me fizeram perceber que o problema estava no acesso de rede aos servidores NTP, não na configuração NTP em si. Obrigado a todos!

Jonik
fonte
1
Qual é a saída de 'ntpq -p'?
jscott

Respostas:

23

Pare o ntpd, execute ntpdate -u 0.europe.pool.ntp.org3 vezes, inicie o ntpd, verifique ntpq -p, o atraso, o deslocamento e a tremulação devem ser diferentes de zero.

brent
fonte
1
E o campo 'when' deve indicar o tempo desde o último pacote recebido.
jscott
O comando ntpdate retorna algo como "17 dez 17:37:29 ntpdate [14195]: nenhum servidor adequado para sincronização encontrado". No entanto, em outras máquinas, o mesmo comando fornece algo significativo! Estou começando a suspeitar que algumas configurações de firewall para esse servidor específico causa o problema ...
Jonik
Veremos amanhã se conseguirmos resolver essas configurações de rede / firewall. Por enquanto, vou aceitar isso, porque provavelmente o problema está relacionado a eles. Obrigado por me indicar a direção certa!
21711 Jonik
3
O ntpdatecomando funciona e sincroniza meu relógio, mas todos os valores ainda são 0depois que eu reinicio ntp. Por que funcionaria se eu o fizesse manualmente, mas não usando ntpd? Estou no Debian.
Mike
fazer isso a partir do ntpdate em vez de corrigir o problema com o ntp é bastante inútil a longo prazo. e eu não saberia nenhuma razão para executá-lo três vezes.
Florian Heigl
1

Se eu tivesse que adivinhar o porquê e supondo que você tenha conectividade de rede e possa ver o seu NTP Host sem nenhum problema, pode ser que você tenha se desviado para um grande valor. Se a diferença horária for maior que X (Desculpe, não me lembro o que X é improvável), um aviso será impresso e a hora não será sincronizada. Você pode verificar suas mensagens de syslog para ver se há casos disso.

Se esse for o caso, interrompa o NTP, execute o host ntpdate e reinicie o NTPD. Isso forçará uma sincronização de tempo e começará a mantê-lo sincronizado daqui para frente, se você continuar a desviar tanto, poderá ter um problema de hardware.

Gary Steven
fonte
Obrigado. Neste caso, o problema parece ser que não podemos ver o servidor NTP sem problema - ver os comentários para a resposta de brent: serverfault.com/questions/95342/...
Jonik
1

As colunas "alcance", sendo 0, sugerem que não foi possível conversar com os servidores; iirc gradualmente recebe bits para mostrar como foram as últimas 8 tentativas (então 377 é bom, 0 é ruim).

araqnid
fonte
Sim, isso provavelmente é o problema; ver comentários para esta resposta: serverfault.com/questions/95342/...
Jonik