como você configura um cliente linux para usar as informações ntp fornecidas pelo dhcp?


18

existem tantos tutoriais explicando como configurar o dhcpdservidor, em relação ao fornecimento de sugestões ntp para clientes dhcp, que eu sempre pensei que a ntpconfiguração fosse realizada automaticamente. Recentemente, comecei a ver desvios de relógio na minha rede local, portanto presumo que essa foi uma suposição errada. Então, parti para ver como é possível minimizar a configuração do cliente ntp, desde que se tenha realizado o esforço de configurar ntp-serversugestões dhcpd.

Não consegui encontrar muito além deste tutorial de ajuda específico do Ubuntu https://help.ubuntu.com/community/UbuntuTime . Mesmo aqui (consulte o parágrafo "Solução de problemas -> Qual arquivo de configuração está usando?") As informações são escassas, mas diz que, se um /etc/ntp.conf.dhcparquivo for encontrado, ele será usado. Antes de tudo, o local real em que o gravador quis dizer aqui é /var/lib/ntp/ntp.conf.dhcpo observado /etc/init.d/ntp, mas independentemente disso, a presença desse arquivo não garante que o ntp solicitará servidores de dhclient. Como resultado, eu tenho que adicionar explicitamente a servercláusula no ntp.conf.dhcpmeu servidor ntp local. Mas, nesse caso, por que eu ainda defino as configurações de ntp no dhcpdservidor?

Isso parece ir contra a intuição, ou seja, definir as configurações de ntp uma vez (ou seja, no servidor) e permitir que o dhcpdservidor delegue as informações aos clientes. Como posso minimizar (se não evitar completamente) a configuração do cliente para o ntp. Como alternativa, como posso obter ntpinformações dhclient.

Existe uma solução CLI que se adapte a todas as distros do Linux?

Presumo que todo cliente deva ter os executáveis ​​de ntpd, mas não sei como proceder a partir daí.

Obrigado

EDIT: saída detalhada do cliente ubuntu ao executar manualmente dhclient:

sudo dhclient -1 -d -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/20:cf:30:0e:6c:12
Sending on   LPF/eth0/20:cf:30:0e:6c:12
Sending on   Socket/fallback
DHCPREQUEST of 192.168.112.150 on eth0 to 255.255.255.255 port 67 (xid=0x2e844b8f)
DHCPACK of 192.168.112.150 from 192.168.112.112
reload: Unknown instance: 
invoke-rc.d: initscript smbd, action "reload" failed.
RTNETLINK answers: File exists
 * Stopping NTP server ntpd
   ...done.
 * Starting NTP server ntpd
   ...done.
bound to 192.168.112.150 -- renewal in 41963 seconds.

O serviço ntpd é reiniciado, mas, ainda em execução ntpq -cpe -cas, ainda não vejo meu servidor ntp local na lista de servidores ntp.

Claro que meu dhcpdservidor temoption ntp-servers

subnet 192.168.112.0 netmask 255.255.255.0 {
        max-lease-time 604800;
        default-lease-time 86400;
        authoritative;
        ignore client-updates;

        option ntp-servers 192.168.112.112; #self

        ... (many other options)
}

11
No meu servidor DHCPD eu passo para os clientes o servidor NTP para usar comoption ntp-servers x.x.x.x
Rui F Ribeiro

@RuiFRibeiro Olá, sim, esta opção faz parte do meu dhcpdservidor.
Nass

2
serverfault.com/questions/329596/… pode fornecer algumas dicas. Você provavelmente deseja consultar /etc/dhcp/dhclient-exit-hooks.d/ntp para encontrar o nome do arquivo real sendo usado. Verifique se o seu arquivo dhclient.conf está configurado para solicitar servidores ntp também.
icarus

Você está usando o Ubuntu como cliente? Qual versão?
roaima

O cliente @roaima pode ser o ubuntu, mas uma solução mais genérica ajudaria. Se isso facilitar as coisas, digamos que o ubuntu 14.04 LTS seja o cliente nesse caso.
Nass

Respostas:


10

Se o servidor dhcp que você está usando estiver configurado para fornecer a ntp-serversopção, você poderá configurar seu dhclient para solicitar servidores ntp adicionando ntp-serversà linha de solicitação padrão dhclient.conf, como mostrado no final deste exemplo do Ubuntu Linux (a partir de 19.04, mas presente desde pelo menos 12.04):

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

/etc/ntp.confe as informações do DHCP serão usadas para criar /etc/ntp.conf.dhcp.

Seu ntpd deve ser instruído a usar /etc/ntp.conf.dhcp, se existir. Na versão do Ubuntu que estou usando, isso é feito via /etc/dhcp/dhclient-exit-hooks.d/ntp. <- este é o arquivo que diz ao NTPd para usar, /etc/ntp.conf.dhcpse existir, e usar apenas se não existir /etc/ntp.conf.


2
No Ubuntu 18.04 este arquivo está em /run/ntp.conf.dhcp, você pode olhar para cima a sua localização em qualquer evento em/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf

Parece que o xenial mais recente do Ubuntu 16.04 não suporta mais as opções ntp; Costumava funcionar bem. Fazendo isso: /usr/sbin/dhcpd -tdá o seguinte: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... estava funcionando bem no verão.
Linas 5/11

0

11
Olá Abdullah, o Chrony é uma alternativa útil para estar ciente, mas sua resposta não mostra como ela pode ser usada para fazer com que os clientes DHCP utilizem as informações NTP fornecidas por um servidor DHCP.
Anthony G - justiça para Monica

@AnthonyGeoghegan Olá, Se você adicioná-lo como um comentário que gostaria de apagar a minha resposta,
Abdullah

Não basta publicar alguns links (eles tendem a apodrecer), mas incluir as informações necessárias em sua resposta.
Reintegrar Monica - M. Schröder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.