NTP não está recebendo pares úteis

0

Eu tenho várias máquinas rodando 16.10, ambos servidores e laptops, todos na mesma rede. Todos eles ocasionalmente têm o mesmo problema com o NTP. O relógio está ligeiramente fora de sincronia e quando eu verifico os pares do NTP, há apenas um e não está sendo usado.

> ntpstat 
unsynchronised
   polling server every 8 s

> sudo ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.x.x.x        .INIT.          16 u    -   64    0    0.000    0.000   0.000

Eu tentei com a lista padrão do servidor ntp.conf do Ubuntu (de 0 a 3) de

pool 0.ubuntu.pool.ntp.org iburst
...

E também com a lista ntp padrão (também de 0 a 3) da seguinte forma:

server 0.pool.ntp.org
...

Mas a questão é a mesma. O endereço IP do servidor não utilizado é sempre o mesmo em todas as máquinas, independentemente de seu ntp.conf .

Eu posso resolvê-lo temporariamente fazendo uma alteração em ntp.conf e reiniciando ntpd , mas gostaria de corrigir a origem do problema para que os pares úteis sejam encontrados automaticamente.

O que posso tentar corrigir isso?

    
por Ian Mackinnon 20.03.2017 / 12:31

1 resposta

3

Os servidores e pools em /etc/ntp.conf estavam sendo ignorados porque a configuração padrão do Ubuntu dá precedência aos servidores NTP encontrados via DHCP.

Existe um script, /etc/dhcp/dhclient-exit-hooks.d/ntp , que cria uma cópia de /etc/ntp.conf at /var/lib/ntp/ntp.conf.dhcp , remove quaisquer servidores e conjuntos específicos solicitados nos servidores originais e substitutos encontrados via DHCP.

Quando /etc/init.d/ntp for executado, se encontrar uma configuração mais nova em /var/lib/ntp/ntp.conf.dhcp , ele iniciará o NTP com isso. Isso pode ser desativado de várias maneiras, mas optei por comentar esse comportamento em /etc/init.d/ntp da seguinte forma:

# if [ /var/lib/ntp/ntp.conf.dhcp -nt /etc/ntp.conf ]; then
#       NTPD_OPTS="$NTPD_OPTS -c /var/lib/ntp/ntp.conf.dhcp"
# fi

Em seguida, recarregue os scripts do daemon e reinicie o NTP:

sudo systemctl daemon-reload
sudo systemctl restart ntp

Agora, quando o NTP é iniciado, os servidores NTP descobertos pelo DHCP são ignorados e os pools são usados para encontrar servidores NTP em funcionamento.

    
por Ian Mackinnon 21.03.2017 / 14:19