Comitê Gestor da Internet no Brasil
CGI.brRegistroCERT.br
 

tit-utilizando.png

 

 

Voltar

Instalação do NTP à partir dos fontes

A instalação à partir dos fontes permite trabalhar com a última versão do ntp. Permite também ter certeza de que se está rodando o software padrão, sem modificações de terceiros. Verifique no site do NTP http://www.ntp.org/downloads.html qual o link para o download da versão mais recente. Na época em que essa página foi escrita a versão mais recente era 4.2.4p4.

Faça o download do arquivo, descompacte-o, entre na pasta criada e então rode o script de configuração, compile e instale:

root@servidor# wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.2p4.tar.gz
root@servidor# tar zxvf ntp-4.2.4p4.tar.gz
root@servidor# cd ntp-4.2.4p4
root@servidor:~/ntp-4.2.4p4# ./configure
root@servidor:~/ntp-4.2.4p4# make
root@servidor:~/ntp-4.2.4p4# make install

Substitua o conteúdo do arquivo de configuração padrão /etc/ntp.conf pela configuração abaixo.

root@servidor:~/ntp-4.2.4p4# wget http://www.ntp.br/xnix/ntp.conf
root@servidor:~/ntp-4.2.4p4# cp ./ntp.conf /etc/ntp.conf

Esse arquivo pode ser baixado aqui.
# "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.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
A hora do seu computador pode ser ajustada inicialmente com o seguinte comando:

#/usr/local/bin/ntpd -q -g 

Isso permite que o ntp ajuste seu relógio mesmo que ele tenha um erro de tempo absurdamente alto (maior que 16 min). O daemon ntp pode ser executado então:

#/usr/local/bin/ntpd

Arquivos de inicialização apropriados podem ser criados conforme o padrão de sua distribuição.

Assista a um mini tutorial em vídeo mostrando essa instalação:


Voltar

Topologia

Se você é um usuário doméstico, ou sua rede é muito pequena, com menos do que 3 equipamentos, use a configuração sugerida no item anterior e sincronize cada equipamento com o ntp.br diretamente.

Caso contrário, é recomendado que você escolha 3 equipamentos para serem servidores de tempo. Eles estarão sincronizados com o NTP.br, e os demais equipamentos de sua rede se sincronizarão com eles, conforme ilustra a figura a seguir:

ntp-configuracao.png


Melhores resultados são obtidos com servidores baseados em unix, como FreeBSD, OpenBSD e Linux, contudo é possível utilizar também servidores Windows.

Acrescente então ao arquivo de configuração o seguinte:
peer outro-serv.suarede.com.br
peer outro-serv.suarede.com.br
Dessa forma, cada um dos seus servidores se comunicará com os outros dois, podendo atuar tanto consultando o tempo como fornecendo. Caso algum deles perca a conexão com a Internet essa configuração fará a redundância.

Voltar

Interpretando o ntpq

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 algorítmo 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 algorítmo 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
Mais informações podem ser obtidas na página do ntpq.

A tabela a seguir mostra o significado das demais colunas:

Coluna Significado
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 consultass foram bem sucedidas; outros número indicam falhas, por exemplo 375 = 11.111.101, indica que a penúltima consulta falhou
delay atrasou, ou tempo de ida e volta, em milisegundos, dos pacotes até essa fonte de tempo
offset deslocamento, ou quanto o relógio local tem de ser adiantado ou atrasado, em milisegundos, para ficar igual ao da fonte de tempo
jitter a variação, em milisegundos, 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 4.2.2p4@1.1585-o 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 na tabela a seguir:

Variável Significado
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 milisegundos
rootdispersão erro máximo da medida de offset em relação ao estrato 0, em milisegundos
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)

Voltar

Interpretando os logs

Os principais logs do ntp são o loopstats, que apresenta as informações do loop local, ou seja, as variáveis do sistema, e o peerstats, que apresenta as informações de cada associação.

loopstats

Seu formato é o seguinte:

