Como forçar o tempo de atualização do NTPD isolado localmente

Como forçar o tempo de atualização do NTPD isolado localmente

Objetivo

Eu tinha hosts isolados localmente. Eu gostaria que todos tivessem o mesmo tempo. Um assume o papel de servidor de horário, outro sincroniza com ele como clientes.

Todas as máquinas têm tempo de atividade esporádico. Eles raramente são alimentados. Portanto, eles poderiam obter uma compensação significativa. Todo o conjunto de hosts deve ser sincronizado minutos depois de definir manualmente a hora local do servidor.

Para confirmar a confiabilidade, testei a conexão de hosts NTP definindo ótimos ajustes manuais (várias horas) e medi a rapidez com que os clientes sincronizaram.

ntpd - caso ntpd

Eu tentei usarNTPDpara clientes e também para o servidor.NTPDdemora muito para acertar o relógio. Além disso, recusa-se a retroceder algumas horas no tempo.

Se puder ser consertado, prefiro usarNTPDcomo cliente. Então, estou procurando opções de configuração para sugerir ao ntpd que está ansioso para aceitar atualizações de relógio de rede.

Mas se não há como empregarNTPD,ntpdatealternativa ainda é aceitável.

ntpd - caso ntpdate

ntpdateatualiza perfeitamente o relógio sem hesitação. Coloquei-o em uma tarefa cron e obtive uma solução difícil, mas funcional. Infelizmente a primeira impressão estava errada. Depois de vários testes notei que ontpdatecliente começou a recusar o servidor. Por alguns motivos, o servidor decidiu retornar o estrato 16. Eu coloquei explicitamente fudge 127.127.1.0 stratum 8nontp.confno lado do servidor para evitar esse comportamento exato. Masntpdate -v -da saída mostra "estrato 16" transmitido do servidor.

Então eu vejo duas maneiras. Ou obrigar oNTPDo servidor retorna o estrato 9, independentemente do salto na hora local ou força ontpdatecliente aceite qualquer servidor, mesmo que tenha estrato 16.

Tentei pesquisar no Google de qualquer maneira, mas não encontrei nada. Alguém poderia sugerir opções de configuração adequadas?

Responder1

Use um ntpdservidor de horário para todos. Todos os PCs reiniciados todos os dias podem sincronizar seus relógios na inicialização por ntpdatecomando. Os relógios de outros servidores podem ser sincronizados por ntpdserviço porque ele ajusta a hora suavemente.

Para ntpduso do servidor de horário principal:

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log

Responder2

Minha principal sugestão: não faça isso. Tente alterar seus requisitos ou restrições para que você possa ter um sistema sempre ativo que possa ser uma fonte de tempo, ou para que seus sistemas não fiquem isolados e possam obter tempo doconjunto NTP global, ou ambos.

Hoje em dia, você pode obter servidores NTP de baixo consumo de energia com receptores GPS de maneira bastante barata. Se você gosta de DIY, BeagleBones e Raspberry Pis podem ser transformados em servidores NTP por menos de US$ 100, ou se você quiser algo pronto para uso, experimente umLeãoNTP.

Próxima sugestão: se ntpddemorar muito para atualizar o relógio, provavelmente você precisará verificar sua configuração:

  1. Certifique-se de estar usando o -Gsinalizador de linha de comando; -gé o padrão em algumas distribuições Linux, mas não retrocederá muito.
  2. Certifique-se de que todos os seus servidores/pools estejam configurados com iburst.
  3. Use tinker step 0.5e tinker panic 0para maximizar ntpda capacidade de corrigir grandes compensações.
  4. Certifique-se de que seu arquivo de desvio seja gravável ntpde esteja sendo salvo corretamente quando for desligado.

Terceira sugestão (que eu preferiria ntpdate): experimente chrony- tem suporte explícito para clientes conectados ocasionalmente (como laptops que são suspensos regularmente). A chrony.conf(5)página de manual contém todos os detalhes sobre isso. Se você estiver usando uma distribuição onde chronyé o padrão (CentOS/Red Hat e Ubuntu após o lançamento de 18.04), esta provavelmente seria minha segunda sugestão.

Última sugestão: se ntpdateestiver reportando um servidor como estrato 16, significa que há algo errado com esse servidor. Tente postar a configuração do servidor e a saída de ntpq -npe ntpq -nc rvpara que possamos ajudar a diagnosticá-lo.

informação relacionada