Làm thế nào để bạn thiết lập một máy khách linux để sử dụng thông tin ntp được cung cấp thông qua dhcp?


18

Có rất nhiều hướng dẫn giải thích cách thiết lập dhcpdmáy chủ, liên quan đến việc cung cấp các đề xuất ntp cho các máy khách dhcp, mà tôi luôn nghĩ rằng ntpcấu hình được thực hiện tự động. Gần đây tôi bắt đầu thấy đồng hồ trôi trong mạng cục bộ của mình, vì vậy tôi cho rằng đây là một giả định sai. Vì vậy, tôi đã đặt ra để xem làm thế nào người ta có thể giảm thiểu cấu hình máy khách ntp, miễn là người ta đã thực hiện nỗ lực để thiết lập các ntp-serverđề xuất thông qua dhcpd.

Tôi không thể tìm thấy nhiều ngoài hướng dẫn trợ giúp cụ thể về Ubuntu này https://help.ubfox.com/community/Ub UbuntuTime . Ngay cả ở đây (xem đoạn dưới "Khắc phục sự cố -> Tập tin cấu hình nào đang sử dụng?") Thông tin khan hiếm nhưng nó nói rằng nếu /etc/ntp.conf.dhcptìm thấy một tập tin, nó sẽ được sử dụng thay thế. Trước hết, vị trí thực tế mà người viết muốn nói ở đây được /var/lib/ntp/ntp.conf.dhcpquan sát /etc/init.d/ntp, nhưng bất kể sự hiện diện của tệp này không đảm bảo rằng ntp sẽ yêu cầu máy chủ từ đó dhclient. Kết quả là, tôi phải thêm một cách rõ ràng servermệnh đề vào ntp.conf.dhcpcho máy chủ ntp cục bộ của mình. Nhưng trong trường hợp đó, tại sao tôi thậm chí còn thiết lập cài đặt ntp trên dhcpdmáy chủ?

Điều này dường như đi ngược lại với trực giác, tức là thiết lập cài đặt ntp một lần (tức là trên máy chủ) và để dhcpdmáy chủ ủy quyền thông tin cho khách hàng. Làm thế nào tôi có thể giảm thiểu (nếu không tránh hoàn toàn), cấu hình máy khách cho ntp. Ngoài ra, làm thế nào tôi có thể nhận được ntpthông tin dhclient.

Có một giải pháp cli phù hợp với tất cả các distro linux?

Tôi giả sử mọi khách hàng nên có các tệp thực thi ntpd, nhưng tôi không biết làm thế nào để tiếp tục từ đó.

Cảm ơn bạn

EDIT: đầu ra verbose của máy khách Ubuntu khi chạy thủ công 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.

Dịch vụ ntpd được khởi động lại, nhưng ntpq -cpe -cassau đó tôi vẫn không thấy máy chủ ntp cục bộ của mình trong danh sách các máy chủ ntp.

Tất nhiên dhcpdmáy chủ của tôi không cóoption 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
Trong máy chủ DHCPD của tôi, tôi chuyển cho khách hàng máy chủ NTP để sử dụng vớioption ntp-servers x.x.x.x
Rui F Ribeiro

@RuiFRibeiro Xin chào, có tùy chọn này thực sự là một phần của dhcpdmáy chủ của tôi .
NASS

2
serverfault.com/questions/329596/ Có thể cung cấp cho bạn một số manh mối. Bạn có thể muốn xem /etc/dhcp/dhclient-exit-hooks.d/ntp để tìm tên tệp thực tế đang được sử dụng. Đảm bảo rằng tệp dhclient.conf của bạn cũng được thiết lập để yêu cầu máy chủ ntp.
icarus

Bạn đang sử dụng Ubuntu làm máy khách? Phiên bản nào?
roaima

@roaima client có thể là Ubuntu, nhưng một giải pháp chung hơn sẽ có ích. Nếu nó làm mọi thứ dễ dàng hơn, giả sử ubfox 14.04 LTS là máy khách trong trường hợp này.
NASS

Câu trả lời:


10

Nếu máy chủ dhcp bạn đang sử dụng được định cấu hình để cung cấp ntp-serverstùy chọn, bạn có thể định cấu hình dhclient của mình để yêu cầu máy chủ ntp bằng cách thêm ntp-serversvào dòng yêu cầu mặc định dhclient.conf, như được hiển thị ở cuối ví dụ này từ Ubuntu Linux (kể từ ngày 19.04, nhưng có mặt từ ít nhất 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.confvà thông tin từ DHCP sẽ được sử dụng để tạo /etc/ntp.conf.dhcp.

Nppd của bạn phải được yêu cầu sử dụng /etc/ntp.conf.dhcp nếu nó tồn tại. Trên phiên bản Ubuntu mà tôi đang sử dụng, việc này được thực hiện thông qua /etc/dhcp/dhclient-exit-hooks.d/ntp. <- đây là tệp thông báo cho NTPd sử dụng /etc/ntp.conf.dhcpnếu nó tồn tại và chỉ sử dụng /etc/ntp.confnếu không.


2
Trong Ubuntu 18.04, tệp này nằm trong /run/ntp.conf.dhcp, bạn có thể tra cứu vị trí của nó trong bất kỳ sự kiện nào trong/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf

Dường như xenial Ubuntu 16.04 mới nhất không còn hỗ trợ tùy chọn ntp; Nó được sử dụng để làm việc tốt. Làm điều này: /usr/sbin/dhcpd -tcho điều này: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... nó đã hoạt động tốt trở lại vào mùa hè.
Linas

0

1
Xin chào Abdullah, Chrony là một giải pháp thay thế hữu ích để nhận biết nhưng câu trả lời của bạn không cho thấy cách sử dụng máy khách DHCP để sử dụng thông tin NTP do máy chủ DHCP cung cấp.
Anthony G - công lý cho Monica

@AnthonyGeoghegan Xin chào, Nếu bạn thêm nó dưới dạng một nhận xét tôi sẽ xóa câu trả lời của tôi,
Abdullah

Đừng chỉ đăng một số liên kết (những liên kết này có xu hướng bị mất) mà bao gồm các thông tin cần thiết trong câu trả lời của bạn.
Phục hồi Monica - M. Schröder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.