servidor NTP local não usado pelos clientes. Problema de instalação

2

Eu tenho uma rede local sem internet e quero manter todos os computadores sincronizados lá. Eu não me importo com o tempo absoluto, deve ser o mesmo para todos.

Encontrei vários posts sobre isso. Os mais úteis foram:

servidor

Eu configurei o servidor com o IP 192.168.1.123 e parece estar funcionando ok: O deamon "ntpd" está rodando e eu estava adicionando no etc / ntp.conf as linhas

# this sets the source to local time
server 127.127.1.0
fudge 127.127.1.0 stratum 8

# this makes the ntpd deamon to send out its time on the local net.
broadcast 192.168.255.255 

Eu verifiquei com o comando ntpq:

 ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.255.255       .BCST.     16 B    -   64      0  0.000    0.000   0.000

"BCST" diz que está em transmissão mais e o IP mostra sua transmissão para todos os computadores na rede local (uma rede de classe B, portanto, 2x 255).

cliente

No lado do cliente eu também instalei o ntp e usei o padrão /etc/ntp.conf e adicionei as linhas

server 192.168.1.123 iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 8

onde 192.168.1.123 é o IP local da difusão do servidor e a outra linha deve dizer ao cliente (um laptop) para usar seu próprio relógio quando a conexão de rede estiver desligada. Eu reiniciei o serviço no cliente e executei o ntpq para verificar a conexão

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
LOCAL(0)             .LOCL.     8 l      6   64     1   0.000    0.000   0.000

Repetindo este comando eu posso ver a coluna "when" contando ambos e começando com 0 novamente ao atingir 64sec. Eu esperava que após os 64 segundos isso mudaria para isso:

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
LOCAL(0)              .LOCL.     8 l      6   64     1   0.000    0.000   0.000

Anote o "*" antes do IP do servidor. Mas não não . O que eu consegui depois de 1hr foi

ntpq -c lpeer
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
192.168.1.123        .INIT.     16 u     1   64     0   0.000    0.000   0.000
*LOCAL(0)            .LOCL.     8 l     63   64   377   0.000    0.000   0.000

Eu acho que isso me diz, existem 2 fontes para o NTP configurado, mas como a fonte remota não está funcionando / não disponível / o que não é usado e o clock local do caso de fallback é usado, mas não tenho certeza se interpretação está correta.

o que tentei

Eu esperei mais de 1h, reiniciei as ntpd serveral vezes com sudo /etc/init.d/ntp restart e também reiniciei. Além disso, comentei o relógio da seção local para que o único servidor fosse server 192.168.1.123 . Eu não pude conseguir que "*" aparecesse. Também vi uma seção no ntp.conf que dizia

#if you want to listen to time broadcasts on you local subnet, 
#de-comment the next lines. Please do this only if you trust 
#everybody on the network!
#disable auth
#broadcastclient

Eu tentei não comentar e reiniciar o serviço, mas ainda assim a estrela não apareceu. No entanto, estou me perguntando sobre a última seção, porque essa seção apareceu em qualquer outro post ou resultado da Internet que vi na configuração do ntp. Existem vários em configurações locais e a maioria parece encontrar apenas com o endereço do servidor. Ping do cliente para o servidor está bem. Não há firewall, etc.

pergunta

Estou sem ideias. Eu acho que tenho um servidor com servidor NTP totalmente funcional que está enviando o tempo. Mas eu tenho um cliente que não está recebendo as informações de tempo do servidor.

O que posso fazer para colocar o cliente em funcionamento?

    
por CatMan 20.02.2017 / 14:16

1 resposta

0

O problema foi resolvido, o sistema funciona agora. Eu faço este resumo para mim e para todos os outros que precisam configurar um servidor NTP offline (novamente). O problema real parecia ser que a experimentação com o modo de transmissão quebrou o ntpd no servidor, ele trabalhou novamente em outra reinicialização do servidor. Por que não funcionou quando eu segui os posts acima, eu não tenho certeza.

Backgound

