NTP-Pool: aumentando a participação brasileira

Posted by – 12/03/2009

Você conhece o NTP Pool? Provavelmente não, mas se você estiver usando uma das distribuições de GNU/Linux mais recentes, incluindo as maiores, e estiver atualizando o relógio pela rede, provavelmente está usando o NTP Pool.

Manter o relógio certo é um problema bastante comum e crucial para a computação atual. Muita coisa depende de sincronia, e de manter dados fidedignos quanto ao momento exato em que determinada ação ocorreu. O que parece um desafio, na realidade tem uma solução muito simples: Network Time Protocol, um protocolo padrão da Internet que mantém o relógio do computador local sincronizado com o de um computador remoto.

Simples sim, mas com um custo: existem relativamente poucos computadores ligados a fontes de sincronia temporal fidedignas (como GPS, ou relógios atômicos). Logo, o acesso a um desses computadores acabava sendo um privilégio de poucos. O NTP também tem resposta a isso… uma vez que um computador obtenha a sincronia com um desses servidores centrais (ou de camada 1 – stratum 1 – na terminologia do NTP) pode exportar essa mesma sincronia uma camada abaixo (efetivamente tornando-se stratum 2), num sistema que é escalável exponencialmente, sem perda significativa da precisão.

No entanto, um problema ainda ficava em aberto: que servidor NTP usar? Aí é que entra o NTP Pool, um conglomerado de servidores públicos, com banda doada pelos seus mantenedores, integrando um circuito cada vez maior de sincronia temporal, monitorados para garantir a precisão e a disponibilidade.

Sou usuário de NTP há muito tempo, tendo mantido um servidor NTP para uso interno em cada rede que monto. Esse servidor interno aponta sempre para o NTP Pool. Recentemente me interessei por saber mais sobre o NTP Pool, e fiquei bastante surpreso ao saber que dos mais de 1700 servidores de NTP que integram o NTP Pool, menos de 20 estão na América do Sul (e desses, apenas 13 no Brasil!). É impressionante! Eu mesmo mantenho um servidor NTP no Pool (ntp.nardol.org), no entanto, como ele se localiza fisicamente nos EUA, serve para aumentar as estatísticas de lá.

Vamos aumentar a participação brasileira? Se você possui um servidor no Brasil pode instalar facilmente o ntp server. Instruções mais detalhadas podem ser encontradas no próprio site do NTP Pool. O consumo de banda ocorre via protocolo UDP, e é ridículo. Para garantir que esse consumo nunca exceda a capacidade do meu servidor, por exemplo, uso simples regras de IPTables, como as abaixo:

bash$ iptables-save
(...)
-A INPUT -p udp -m udp --dport 123 -j ntp
(...)
-A ntp -m limit --limit 10/sec --limit-burst 6 -j ACCEPT
-A ntp -j LOG --log-prefix "ntp flood: " --log-level 7
-A ntp -j DROP
(...)
bash$

No entanto veja que as regras de limitação de conexões no meu servidor nunca foram atingidas (pelo menos desde o último reboot 🙂 ):

bash$ uptime
 15:20:00 up 23 days, 17:32,  1 user,  load average: 0.04, 0.12, 0.18
bash$ iptables -vnL
(...)
Chain ntp (1 references)
 pkts bytes target     prot opt in     out     source               destination
 233K   18M ACCEPT     0    --  *      *       0.0.0.0/0            0.0.0.0/0         limit: avg 10/sec burst 6
    0     0 LOG        0    --  *      *       0.0.0.0/0            0.0.0.0/0         LOG flags 0 level 7 prefix `ntp flood: '
    0     0 DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0
(...)
bash$

ntp_pool

Happy hacking!

8 Comments on NTP-Pool: aumentando a participação brasileira

  1. spectra says:

    @stefan,

    Pois eh… Naum custa nada ajudar. O consumo de banda eh ridículo e pode ser bem controlado. Eh uma pena que meu servidor seja no exterior…

    @Adilson,

    Na realidade o NTP naum resolve o problema do horario de verao (ele sincroniza UTC, o acerto para o fuso tem de ser feito no computador local). Mas agora, com o Brasil adotando uma regra geral – mesmo que esdrúxula -, a coisa melhora consideravelmente.

  2. spectra says:

    @Antonio,

    Naum sei, mas seria interessante que a autoridade legal brasileira integrasse o NTP Pool… Não deve ser difícil, uma vez que eles disponibilizam servidores NTP públicos. Vou ver se descolo o contato deles e pergunto a respeito… Valeu pela dica.

  3. Adilson Vieira says:

    Puxa! Eu vi que o NTP Pool recebe entre 40 e 120 mil requisições por segundo! Isso dá mais de 4 bilhões por dia ou mais de 1,5 trilhão por ano! Bota projeto nisso!

  4. É impressionante como a casa virada de horário de verão muitas fazem ajustes manuais em milhares de servidores por pura ignorância de não conhecer este fabuloso projeto.

    No meu site também tem um tutorial ensinando instalar um servidor de ntpo openntp muito seguro e muito simples.

  5. stefan says:

    Quando der um tempinho eu vou instalar no meu servidor, vamos ver.

  6. peNtakArd says:

    o ntp.br eh do comite gestor da internet no brasil, nao eh da autoridade da hora legal brasileira, que eh o on (servidores ntp: 200.20.186.75 e 200.20.186.94). claro que o ntp pool nao eh uma fonte canonica: nenhum servidor ntp pode ser chamado dessa forma. a menos que voce mesmo esteja conectado a um GPS, relogio atomico, etc, nenhuma fonte de tempo eh canonica (o tempo nao pertence a ninguem). mas pelo que eu sei o ntp pool eh um projeto legal que existe ha muito tempo e tem a sua credibilidade, vindo por padrao em diversos pacotes ntp de diversas distribuicoes. quanto a usar servidores alheios, ao usar o ntp pool voce tem a expressa autorizacao deles para isso…

  7. blakpof says:

    http://www.ntp.br/

    Até parece que o pool.ntp.org é alguma fonte canônica de servidores NTP

    Acho mais importante que os burraldosileiros aprendam a configurar NTP, ao invés de usar desnecessariamente servidores alheios.

  8. Antonio Casimiro says:

    Interessante… Mandei para o BR-Linux para dar uma força.

    A propósito, você sabe se o ON, que cuida da hora legal brasileira, está nesse projeto?

Leave a Reply

Your email address will not be published. Required fields are marked *