เปรียบเทียบ NTPD และ ntpdate


23

ข้อดีและข้อเสียระหว่างสองวิธีนี้ในการซิงโครไนซ์เซิร์ฟเวอร์ของคุณคืออะไร

ดูเหมือนว่าฉันว่าเซิร์ฟเวอร์ของคุณอาจจะไม่ลอยมากกว่า 1 วินาทีทุกวันดังนั้น ntpdate บน crontab ก็โอเค แต่ฉันได้ยินมาว่าคุณสามารถใช้เซิร์ฟเวอร์ NTP ซ้ำซ้อนได้ที่นี่

http://www.pool.ntp.org/en/use.html

เพื่อรักษาเวลาที่ซิงโครไนซ์ในกรณีที่ล้มเหลว

คุณมีข้อเสนอแนะใด?

คำตอบ:


26

อัลกอริทึม NTP รวมถึงข้อมูลเพื่อให้คุณสามารถคำนวณและแก้ไขการดริฟท์ในนาฬิกาของเซิร์ฟเวอร์ของคุณ NTPD รวมถึงความสามารถในการใช้สิ่งนี้เพื่อให้นาฬิกาของคุณซิงค์และจะทำงานได้แม่นยำกว่านาฬิกาบนคอมพิวเตอร์ที่ไม่ได้ใช้ NTPD NTPD จะใช้เซิร์ฟเวอร์หลายเครื่องเพื่อปรับปรุงความแม่นยำ

ntpdate จะไม่คงสถานะใด ๆ ให้ใช้บริการนี้สำหรับคุณดังนั้นจะไม่ให้ความแม่นยำในลักษณะเดียวกัน จะช่วยให้คุณสามารถจัดทำรายการเซิร์ฟเวอร์ที่จะใช้ในการพยายามให้ผลลัพธ์ที่ดีกว่า แต่นี่ไม่ใช่สิ่งทดแทนขั้นตอนวิธีที่ซับซ้อนที่มีให้ใน NTPD ที่ติดตามการดริฟท์ของคุณจากเซิร์ฟเวอร์แต่ละเครื่องในช่วงเวลาหนึ่ง

NTPDATE แก้ไขเวลาของระบบทันทีซึ่งอาจทำให้เกิดปัญหากับซอฟต์แวร์บางตัว (เช่นการทำลายเซสชั่นซึ่งตอนนี้ดูเหมือนจะเก่า) NTPD จงแก้ไขเวลาของระบบอย่างช้าๆโดยหลีกเลี่ยงปัญหานั้น คุณสามารถเพิ่มสวิตช์ -g เมื่อเริ่ม NTPD เพื่ออนุญาตให้ NTPD ทำการอัปเดตครั้งใหญ่ครั้งแรกซึ่งเทียบเท่ากับการรัน ntpdate มากกว่าหรือน้อยกว่าหนึ่งครั้งก่อนที่จะเริ่ม NTPD ซึ่งแนะนำให้ฝึกหัดในครั้งเดียว

สำหรับข้อกังวลด้านความปลอดภัยเซิร์ฟเวอร์ ntp จะไม่เชื่อมต่อกลับไปยังการเชื่อมต่อที่ไม่ได้ตั้งใจซึ่งหมายความว่าไฟร์วอลล์ของคุณควรจะสามารถบอกได้ว่าคุณเริ่มต้นคำขอ ntp และอนุญาตการรับส่งคืน ไม่จำเป็นต้องเปิดพอร์ตไว้สำหรับการเชื่อมต่อโดยพลการเพื่อให้ NTPD ทำงานได้

จากหน้าคน ntpdate (8):

ntpdate สามารถรันด้วยตนเองได้ตามความจำเป็นเพื่อตั้งค่านาฬิกาโฮสต์หรือสามารถเรียกใช้จากสคริปต์เริ่มต้นโฮสต์เพื่อตั้งนาฬิกาในเวลาบูต สิ่งนี้มีประโยชน์ในบางกรณีเพื่อตั้งค่านาฬิกาในตอนแรกก่อนเริ่ม NTP daemon ntpd นอกจากนี้ยังเป็นไปได้ที่จะเรียกใช้ ntpdate จากสคริปต์ cron อย่างไรก็ตามมันเป็นสิ่งสำคัญที่จะต้องทราบว่า ntpdate กับสคริปต์ cron ที่วางแผนไว้จะไม่ทดแทน NTP daemon ซึ่งใช้อัลกอริธึมที่ซับซ้อนเพื่อเพิ่มความแม่นยำและความน่าเชื่อถือสูงสุดในขณะที่ลดการใช้ทรัพยากร ในที่สุดเนื่องจาก ntpdate ไม่ได้ฝึกฝนความถี่สัญญาณนาฬิกาของโฮสต์เช่นเดียวกับ ntpd ความแม่นยำในการใช้ ntpdate จึงถูก จำกัด


