comment configurer un client linux pour utiliser les informations ntp fournies via dhcp?


18

il y a tellement de tutoriels expliquant comment configurer le dhcpdserveur, en ce qui concerne la fourniture de suggestions ntp aux clients DHCP, que j'avais toujours pensé que la ntpconfiguration était effectuée automatiquement. Récemment, j'ai commencé à voir des dérives d'horloge dans mon réseau local, donc je suppose que c'était une hypothèse erronée. J'ai donc essayé de voir comment minimiser la configuration du client ntp, à condition d'avoir fait l'effort de mettre en place des ntp-serversuggestions dhcpd.

Je n'ai pas pu trouver grand-chose à part ce tutoriel d'aide spécifique à Ubuntu https://help.ubuntu.com/community/UbuntuTime . Même ici (voir le paragraphe "Dépannage -> Quel fichier de configuration utilise-t-il?"), Les informations sont rares, mais elles indiquent que si un /etc/ntp.conf.dhcpfichier est trouvé, il sera utilisé à la place. Tout d'abord, l'emplacement réel que l'écrivain voulait dire ici est /var/lib/ntp/ntp.conf.dhcpcelui observé /etc/init.d/ntp, mais malgré cela, la présence de ce fichier ne garantit pas que le ntp demandera des serveurs à dhclient. En conséquence, je dois ajouter explicitement la serverclause ntp.conf.dhcppour mon serveur ntp local. Mais dans ce cas, pourquoi dois-je même configurer les paramètres ntp sur le dhcpdserveur?

Cela semble aller à l'encontre de l'intuition, c'est-à-dire configurer les paramètres ntp une fois (c'est-à-dire sur le serveur) et laisser le dhcpdserveur déléguer les informations aux clients. Comment puis-je minimiser (sinon éviter complètement) la configuration du client pour le ntp. Sinon, comment puis-je obtenir des ntpinformations dhclient.

Existe-t-il une solution cli qui convient à toutes les distributions Linux?

Je suppose que chaque client devrait avoir les exécutables de ntpd, mais je ne sais pas comment procéder à partir de là.

Je vous remercie

EDIT: sortie détaillée du client ubuntu lors de l'exécution manuelle 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.

Le service ntpd est redémarré, mais en cours d'exécution ntpq -cpe -caspar la suite, je ne vois toujours pas mon serveur ntp local dans la liste des serveurs ntp.

Bien sûr, mon dhcpdserveur aoption 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
Dans mon serveur DHCPD, je passe aux clients le serveur NTP à utiliser avecoption ntp-servers x.x.x.x
Rui F Ribeiro

@RuiFRibeiro Salut, oui, cette option fait en effet partie de mon dhcpdserveur.
nass

2
serverfault.com/questions/329596/… peut vous donner quelques indices. Vous voudrez probablement regarder /etc/dhcp/dhclient-exit-hooks.d/ntp pour trouver le nom de fichier réellement utilisé. Assurez-vous que votre fichier dhclient.conf est également configuré pour demander des serveurs ntp.
icarus

Vous utilisez Ubuntu comme client? Quelle version?
roaima

Le client @roaima peut être ubuntu mais une solution plus générique serait utile. Si cela facilite les choses, disons que ubuntu 14.04 LTS est le client dans ce cas.
nass

Réponses:


10

Si le serveur dhcp que vous utilisez est configuré pour fournir l' ntp-serversoption, vous pouvez configurer votre dhclient pour demander des serveurs ntp en ajoutant ntp-serversà la ligne de demande par défaut dans dhclient.conf, comme indiqué à la fin de cet exemple d'Ubuntu Linux (à partir du 19.04, mais présent depuis au moins 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.confet les informations de DHCP seront utilisées pour créer /etc/ntp.conf.dhcp.

Votre ntpd doit être invité à utiliser /etc/ntp.conf.dhcp s'il existe. Sur la version d'Ubuntu que j'utilise, cela se fait via /etc/dhcp/dhclient-exit-hooks.d/ntp. <- c'est le fichier qui indique à NTPd d'utiliser /etc/ntp.conf.dhcps'il existe, et de l'utiliser /etc/ntp.confs'il ne l'est pas.


2
Dans Ubuntu 18.04, ce fichier est dans /run/ntp.conf.dhcp, vous pouvez rechercher son emplacement dans tous les cas dans/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf

Il semble que le dernier Ubuntu 16.04 xenial ne supporte plus les options ntp; ça fonctionnait bien. Faire ceci: /usr/sbin/dhcpd -tdonne ceci: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... cela fonctionnait bien en été.
Linas

0

1
Salut Abdullah, Chrony est une alternative utile à connaître, mais votre réponse ne montre pas comment elle peut être utilisée pour que les clients DHCP utilisent les informations NTP fournies par un serveur DHCP.
Anthony G - justice pour Monica

@AnthonyGeoghegan Bonjour, Si vous l'ajoutez en tant que commentaire, je supprimerais ma réponse,
Abdullah

Ne vous contentez pas de publier des liens (ceux-ci ont tendance à pourrir) mais incluez les informations nécessaires dans votre réponse.
Reinstate Monica - M. Schröder
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.