NTP फैलाव क्या है और मैं इसे कैसे नियंत्रित करूं?


20

हम अलग-अलग नेटवर्क पर उबंटू 14.04 सर्वर को रोल आउट करते हैं, जो ntpd 4.2.6p5 पर चल रहा है, ग्राहकों द्वारा उपलब्ध कराए गए के रूप में कई NTP सर्वर का उपयोग करने के लिए कॉन्फ़िगर किया गया है। हमारे डंब टर्मिनल क्लाइंट डिवाइस , लैरी कूल से भंगुर बॉक्स (1.00-rc2) और ntpclient 2010 का एक पुराना संस्करण चलाते हैं ।

इस सेटअप ने वर्षों तक शानदार काम किया है, लेकिन हाल ही में हमने एक नए ग्राहक के साथ एक अवरोधक मारा है। उन्होंने हमें 5-इन-हाउस एनटीपी सर्वर पते प्रदान किए हैं जो अपने आप में बहुत अच्छा काम करते हैं, जहां तक ntpdate-debianलिनक्स सर्वर का संबंध है। हालांकि बिजीबॉक्स साइड पर, ntpclient"फैलाव बहुत अधिक" के साथ शिकायत करता है। डीबग आउटपुट ntpclientसे, एनटीपी सर्वर से "1217163.1" मिलता है , लेकिन अधिकतम समर्थन जो इसका समर्थन करता है वह निरपेक्ष (65536) है।

$ /usr/sbin/ntpclient -s -i 15 -h 10.17.162.250 -d
Configuration:
  -c probe_count 1
  -d (debug)     1
  -g goodness    0
  -h hostname    10.17.162.250
  -i interval    15
  -l live        0
  -p local_port  0
  -q min_delay   800.000000
  -s set_clock   1
  -x cross_check 1
Listening...
Sending ...
recvfrom
packet of length 48 received
Source: INET Port 123 host 10.17.162.250
LI=0  VN=3  Mode=4  Stratum=4  Poll=4  Precision=-20
Delay=60745.2  Dispersion=1346801.8  Refid=10.31.10.21
Reference 3668859928.942079
(sent)    3668859928.708371
Originate 3668859928.708371
Receive   3668859928.963271
Transmit  3668859928.963369
Our recv  3668859928.708371
Total elapsed:      0.00
Server stall:      93.09
Slop:             -93.09
Skew:          255443.94
Frequency:             0
 day   second     elapsed    stall     skew  dispersion  freq
42463 56728.708  rejected packet: abs(DISP)>65536

ये सभी एक ही लैन पर सभी डिवाइस हैं इसलिए मैं स्पष्ट रूप से चपटा हूं। अगहस्ट भी।

यहाँ ntpq -pnUbuntu 14.04 सर्वर से आउटपुट है:

user@host:~$ ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 127.127.1.0     .LOCL.          10 l 1025   64    0    0.000    0.000   0.000
 10.17.162.249   10.17.6.10       5 u   23 1024   37    0.865  1381.07 697.260
 10.31.10.22     .LOCL.           1 u 1044 1024   17   29.586  -838.06 397.342
 10.17.6.10      10.31.10.21      4 u 1065 1024   17    0.366  105.245 402.999
*10.31.10.21     132.246.11.238   3 u    5 1024   37   29.418  794.292 616.796
 10.17.6.11      10.31.10.21      4 u 1038 1024   17    0.408  120.030 381.058

मेरे प्रश्न हैं:

  1. फैलाव क्या है और इसके मूल्य में क्या परिवर्तन हो सकता है?
  2. NTP सर्वर से अधिक विवरण प्राप्त करने के लिए मैं कौन सी कमांड चला सकता हूं?
  3. क्या गलती अनुचित के साथ, उबंटू सर्वर साइड पर हो सकती है ntp.conf? वहाँ वास्तव में कुछ खास नहीं है।
  4. इस मामले में कुछ भी बदलने के लिए क्रोनी पर स्विच करना चाहेंगे?

बस यह मानते हुए - क्या एनटीपी सर्वरों द्वारा प्रदान की गई पाँच घड़ियाँ किसी अच्छी हैं? क्या आप अपने कॉन्फिडेंस से सबसे बुरे लोगों को छोड़ सकते हैं?
क्रिग्गी

1
आपके ऑफ़सेट और जिटर्स बहुत अधिक हैं। कम से कम एक उचित स्रोत प्राप्त करें ।
मोनिका को पुनः स्थापित करें - एम। श्रोडर

जवाबों:


21

मुझे यहां के जवाबों में कुछ भ्रम दिख रहा है। शुरुआत के लिए, ntpclientकम से कम -sमोड में, एक पूर्ण NTP ग्राहक के रूप में काम नहीं कर रहा है, यह केवल एक पैकेट भेज रहा है और प्राप्त कर रहा है , इसलिए कोई "अंतिम 8 पैकेट प्राप्त नहीं" है। यह वास्तव में बिल्कुल अपने फैलाव का अनुमान नहीं लगा रहा है।

