Sincronizando o Linux com a Hora Legal Brasileira usando o NTP.br

O NTP define um jeito para um grupo de computadores conversar entre si e acertar seus relógios, baseados em alguma fonte confiável de tempo. Neste artigo vamos falar sobre como funciona o NTP. Apresentaremos também o projeto NTP.br, que fornece a Hora Legal Brasileira para a Internet. E mostraremos como sincronizar seu Linux.

[ Hits: 141.754 ]

Por: Antonio M. Moreiras em 31/01/2008 | Blog: http://www.ceptro.br


Usando o ntpq para monitorar o NTP



O ntp traz consigo algumas ferramentas que permitem monitorar seu funcionamento. A mais importante é o ntpq. A seguir são apresentados dois comandos do ntpq que permitem visualizar algumas variáveis importantes do ntp:

ntpq -c pe

Uma reposta normal se parece com essa:

# ntpq -c pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ttm.nic.br      .GPS.            1 u    8   16  377    0.320   -0.008   1.340
+server20.pop-df .GPS.            1 u   11   16  377   15.608   -0.002   0.491
 201.63.254.68   .INIT.          16 u    -   16    0    0.000    0.000   0.000
+santuario.pads. .GPS.            1 u   59   64  377    6.852   -0.002   0.045
xtime.nist.gov   .ACTS.           1 u   56   64  377  282.494  -45.091   1.718
-ntp2.usno.navy. .USNO.           1 u   52   64  377  135.380    4.391   7.449
-a.ntp.br        200.160.7.192    2 u   15   16  377    0.362    0.424   0.048
-b.ntp.br        200.160.7.186    2 u   17   16  376   17.544    1.562   0.134
-c.ntp.br        200.160.7.192    2 u   10   16  377   15.680    0.393   0.012
-clock.trit.net  192.12.19.20     2 u   42   64  377  296.580  -29.083   0.574
-Stone.Rodents.M 65.71.16.189     3 u   47   64  377  249.918   -7.678   0.963
-rbi0261.giga-dn 192.53.103.104   2 u   49   64  377  262.197   18.316   0.845
-einstein.postre 66.187.233.4     2 u   43   64  377  341.553   34.962  38.449

A primeira coluna apresenta os tally codes, que significam o seguinte:
  • * o system peer, par do sistema, ou principal fonte de sincronização;
  • o o system peer, par do sistema, ou principal fonte de sincronização, mas apenas se a fonte for o sinal de um pulso por segundo (PPS);
  • + candidate, ou um relógio sobrevivente, indica que é uma boa fonte de sincronização e que está sendo utilizada no momento, juntamente com o par do sistema, para ajustar o relógio local;
  • - outlyer, ou relógio afastado, indica que é uma boa fonte de sincronização, mas não sobreviveu ao algoritmo de agrupamento, ou seja, no momento há opções melhores e ela não está sendo utilizada;
  • x falseticker, ou relógio falso, indica que não é uma boa fonte de sincronização, foi descartada já no algoritmo de seleção de relógios por discordar muito das outras fontes;
  • . excess, excesso: a fonte foi rejeitada por não estar entre as 10 melhores;
  • (espaço em branco) reject, relógio rejeitado porque não responde, porque há um loop na sincronização, ou porque ele apresenta uma distância na sincronização enorme.

A seguir são apresentados os significados das demais colunas:
  • remote = nome ou IP da fonte de tempo;
  • refid = a referência (par do sistema) à qual o servidor de tempo remoto está sincronizado;
  • st = o estrato da fonte de tempo;
  • when = quanto segundos se passaram desde a última consulta à essa fonte de tempo;
  • poll = de quantos em quantos segundos essa fonte é consultada;
  • reach = um registrador de 8 bits que vai girando para a esquerda representado na forma octal, que mostra o resultado das últimas 8 consultas à fonte de tempo: 377 = 11.111.111 significa que todas as consultas foram bem sucedidas; outros número indicam falhas, por exemplo 375 = 11.111.101, indica que a penúltima consulta falhou;
  • delay = atraso, ou tempo de ida e volta, em milissegundos, dos pacotes até essa fonte de tempo;
  • offset = deslocamento, ou quanto o relógio local tem de ser adiantado ou atrasado, em milissegundos, para ficar igual ao da fonte de tempo;
  • jitter = a variação, em milissegundos, entre as diferentes medidas de deslocamento para essa fonte de tempo.

ntpq -c rl

Uma reposta normal se parece com essa:

# ntpq -c rl status=0674 leap_none, sync_ntp, 7 events, event_peer/strat_chg,
version="ntpd [email protected] Fri Dec 21 12:11:30 UTC 2007 (1)",
processor="i386", system="FreeBSD/6.2-RELEASE-p9", leap=00, stratum=2,
precision=-19, rootdelay=0.190, rootdispersion=9.288, peer=55053,
refid=200.160.7.165,
reftime=cb30fba4.4923180b Thu, Jan 10 2008 18:16:36.285, poll=4,
clock=cb30fc19.0b973e9e Thu, Jan 10 2008 18:18:33.045, state=4,
offset=-0.107, frequency=31.729, jitter=0.039, noise=0.016,
stability=0.007, tai=0