ดีกว่าการใช้ ntpdate ก่อนเริ่ม ntpd: แค่ใช้ -g!
Alex J

8

ntpd เป็นที่ต้องการมากกว่า ntpdate เพราะคุณได้รับการแก้ไขเวลาที่ราบรื่นมากกว่าการกระโดดในนาฬิกาของคุณ คุณใช้ความรู้สึกอย่างไรกับบันทึกของคุณเมื่อมีเวลาย้อนหลังในพวกเขา ntpdate จะสลับไปมาระหว่างเซิร์ฟเวอร์อย่างโปร่งใสตามต้องการ

สำหรับความต้องการพอร์ตเปิด (ตามที่ Kyle กล่าวถึง) รุ่นใหม่กว่าของ ntpd (เช่น 4.2.4 บนเซิร์ฟเวอร์ Debian ของฉัน) สามารถกำหนดค่าให้ออกอากาศ / มัลติคาสต์ไปยัง LAN ด้วยการรับรองความถูกต้องเข้ารหัส

แก้ไข: ดูคำถามนี้ด้วย


5

โดยทั่วไปฉันแนะนำให้คุณเรียกใช้ NTPD และซิงค์เซิร์ฟเวอร์ของคุณกับเซิร์ฟเวอร์เวลาที่กำหนดภายในองค์กรของคุณ โดยทั่วไปเซิร์ฟเวอร์ภายในนั้นจะซิงค์กับหนึ่งในเซิร์ฟเวอร์ NTP สาธารณะ (ตามที่คุณเชื่อมโยง)

ฉันใช้วิธี ntpdate โดยไม่มีปัญหา แต่ดูเหมือนว่าแฮ็คมากกว่าการใช้ ntpd daemon จริง


3

ฉันเคยได้ยินปัญหาเกี่ยวกับนาฬิกาเอียงบนเครื่องเสมือนที่รัน ntpd ฉันเคยได้ยินคนที่แก้ไขปัญหานี้ด้วยการเรียกใช้งาน cron ปกติที่เรียก ntpdate กับเซิร์ฟเวอร์พูลหลายแห่ง ฉันไม่ได้มีปัญหาเหล่านี้ แต่ฉันได้ยินพวกเขาหลายครั้ง


1
พวกเขาจะต้องการเรียกใช้เคอร์เนลที่ไม่มีการทำงานบน VM
goo

1
ซอฟต์แวร์เครื่องมือ VMware บน ESX VM ดูแลการซิงค์เวลาดังนั้นอย่าใช้ ntpd บน VM กับเครื่องมือ VMware ติดตั้ง NTPD บนโฮสต์แทนและปล่อยให้เครื่องมือ VMware ทำส่วนที่เหลือ
dunxd

3

ดังที่กล่าวไว้ที่อื่น NTP ให้การแก้ไขเวลาที่ราบรื่น หากแอปพลิเคชันบนเซิร์ฟเวอร์ของคุณไม่ทราบว่าทั้งวินาทีหายไปหรือทำวินาทีเดียวกันซ้ำอีกครั้ง ntpd จะไม่ทำให้คุณได้รับมากกว่า ntpdate

หากในอีกทางหนึ่งคุณมีแอพพลิเคชั่นที่คำนึงถึงเวลาที่ไวต่อวินาทีหรือแย่กว่านั้นคือไวต่อวินาทีบางส่วนดังนั้น ntpd จึงเป็นตัวเลือกที่ดีกว่า การอัพเดต timestamps ของ eDirectory ของ Novell สำหรับการจัดการการชนกันของข้อมูลซึ่งมีความสำคัญหากการอัปเดตนั้นรวดเร็วมาก (เช่นในช่วงเร่งด่วนการเข้าสู่ระบบตอนเช้า) เซิร์ฟเวอร์ syslog ต้องมีเวลาที่ถูกต้องอย่างน้อยครึ่งวินาทีเพื่อเก็บบันทึก sane

สำหรับกล่อง MythTV ของฉันที่บ้านฉันสังเกตเห็นว่ามันเป็นเวลาเพียงไม่กี่วินาทีที่ผู้ให้บริการเคเบิลของฉันจะพิจารณาเวลาดังนั้นฉันจึงใช้ NTP กับสิ่งนั้น สำหรับเซิร์ฟเวอร์มอนิเตอร์ของ UPS ในที่ทำงานฉันใช้ crontabbed ntpdate ด้วยเหตุผลเดียวกัน Kyle Hodgson ชี้ให้เห็นเพราะเป็นโฮสต์ของป้อมปราการฉันไม่ต้องการพอร์ตที่เปิดแม้ว่าฉันจะล็อคแอปพลิเคชันลงก็ตาม สำหรับแอปพลิเคชั่นนั้นเป็นเรื่องที่สองที่แท้จริงไม่น่ากลัว

สำหรับความซ้ำซ้อนเรายังคงโฮสต์อย่างน้อยสองโฮสต์บนเครือข่ายของเราและชี้โฮสต์ภายในทั้งหมดของเราไปยังโฮสต์ทั้งสองนั้น ทั้งสองติดตามโฮสต์ NTP อินเทอร์เน็ตที่แตกต่างกัน ยิ่งไปกว่านั้นพวกเขากำลังกำหนดค่าแบบเพียร์เพื่อให้พวกเขาสามารถรักษาเวลาระหว่างพวกเขาในรูปแบบฉันทามติหากลิงค์อินเทอร์เน็ตของเราลง Robust NTP เป็นไปได้ที่จะสร้าง


1

บนเซิร์ฟเวอร์ที่การเข้าถึงและการชุบแข็งมีความสำคัญฉันได้ใช้เหตุผลว่า xntpd เวอร์ชันของ ntpd ที่ฉันต้องใช้ต้องเปิดพอร์ต UDP 123 เพราะฉันต้องการเปิด tcp 22 และ 80 เท่านั้นฉันใช้ ntpdate ใน crontab แทน ฉันไม่เคยได้ยินเหตุผลที่ดีว่าทำไมถึงต้องการสิ่งนั้นหรือไม่ใช่สิ่งที่ฉันจำได้

หนึ่งในข้อเสียของการใช้การเรียก crontab'ed ntpdate คือมันไม่สามารถจัดการการแก้ไขดริฟท์ได้อย่างสวยงาม ntpdate, iirc, อัพเดตนาฬิกาทันทีที่สามารถบอกได้ว่าคุณล้าสมัย - ntp daemons มักจะแก้ไขการเบี่ยงเบนไปอย่างเบามือ นี่เป็นประโยชน์ที่บันทึกของคุณจะถูกเก็บไว้อย่างมีสติ - คุณสามารถจินตนาการได้ว่าบนเว็บเซิร์ฟเวอร์ที่ไม่ว่างเช่นถ้า RTC ลอยไปสองสามนาทีการอ่านบันทึกของเว็บในวันถัดไปอาจสรุปได้ว่าผู้คนสามารถโจมตีได้อย่างปลอดภัย URL ของก่อนที่พวกเขาจะเข้าสู่ระบบเนื่องจากการเข้าชมเว็บจะไม่เป็นที่นิยม


1

ntpdate มีไว้สำหรับการอัพเดทครั้งเดียวหากคุณต้องการให้มีการซิงโครไนซ์เวลาอย่างสม่ำเสมอจากนั้นใช้บริการเพื่อจุดประสงค์นั้น ntpd

ไม่มีเหตุผลที่น่าสนใจที่จะไม่ใช้ ntpd เท่าที่ฉันจะบอกได้


0

คุณไม่จำเป็นต้องใช้ crontab นั่นคือสิ่งที่ ntpd ใช้

เริ่มแรกเมื่อเวลาของคุณหมดไปวิธีหนึ่งคือหยุด ntpd จากนั้นเรียกใช้ntpdate ntp.server.comเพื่อทำให้ข้อมูลตรงกันและเริ่ม ntp อีกครั้ง

หากคุณมีเครือข่ายขนาดใหญ่ฉันอาจตั้งค่าเซิร์ฟเวอร์ ntp ภายในเครื่องและรับโฮสต์ทั้งหมดเพื่อใช้งาน


0

ดูการสนทนานี้เพื่อทำความเข้าใจว่าทำไม "ntpdate" จึงยังต้องการและใช้งานอยู่

วิธีสรุป: ntpd ช้ากว่าเมื่อทำการปรับครั้งใหญ่แม้จะมีตัวเลือก -g


-3

สำหรับใช้ในบ้าน ntpdate ไม่ใช่เรื่องใหญ่จริง ๆ .. มีเหตุผลที่มัน "ช้าลง" ทุกคนที่ใช้ cron ที่มี ntpdate ในสภาพแวดล้อมการผลิตเป็นเพียงไอเดีย


2
มีประโยชน์คือ เช่นเซิร์ฟเวอร์ที่มีความจำเป็นต้องมีพอร์ตเปิดน้อยที่สุดสำหรับความต้องการด้านเวลาและความละเอียดใด ๆ ที่ระดับ +/- 1000ms หรือมากกว่านั้น cron + ntpdate เป็นวิธีที่ถูกต้องสมบูรณ์ในการรักษาการซิงค์เวลา
sysadmin1138
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.