इसके बजाय, यह जो मूल्य प्रिंट कर रहा है वह सर्वर द्वारा लौटाए गए पैकेट में "रूट फैलाव" (रूटडिसप) नामक मान है, जो उस सर्वर और सही समय के बीच त्रुटि / विचरण की कुल राशि का अनुमान है। जिस तरह से यह गणना की गई है वह बहुत सरल है: प्रत्येक एनटीपी सर्वर या तो बाहरी घड़ी (उदाहरण के लिए एक रेडियो या जीपीएस रिसीवर) से, या किसी अन्य एनटीपी सर्वर से अपना समय प्राप्त करता है। यदि किसी सर्वर को बाहरी घड़ी से अपना समय मिलता है, तो इसका मूल फैलाव उस घड़ी की अनुमानित अधिकतम त्रुटि है। यदि इसे किसी अन्य NTP सर्वर से अपना समय मिलता है, तो इसका रूट फैलाव सर्वर का रूट फैलाव और उनके बीच नेटवर्क लिंक द्वारा जोड़ा गया फैलाव है।

यहाँ भ्रम की एक बात यह है कि जबकि ntpq और chrony प्रदर्शन फैलाव और मूल फैलाव सेकंड में, जो कि लोगों को देखने के लिए उपयोग किया जाता है, ntpclient इसे माइक्रोसेकंड में प्रदर्शित करता है । भले ही, 1217163 का मूल्य अभी भी काफी अधिक है। एक अच्छा NTP सर्वर कुछ मिलीसेकेंड के भीतर का समय जानता है; कुछ दसियों या सैकड़ों मिलीसेकंड के भीतर एक बुरा। तुम्हारा कहना है कि इसका समय केवल +/- 1.2 सेकंड के भीतर भरोसा किया जा सकता है।

आप वास्तव में इस सर्वर को सिंक्रनाइज़ करने के लिए ntpclient प्राप्त कर सकते हैं वैसे भी -x 0या -tऑप्शन (ntpclient के संस्करण के आधार पर) पास करके, जो NTP sanity check को निष्क्रिय करता है। यदि आपको केवल कुछ समय (लगभग कुछ सेकंड के भीतर) की आवश्यकता है, तो यह काफी अच्छा हो सकता है। हालांकि, इस तरह के खराब सर्वर को सिंक्रनाइज़ करने से इनकार करने में ntpclient काफी उचित है। ntpqUbuntu मशीन पर आपका आउटपुट अपने सभी सर्वरों के लिए सैकड़ों मिलीसेकेंड का घबराहट दिखा रहा है, भले ही उनके पास कम देरी हो, जो या तो बहुत अविश्वसनीय नेटवर्क को इंगित करता है, सभी सर्वरों को एक अनियमित समय या मूल प्रदान करने की साजिश है। सर्वर पर ही टाइमकीपिंग की समस्या।

यह मुझे भी चिंतित करता है कि सर्वर 10.31.10.22 LOCL( अनिर्दिष्ट स्थानीय घड़ी) के एक विज्ञापन से इनकार कर रहा है, लेकिन 1 का एक स्ट्रैटम है। आमतौर पर स्थानीय घड़ी को 10 के स्ट्रैटम में बदल दिया जाता है, ताकि इसका उपयोग केवल अंतिम-रिज़ॉल्यूशन सिंक्रनाइज़ेशन स्रोत के रूप में किया जाए अलग से बहते रहने के लिए। या तो 10.31.10.22 गलत है और बाकी नेटवर्क को खराब समय प्रदान कर रहा है, या यह एनटीपी के नियंत्रण से बाहर कुछ कार्यक्रम द्वारा अच्छे समय के लिए अनुशासित किया जा रहा है, इस मामले में LOCLगलतफहमी केवल यह है कि यह पलटा विज्ञापन कर रहा है; इसे उदासीन किया जाना चाहिए जैसे कि GPSया जो भी अपना समय प्रदान कर रहा है।


शानदार जवाब। मैं कोशिश करूंगा -x 0या -tवापस रिपोर्ट करूंगा । के बारे में 10.31.10.22, मैं इसे सर्वर की सूची से निकाल सकता हूं। शानदार कैच। मुझे वास्तव में इन सर्वरों के बारे में कोई जानकारी नहीं है, क्या एनटीपी सर्वर से विवरण प्राप्त करने के लिए कोई अन्य डिबग कमांड हैं या यह बहुत अधिक है ntpq -p?
जेफ

जैसा कि आपने कहा, -tस्विच उच्च फैलाव के बावजूद इन-हाउस NTP सर्वर पर भरोसा करता है। हम अभी भी यह नहीं समझा सकते हैं कि यह बेतरतीब ढंग से चोटियों की तरह क्यों है, लेकिन यह शायद एक और पोस्ट के लिए है। धन्यवाद।
जेफ

@ जेफ़ मदद करने के लिए खुश हैं :)
hobbs

12

"फैलाव क्या है?" के लिए बस एक आंशिक उत्तर:

एक विशिष्ट NTP दौर यात्रा:

client |        | server
    t1 |------->| t2
    t3 |<-------| t4

यह दो मानों की भरपाई करता है, ऑफसेट (क्लाइंट और सर्वर के बीच का समय), और निम्नलिखित फॉर्मूले के साथ देरी (आवश्यक नेटवर्क यात्रा समय):

offset= ((t4 - t3) + (t1 - t2)) / 2
delay = (t4 - t1) - (t3 - t2)

क्लाइंट प्राप्त पिछले 8 पैकेटों से वर्तमान ऑफसेट का चयन करता है, जिसे सबसे छोटी देरी के साथ चुना जाता है।

समान 8 पैकेटों का उपयोग अंतिम चरण में चयनित इन 8 ऑफसेटों के अंतर के भारित औसत को करके , फैलाव की गणना करने के लिए किया जाता है , जहां देरी का उपयोग भारक कारक के रूप में किया जाता है, छोटे विलंबों को अधिक वजन देता है। यह मूल्यों के "प्रसार" के लिए एक उपाय है और इसका उपयोग समय सर्वर की गुणवत्ता की गणना करने के लिए किया जाता है, खासकर यदि आपके पास चुनने के लिए कई हैं।


सूत्रों के बारे में सुनिश्चित करें? आखिरकार, केवल t4-t2 और t3-t1 शामिल पार्टियों के लिए जाने जाते हैं
Hagen von Eitzen

@HagenvonEitzen समय को पैकेट में शामिल किया जा सकता है
थॉमस

@ मैं यह भी मानता हूं कि सूत्रों के साथ एक मुद्दा है; यहाँ देखें पेज 28 और मिल्स द्वारा यह श्वेत पत्र भी । वैसे आप अपने टी को निर्धारित कर चुके हैं, यह होना चाहिए offset = 1/2 * [(T2-T1) + (T4-T3)]और `देरी = (T3-T1) - (T4-T2) '
इयान रिले

स्वेन, क्या आपके पास t3/t4विशिष्ट राउंड ट्रिप में सही जगह है? ट्रैफ़िक प्रवाह और विलंब गणना से प्रतीत होता है कि वे चारों ओर का दूसरा रास्ता t4 -t1होना चाहिए : कुल आरटीटी t3-t2होना चाहिए, सर्वर के अंदर खर्च होने वाला समय होना चाहिए।

7

आपका फैलाव और तिरछा बहुत बड़ा है, स्थानीय घड़ी से उस सहकर्मी के लिए एक बहुत बड़ी ऑफसेट है। आपको स्थानीय के साथ ऑफसेट की तुलना करनी चाहिए dateऔर घड़ी को मैन्युअल रूप से सेट करना चाहिए ।

ntpq -pसभी सहकर्मियों का उपयोग करके होस्ट से ntpd चलाना और दिखाना । यह बेहतर का चयन करेगा।


ntpq -pnमेरे सवाल में आउटपुट जोड़ा गया । इस पर गौर करने के लिए धन्यवाद।
जेफ

4
सैकड़ों में ऑफसेट और घबराना? यह बहुत अच्छा नहीं है। आपने पूल .ntp.org जैसे इंटरनेट स्रोतों तक पहुंच का उल्लेख नहीं किया है, लेकिन वे बहुत बेहतर प्रदर्शन करते हैं। जीपीएस, एक रेडियो स्रोत, एक पीपीएस इनपुट या इसी तरह की एक संदर्भ घड़ी जोड़ने पर विचार करें। या एक स्थानीय घड़ी के साथ एक मेजबान चुनें जो सभी जगह नहीं है।
जॉन महोवाल

5

इस सिस्को प्रलेखन के अनुसार , " फैलाव , सेकंड में रिपोर्ट किया गया, अधिकतम घड़ी का समय अंतर है जो कभी स्थानीय घड़ी और सर्वर घड़ी के बीच मनाया गया था"। एनटीपी सर्वर के साथ जो पूरी तरह से टूटे नहीं हैं, एक उच्च फैलाव कभी नहीं होना चाहिए। एकमात्र संभव परिदृश्य तब होता है जब आपके ग्राहक ने ntp और अब तक केवल अपनी स्थानीय घड़ी उपलब्ध है। और फिर भी, एक फैलाव जितना आप रिपोर्ट करते हैं, वह उन घड़ियों से मेल खाती है जो दो सप्ताह से अधिक समय से बंद हैं ।

यह सुनिश्चित करने के लिए पर्याप्त होना चाहिए कि स्थानीय घड़ी शुरुआत में बहुत दूर नहीं है (यहां तक ​​कि कुछ घंटे अभी भी स्वीकार्य होंगे), या तो घड़ी को समायोजित करके (और तारीख भी!) BIOS में या ntpdateशुरू करने से पहले एक बार जारी करके! ntpdग्राहक पर।


1
ntpclient microseconds में मूल्यों की रिपोर्टिंग कर रहा है, इसलिए सूचीबद्ध फैलाव वास्तव में ~ 1.2 सेकंड है, सप्ताह नहीं :) इसके अलावा, सिस्को डॉक्टर में व्याख्या इस मूल्य पर लागू नहीं होती है।
हॉब्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.