Parte do problema é que eu não entendi como o NTP funciona e o que eu estava fazendo. Nem a página man nem o guia do servidor 16.04 forneceram uma visão geral simplificada sobre os diferentes computadores trabalhando juntos. Primeiro, o cliente e o servidor NTP são enganosos. É sempre o mesmo programa, o deamon NTP, "ntpd". Ele deve ser instalado em todos os computadores da rede local para que a sincronização de horário funcione. Eu não verifiquei sobre os clientes Windows ainda, mas tenho certeza que há uma versão para eles em algum lugar também (por favor, comente se você tiver informações sobre isso - construir em funções seria preferido). O sistema offline funcionaria apenas nos relógios do sistema. É vantajoso usar vários relógios do sistema, não apenas o servidor principal, porque cada relógio é adicionado para reduzir o desvio de tempo. Em outras palavras, um relógio tornaria todos os computadores sincronizados, mas o tempo absoluto seria mais estável e preciso quando mais relógios fossem considerados. Pelo que li, 4 deve ser um bom número. O NTP pode atuar como servidor e como cliente ao mesmo tempo. O arquivo de configuração padrão não tem realmente uma seção de configuração para a função de servidor. Como modelo simples, cada ntpd instance é um cliente que obtém informações de tempo de algum lugar, consultando-as regularmente. Pesquisando outro ntpd ou pesquisando o relógio onboard local. Torna-se um servidor quando responde a enquetes de outros. Por exemplo, uma rede conectada por um servidor proxy à internet. Esse servidor proxy executaria ntpd para pesquisar vários servidores NTP da Internet e, assim, transferir seu próprio tempo para eles. Quando todos os clientes locais consultam o servidor proxy para o seu tempo (sincronizado) e ele começa a responder às pesquisas, ele se torna o próprio servidor NTP. O caso off-line é exatamente isso, exceto que os servidores on-line são substituídos pelo relógio onboard.

Configuração Para a configuração, o arquivo /etc/ntp.conf deve ser editado. O padrão é bastante cheio de coisas. Eu deletei todos, exceto:

   # this is the IP or name of the local networks NTP server. This line
   # should be commented out on the server 
   server 192.168.1.111

   # this enables checking the local clock. Do not change that IP values!
   server 127.127.1.0
   fudge 127.127.1.0 statum 10

   # this lines are required to run the ntpq -p command to verify the  
   # function of the system

   restrict 127.0.0.1
   restrict ::1

O servidor nesse exemplo tem o IP 192.168.1.111. Essa configuração pode ser a mesma para todos os PCs na rede. Apenas comente a seção do relógio local em clientes que não são laptops. A linha deve ser mantida em laptops e outros dispositivos que possam operar fora da rede por algum tempo. A primeira seção do servidor deve ser comentada no servidor.

Após a edição, reinicie o serviço com o script de início / parada

sudo /etc/init.d/ntp restart

Para verificar a execução

ntpd -p

é um pouco menor que a versão da pergunta e dá a mesma saída. Existe um "*" antes da linha do relógio para indicar que está sendo usado. Aqui a saída para um servidor em funcionamento:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*LOCAL(0)            .LOCL.       2 1    6   64   377   0.000    0.000   0.000

Quando a coluna está em contagem, o alcance é qualquer coisa > 0. Aqui a saída para um cliente em funcionamento:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.1.111      LOCAL(0)     3 u     31  64   377   0.206   -5.900   0.654

Se você ainda refid = .INIT. não funciona. Os números seriam diferentes obviamente. Os clientes não devem mostrar 0.000 0.000 0.000 valores. Uma saída para um cliente com relógio de retorno configurado adicional (note que ele não está sendo usado agora - não "*"):

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.1.111     LOCAL(0)      3 u    31  64   377   0.206   -5.900   0.654
LOCAL(0)              .LOCL.     8 l     6  64     1   0.000    0.000   0.000

adicionou informações A configuração padrão descreve um envio de broadcast e uma opção de recebimento de broadcast. Não ative isso para operação normal. Não é necessário fazer o sistema funcionar e configurar o cliente e o servidor. Se alguma coisa ficar parada, não apenas reinicie o serviço, mas reinicie totalmente. Mesmo um servidor Ubuntu. Quando o sistema não foi executado, notei que ps -e |grep ntp deveria processar 2 'ntpd'. O par pode ser iniciado e parado de forma consistente. A versão em execução mostrava apenas um em cada computador. Existem outras opções de restrição e opção de registro do arquivo de configuração padrão que podem ser úteis. Não os testou.

Espero que isso se torne útil em algum momento. Se você tiver correções, por favor, comente, tentarei atualizar a resposta.

CatMan

PS: Muito obrigado a Ken Mollerup , cujos comentários me levaram a uma melhor compreensão do sistema NTP.

    
por CatMan 20.02.2017 / 22:52