Menu Principal

terça-feira, 24 de maio de 2011

Serviço NTP - FONTE: http://ntp.br/

Guia Rápido



Introdução

Uma característica básica e ao mesmo tempo importante do tempo é que ele sempre avança. O tempo não para e não volta para trás. Vários programas de computador fazem uso dessa característica e podem ter seu funcionamento comprometido se o relógio do computador inesperadamente passar a indicar um horário errado, especialmente se for um horário no passado. Isso se complica ainda mais na Internet, com vários computadores trocando informações entre si!
Infelizmente os relógios dos computadores são imprecisos e se adiantam ou se atrasam com o passar do tempo. É muito fácil também trocar seu horário para o passado ou para o futuro, mesmo acidentalmente.
O NTP é um protocolo para sincronização dos relógios dos computadores, ou seja, ele define um jeito para um grupo de computadores conversar entre si e acertar seus relógios, baseados em alguma fonte precisa de tempo, como os relógios atômicos do Observatório Nacional, que definem a Hora Legal Brasileira.
Em sua versão mais completa, o NTP é bastante robusto e preciso. Ele consulta vários outros computadores para saber a hora certa, e consegue distinguir os que falam a verdade e os que estão enganados. Ele também aprende se o relógio de seu computador é viciado em adiantar-se ou atrasar-se e usa essa informação para ajustá-lo constantemente.
Com o NTP é fácil manter o relógio do computador sempre com a hora certa, com exatidão de alguns milésimos de segundo, e só há vantagens em se fazer isso!
O NTP.br através de seus servidores públicos ajuda a manter seu computador sincronizado com a Hora Legal Brasileira e com o Tempo Universal Coordenado (UTC). Siga as instruções do seu equipamento ou sistema operacional e utilize os servidores do NTP.br, ou consulte os próximos itens, para algumas configurações mais comuns.
Os servidores do NTP.br são os seguintes:
Nome Endereço
a.st1.ntp.br 200.160.7.186 e 2001:12ff:0:7::186
b.st1.ntp.br 201.49.148.135
c.st1.ntp.br 200.186.125.195
d.st1.ntp.br 200.192.232.8
a.ntp.br 200.160.0.8 e 2001:12ff::8
b.ntp.br 200.189.40.8
c.ntp.br 200.192.232.8
gps.ntp.br 200.160.7.193 e 2001:12ff:0:7::193


Sincronização do Windows.

O Windows, desde a versão 2000, já traz consigo uma versão simplificada do NTP, o SNTP. A vantagem em utilizá-la é que não é necessário instalar nenhum outro software, basta realizar algumas configurações simples. A desvantagem é que ela não é muito exata, e seu computador pode ainda ficar adiantado ou atrasado alguns poucos segundos em relação à "hora certa".
Então, na maior parte das vezes, pode ser vantajoso utilizar um programa especializado pra fazer isso. O mesmo software que é utilizado na maioria dos servidores NTP, escrito por David Mills, que é o "pai" desse protocolo, funciona em Windows! E pode-se utilizá-lo sem problemas, mesmo que você não precise que seu computador se transforme também em um servidor de tempo.
Basta baixar o software aqui:

Instalar (clique em NTP for Windows NT/2000/XP/2003/Vista e baixe a última versão disponível, quando este site foi escrito a última versão era ntp-4.2.4p4@1.1520-modena-o-win32-setup.exe), configurando os servidores: a.st1.ntp.br, b.st1.ntp.br, c.st1.ntp.br, d.st1.ntp.br, *gps.ntp.br, *a.ntp.br, b.ntp.br e c.ntp.br. É necessário ter direitos de administrador no computador para fazer a instalação. A configuração recomendada pode ser vista à seguir, ela é um pouco diferente da gerada pelo instalador porque habilita as estatísticas e configura algumas restrições de acesso. É necessário substituir "Program Files" por "Arquivos de Programas" para Windows em português.

# arquivo de "memoria" de escorregamento de frequencia
        driftfile "C:\Program Files\NTP\etc\ntp.drift"

        # habilita as estatisticas
        enable stats
        statsdir "C:\Program Files\NTP\etc\"
        statistics loopstats peerstats clockstats
        
        # servidores publicos do ntp.br
        server a.st1.ntp.br iburst
        server b.st1.ntp.br iburst
        server c.st1.ntp.br iburst
        server d.st1.ntp.br iburst
        server gps.ntp.br iburst
        server a.ntp.br iburst
        server b.ntp.br iburst
        server c.ntp.br iburst
        
        # aqui voce pode acrescentar outros servidores
        # server outro-servidor.dominio.br iburst
         
        # restricoes de acesso
        restrict default kod notrap nomodify nopeer  
        restrict -6 default kod notrap nomodify nopeer  



