come si configura un client linux per utilizzare le informazioni ntp fornite tramite dhcp?


18

ci sono così tanti tutorial là fuori che spiegano come impostare il dhcpdserver, in relazione alla fornitura di suggerimenti ntp ai client dhcp, che ho sempre pensato che la ntpconfigurazione fosse eseguita automaticamente. Di recente ho iniziato a vedere derive nella mia rete locale, quindi presumo che si trattasse di un presupposto sbagliato. Così ho deciso di vedere come si può ridurre al minimo la configurazione del client NTTP, purché si sia compiuto lo sforzo di impostare ntp-serversuggerimenti dhcpd.

Non sono stato in grado di trovare molto a parte questo tutorial di guida specifico di Ubuntu https://help.ubuntu.com/community/UbuntuTime . Anche qui (vedere il paragrafo "Risoluzione dei problemi -> Quale file di configurazione sta usando?") Le informazioni sono scarse ma si dice che se /etc/ntp.conf.dhcpviene trovato un file verrà invece usato. Innanzitutto l'ubicazione effettiva che lo scrittore intendeva qui è /var/lib/ntp/ntp.conf.dhcpquella osservata /etc/init.d/ntp, ma a prescindere da ciò la presenza di questo file non garantisce che l'ntp richiederà i server da dhclient. Di conseguenza, devo aggiungere esplicitamente la serverclausola ntp.conf.dhcpper il mio server ntp locale. Ma in quel caso, perché devo anche configurare le impostazioni ntp sul dhcpdserver?

Ciò sembra andare contro l'intuizione, ovvero configurare una volta le impostazioni ntp (ovvero sul server) e consentire al dhcpdserver di delegare le informazioni ai client. Come posso minimizzare (se non evitare del tutto) la configurazione del client per l'NTP. In alternativa, come posso ottenere ntpinformazioni dhclient.

Esiste una soluzione cli che si adatta a tutte le distro linux?

Presumo che ogni cliente dovrebbe avere gli eseguibili di ntpd, ma non so come procedere da lì.

Grazie

EDIT: output dettagliato client ubuntu quando eseguito 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.

Il servizio ntpd viene riavviato, ma ntpq -cpe -casdopo l' esecuzione non vedo ancora il mio server ntp locale nell'elenco dei server ntp.

Naturalmente il mio dhcpdserver haoption 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)
}

1
Nel mio server DHCPD passo ai client il server NTP da utilizzare conoption ntp-servers x.x.x.x
Rui F Ribeiro,

@RuiFRibeiro Ciao, sì, questa opzione fa davvero parte del mio dhcpdserver.
nass

2
serverfault.com/questions/329596/… può darti alcuni indizi. Probabilmente vuoi guardare /etc/dhcp/dhclient-exit-hooks.d/ntp per trovare il nome del file effettivamente usato. Assicurati che il tuo file dhclient.conf sia impostato per richiedere anche i server ntp.
Icaro

Stai usando Ubuntu come client? Quale versione?
roaima,

Il client @roaima potrebbe essere ubuntu ma una soluzione più generica sarebbe di aiuto. Se semplifica le cose, supponiamo che Ubuntu 14.04 LTS sia il client in questo caso.
Nass

Risposte:


10

Se il server dhcp che stai utilizzando è configurato per fornire l' ntp-serversopzione, puoi configurare il tuo dhclient per richiedere i server ntp aggiungendo ntp-serversalla riga di richiesta predefinita in dhclient.conf, come mostrato alla fine di questo esempio da Ubuntu Linux (a partire dal 19.04, ma presente almeno dal 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 le informazioni da DHCP verranno utilizzate per creare /etc/ntp.conf.dhcp.

Il tuo ntpd deve essere informato di usare /etc/ntp.conf.dhcp se esiste. Sulla versione di Ubuntu che sto usando, questo viene fatto tramite /etc/dhcp/dhclient-exit-hooks.d/ntp. <- questo è il file che dice a NTPd di usare /etc/ntp.conf.dhcpse esiste e di usare solo /etc/ntp.confse non lo fa.


2
In Ubuntu 18.04 questo file è /run/ntp.conf.dhcp, puoi cercare la sua posizione in ogni caso in/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf

Sembra che l'ultimo Ubuntu 16.04 xenial non supporti più le opzioni ntp; funzionava bene. In questo modo: /usr/sbin/dhcpd -tdà questo: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... stava funzionando benissimo in estate.
Linas,

0

1
Ciao Abdullah, Chrony è un'utile alternativa di cui essere consapevoli, ma la tua risposta non mostra come possa essere usata per convincere i client DHCP a fare uso delle informazioni NTP fornite da un server DHCP.
Anthony G - giustizia per Monica

@AnthonyGeoghegan Ciao, se lo aggiungi come commento vorrei eliminare la mia risposta,
Abdullah

Non solo pubblicare alcuni link (questi tendono a marcire) ma includi le informazioni necessarie nella tua risposta.
Ripristina Monica - M. Schröder il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.