Missão

Desenvolvermos soluções acessíveis e de qualidade, solucionando os problemas e agregando valor ao serviço prestado por nossos clientes.

Visão

Sermos reconhecidos como profissionais de excelência em nossas áreas de atuação.

Compromisso

Fornecer aos clientes o melhor serviço e com a melhor qualidade.

Mantendo o sincronismo da rede com NTP

A correta manutenção do relógio de um servidor é algo crucial para o acompanhamento deste e até mesmo para a verificação de eventos em registros (logs) do sistema.

Para redes de pequeno porte aconselha-se a manutenção de um servidor NTP interno, para sincronizar todos os demais servidores, enquanto que para redes de maior porte pode-se ter 2 ou mais servidores servindo ao mesmo propósito.

O que é o NTP?

O NTP é um protocolo padronizado sob a RFC 1305 (versão 3) e que foi projetado para sincronizar o relógio dos computadores usando a rede como um meio de transporte. A versão 4 ainda não foi padronizada.

O processo de funcionamento baseia-se na "conversa" entre máquinas onde uma delas está ligada a uma fonte de referência de relógio considerada confiável (por exemplo um relógio atômico). Há uma série de hierarquias (chamadas de stratums no jargão NTP) que indicam qual é a distância para a fonte confiável ou qual é a precisão do relógio base usado.

Configurações

Instalação

A primeira configuração a fazer é a do cliente NTP, ou seja, deve-se primeiro garantir que a máquina a ser utilizada está com seu relógio configurado de maneira correta para não propagar uma inconsistência para as demais máquinas da rede.

Nos servidores *nix, usa-se o programa ntp para isso. Ele pode ser obtido em http://www.ntp.org/ e instalado pelas vias tradicionais. Muitas distribuições Linux incluem pacotes pré-compilados deste programa, e o mesmo encontra-se também no ports dos BSDs.

Evite instalar o programa xntpd. Ele corresponde a uma versão antiga do ntp, embora ainda funcione.

Este documento não tem por objetivo ensiná-lo a instalar programas em seu computador, desculpe-me.

Clientes NTP

Embora as configurações de um cliente NTP possam ser bastante complexas, o mínimo exigido a ser configurado no arquivo /etc/ntp.conf é uma linha contendo:

server   servidor.ntp.com

Algumas instalações podem incluir arquivos contendo configurações já feitas e funcionais. Recomenda-se, entretanto, usar um servidor o mais próximo possível da máquina para evitar problemas com a latência ("atraso") da rede ou problemas de conexão.

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

Uma lista de outros servidores pode ser obtida em http://www.rnp.br/en/ntp/list.html. Uma lista para servidores NTP em outros países pode ser obtida em http://www.eecis.udel.edu/~mills/ntp/clock2a.html.

Note que se o DNS for iniciado depois do servidor ntp, deve-se usar endereços IP ao invés de nomes de servidores.

Alguns servidores podem possuir restrições quanto ao seu uso. É interessante verificar a política de cada um deles antes de configurá-lo. A lista acima não apresenta nenhuma restrição, embora apresente o inconveniente da distância geográfica.

Outra indicação que deve estar no arquivo /etc/ntp.conf é a localização do arquivo onde será armazenada uma informação referente ao deslocamento, ou escorregamento, do relógio em relação à referência. Na verdade, trata-se de uma espécie de freqüência e este arquivo evita que o ntp perca muito tempo reaprendendo-a:

driftfile /etc/ntp.drift

Não é necessário especificar mais nenhuma informação — como o stratum ao qual você pertence — pois o ntp fará a coisa certa e calculará as informações a partir dos servidores nos quais você sincronizar.

Para verificar que o servidor está executando e usando os servidores configurados, execute o comando a seguir:

# ntpq -p

Para um servidor recém-iniciado, a resposta deve ser parecida com a abaixo:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 wintermute.g2ct .INIT.          16 u   26   64    0    0.000    0.000 4000.00

Quando os servidores sincronizarem-se, os valores serão preenchidos de forma correta, como no exemplo abaixo:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 mx1.gs.washingt 140.142.2.8      3 u    7  256   17  213.781    6.586   9.653
 pernalonga.abys 200.144.121.33   3 u    6  256   17   77.159  -21.790  30.882
 debian.ciencias 128.86.8.123     2 u    5  256   17  196.041  -63.153   8.578

Configurado o cliente ntp, deve-se ter certeza de que este seja iniciado automaticamente junto com a máquina. O procedimento também varia de acordo com o sistema operacional usado e não pertence ao escopo deste documento.

Servidor NTP

Como comentei, uma rede pode possui um ou mais servidores ntp. É interessante que este servidor sincronize seu relógio com no mínimo dois servidores externos e, havendo mais de um servidor na rede, com os demais servidores internos.

Deve-se procurar sincronizar os servidores internos com grupos distintos de servidores externos, para garantir uma maior confiabilidade e disponibilidade do serviço.

A configuração de um servidor é a mesma de um cliente, exceto pelo fato dos clientes indicarem apenas este(s) servidor(es) na intranet, evitando contactar servidores externos para evitar tráfego desnecessário.

Há a possibilidade de restringir quais clientes podem conectar-se ao servidor e diversas outras políticas. Para uma configuração mais avançada, recomenda-se uma leitura na página de manual do servidor ntp.

Outros sistemas operacionais

Máquinas Windows em versões recente, por exemplo, possuem um cliente ntp embutido. Para ativá-lo use o comando:

net time /setsntp:servidor-ntp.da.rede.interna

Outros sistemas operacionais podem ter recursos similares ou serem compatíveis com os programas para *nix. Uma busca nos programas que acompanham o sistema operacional e na documentação do mesmo pode mostrar onde encontrá-los ou como usar os recursos já embutidos no sistema.

Se não puder rodar um servidor NTP nas estações clientes...

Caso você não tenha uma versão recente do Windows ou não possua um cliente ntp para sua máquina instalado, uma opção é sincronizar o relógio com um servidor ntp diariamente ao iniciar a máquina ou então a intervalos esporádicos, de modo que uma precisão aceitável para seu relógio seja mantida.

Esta solução não é muito interessante pois podem haver saltos no relógio tanto para frente quanto para trás, o que pode fazer com que algumas tarefas sejam executadas mais de uma vez ou que não sejam executadas de forma alguma.

Sobre este documento

Autor: Jorge Godoy

Data: 25 de novembro de 2004

Última atualização: 25 de novembro de 2004

“Um novo conceito em prestação de serviços”