Se você realizou essa instalação e quer acompanhar de perto o funcionamento do ntp e a qualidade da sua sincronização, pode instalar o NTP Time Server Monitor da Meinberg, baixando-o aqui (clique em NTP Time Server Monitor, abrirá uma nova página, depois em Download NTP Time Server Monitor for Windows NT/2000/XP/2003 Server, e finalmente na última versão do software para download; quando este site foi feito a última versão era a ntp-time-server-monitor-1.0.exe). Ele é um software opcional: você não precisa dele para que seu Windows esteja com a hora correta, nem para monitorar o funcionamento do ntp. Mas com ele fica mais fácil monitorar o ntp e visualizar de forma gráfica a qualidade da sincronização. Assista a um mini tutorial mostrando sua instalação:


Se você optou por não instalar softwares extras, mas sim utilizar os recursos do próprio Windows para manter a hora certa, basta digitar os seguintes comandos numa tela de prompt:


        C:\> net time /setsntp:"a.ntp.br b.ntp.br c.ntp.br"
        C:\> net stop w32time
        C:\> net start w32time
O servidor ou lista de servidores com os quais o Windows está sincronizando-se pode ser consultado usando:


        C:\> net time /querysntp 
Ou então clicar no relógio, depois na aba "Internet Time", habilitar a sincronização automática via Internet e realizar a configuração dos servidores. Assista a um mini tutorial em vídeo, mostrando como fazer essas configurações:

Se o seu Windows faz parte de um domínio, você pode não conseguir sincronizar individualmente seu computador. Nesse caso, leia a documentação sobre como funciona o Serviço de Tempo no Windows aqui.

Instalação para GNU/Linux e outros sistemas baseados em Unix.

Para GNU/Linux, FreeBSD, OpenBSD e outros sistemas baseados em Unix, utilize o método de instalação apropriado para sua distribuição. Para algumas distribuições a tabela abaixo indica uma das possíveis formas de instalação. Pode haver métodos alternativos para a instalação, por isso é recomendável consultar a documentação da sua distribuição.
Pode-se também realizar a instalação manual, baseada nos fontes, para isso consulte a seção Utilizando deste site. Se você estiver instalando o ntp com a finalidade de ser um servidor de tempo para sua rede, é recomendável fazer a instalação à partir dos fontes.
Sistema Instalação
Debian GNU/Linux e sistemas que usam apt (Ubuntu, Kurumin, Conectiva, etc) root@host# apt-get update
root@host# apt-get install ntp
RedHat GNU/Linux e sistemas que usam rpm (Fedora, etc): root@host# yum install ntp
Gentoo GNU/Linux: root@host# emerge sync
root@host# emerge ntp
Slackware GNU/Linux: root@host# slackpkg update
root@host# slackpkg install ntp
FreeBSD e OpenBSD # cd /usr/ports/net/ntp
# make install

As distribuições acima podem ter métodos alternativos para a instalação, verifique a documentação de sua distribuição. Para outras distribuições verifique o método de instalação recomendado na documentação. Pode-se também realizar a instalação manual, baseada nos fontes, para isso consulte a seção Utilizando deste site.
Após instalar o ntp, crie o arquivo ntp.drift com o comando:


       # touch /etc/ntp.drift
Se a hora de seu computador estiver com um erro maior do que 16min o ntp pode não funcionar. Se for o caso, ajuste a hora manualmente, antes de iniciar o ntpd. Ou então execute o ntpd com os parâmetros abaixo, para um primeiro ajuste, e depois inicie o serviço:

# ntpd -q -g 
Substitua o conteúdo do arquivo de configuração padrão /etc/ntp.conf pela configuração abaixo.

# "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

        # 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.st1.ntp.br iburst
        server b.st1.ntp.br iburst
        server c.st1.ntp.br iburst
        server d.st1.ntp.br iburst
        server gps.ntp.br iburst
        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 -6 default kod notrap nomodify nopeer  
Após modificar a configuração é preciso reiniciar o ntpd.
Assista a um mini tutorial em vídeo que mostra a instalação num sistema Debian GNU/Linux:


 

Sincronizando roteadores

Cisco

Configure os servidores na configuração global. O ideal é que você use seus servidores ntp locais, que já estarão sincronizados com o ntp.br. Mas se sua rede for pequena e você não tiver servidores ntp locais, pode utilizar os servidores do NTP.br diretamente:

ntp server a.st1.ntp.br 
        ntp server b.st1.ntp.br 
        ntp server c.st1.ntp.br 
        ntp server d.st1.ntp.br 
        ntp server gps.ntp.br 
        ntp server a.ntp.br
        ntp server b.ntp.br
        ntp server c.ntp.br

Desabilite o serviço ntp nas interfaces onde não for necessário (interfaces externas, por exemplo):

interface Eth0
          ntp disable 

Indique a interface que será utilizada para o ntp
ntp source Eth0 

É possível verificar o funcionamento do ntp utilizando os comandos:

show ntp status
          show ntp associations 

Juniper

