Diretivas ntp.conf pool vs server

15

Me deparei com um arquivo ntp.conf que especifica diretivas de pool:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
pool 0.ubuntu.pool.ntp.org
pool 1.ubuntu.pool.ntp.org
pool 2.ubuntu.pool.ntp.org
pool 3.ubuntu.pool.ntp.org

No entanto, ele também possui diretivas de servidor no mesmo arquivo, com as quais estou mais familiarizado.

Lendo sobre piscina, vejo que é para ser usado em vez de servidor. Você deve usar um ou outro.

No entanto, o que acontece se o ntp.conf tiver os dois? Um conjunto tem precedência sobre o outro ou todos serão usados?

Este é o Ubuntu 14.04, o ntpd é a versão 4.2.6p5.

user3141592
fonte

Respostas:

8

Tanto quanto eu posso ver nas fontes, ntpdlida com um membro de um pool e servidores individuais da mesma maneira: ele os adiciona à lista de pares.

Todos esses pares são usados ​​por ntpd.

A mágica do mecanismo do pool está no DNS round-robin: conforme ntpdresolve o nome do pool pelo DNS, a resposta da consulta DNS é um único nó, que pode ser diferente sempre que a resolução é solicitada.

Vincent De Baere
fonte
2
Isso é mencionado no arquivo discover.htmlque acredito estar incluído na documentação do ntpd. Veja a parte inferior do arquivo
mboehn
@Incinc Eu baixei os arquivos de origem. Você pode apontar exatamente para onde devo procurar para verificar isso?
user3141592
@ mboehn Nesse documento e no arquivo a que ele se refere, não vejo menção do que acontece com as versões mais recentes do ntpd que oferecem suporte às diretivas de pool e servidor quando ambas são especificadas. Se estou ignorando algo, por favor, esclareça. Obrigado.
user3141592
Consulte ntp / ntp_config.c: 3776. É aí que a resolução dos pares do arquivo de configuração acontece. Depois, observe ntp / ntp_peer.c: 554 para peer_config e ntp / ntp_peer.c: 730 para new_peer. Você verá que ambos serão adicionados à tabela de hash de mesmo nível no final de new_peer.
Vincent De Baere
Isso não ajuda alguém que não sabe o que o servidor faz. Você pode explicar o que o servidor faz para que eu possa comparar com sua última frase do que o pool faz.
bakalolo
8

A resposta foi dada por mboehn. Para esclarecer mais: Veja o documento que ele mencionou . Especialmente as últimas linhas:

O esquema do pool é configurado usando um ou mais comandos de pool com nomes DNS, indicando o pool do qual desenhar. O comando pool pode ser usado mais de uma vez; servidores duplicados são detectados e descartados. Em princípio, é possível usar um arquivo de configuração contendo um pool de linhas únicas pool.ntp.org. O NTP Pool Project oferece instruções sobre o uso do pool com o comando server, que é abaixo do ideal, mas funciona com versões mais antigas do ntpd anteriores ao comando pool. Com o ntpd recente, considere substituir os vários comandos do servidor em seu exemplo por um único comando de pool

Minha configuração é:

# Specify one or more NTP servers.
pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst

# Provide your current local time as a default should you temporarly lose Internet connectivity
server 127.127.1.0
fudge 127.127.1.0 stratum 10

Agora tenho vários servidores ntp próximos à minha localização geográfica (Países Baixos) quando verifico

$ ntpq -4np

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.pool.ntp.org  .POOL.          16 p    -   64    0    0.000    0.000   0.000
 127.127.1.0     .LOCL.          10 l    -   64    0    0.000    0.000   0.000
-85.255.214.66   193.190.230.66   2 u    5   64  177    6.937    1.588   1.645
-5.39.184.5      91.148.192.49    3 u   64   64   77    8.907    1.197   1.635
-91.198.87.229   193.79.237.14    2 u    5   64  177    8.447   -0.042   0.894
+37.34.57.151    193.79.237.14    2 u    1   64  177    7.463    0.168   0.297
*91.198.87.118   192.87.110.2     2 u    2   64  177    8.593    0.070   0.384
+88.159.1.197    80.94.65.10      2 u    2   64  177   10.497    0.454   0.213
+213.154.236.182 213.136.0.252    2 u   67   64   77    8.793    0.455   2.391
#178.21.23.127   91.121.157.10    3 u   66   64   77    9.129   -0.911   1.541
#213.109.127.195 193.79.237.14    2 u   66   64   77   11.766   -7.330   1.501
+213.154.229.24  80.50.231.226    2 u    4   64  177    8.496    0.121   0.538
-217.77.132.1    213.136.0.252    2 u    2   64  177    7.026   -0.782   1.253
#87.253.148.92   195.13.1.153     3 u    4   64  177    7.338   -3.859   0.964
-94.228.220.14   193.67.79.202    2 u    -   64  177    8.347    2.797   1.019
Woftor
fonte
1

Para que o NTP solicite adequadamente um pool de servidores de horas e faça uso da disponibilidade de servidores de horas em qualquer cenário de failover, ntp.confdeve ser configurado da seguinte maneira:

  • declarar o nome de domínio do pool com um poolcomando (e não server)

  • permitir que o pool mobilize uma associação (por exemplo, adicione uma restrict sourcelinha "..." que não inclua a nopeerdiretiva)

drgnfr
fonte