Enquanto o ntpq -c pe apresenta as variáveis relacionadas a cada associação, ou seja, a cada fonte de tempo, o ntpq -c rl apresenta as variáveis (globais) do sistema. As mais importantes estão indicadas a seguir:
  • version = versão do ntp;
  • stratum = estrato do servidor local;
  • precision = precisão indicada com o expoente de um número base 2;
  • rootdelay = atraso ou tempo de ida e volta dos pacotes até o estrato 0, em milissegundos;
  • rootdispersion = erro máximo da medida de offset em relação ao estrato 0, em milissegundos;
  • refid = o par do sistema, ou principal referência;
  • offset = deslocamento, quanto o relógio local tem de ser adiantado ou atrasado para chegar à hora certa (hora igual à do estrato 0);
  • frequency = erro na freqüência do relógio local, em relação à freqüência do estrato 0, em partes por milhão (PPM).

Página anterior     Próxima página

Páginas do artigo
   1. A importância de manter o relógio sincronizado.
   2. O NTP
   3. O projeto NTP.br
   4. Instalando o NTP no Linux
   5. Configurações adicionais
   6. Usando o ntpq para monitorar o NTP
   7. Interpretando os logs do NTP
   8. A questão do horário de verão
   9. Não use ntpdate no cron: use o daemon ntpd!
   10. Concluindo e apresentando referências para consulta
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Linux imprimindo em Windows via rede

Arch Linux - Instalação a partir de imagem híbrida

Instalando Ubuntu GNU/Linux em um Macbook

Horário de verão brasileiro até 2038

Rsyslog - Configurando o Centralizador de Logs

  
Comentários
[1] Comentário enviado por sdrconsulting em 01/02/2008 - 08:38h

Antonio,

Há muito tempo eu não via um artigo de tão boa qualidade e bem estruturado. Parabéns.

Tenho certeza que muitos iniciantes não sabem o que é e para que serve o NTP, lendo o seu artigo ele saberá " tudo" .

Abs.

Sylvio Carlos

[2] Comentário enviado por jmadrid em 01/02/2008 - 09:02h

Legal Moreiras, tava dando uma lida no artigo e conhecendo coisas bem interessantes e quando me vejo, quem escreveu foi tu. Muito bom artigo.

[]s
João Madrid

[3] Comentário enviado por tcorreia em 01/02/2008 - 15:46h

Moreiras,

Mais uma vez você surpreende a comunidade de software livre com o vosso trabalho. Parabéns pelo projeto e publicação na comunidade de software livre, sabemos que esse projeto foi o primeiro e com certeza não será o único.

Boa Sorte!!!

Thiago A. Correia

[4] Comentário enviado por Ruy_Go em 02/02/2008 - 19:30h

ótimo artigo amigo, aqui foi perfeito mesmo.....

Obrigado e muito sucesso para voce!

[5] Comentário enviado por elgio em 03/02/2008 - 21:20h

Muitos aqui acham que eu só comento em artigos quando não gosto.

Hehehehe. Uma fama que adquiri aqui!

Mas Antonio, teu artigo é exatamente aquilo que eu considero um artigo. Estou cansado de ver no VOL apenas receitas de bolo, com uma série de comandos que fazem algo mesmo que o leitor não entenda para que serve.

Este teu excelente artigo é uma rara excessão. Foste muito a fundo no porquê das coisas, como é... Um OÁSIS no meio de um deserto de artigos fracos e sem conteúdo.

MEUS PARABÉNS!

[6] Comentário enviado por capitainkurn em 04/02/2008 - 15:06h

Ótima artigo Antônio, de grande utilidade e com ótima didática. Ví que é novo aqui no VOL, por favor contiunue nos brindando com artigos tão bons e de tanta utilidade para o dia a dia dos profissionais.
Este já adcionei a meus favoritos.

[7] Comentário enviado por albfneto em 09/11/2008 - 22:23h

Olá. eu tenho uma dica parecida, posterior a sua. O servidor do NIC, Stratum 1, não é público?

[8] Comentário enviado por antonio.moreiras em 10/11/2008 - 10:32h

Olá... Hoje os servidores estrato 1 do NTP.br não são públicos. Apenas a, b e c.ntp.br, que são estrato 2.

Isso acontece basicamente porque eles são appliances (spectracom, symmetricom) e não confiamos em certos aspectos de desempenho e segurança.

Mas não há, na prática, degradação considerável na qualidade do tempo fornecido.

Antonio M. Moreiras.

[9] Comentário enviado por albfneto em 30/03/2009 - 12:04h

Ola.
Estou com um problema, meu comando ntpd, não funciona no sabayon....
a mensagem é:

[email protected] ~ $ sudo ntpd -q -g
*** WARNING *** The program 'ntpd' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=ntpd>
[email protected] ~ $ sudo ntpd -q -g
*** WARNING *** The program 'ntpd' uses the Apple Bonjour compatibility layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=ntpd>


Abaixo, este é meu ntp.conf:

