Score:0

ntpd ไม่ซิงค์นาฬิกาหากได้รับการเชื่อมต่ออินเทอร์เน็ตช้าไปหน่อย

ธง cn

ในกล่องการผลิตของเรา ฉันกำลังประสบปัญหากับ ntpd ฉันกำลังเปิดใช้งานคุณสมบัติ NTP สำหรับกล่องการผลิตของเราและสังเกตปัญหาหนึ่ง

เราเริ่ม ntpd daemon ในกระบวนการเริ่มต้นของกล่องของเรา ในช่วงเวลาดังกล่าวไม่มีการเชื่อมต่ออินเทอร์เน็ต ด้านล่างเป็นขนาดเล็กของฉัน ntp.conf ไฟล์

ดริฟท์ไฟล์ /etc/ntp.drift
logconfig = สถานะการซิงค์
เซิร์ฟเวอร์ pool.ntp.org ระเบิด

กล่องของเราได้รับการเชื่อมต่ออินเทอร์เน็ตช้าเล็กน้อยเมื่ออินเทอร์เฟซปรากฏขึ้น เวลานั้นฉันเห็นว่า ntpd ไม่ซิงค์นาฬิกา เมื่อฉันทำ ntpq -c เป็น , ฉันเข้าใจ ไม่พบรหัสการเชื่อมโยง. ฉันรอเกือบ 30 นาที แต่ก็ยังได้รับ ไม่พบรหัสการเชื่อมโยง

ฉันต้องรีสตาร์ท ntpd หลังจากรีสตาร์ท ntpd จะซิงค์นาฬิกาและทุกอย่างทำงานได้ตามปกติ แต่ถ้าฉันรีบูตกล่องอีกครั้งปัญหาเดียวกันก็เกิดขึ้น ฉันต้องรีสตาร์ท ntpd อีกครั้ง เมื่อกล่องปรากฏขึ้นและเข้าถึงอินเทอร์เน็ตได้

มีใครประสบปัญหาที่คล้ายกันบ้างไหม?

ฉันควรชะลอการเริ่มต้นของ ntpd จนกว่าอินเทอร์เฟซเวลาจะปรากฏขึ้นหรือไม่

อัปเดต

ฉันทำการทดลองเพิ่มเติมและเปลี่ยนใหม่ เซิร์ฟเวอร์ pool.ntp.org ระเบิด กับ พูล pool.ntp.org ระเบิด และด้วยการเปลี่ยนแปลงนี้ ntpd จะซิงค์นาฬิกาโดยอัตโนมัติ ฉันไม่ต้องรีสตาร์ท ntpd นี่จึงเกิดคำถามอีกข้อหนึ่งแก่ข้าพเจ้า

เกิดอะไรขึ้นเมื่อฉันเปลี่ยน เซิร์ฟเวอร์ กับ สระน้ำ?

ฉันควรใช้เสมอ สระน้ำ คำหลักแทน เซิร์ฟเวอร์?

ฉันควรใช้เมื่อใด สระน้ำ และควรใช้เมื่อใด เซิร์ฟเวอร์?

ฉันได้ทำการวิจัยและพบว่า พูลจะเหมือนกับเซิร์ฟเวอร์ ยกเว้นว่าจะแก้ไขชื่อเดียวเป็นหลายที่อยู่และใช้ทั้งหมด ถ้าพวกเขากำลังทำสิ่งเดียวกันแล้วทำไม เซิร์ฟเวอร์ pool.ntp.org ระเบิด ไม่ได้ผลสำหรับฉัน แต่ พูล pool.ntp.org ระเบิด ทำงาน

อัปเดต

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

GW:/admin# ntpq -c lpeer
     รีเฟรชรีโมต st t เมื่อโพลล์ไปถึงการหน่วงเวลาชดเชยความกระวนกระวายใจ
================================================== =============================
 time.google.com .POOL 16 หน้า - 64 0 0.000 +0.000 0.002

GW:/admin# ntpq -np
      การรีเฟรชระยะไกล st t เมื่อแบบสำรวจถึงการหน่วงเวลาชดเชยความกระวนกระวายใจ

 time.google.com .POOL 16 หน้า - 64 0 0.000 +0.000 0.002

GW:/admin# ntpq -c เป็น
ind assid สถานะ conf ถึงเงื่อนไขการรับรองความถูกต้อง last_event cnt
================================================== =========
  1 34173 8811 ใช่ ไม่มี ไม่มี ปฏิเสธ ระดมพล 1

GW:/admin# ntpq -c "rv 34173"
associd=34173 status=8811 conf, bcast, sel_reject, 1 เหตุการณ์, ระดม,
srcadr=0.0.0.0, srcport=0, srchost="time.google.com", dstadr=0.0.0.0,
dstport=0, ก้าวกระโดด=11, ชั้น=16, ความแม่นยำ=-19, รูทดีเลย์=0.000,
rootdisp=0.000, refid=POOL, reftime=(ไม่มีเวลา), rec=(ไม่มีเวลา), REACH=000,
unreach=0, hmode=3, pmode=0, hpoll=6, ppoll=10, headway=0,
flash=1400 peer_dist, peer_unreach, keyid=0, offset=+0.000, ดีเลย์=0.000,
การกระจาย=16,000.000, กระวนกระวายใจ=0.002,
ฟิลเตอร์ดีเลย์= 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00,
filtoffset= +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00 +0.00,
ตัวกรอง= 16,000.0 16,000.0 16,000.0 16,000.0 16,000.0 16,000.0 16,000.0 16,000.0

ฉันเห็นสถานะแฟลชเป็น 1400. ความหมายของอะไร 1400 ฉันไม่พบสถานะแฟลช 1400 ในเอกสาร ntp

อัปเดต

มันเริ่มทำงาน ฉันแทนที่ ระเบิด กับ การสำรวจขั้นต่ำ 3 การสำรวจความคิดเห็นสูงสุด 4 และหลังจากนั้นก็ทำการรีบูต ฉันใช้สระว่ายน้ำแบบนี้ พูล pool.ntp.org minpoll 3 maxpoll 4. ฉันไม่แน่ใจว่าการเปลี่ยนแปลงนี้สร้างความแตกต่างอะไรบ้าง

ฉันอ่านด้วยว่าเราควรหลีกเลี่ยงการใช้ minpoll และ maxpoll บ่อยเกินไปเป็นระยะเวลานานและบริการ NTP สาธารณะอาจปิดกั้นคุณ ntpd นั้นดีอยู่แล้วในการเลือกช่วงเวลาของพูลแบบไดนามิก

ยังไงก็ขอบคุณทุกท่านที่ช่วยผมนะครับ

Paul Gear avatar
cn flag
เว้นแต่คุณจะมีเหตุผลพิเศษ คุณควรใช้ `pool` แทน `server` เสมอ มีลักษณะการทำงานที่ดีกว่าในเกือบทุกด้าน รวมถึงพฤติกรรมการสอบถาม DNS ที่คุณค้นพบ
user10489 avatar
nc flag
"เหตุผลพิเศษ" สำหรับการใช้สายเซิร์ฟเวอร์รวมถึงนาฬิกาอ้างอิงฮาร์ดแวร์ในเครื่อง การรับรองความถูกต้องโดยใช้คีย์ และ (เป็นทางเลือก) เซิร์ฟเวอร์ในเครื่องที่มีที่อยู่ IP แบบคงที่
vivek avatar
cn flag
@ user10489 `authentication using keys` หมายความว่าเราไม่สามารถใช้ `pool` ในการตรวจสอบสิทธิ์ได้? ควรเป็น 'เซิร์ฟเวอร์' เสมอ
user10489 avatar
nc flag
อย่างน้อยตาม man page คุณไม่สามารถใช้คำสั่งคีย์หรือ autokey ในบรรทัดพูลได้
vivek avatar
cn flag
@ user10489 แค่สงสัยว่าเราต้องการการรับรองความถูกต้องสำหรับชื่อโฮสต์หรือไม่ สิ่งนี้จะกลายเป็นความกำกวม สำหรับการแก้ไขชื่อโฮสต์ วิธีที่ต้องการคือใช้บรรทัด `pool` และสำหรับคีย์ ผมใช้ `pool` ไม่ได้
user10489 avatar
nc flag
หากคุณมีอำนาจควบคุมทั้งสองโฮสต์เพียงพอที่จะใช้คำสั่งคีย์ คุณก็ควรใช้ ip แทนชื่อ DNS และไม่มีอะไรหยุดคุณจากการมีรายการประเภทต่าง ๆ หลายรายการไปยังโฮสต์ต่าง ๆ เพื่อความซ้ำซ้อน
user10489 avatar
nc flag
อัปเดต 2: DNS ของคุณยังคงใช้งานไม่ได้หรือคุณไม่ได้รอนานพอก่อนที่จะตรวจสอบ คุณควรทดสอบ DNS ด้วยขุดหรือโฮสต์ และหากใช้งานได้ ให้รออย่างน้อย 64-128 วินาที
Score:1
ธง nc

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

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

หากคุณจัดหาพูลให้กับ ntpd แทน มันจะคงชื่อโฮสต์ไว้ (และติดแท็กด้วย .สระน้ำ.). เป็นระยะ ๆ (รวมถึงเมื่อเริ่มต้น) มันจะแก้ไขชื่อโฮสต์นั้นใน DNS และเพิ่ม IP ใด ๆ ที่ได้รับเป็นรายการแยกต่างหาก และตัดบางรายการที่ได้รับความนิยมน้อยที่สุด

คุณสามารถดูสิ่งนี้ได้ด้วยคำสั่ง ntpq -np หรือเทียบเท่า ntpq -n -c เพียร์

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

นอกจากนี้ สคริปต์การเริ่มต้นระบบบางตัวใช้ ntpdate หรือเครื่องมือที่คล้ายกันเพื่อตั้งค่านาฬิการะบบไปยังเซิร์ฟเวอร์จาก ntp.conf เพื่อให้นาฬิกาซิงโครไนซ์บางส่วนก่อนที่ ntpd จะเริ่มทำงาน นี่เป็นความพยายามเพียงครั้งเดียว และหากล้มเหลว ntpd อาจเริ่มทำงานโดยที่นาฬิกาเดินผิดอย่างมาก หากผิดพลาดเพียงเล็กน้อย ntp จะแก้ไข แต่ถ้าผิดพลาดอย่างใหญ่หลวง ntpd อาจปฏิเสธที่จะซิงค์นาฬิกา และในบางกรณีและเวอร์ชันของ ntpd อาจหยุดทำงานหรือออก ntpd บางเวอร์ชันมีตัวเลือก one shot clock big step เป็นของตัวเอง

vivek avatar
cn flag
ฉันได้จุดของคุณ คำถามของฉันคือเราสามารถระบุที่อยู่ IP ให้กับพูลหรือควรเป็นชื่อโฮสต์เสมอ
user10489 avatar
nc flag
คุณสามารถระบุที่อยู่ IP บนสายเซิร์ฟเวอร์ได้ มันไม่สมเหตุสมผลเลยที่จะระบุที่อยู่ IP ในสายพูล
vivek avatar
cn flag
ฉันทำการทดสอบเล็กน้อยโดยปิดอินเทอร์เฟซเพื่อตัดการเชื่อมต่ออินเทอร์เน็ต หลังจากนั้นฉันกำหนดค่า `server pool.ntp.org iburst` และเริ่ม ntpd หลังจากที่ฉันเรียกส่วนต่อประสานและเห็นว่า ntpd สามารถซิงค์นาฬิกาได้ ดังที่คุณกล่าวว่า `เมื่อเริ่มต้นระบบจะแก้ไขชื่อโฮสต์เป็นที่อยู่ IP และพยายามใช้ที่อยู่ IP เพื่อซิงค์เวลา หากชื่อโฮสต์นั้นไม่สามารถแก้ไขได้ ก็จะลบออก ซึ่งดูเหมือนว่าจะไม่ถูกต้องในเวลานี้
user10489 avatar
nc flag
อาจมีปัญหาเรื่องเวลาที่เกี่ยวข้องเช่นกัน ฉันจะเพิ่มสิ่งนั้นในคำตอบ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา