คุณจะตั้งค่าไคลเอนต์ linux เพื่อใช้ข้อมูล ntp ที่จัดทำผ่าน dhcp ได้อย่างไร?


18

มีบทเรียนมากมายที่อธิบายถึงวิธีการตั้งค่าdhcpdเซิร์ฟเวอร์เกี่ยวกับการให้คำแนะนำ ntp ให้กับลูกค้า DHCP ซึ่งผมคิดเสมอว่าntpการตั้งค่านั้นดำเนินการโดยอัตโนมัติ เมื่อเร็ว ๆ นี้ฉันเริ่มเห็นนาฬิกาลอยในเครือข่ายท้องถิ่นของฉันดังนั้นฉันคิดว่านี่เป็นข้อสันนิษฐานที่ผิด ดังนั้นผมจึงออกไปดูวิธีการหนึ่งที่สามารถลดการกำหนดค่า NTP ลูกค้าที่ให้ใครได้ดำเนินความพยายามที่จะตั้งค่าข้อเสนอแนะผ่านntp-serverdhcpd

ฉันยังไม่ได้สามารถที่จะหามากนอกเหนือจากนี้โดยเฉพาะความช่วยเหลืออูบุนตูกวดวิชาhttps://help.ubuntu.com/community/UbuntuTime แม้ที่นี่ (ดูย่อหน้าภายใต้ "การแก้ไขปัญหา -> ไฟล์การกำหนดค่าใดที่ใช้อยู่") ข้อมูลมีน้อย แต่มันบอกว่าถ้า/etc/ntp.conf.dhcpพบไฟล์จะถูกใช้แทน แรกของทุกสถานที่จริงว่าผู้เขียนหมายถึงที่นี่จะ/var/lib/ntp/ntp.conf.dhcpเป็นที่สังเกตใน/etc/init.d/ntpแต่ไม่คำนึงถึงว่าการปรากฏตัวของไฟล์นี้ไม่ได้รับประกันว่า NTP dhclientจะขอจากเซิร์ฟเวอร์ ดังนั้นฉันต้องเพิ่มserverข้อในntp.conf.dhcpเซิร์ฟเวอร์ ntp ในพื้นที่ของฉันอย่างชัดเจน แต่ในกรณีนั้นทำไมฉันถึงติดตั้งการตั้งค่า ntp บนdhcpdเซิร์ฟเวอร์?

สิ่งนี้ดูเหมือนว่าจะขัดกับสัญชาตญาณเช่นการตั้งค่าการตั้งค่า ntp หนึ่งครั้ง (เช่นบนเซิร์ฟเวอร์) และให้dhcpdเซิร์ฟเวอร์มอบหมายข้อมูลให้กับลูกค้า ฉันจะย่อเล็กสุดได้อย่างไร (หากไม่หลีกเลี่ยงทั้งหมด) การกำหนดค่าไคลเอนต์สำหรับ ntp หรือฉันจะรับntpข้อมูลผ่านdhclientได้อย่างไร

มีโซลูชัน cli ที่เหมาะกับ distros linux ทั้งหมดหรือไม่

ฉันคิดว่าไคลเอนต์ทุกคนควรมี executables ของntpdแต่ฉันไม่ทราบวิธีการดำเนินการจากที่นั่น

ขอขอบคุณ

แก้ไข: ไคลเอนต์อูบุนตู verbose เอาท์พุทเมื่อทำงานด้วยตนเอง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.

บริการ ntpd เริ่มต้นใหม่ แต่ยังทำงานntpq -cpe -casหลังจากนั้นฉันยังไม่เห็นเซิร์ฟเวอร์ ntp ในพื้นที่ของฉันในรายการเซิร์ฟเวอร์ ntp

แน่นอนว่าdhcpdเซิร์ฟเวอร์ของฉันมี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
ในเซิร์ฟเวอร์ DHCPD ของฉันฉันผ่านไปยังไคลเอนต์เซิร์ฟเวอร์ NTP เพื่อใช้กับoption ntp-servers x.x.x.x
Rui F Ribeiro

@RuiFRibeiro สวัสดีใช่แล้วตัวเลือกนี้เป็นส่วนหนึ่งของdhcpdเซิร์ฟเวอร์ของฉัน
nass

2
serverfault.com/questions/329596//อาจให้เบาะแสบางอย่างแก่คุณ คุณอาจต้องการดู /etc/dhcp/dhclient-exit-hooks.d/ntp เพื่อค้นหาชื่อไฟล์จริงที่ใช้ ตรวจสอบให้แน่ใจว่าไฟล์ dhclient.conf ของคุณได้รับการตั้งค่าให้ร้องขอเซิร์ฟเวอร์ ntp เช่นกัน
รัส

คุณใช้ Ubuntu เป็นไคลเอ็นต์หรือไม่ เวอร์ชันไหน
roaima

@roaima client อาจเป็น Ubuntu แต่โซลูชันทั่วไปที่มากกว่านี้จะช่วยได้ ถ้ามันทำให้สิ่งต่าง ๆ ง่ายขึ้นสมมติว่า ubuntu 14.04 LTS เป็นไคลเอนต์ในกรณีนี้
NASS

คำตอบ:


10

หากเซิร์ฟเวอร์ dhcp ที่คุณใช้มีการกำหนดค่าเพื่อให้ntp-serversตัวเลือกคุณสามารถกำหนดค่า dhclient ของคุณเพื่อขอเซิร์ฟเวอร์ ntp โดยเพิ่มntp-serversลงในบรรทัดคำขอเริ่มต้นตามdhclient.confที่แสดงในตอนท้ายของตัวอย่างนี้จาก Ubuntu Linux (ตั้งแต่ 19.04 แต่ นำเสนอตั้งแต่อย่างน้อย 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.confและข้อมูลจาก DHCP /etc/ntp.conf.dhcpจะถูกใช้ในการสร้าง

ntpd ของคุณจะต้องบอกให้ใช้ /etc/ntp.conf.dhcp หากมีอยู่ สำหรับเวอร์ชั่นของ Ubuntu ที่ฉันใช้งานผ่านทาง/etc/dhcp/dhclient-exit-hooks.d/ntpนี้ <- นี่คือไฟล์ที่บอกให้ NTPd ใช้/etc/ntp.conf.dhcpหากมีอยู่และจะใช้/etc/ntp.confหากไม่มี


2
ใน Ubuntu 18.04 ไฟล์นี้อยู่/run/ntp.conf.dhcpคุณสามารถค้นหาตำแหน่งของมันในทุกกรณีใน/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf

ดูเหมือนว่า Ubuntu 16.04 xenial ล่าสุดไม่รองรับตัวเลือก ntp อีกต่อไป มันใช้งานได้ดี ทำสิ่งนี้: /usr/sbin/dhcpd -tให้สิ่งนี้: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... มันทำงานได้ดีในฤดูร้อน
Linas

0

chronydกำลังใช้ dayd เหล่านี้ใช่มันยังคงใช้โปรโตคอล NTP คุณอาจไปตรวจสอบแหล่งที่มาสองแห่ง:

https://docs.oracle.com/cd/E52668_01/E54669/html/section_zy2_rrf_pp.html

https://wiki.archlinux.org/index.php/Chrony

http://chrony.tuxfamily.org/faq.html#_i_have_several_computers_on_a_lan_should_be_all_clients_of_an_external_server

https://docs.fedoraproject.org/en-US/Fedora/18/html/System_Administrators_Guide/chap-Configuring_NTP_Using_the_chrony_Suite.html

ฉันแนะนำ 2 คนสุดท้าย


1
สวัสดี Abdullah, Chrony เป็นทางเลือกที่มีประโยชน์ที่ต้องระวัง แต่คำตอบของคุณไม่ได้แสดงให้เห็นว่าสามารถใช้เพื่อให้ไคลเอ็นต์ DHCP ใช้ประโยชน์จากข้อมูล NTP ที่เซิร์ฟเวอร์ DHCP จัดหาให้ได้อย่างไร
Anthony G - ความยุติธรรมสำหรับ Monica

@AnthonyGeoghegan สวัสดีถ้าคุณเพิ่มเป็นความคิดเห็นฉันจะลบคำตอบของฉัน
Abdullah

อย่าโพสต์ลิงก์บางลิงก์ (สิ่งเหล่านี้มีแนวโน้มที่จะหายไป) แต่รวมถึงข้อมูลที่จำเป็นในคำตอบของคุณ
Reinstate Monica - M. Schröder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.