# NOTES:
# - you should only have to update the server line below
# - if you start getting lines like 'restrict' and 'fudge'
# and you didnt add them, AND you run dhcpcd on your
# network interfaces, be sure to add '-Y -N' to the
# dhcpcd_ethX variables in /etc/conf.d/net

# Name of the servers ntpd should sync with
# Please respect the access policy as stated by the responsible person.
#server ntp.example.tld iburst

# Common pool for random people
#server pool.ntp.org

# Pools for Gentoo users

##
# A list of available servers can be found here:
# http://www.pool.ntp.org/
# http://www.pool.ntp.org/#use
# A good way to get servers for your machine is:
# netselect -s 3 pool.ntp.org
##

# you should not need to modify the following paths
# driftfile /var/lib/ntp/ntp.drift

#server ntplocal.example.com prefer
#server timeserver.example.org

# Warning: Using default NTP settings will leave your NTP
# server accessible to all hosts on the Internet.

# If you want to deny all machines (including your own)
# from accessing the NTP server, uncomment:
#restrict default ignore


# To deny other machines from changing the
# configuration but allow localhost:
restrict default nomodify nopeer
restrict 127.0.0.1


# To allow machines within your network to synchronize
# their clocks with your server, but ensure they are
# not allowed to configure the server or used as peers
# to synchronize against, uncomment this line.
#
# restrict 192.168.0.0 mask 255.255.255.0 nomodify nopeer notrap
restrict default kod notrap nomodify nopeer noquery noserve

# servidores varios
server ntp.usp.br iburst
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst
server br.pool.ntp.org iburst

# "memoria" para o escorregamento de frequência do micro
# pode ser necessário criar esse arquivo manualmente com
# o comando touch ntp.drift
driftfile /etc/ntp.drift

# estatísticas do ntp que permitem verificar o histórico
# de funcionamento e gerar gráficos
statsdir /var/log/ntpstats/
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

Coloquei o servidor de tempo da USP como primeiro, pq. trabalho na USP, mas ele é Stratum 2, também.
O Stratum 1 do Observatório Nacional, também não é mais público?
Uma curiosidade minha Stratums 3 e 4 ainda são usados ou não mais?

[10] Comentário enviado por antonio.moreiras em 30/03/2009 - 12:32h

Olá Alberto,

à princípio essa mensagem é só um warning alertando para que os desenvolvedores mudem a forma de acesso a uma determinada biblioteca. Ela não indica que não esteja funcionando.

Peço que publique os resultados dos comandos:

ntpq -c rl

e

ntpq -p

para que eu possa tentar ajudá-lo.

Se preferir, entre em contato via email: [email protected] ou no canal #ntp.br do irc.freenode.net.

O ON tem 2 servidores públicos: ntp.on.br e ntp2.on.br. Você pode também utilizá-los.

[]s
Moreiras.

[11] Comentário enviado por albfneto em 30/03/2009 - 12:44h

Olá. postando a saída dos comandos.
meu micro fica 3 horas atrasado e o comando ntpd, não acerta a hora.
Saida dos comandos:

[email protected] ~ $ sudo ntpq -c rl
assID=0 status=c011 sync_alarm, sync_unspec, 1 event, event_restart,
version="ntpd [email protected] Sun Feb 8 21:28:54 UTC 2009 (1)",
processor="x86_64", system="Linux/2.6.28-sabayon", leap=11, stratum=16,
precision=-20, rootdelay=0.000, rootdispersion=2.205, peer=0,
refid=INIT, reftime=00000000.00000000 Thu, Feb 7 2036 4:28:16.000,
poll=6, clock=cd7b3c3f.94b88942 Mon, Mar 30 2009 9:40:31.580, state=0,
offset=0.000, frequency=0.000, jitter=0.001, noise=0.001,
stability=0.000, tai=0

[email protected] ~ $ sudo ntpq -p
No association ID's returned

Acabei de ver seu outro post, conm o ntp.conf, bem completo. legal são vários os servidores que podem ser usados.

http://www.vivaolinux.com.br/etc/ntp.conf

[12] Comentário enviado por leandromoreirati em 11/05/2011 - 09:01h

Caros,

Estou montando um servidort NTP e estou precisando de ajuda, pois ele sincroniza com o servidor stratum 2 sem problemas mas meu servidores windows 2003/2008 nao sincronizam com ele retona TIME OUT.

O firewall do windows esta desativado e abaixo segue as minhas configurações do NTP

# "memoria" para o escorregamento de frequencia do micro
# pode ser necessario criar esse arquivo manualmente com
# o comando touch ntp.drift
#driftfile /etc/ntp.drift
driftfile /var/lib/ntp/ntp.drift

# estatisticas do ntp que permitem verificar o historico
# de funcionamento e gerar graficos
statsdir /var/log/ntpstats/
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

# servidores publicos do projeto ntp.br
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst

# outros servidores
# server outro-servidor.dominio.br iburst

# configuracoes de restricao de acesso
#restrict default kod notrap nomodify nopeer
restrict 10.0.0.0 mask 255.0.0.0 kod notrap nomodify nopeer notrust


Desde já agradeço a atenção.

Att.

Leandro Moreira


Contribuir com comentário