Jak skonfigurować klienta Linuksa do korzystania z informacji NTTP dostarczanych przez DHCP?


18

jest tak wiele samouczków wyjaśniających, jak skonfigurować dhcpdserwer w związku z sugestiami NTTP dla klientów DHCP, że zawsze myślałem, że ntpkonfiguracja została przeprowadzona automatycznie. Ostatnio zacząłem widzieć przesunięcia zegara w mojej sieci lokalnej, więc zakładam, że było to błędne założenie. Wyruszyłem więc, aby zobaczyć, jak można zminimalizować konfigurację klienta NTTP, pod warunkiem, że dołożyliśmy wszelkich starań, aby skonfigurować ntp-serversugestie dhcpd.

Nie byłem w stanie znaleźć wiele poza tym samouczkiem pomocy specyficznym dla Ubuntu https://help.ubuntu.com/community/UbuntuTime . Nawet tutaj (patrz akapit „Rozwiązywanie problemów -> Którego pliku konfiguracyjnego używa?”) Informacja jest niewystarczająca, ale mówi, że jeśli /etc/ntp.conf.dhcpplik zostanie znaleziony, zostanie użyty. Przede wszystkim rzeczywista lokalizacja, o której pisarz miał tu na myśli, jest taka, /var/lib/ntp/ntp.conf.dhcpjak w obserwowanym /etc/init.d/ntp, ale niezależnie od tego, obecność tego pliku nie gwarantuje, że ntp zażąda serwerów dhclient. W rezultacie muszę jawnie dodać serverklauzulę ntp.conf.dhcpdla mojego lokalnego serwera NTTP. Ale w takim przypadku, dlaczego nawet konfiguruję ustawienia NTTP na dhcpdserwerze?

Wydaje się, że jest to sprzeczne z intuicją, tj. Raz skonfiguruj ustawienia ntp (tj. Na serwerze) i pozwól dhcpdserwerowi przekazać informacje klientom. Jak mogę zminimalizować (jeśli nie całkowicie uniknąć) konfigurację klienta dla NTTP. Alternatywnie, w jaki sposób mogę uzyskać ntpinformacje dhclient.

Czy istnieje rozwiązanie cli, które pasuje do wszystkich dystrybucji Linuksa?

Zakładam, że każdy klient powinien mieć pliki wykonywalne ntpd, ale nie wiem, jak to zrobić.

Dziękuję Ci

EDYCJA: pełne wyjście klienta Ubuntu podczas ręcznego uruchamiania 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.

Usługa NTTP jest restartowana, ale działa ntpq -cpe -cas później nadal nie widzę mojego lokalnego serwera NTTP na liście serwerów NTTP.

Oczywiście, że mój dhcpdserwer maoption 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
Na moim serwerze DHCPD przekazuję klientom serwer NTP, z którym można korzystaćoption ntp-servers x.x.x.x
Rui F Ribeiro

@RuiFRibeiro Cześć, tak, ta opcja jest rzeczywiście częścią mojego dhcpdserwera.
nass

2
serverfault.com/questions/329596/... może dać ci pewne wskazówki. Prawdopodobnie chcesz spojrzeć na /etc/dhcp/dhclient-exit-hooks.d/ntp, aby znaleźć aktualnie używaną nazwę pliku. Upewnij się, że plik dhclient.conf jest skonfigurowany tak, aby żądał również serwerów ntp.
icarus

Używasz Ubuntu jako klienta? Która wersja
roaima,

Klient @roaima może być ubuntu, ale pomocne byłoby bardziej ogólne rozwiązanie. Jeśli to wszystko ułatwi, powiedzmy, że w tym przypadku klientem jest Ubuntu 14.04 LTS.
nass

Odpowiedzi:


10

Jeśli serwer dhcp, którego używasz, jest skonfigurowany do zapewnienia tej ntp-serversopcji, możesz skonfigurować dhclient, aby żądał serwerów ntp, dodając ntp-serversdo domyślnego wiersza żądania w dhclient.conf, jak pokazano na końcu tego przykładu z systemu Ubuntu Linux (od 19.04, ale obecne od co najmniej 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.confa informacje z DHCP zostaną wykorzystane do utworzenia /etc/ntp.conf.dhcp.

Twoja ntpd musi zostać poproszona o użycie /etc/ntp.conf.dhcp, jeśli istnieje. W wersji Ubuntu, której używam, odbywa się to za pośrednictwem /etc/dhcp/dhclient-exit-hooks.d/ntp. <- jest to plik, który każe NTPd użyć, /etc/ntp.conf.dhcpjeśli istnieje, i użyć, jeśli nie istnieje /etc/ntp.conf.


2
W Ubuntu 18.04 ten plik jest w /run/ntp.conf.dhcp/etc/dhcp/dhclient-exit-hooks.d/ntp
środku

Wygląda na to, że najnowszy Xenial Ubuntu 16.04 nie obsługuje już opcji NTTP; kiedyś działało dobrze. Robienie tego: /usr/sbin/dhcpd -tdaje to: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... działało dobrze latem.
Linas

0

1
Cześć Abdullah, Chrony jest użyteczną alternatywą, o której należy wiedzieć, ale twoja odpowiedź nie pokazuje, w jaki sposób można go użyć, aby zmusić klientów DHCP do korzystania z informacji NTP dostarczonych przez serwer DHCP.
Anthony G - sprawiedliwość dla Moniki

@AnthonyGeoghegan Cześć, Jeśli dodasz go jako komentarz, usunę moją odpowiedź,
Abdullah,

Nie zamieszczaj tylko niektórych linków (które zwykle gniją), ale dołącz do potrzebnych informacji.
Przywróć Monikę - M. Schröder
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.