Configurações Adicionais


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:

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.




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

	associd=0 status=0614 leap_none, sync_ntp, 1 event, freq_mode,
	version="ntpd 4.2.6p5@1.2349-o Mon Apr 13 13:39:46 UTC 2015 (1)",
	processor="x86_64", system="Linux/3.13.0-36-generic", leap=00, stratum=2,
	precision=-22, rootdelay=9.141, rootdisp=155.934, refid=200.186.125.195,
	reftime=d934225c.0e476dff  Tue, Jun 23 2015 15:22:20.055,
	clock=d9342283.bf40eca3  Tue, Jun 23 2015 15:22:59.747, peer=59316, tc=6,
	mintc=3, offset=9.460, frequency=1.909, sys_jitter=5.893,
	clk_jitter=2.077, clk_wander=0.978

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
rootdisp 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)



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



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: