ฉันจะกำหนดอัตราการสำรวจ NTP เองได้อย่างไร


17

ฉันกำลังตั้งค่า Ubuntu บนเครื่องฝังตัวที่ทำงานผ่านการเชื่อมต่อมือถือที่เราจ่ายต่อไบต์ เครื่องยังไม่มีแบตเตอรี่ RTC ดังนั้นจึงเริ่มจากการสุ่มทุกครั้งที่บูต

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

ฉันสามารถกำหนดอัตราที่ NTP อัพเดตตามเวลาได้หรือไม่ ฉันใช้ openntpd ในปัจจุบัน แต่ฉันไม่ได้ใช้มัน

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

คำตอบ:


5

คำตอบบางส่วนเหล่านี้อาจชนะการประกวดการกำหนดค่า ntp ที่สับสน

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

minpoll minpoll
maxpoll maxpoll
    These options specify the minimum and maximum poll intervals for NTP 
    messages, in seconds as a power of two. The maximum poll interval 
    defaults to 10 (1024 s), but can be increased by the maxpoll option to 
    an upper limit of 17 (36 h). The minimum poll interval defaults to 6 (64 s), 
    but can be decreased by the minpoll option to a lower limit of 3 (8 s).

Chronyเป็นทางเลือกที่ดีในการใช้งานการอ้างอิง ntp Openntpd ไม่ใช่


8

ประสบการณ์ของฉันอยู่กับ ntp มากกว่า openntpd

คุณควรรู้ว่าโพรโทคอล NTP มักเริ่มต้นด้วยการส่งแพ็คเก็ตทุก ๆ นาที (64 วินาที) แต่โดยปกติแล้วจะตั้งรกรากโดยการส่งและรับหนึ่งแพ็คเก็ตทุก ๆ 17 นาทีสำหรับเซิร์ฟเวอร์แต่ละเครื่องที่คุณมีในไฟล์ /etc/ntp.conf เครือข่ายขัดข้องหรือนาฬิกาไม่เสถียรในอุปกรณ์ของคุณอาจเพิ่มขึ้นได้ แต่ละแพ็คเก็ตมีน้ำหนักบรรทุกประมาณ 68 ไบต์ดังนั้นอาจเป็นมากกว่า 100 ไบต์แต่ละวิธีต่อโพล

rdate และ ntpdate ณ เวลาที่เครือข่ายเป็นแนวคิดที่ดีสำหรับการตั้งเวลา และถ้านั่นคือสิ่งที่คุณต้องการควรจะทำงานได้ดีสำหรับคุณ

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

นี่คือคำแนะนำหากคุณต้องการการจับเวลาอย่างต่อเนื่องและต้องการลดแบนด์วิดท์ที่ใช้ พวกเขาอ้างถึงรายการใน ntp.conf

อย่าใช้ iburst (แต่จะใช้เวลามากขึ้นในการตั้งเวลาเริ่มแรก)

เพิ่ม minpoll ขึ้นไปจาก 6 (2 ^ 6 วินาทีคือ 64 วินาที) สิ่งนี้จะลดทราฟฟิกเมื่อโปรโตคอลเริ่มทำงานหลังจากที่เครือข่ายขึ้นมา

เพิ่ม maxpoll ขึ้นไปจาก 10 (2 ^ 10 วินาทีคือ 1024 วินาทีหรือประมาณทุก ๆ 17 นาทีคุณสามารถไปไกลถึง 17 เพื่อสำรวจความคิดเห็นทุก ๆ 36 ชั่วโมงฉันยังไม่ได้ลองด้วยตัวเอง

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


4

คุณสามารถแฮกเกอร์ที่เกี่ยวข้องกับการเรียกใช้ ntpdate เมื่ออินเทอร์เฟซของเซลล์ปรากฏขึ้น แต่ถ้าคุณสามารถติดตั้ง chrony จะเป็นทางเลือกที่ดีในขณะที่มันถูกสร้างขึ้นด้วยการเข้าถึงเครือข่ายต่อเนื่องในใจ


3

ในการติดตั้งเริ่มต้นของ Ubuntu NTP daemon จะไม่ทำงาน เวลาจะถูกตั้งค่าทุกครั้งที่มีการเชื่อมต่อเครือข่ายโดยใช้/etc/network/if-up.d/ntpdatehook

หากคุณอยู่หลังการซิงโครไนซ์ครั้งเดียวมากกว่าการซิงโครไนซ์คงที่นี่อาจเพียงพอสำหรับคุณ

คุณสามารถควบคุมเซิร์ฟเวอร์ที่จะมีการสอบถามเพื่อตั้งเวลาทั้งผ่านมาตรฐาน/etc/ntp.confไฟล์หรือผ่านตัวแปรในNTPSERVERS/etc/default/ntpdate


2

คุณต้องการการซิงโครไนซ์ที่แน่นอนและแม่นยำที่ ntp มีให้หรือไม่? หากไม่เป็นเช่นนั้นคุณอาจสามารถหลีกเลี่ยงการใช้งานrdateหรือntpdateขณะบู๊ตแล้วผ่าน cron เป็นระยะ


2

คุณอาจอ่าน manntntnt แล้ว

http://www.openbsd.org/cgi-bin/man.cgi?query=ntpd.conf

คุณอาจสังเกตเห็นแล้วว่าไม่มีตัวเลือกการลงคะแนนสำหรับเวลา

ฉันมีแฮ็กที่เป็นไปได้เหล่านี้เพื่อเสนอ:

  1. อย่าใช้ ntpd เพียงแค่เรียก ntpdate ผ่าน cron
  2. ใช้ cron และ / หรือสคริปต์การเชื่อมต่อเซลลูลาร์ของคุณเพื่อสลับกฎ iptables เพื่อปล่อยหรืออนุญาตพอร์ตทราฟฟิก 123 เมื่อคุณต้องการอนุญาต นี่อาจจะง่ายเหมือน

    0 12 * * * iptables -D OUTPUT -j DROP -p udp --dport 123 # at noon start allowing ntp

    0 13 * * * iptables -A OUTPUT -j DROP -p udp --dport 123 # at 1pm stop allowing ntp

  3. ฝังตัวรับสัญญาณวิทยุในเครื่องฝังตัวของคุณ ฉันไม่รู้อะไรเกี่ยวกับสิ่งนี้ แต่ผลิตภัณฑ์เช่นนี้:

ทำให้ฉันคิดว่ามันไม่ยากถ้าคุณสามารถรับสัญญาณวิทยุได้


1
หากคุณกำลังจะเพิ่มฮาร์ดแวร์ทำไมแนะนำนาฬิกาวิทยุและไม่เพิ่ม GPS ด้วย PPS
dfc

@dfc เป็นจุดที่ดี OP พิจารณาฮาร์ดแวร์ GPS เพื่อให้ได้เวลา
Jay _silly_evarlast_ Wren

1
สำหรับ $ 50 (แน่นอนว่า GPS เป็นข้อเสนอที่ยอดเยี่ยม) และการบัดกรีบางครั้งฉันมีเซิร์ฟเวอร์ 1 เวลาในห้องนอนว่าง ฉันมีเสาอากาศจีพีเอส Sure นั่งอยู่ในหน้าต่างที่ถูกบล็อกโดยเมเปิ้ลยักษ์และบ้านอื่นและมันทำงานได้ดี
dfc

@dfc คุณสามารถลิงก์กับฮาร์ดแวร์และซอฟต์แวร์ที่คุณใช้กับฮาร์ดแวร์ได้หรือไม่
Jay _silly_evarlast_ Wren

1
@Jay_silly_everlast_Wren ซอฟต์แวร์: การใช้งานการอ้างอิง ntp www.ntp.org คณะกรรมการ: sureelectronics.net/goods.php?id=99 คู่ของการสนทนา: satsignal.eu/ntp/Sure-GPS.htmและlists.ntp.org/pipermail/questions /2011-March/028854.htmlมีอีกมากมาย อย่ากลัวการบัดกรี มันเป็นการบัดกรีครั้งแรกของฉันและมันก็ง่าย รายการส่งเมล์คำถาม ntp นั้นเต็มไปด้วยผู้คนที่ใช้บอร์ดแน่นอนและมีความสุขมาก
dfc

1

ถ้าฉันจำได้อย่างถูกต้องสามารถตั้งค่าช่วงโพล ntp ได้สูงสุด 1024 วินาที บางทีทางออกที่ง่ายที่สุดอาจจะเรียกใช้ ntpdate ในแต่ละการบู๊ตและหลังจากนั้นทุก ๆ ครั้งจาก crontab

หากนาฬิกาของคุณเริ่มต้นด้วยเวลาสุ่มในการบู๊ตแต่ละครั้งคุณอาจจะไม่สามารถรัน ntpd ได้และคุณจะต้องใช้ ntpdate ก่อน Ntpd ปฏิเสธที่จะซิงค์เวลาหากความแตกต่างใหญ่เกินไประหว่างนาฬิกาและนาฬิกาเซิร์ฟเวอร์ของคุณ


+1 สำหรับข้อมูลเกี่ยวกับ ntp ปฏิเสธที่จะซิงก์ถ้าดริฟท์ใหญ่เกินไป
David Pfeffer

ntpdate จะเลิกในความโปรดปรานของตัวเลือกในการntpdที่จะจัดการกับปัญหานี้กรณีการใช้งานที่ดีกว่าcronสามารถeecis.udel.edu/~mills/ntp/html/ntpdate.html
ขยะ

1

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

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

ความแม่นยำของ RDATE นั้นเลวร้ายยิ่งกว่า NTP affords ฉันจะไม่เชื่อใจมันนานกว่า± 1 วินาที แต่ถ้าคุณติดตั้งแบบประปรายเท่านั้นระยะเวลาที่แม่นยำยิ่งขึ้นก็ไม่เกี่ยวข้อง แน่นอนตามสัมพัทธภาพอาจไม่มีความหมาย


0

ในการที่จะทำให้minpool/ maxpoolที่จะนำเข้าบัญชีคุณจะต้องเพิ่มแล้วต่อเซิร์ฟเวอร์ntp.confในของคุณ

ไม่แนะนำให้ไปยุ่งกับ NTP deamon (มันมีตัวคณิตศาสตร์ในตัวเพื่อเพิ่มประสิทธิภาพความถี่) แต่คุณจะต้องเพิ่มตัวเลือกเหล่านี้ดังนี้:

server time.google.com iburst minpoll 12 maxppol 17
server ntp.ubuntu.com iburst minpoll 12 maxppol 17
server europe.pool.ntp.org iburst minpoll 12 maxppol 17

ที่นี่หากตั้งค่าความถี่ต่ำสุดเป็น 2 ^ 12 วินาทีและสูงสุดเป็น 2 ^ 17 วินาที

ตามค่าเริ่มต้นฉันพบว่า NTP จะส่งคำขอทุกนาทีหรือมากกว่านั้น มันมากเกินไป ที่นี่ฉันลดความถี่จากวันละหนึ่งชั่วโมงเป็นวันละครั้ง (roughtly)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.