por que o ntp não se recupera após uma inicialização sem Internet?

11

Eu tenho alguns dispositivos Linux (sem chips TOY, portanto eles dependem completamente do ntp) que podem ser inicializados sem acesso à Internet (o link para o switch está ativado). O ntpserviço será iniciado, mas obviamente nenhum ponto será contatado. Acabo com um ntpserviço que está sendo executado, mas não sincronizado com nenhum dos pares ( ntpq -pfornece um .INIT.status)

O problema é que isso muda quando a conexão à Internet é estabelecida.

Se a conexão estiver disponível no momento da inicialização, tudo funcionará bem. Idem se eu emitir manualmente um service ntp restart( ntpconecta-se aos pares e a hora está corretamente sincronizada).

NTP não deve tentar se reconectar em intervalos regulares?

  • se sim: é algo que devo configurar (não vi nada na configuração)
  • caso contrário: qual seria uma boa maneira de lidar com a reinicialização do serviço ou o atraso no início do serviço (eu poderia assumir que a conectividade com a Internet voltará n minutos após a inicialização)

Nota: Parece que, pelos documentos, o tempo máximo do pool (que eu entendo é o tempo máximo que o ntp tentará conectar aos pares antes de desistir?) É 1024 segundos = 17 minutos, que é muito mais do que o tempo necessário para estabelecer Acesso à Internet (cerca de 2 a 5 minutos, na pior das hipóteses)

WoJ
fonte

Respostas:

12

Você pode ter sido mordido por um argumento de ponta para o ntpd:

As versões IIRC ntpd <4.2.4p3 removeram todos os servidores da sua lista de sincronização que não puderam ser alcançados em algum momento. Obviamente, isso é bastante ruim nesse caso, pois o ntpd pode muito bem 'esgotar' a lista de seus pares antes de obter conectividade com a Internet.

Pode-se / pode-se definir a dynamicopção para esses servidores ntp.confpara solucionar esse problema.

Com versões mais recentes, isso não seria mais necessário (também, a opção dinâmica foi desativada em algum momento, o que causou pequenas queixas para algumas pessoas com o NTP reclamando de repente).

Portanto, você pode atualizar seu ntpd ou definir a opção

Como terceira opção, você pode criar uma dependência adequada no seu sistema init; fazendo o ntpd confiar em uma conexão de internet estabelecida ( não apenas na rede). O resultado seria que você pode reutilizar isso com outros serviços também.

romano
fonte
1

O pacote Debian OpenNTPD o reinicia automaticamente se surgir uma interface. Isso é comum.

Além disso, você (normalmente) precisará sincronizar uma tentativa antes de iniciar o xntpd , então sugiro que este seja o caminho a seguir.

mirabilos
fonte
1
A interface está ativa. É a Internet que não está acessível.
woj
Eu também nunca precisei sincronizar um tiro. Este é claramente um caso possível, mas uma reinicialização do serviço limpa o status.
woj