Inclua a diretiva server no nível hierárquico [edit system ntp]. Inclua também a diretiva boot-server, que indica o servidor a ser consultado no momento da inicialização do roteador. Utilize IPs e não nomes. O ideal é que você use seus servidores ntp locais, que já estarão sincronizados com o ntp.br. Mas se sua rede for pequena e você não tiver servidores ntp locais, pode utilizar os servidores do NTP.br diretamente:

[edit system ntp]
          boot-server 200.160.0.8;
          server 200.160.0.8;
          server 200.189.40.8; 
          server 200.192.23 

É possível verificar o funcionamento do ntp utilizando os comandos:

show ntp status
          show ntp associations 

Ferramentas de Monitoração

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
Se for obtida uma resposta como:

         server:/home/moreiras# ntpq -c pe
         ntpq: read: Connection refused
Significa que o serviço ntp não está funcionando. Uma reposta normal se parece com essa:


      remote        refid         st   t  when  poll  reach  delay   offset  jitter
    ================================================================================
    +a.ntp.br     200.160.7.192    2   u   10    64    337  294.756  35.596   0.521
    +b.ntp.br     200.160.7.186    2   u    8    64    377  226.294   2.658   0.229
    *c.ntp.br     200.160.7.192    2   u    -    64    377  208.758   4.026   0.424

Pode-se ver os 3 servidores do projeto ntp.br:

remote        refid         st   t  when  poll  reach  delay   offset  jitter
    ================================================================================
    +a.ntp.br     200.160.7.192    2   u   10    64    337  294.756  35.596   0.521
    +b.ntp.br     200.160.7.186    2   u    8    64    377  226.294   2.658   0.229
    *c.ntp.br     200.160.7.192    2   u    -    64    377  208.758   4.026   0.424 

O * em c.ntp.br significa que ele foi escolhido como system peer, ou seja, a principal referência na sincronização do sistema. Os + em a.ntp.br e b.ntp.br, significa que eles também estão sendo usados, mas com peso menor, para obter a hora certa.
Pode-se observar também o offset, ou deslocamento, delay, ou atraso, e o jitter, ou variação, todos em milisegundos:

remote        refid         st   t  when  poll  reach  delay   offset  jitter
    ================================================================================
    +a.ntp.br     200.160.7.192    2   u   10    64    337  294.756  35.596   0.521
    +b.ntp.br     200.160.7.186    2   u    8    64    377  226.294   2.658   0.229
    *c.ntp.br     200.160.7.192    2   u    -    64    377  208.758   4.026   0.424

O atraso significa o tempo de ida e volta dos pacotes. O valor do atraso não é tão importante, mas o ntp é sensível à simetria da rede. Ou seja, o ntp espera que o tempo de ida dos pacotes seja igual ao da volta. Isso geralmente está relacionado a atrasos pequenos.
O deslocamento significa o quanto o relógio local tem de ser adiantado ou atrasado para se igualar ao relógio do servidor. Quanto menor o valor, melhor. Valores de alguns milisegundos podem ser considerados normais.
A variação é calculada à partir de diversas medidas de deslocamento. Representa o quanto essas medidas variam entre si. Valores pequenos são melhores. Valores grandes podem indicar problemas de conectividade.
A variável reach é um número octal que indica o resultado das últimas 8 tentativas de acesso ao servidor.

remote        refid         st   t  when  poll  reach  delay   offset  jitter
    ================================================================================
    +a.ntp.br     200.160.7.192    2   u   10    64    337  294.756  35.596   0.521
    +b.ntp.br     200.160.7.186    2   u    8    64    377  226.294   2.658   0.229
    *c.ntp.br     200.160.7.192    2   u    -    64    377  208.758   4.026   0.424 

O valor 377 indica que as últimas 8 consultas ao servidor obtiveram sucesso. Outros valores indicam falhas.
ntpq -c rl
Uma reposta normal se parece com essa:


          server:/home/moreiras# ntpq -c rl

          assID=0 status=0654 leap_none, sync_ntp, 5 events, event_peer/strat_chg,
          version="ntpd 4.2.2p4@1.1585-o Sun Mar  4 13:21:35 UTC 2007 (1)",
          processor="i686", system="Linux/2.6.9-023stab043.1-smp", leap=00,
          stratum=3, precision=-20, rootdelay=224.336, rootdispersion=35.121,
          peer=4764, refid=200.192.232.8,
          reftime=cb30d5b2.559c02d8  Thu, Jan 10 2008 15:34:42.334, poll=7,
          clock=cb30d6d8.ee2e88ee  Thu, Jan 10 2008 15:39:36.930, state=4,
          offset=10.396, frequency=0.000, jitter=14.973, noise=8.978,
          stability=0.000, tai=0
Dentre as várias informações obtidas, pode-se destacar a versão do ntp, em verde; o estrato, em vermelho (3 é o nível esperado, já que os servidores públicos do ntp.br são estrato 2); e o deslocamento, em milisegundos, em azul, que indica quanto o relógio local tem de ser adiantado ou atrasado para chegar à hora certa.

Nenhum comentário:

Postar um comentário