day, second, offset, drift compensation, estimated error, stability, polling interval
dia, segundo, deslocamento, escorregamento, erro estimado, estabilidade, e intervalo de consulta

Exemplo:

54475 73467.286 -0.000057852 31.695 0.000015298 0.006470 4
54475 73548.286 -0.000084064 31.688 0.000017049 0.006471 4
54475 73682.286 -0.000077221 31.678 0.000016130 0.006988 4
54475 73698.286 -0.000077448 31.677 0.000015103 0.006550 4
54475 73761.286 -0.000083230 31.672 0.000014275 0.006376 4
54475 73889.286 -0.000059100 31.665 0.000015846 0.006487 4
54475 74004.285 -0.000045825 31.660 0.000015548 0.006324 4
54475 74086.286 -0.000038670 31.657 0.000014762 0.006011 4
54475 74156.285 -0.000052920 31.653 0.000014699 0.005759 4
54475 74251.285 -0.000053223 31.649 0.000013766 0.005651 4
54475 74268.286 -0.000062545 31.648 0.000013292 0.005298 4

peerstats

Seu formato é o seguinte:

day, second, address, status, offset, delay, dispersion, skew (variance)
dia, segundo, endereço, estado, deslocamento, atraso, dispersão, variância

Exemplo:

54475 34931.294 200.20.186.75 9074 0.009958844 0.008390600 0.000390895 0.000132755
54475 34931.301 200.192.232.43 f0f4 0.000348814 0.015550265 0.001120348 0.000023645
54475 34932.303 200.189.40.28 f0f4 0.000810708 0.017701986 0.188995109 0.000043145
54475 34934.286 200.160.0.28 f0d4 0.000332344 0.000271801 0.000620139 0.000037467
54475 34935.286 200.160.7.165 9614 0.000003557 0.000216088 0.000826694 0.000022076
54475 34935.301 200.19.119.69 9334 0.002667663 0.015740055 0.001858731 0.001733883
54475 34935.303 200.186.125.200 f034 0.004857359 0.016764821 0.000719509 0.000303380
54475 34936.301 200.189.40.42 f0b4 -0.000738445 0.015510523 0.000390094 0.000039731
54475 34936.301 200.19.119.120 9434 0.000009164 0.015505927 0.000447001 0.000030319
54475 34938.301 200.192.232.28 f0f4 0.000363627 0.015584684 0.063231626 0.000020460
54475 34939.286 200.160.0.8 f054 0.000368748 0.000334013 0.000484437 0.000013953
54475 34939.286 200.160.0.43 f034 0.000325615 0.000260201 0.000849475 0.000039634

Voltar

Gerando gráficos

A interpretação dos arquivos de log fica bastante facilitada com o uso de gráficos. E uma vez que se conhece seu formato fica muito fácil gerá-los. Várias ferramentas podem ser utilizadas para isso, mas recomenda-se o uso do gnuplot. Foge do escopo desse site dar informações detalhadas sobre a instalação ou uso dessa ferramenta, então consulte http://www.gnuplot.info/ para mais informações. O software funciona em GNU/Linux, FreeBSD, Windows e outros sistemas.

Segue um exemplo de uso, no GNU/Linux com interface gráfica, que permitirá aos interessados entender o processo:

Cria-se um arquivo chamado deslocamento.txt com o seguinte conteúdo:

set term gif
set output '| display'
set title "Deslocamento"
plot "/var/log/ntpstats/loopstats" using 2:3 t"deslocamento" with linespoints lt rgb "#d0d0d0";

Observe-se que o comando plot faz referência ao arquivo loopstats, e usa suas colunas 2 e 3, 2 representa o tempo, no dia, em segundos; e 3 representa o deslocamento, em milisegundos.

Executa-se o seguinte comando:

 gnuplot deslocamento.txt

E pronto, como a saída esta redirecionada para display, vê-se o gif gerado na tela:

ntp-exemplo.gif


Assista a um mini tutorial em vídeo mostrando o uso do gnuplot no Windows:



Voltar