RSS
Neste blog você encontrará discussões sobre tendências (ou gadgets e tecnologias apenas curiosas e engraçadas, mas praticamente inúteis!), avanços tecnológicos, além de aplicações livres extremamente práticas e úteis, de interesse ao público geral.

Translation/Tradução

Share/Bookmark Subscribe
Monitor link

Receba Atualizações do Tecno Lógico Por Email

Ajustando o Horário do Relógio no Slackware Usando o Protocolo NTP

O protocolo de rede NTP (Network Time Protocol - Protocolo de Tempo de Rede) é o serviço mais utilizado para sincronização de relógios entre computadores, interconectados através de uma rede. Entende-se por sincronização, neste caso, o ajuste de todos os relógios para exatamente um mesmo horário.


Portanto, o NTP é largamente aplicado a projetos de Computação de Alto Desempenho, assim como de tempo real, aplicações críticas e em ambientes paralelos onde deseja-se saber quando cada evento acontece, com precisão, em uma rede.




O protocolo NTP encontra-se na versão 4 sendo especificado na RFC 2030, e a versão 3 formalizada na RFC 1305.

De forma prática, em máquinas mais antigas, onde a perda de precisão do relógio é freqüente, ou a bateria está fraca e as informações de horário não são mantidas pelo BIOS (Basic Input/Output System - Sistema Básico de Entrada e Saída), a configuração deste serviço é muito bem-vinda permitindo que o sistema operacional sempre mantenha o horário correto.

Mas como funciona o NTP? Por que ele apresenta tamanha precisão em relação aos relógios convencionais dos computadores pessoais (PCs) que utilizamos?

Em resposta à última pergunta, os relógios dos computadores que utilizamos não são projetados para serem de alta precisão, primeiro porque são máquinas relativamente baratas e o projeto de um relógio atômico de hélio (relógios de alta precisão), por exemplo, tornaria seu custo bastante oneroso.

Outro motivo pelo qual os relógios de PCs não são de alta precisão é dado por seu propósito, ou seja, usuários de PCs não utilizam, desenvolvem ou empregam, geralmente, aplicações de tempo real, aplicações críticas, onde o tempo é de vital importância e sua imprecisão pode acarretar em perdas de vidas, como em sistemas de tráfego aéreo, por exemplo. Neste caso, a perda de precisão temporal pode levar à colisão de dois aviões, matando centenas de pessoas, dependendo do porte do avião.


Respondendo a primeira pergunta, o funcionamento do NTP é dado por uma hierarquia de servidores onde o relógio mais preciso, chamado de relógio de referência, geralmente um relógio atômico de Hélio ou GPS, se localiza em um servidor, cujo nível é chamado stratum 0. Este servidor não está na Internet, ele apenas serve de referência a outros servidores.

Os servidores que obtém a hora certa através do servidor stratum 0 recebem o nome de stratum 1. Stratum 1 corresponde ao primeiro nível de servidores ligados à Internet. A partir deles é possível configurarmos nossos computadores para obter a hora certa. Caso nossos computadores tomem como referência os servidores stratum 1, eles serão denominados stratum 2, assim por diante. Pode-se chegar até o nível de stratum 15, totalizando 16 níveis (de 0 a 15).

Em resumo, os computadores de um nível superior servem a hora certa para os computadores de níveis inferiores. Observe a figura abaixo para compreender melhor a arquitetura hierárquica do protocolo NTP.


Vamos à parte prática! A distribuição Linux configurada foi Linux Slackware 10.2. Abaixo será mostrado um passo-a-passo.

1. Primeiro instale o pacote ntp-4.2.0-i486.tgz. Para isto, pegue o disco 1 de instalação do Slackware e acesse a pasta n, através da linha de comando. Rode o script install-packages através do comando ./install-packages. Selecione, utilizando a barra de espaço, a opção referente ao pacote NTP e dê um "OK". Daí poucos segundos o NTP estará instalado!

Agora é hora de configurar o NTP!

2. Baixe o arquivo ntp.conf e salve-o no diretório /etc, substituindo o arquivo ntp.conf existente. Nele haverá diversos servidores de referência de onde seu computador obterá a hora certa. Caso queira, você poderá acrescentar outros servidores. Por exemplo, acrescente o servidor de referência corresponde ao Brasil, o br.pool.ntp.org. Para isto, abaixo da linha com a palavra logfile, acrescente o seguinte: server br.pool.ntp.org. Repita este procedimento para cada servidor que queira adicionar.

3. Sincronize manualmente, na primeira vez, o seu relógio com o servidor de referência de sua preferência, através do comando ntpdate , onde pode ser substituído por br.pool.ntp.org que corresponde a um dos servidores do Brasil, ou qulaquer outro que esteja listado no arquivo /etc/ntp.conf, ficando assim: ntpdate br.pool.ntp.org

Geralmente, cada serviço é gerenciado por um processo de sistema (daemon) - entenda processo, de forma grosseira, como um programa em execução que roda geralmente em background (no fundo) - que deve ser inicializado. Neste caso, o daemon que inicializa o serviço de sincronização NTP é o ntpd, localizado em /sbin.ntpd. Este mesmo daemon procura no arquivo /etc/ntp.conf o melhor servidor para sincronizar o horário de seu computador e atulizar seu relógio quando estiver perdendo a sincronia.

Antes de inicializar o deamon ntpd, vamos editar um arquivo que possibilitará o carregamento do serviço NTP, durante o boot (inicialização) do sistema operacional.

4. Para possibilitar o carregamento de qualquer aplicação, durante o boot, o arquivo rc.local no diretório /etc/rc.d/rc.local deve ser editado. Para isto, a sintaxe abaixo deve ser utilizada:

if [ -x diretório-onde-se-localiza-o-serviço-a-ser-carregado ]; then
echo "Escreva aqui a frase que aparecerá durante o boot indicando que o serviço foi inicializado com sucesso"
diretório-onde-se-localiza-o-serviço-a-ser-carregado
fi

No caso do NTP o código ficará assim:


if [ -x /usr/sbin/ntpd ]; then
echo "Inicializando o daemon NTP: /usr/sbin/ntpd"
/usr/sbin/ntpd
fi

Para carregar qualquer software, durante o boot, copie as linhas acima para dentro do arquivo rc.local, mudando apenas o diretório onde se localizam as aplicações que deseja inicializar.

5. Vá ao diretório /sbin/ntpd e inicialize o daemon ntpd, através do comando ./ntpd start.

6. Entre no diretório /etc/rc.d/rc.inet2 e reinicialize-o com o comando ./rc.inet2 restart para reinicializar aplicações básicas e serviços de rede.

Depois de mais ou menos 1 minuto, seu relógio estará sincronizado. Para ter certeza de que tudo funcionou perfeitamente, você pode reiniciar o seu computador e observar se o daemon ntpd foi inicializado com sucesso, ou digitar o comando ntpq -p para checar se a sincronização está funcionando de acordo.

Lembre-se que o ideal é ter vários servidores cadastrados no arquivo ntp.conf pois caso haja a queda de algum servidor, o daemon ntpd escolherá um outro. Além disso, quando se têm diversos servidores, aquele que tiver maior precisão de horário poderá ser escolhido.

Beleza! Agora o relógio do seu computador sempre estará com o horário certinho, independente se sua bateria está fraca, ou qualquer outro motivo! :-)

Saúde e paz a todos. Até mais pessoal!

0 comentários:

Postar um comentário

Deixe aqui seu comentário! :-)