एक स्थानीय स्ट्रैटम 2 एनटीपी सर्वर की स्थापना


9

मैं एक स्थानीय नेटवर्क पर NTP स्थापित करने की कोशिश कर रहा हूं जिसमें इंटरनेट कनेक्शन नहीं (और कभी नहीं) होगा। मुख्य प्राथमिकता यह है कि नेटवर्क पर मशीनें एक-दूसरे के साथ समन्वयित हैं, भले ही वे जिस समय पर सिंक किए गए हों वह 100% सटीक नहीं है।

हमें एक एनटीपी पदानुक्रम का उपयोग करने की आवश्यकता है ताकि एक तैनात प्रणाली के सेटअप को दोहराया जा सके। मैं क्या करना चाहता हूँ मशीनों की एक पदानुक्रम है इस तरह:

Moon  (Main Server running Windows) (10.1.3.10)
|____Earth   (Linux x64 client) (10.1.3.1)
|____Mars    (Linux x64 client) (10.1.3.2)
|____Saturn  (Linux x64 client) (10.1.3.3)
|____RackCard23   (Linux x64 client and server to the two machines below)  (10.1.3.23)
     |___RackCard21   (Linux x64 client) (10.1.4.21)
     |___RackCard22   (Linux x64 client) (10.1.4.22)

ध्यान दें कि रैककार्ड में दो ईथरनेट पोर्ट होते हैं, एक 10.1.3.x नेटवर्क से जुड़ा होता है और एक 10.1.4.x नेटवर्क पर। RackCard23, जो मास्टर सर्वर मून को सिंक करता है, 10.1.3.x नेटवर्क पर करेगा और RackCard22 / 23 10.1.4.x नेटवर्क पर RackCard23 से कनेक्ट होगा। ऐसा इसलिए है क्योंकि मैं नहीं चाहता कि RackCards22 / 23 समय को सिंक करने के लिए अपने नेटवर्क को छोड़ दे और क्योंकि यह एक अंतिम तैनात प्रणाली की प्रतिकृति है।

अब तक मैं सब कुछ प्राप्त करने में कामयाब रहा हूं जिसे चंद्रमा को सही ढंग से सिंक करने के लिए सिंक करना चाहिए (RackCard23 सहित)।

लेकिन मुझे RackCard23 से सिंक करने के लिए RackCard22 और 23 लेने में कठिनाई हो रही है।

[root@RackCard23]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.3.10 iburst minpoll 4 maxpoll 4 prefer #This is what we want to happen
fudge   127.127.1.0 stratum 2   #Not sure about these two lines, was trying to force it to be a stratum 2 server
fudge   127.127.0.1 stratum 2

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift
restrict 10.1.3.10 mask 255.255.255.255 nomodify notrap noquery

#Attempt to get to act as an NTP Server
broadcast 10.1.4.255

restrict 10.1.3.21 mask 255.255.255.255 nomodify notrap
restrict 10.1.4.21 mask 255.255.255.255 nomodify notrap

यह ntptrace से आउटपुट है:

[rootRackCard23]# /usr/sbin/ntptrace
localhost.localdomain: stratum 16, offset 0.000000, synch distance 0.000030

जैसा कि आप देख सकते हैं कि मशीन स्वयं को एक स्ट्रैटम 16 सर्वर के रूप में रिपोर्ट कर रही है, इसके बावजूद इसे "स्ट्रैटम 1" सर्वर (मून) में सिंक किया गया है:

[root@RackCard23 awd]# /usr/sbin/ntpdate -d 10.1.3.10
21 Jun 13:55:09 ntpdate[19410]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.3.10 and service ntp
host found : 10.1.3.10
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
receive(10.1.3.10)
transmit(10.1.3.10)
server 10.1.3.10, port 123
stratum 1, precision -6, leap 00, trust 000
refid [LOCL], delay 0.04135, dispersion 0.00383
transmitted 4, in filter 4
reference time:    cfc99402.e010624d  Mon, Jun 21 2010  8:32:18.875
originate timestamp: cfc9dfad.48000000  Mon, Jun 21 2010 13:55:09.281
transmit timestamp:  cfc9dfad.47e27179  Mon, Jun 21 2010 13:55:09.280
filter delay:  0.04155  0.04155  0.04137  0.04135
         0.00000  0.00000  0.00000  0.00000
filter offset: -0.01448 0.000781 0.000537 0.000394
         0.000000 0.000000 0.000000 0.000000
delay 0.04135, dispersion 0.00383
offset 0.000394

21 Jun 13:55:09 ntpdate[19410]: adjust time server 10.1.3.10 offset 0.000394 sec

क्लाइंट का कॉन्फ़िगरेशन (RackCard21 / 22) इस तरह दिखता है:

[root@RackCard21]# cat /etc/ntp.conf
# NTP Deamon Configuration File "ntp.conf"
# Created on 27/04/2010
# Original backed-up as "ntp.conf.backup"

server 10.1.4.23 iburst minpoll 4 maxpoll 4 prefer

server 127.127.1.0
fudge   127.127.1.0 stratum 10

# Drift file.  Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# restrict 127.0.0.1

restrict None mask 255.255.255.255 nomodify notrap noquery

और ntptrace यह देता है:

[root@RackCard21]# /usr/sbin/ntpdate -d 10.1.4.23
21 Jun 14:04:34 ntpdate[14381]: ntpdate 4.2.2p1@1.1570-o Tue May 19 13:57:56 UTC 2009 (1)
Looking for host 10.1.4.23 and service ntp
host found : 10.1.4.23
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
receive(10.1.4.23)
transmit(10.1.4.23)
10.1.4.23: Server dropped: strata too high
server 10.1.4.23, port 123
stratum 16, precision -20, leap 11, trust 000
refid [10.1.4.23], delay 0.02568, dispersion 0.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036  6:28:16.000
originate timestamp: cfc9dfef.12b79516  Mon, Jun 21 2010 13:56:15.073
transmit timestamp:  cfc9e1e2.aeae7d56  Mon, Jun 21 2010 14:04:34.682
filter delay:  0.02573  0.02571  0.02568  0.02568
         0.00000  0.00000  0.00000  0.00000
filter offset: -499.609 -499.609 -499.609 -499.609
         0.000000 0.000000 0.000000 0.000000
delay 0.02568, dispersion 0.00000
offset -499.609286

21 Jun 14:04:34 ntpdate[14381]: no server suitable for synchronization found

इसलिए यह एक उपयुक्त सर्वर नहीं ढूंढ सकता क्योंकि मैं जिस सर्वर का उपयोग करने की कोशिश कर रहा हूं वह यह रिपोर्ट कर रहा है कि यह एक स्ट्रैटम 16 सर्वर है (जो मेरा मानना ​​है कि इसका मतलब गैर-सिंक्रनाइज़ है)। यह इस तथ्य के बावजूद है कि यह सिंक्रनाइज़ है।

इसलिए मुझे किसी तरह RackCard23 को एक उच्च स्तर (आदर्श रूप से 2 स्ट्रैटम) बनाने की आवश्यकता है। मैं इसे कैसे करूं?

किसी भी मदद की बहुत सराहना की है क्योंकि मैं इसे दिनों के लिए काम करने की कोशिश कर रहा हूं!

संपादित करें:

हाय क्रिस्टोफर,

मैं ntpd को पुनः आरंभ कर रहा हूं, हां;)

सभी लिनक्स बॉक्स CentOS 5.4 चल रहे हैं।

यह आपके द्वारा सुझाए गए कमांड से आउटपुट है। सर्वप्रथम सर्वर से:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

[root@RackCard23]# /usr/sbin/ntpdc -c monlist
remote address          port local address      count m ver code avgint  lstint
===============================================================================
localhost.localdomain  34566 127.0.0.1              1 7 2      0      0       0
10.1.4.21                123 10.1.4.23              5 3 4    180      5       1
10.1.4.22                123 10.1.4.23              7 3 4      0      2       2

और फिर ग्राहक से:

[root@RackCard21]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.4.23       .INIT.          16 u   10   16    0    0.000    0.000   0.000
 LOCAL(0)        .LOCL.          10 l   44   64    1    0.000    0.000   0.001

यदि आपके पास इंटरनेट कनेक्शन नहीं है तो आपका समय स्रोत क्या है, क्या मुझे यह कहीं याद नहीं है?
dbasnett

समय स्रोत वास्तव में मायने नहीं रखता है, हम 100% सटीक समय के बाद नहीं हैं। हम जो चाहते हैं, वह यह है कि सभी मशीनें एक-दूसरे के साथ तालमेल रखती हैं, भले ही उनका समय वास्तविक समय से 10+ मिनट दूर हो। इसलिए हम नेटवर्क पर एक यादृच्छिक मशीन का उपयोग एक मास्टर समय स्रोत के रूप में कर रहे हैं - अर्थात बस इसकी आंतरिक घड़ी। जिसे हम जानते हैं और स्वीकार नहीं करते हैं, लेकिन जब तक चीजें सिंक होती हैं, तब तक यह हमारे लिए ठीक है। वास्तविक तैनात सिस्टम में हम किसी अन्य सिस्टम पर एक समय स्रोत के लिए सिंक्रनाइज़ कर रहे होंगे जिसका हमारे पास कोई नियंत्रण नहीं है, जो अधिक सटीक हो सकता है या नहीं।
fwgx

जवाबों:


5

जैसा कि क्रिस ने उल्लेख किया है, स्ट्रैटम 16 इंगित करता है कि एक सर्वर वास्तव में एक सर्वर के साथ सिंक नहीं करता है। बस निश्चित होने के लिए, आपने ntp सेवाओं को पुनः आरंभ किया, है ना? ( service ntpd restart) मैं आसान सामान याद करने की कोशिश नहीं कर रहा हूँ, लेकिन मैं हमेशा करता हूँ!

क्या आप निदान करने में सहायता के लिए कुछ और कमांड का आउटपुट पोस्ट कर सकते हैं?

ntpq -pक्लाइंट और सर्वर पर। यह दिखाना चाहिए कि किस सर्वर ने इसे कॉन्फ़िगर किया है, साथ ही उन सर्वरों के लिए आंकड़े भी।
ntpdc -c monlistसर्वर पर। जुड़े हुए ग्राहकों को दिखाना चाहिए।

इसके अलावा, चूंकि आपने ओएस का उल्लेख नहीं किया है, मैं आरएचईएल शैली कमांड के साथ चल रहा हूं। मुझे बताएं कि क्या आपको कुछ अलग मिला है।

आगे जानकारी के बाद संपादित करें
OK, अपना आउटपुट देखकर, यहाँ आपकी समस्या है: आपके पास एक स्ट्रैटम 1 सर्वर नहीं है। वास्तव में, "चंद्रमा" यह स्थानीय घड़ी का उपयोग कर रहा है। यह खुद को एक स्ट्रैटम 16 सर्वर के रूप में रिपोर्ट कर रहा है। आपके संदर्भ के लिए, एक स्ट्रैटम 1 सर्वर में एक स्थानीय जीपीएस या परमाणु घड़ी होगी। क्या आपके पास उनमें से एक है? अन्यथा, चंद्रमा को एनओटीएचआर एनटीपी सर्वर के साथ घड़ी को सिंक्रनाइज़ करने की आवश्यकता है। यदि इसके पास नेटवर्क एक्सेस नहीं है, तो आपको इसके स्ट्रेटम को ठगना होगा। (इसके लिए आपको 'सही' समय के बारे में अधिक ध्यान नहीं रखने की आवश्यकता है। जो आप नहीं करते, लेकिन इसे पढ़ने वाले किसी और को ध्यान देना चाहिए)।

चंद्रमा पर, अपनी ntp.conf फ़ाइल में निम्न पंक्ति जोड़ें fudge 127.127.1.0 stratum 10:। यह इसकी स्थानीय घड़ी को स्ट्रैटम 10 के रूप में रिपोर्ट करेगा। इससे सभी अन्य सर्वर इसका उपयोग अपने स्थानीय स्ट्रैटम 16 घड़ी के ऊपर करेंगे।

--क्रिस्टोफर कारेल


मुख्य प्रश्न पोस्ट में परिणाम जोड़े गए।
fwgx

क्रिस्टोफर के साथ सहमत। Strata ntp.org/ntpfaq/NTP-s-algo.htm के
dbasnett

3

विषय से बाहर हो सकता है, एक स्थानीय स्ट्रैटम 2 सर्वर को स्ट्रैटम 1 सर्वर से कनेक्शन की आवश्यकता होती है और आपके पृथक नेटवर्क के भीतर, आपके पास एक नहीं है।

आप एक सस्ता जीपीएस मॉड्यूल और एक रास्पबेरी पाई, कम से कम बिजली की खपत और पर्याप्त अंतर क्षमता वाली एकल-बोर्ड कंप्यूटर प्राप्त कर सकते हैं। रास्पबेरी पाई के लिए अपने जीपीएस मॉड्यूल को हुक करें और पाई को अपने नेटवर्क में शामिल करें, उचित सॉफ्टवेयर के साथ, यह आपका स्ट्रैटम 1 एनटीपी सर्वर हो सकता है कि आपका स्ट्रैटम 2 सर्वर, या जब से आपके पास यह आपके नेटवर्क के अंदर हर कंप्यूटर, सिंक समय के साथ है।


2

एनटीपी ने तय किया है कि यह अपने अनुसार होगा:

  1. यदि स्थानीय घड़ी के बहाव का आकलन नहीं किया गया है, तो स्ट्रैटम को 16 पर सेट करें। इस प्रक्रिया में एक सामान्य सर्वर पर लगभग 15 मिनट लगते हैं, जिसके बाद यह अगले चरण पर पहुंचता है।
  2. सभी कॉन्फ़िगर किए गए टाइम सर्वर से कनेक्ट करें, यह आकलन करें कि कौन से विश्वसनीय हैं (और इसके लिए पसंदीदा हैं), स्थानीय स्ट्रैटम को सबसे कम विश्वसनीय सर्वर के स्ट्रैटम प्लस एक पर सेट करें। इसलिए यदि पाया गया सबसे कम विश्वसनीय सर्वर 1 है, तो स्थानीय 2 होगा।

(यह आवश्यक रूप से घटनाओं का क्रम नहीं है, लेकिन जिस क्रम में उन्हें स्थानीय स्ट्रेटम सेट करने के प्रयोजनों के लिए संसाधित किया जाता है।)
(इसके अलावा, स्ट्रैटम 16 का अर्थ यह नहीं है कि यह असंबद्ध है)।


1
क्या ऐसा हो सकता है क्योंकि चंद्रमा एक डिफ़ॉल्ट डब्लू 32 टाइम एनटीपी सेवा का उपयोग करके विंडोज एक्सपी प्रो एक्स 64 मशीन है जो वास्तव में सिंपल एनटी (एसएनटीपी) है, जो कि रैककार्ड 23 इसे एक उचित एनटीपी सर्वर के रूप में नहीं देखता है, इसलिए कभी भी इसके स्ट्रैटम को किसी अन्य चीज के लिए सेट नहीं करेगा। 16 की तुलना में?
fwgx

D'oh, मैंने अपनी पोस्ट को संपादित करने से पहले यह नहीं देखा। इसकी बहुत संभावना है। अपने पदानुक्रम के शीर्ष पर एक उचित ntp क्लाइंट का उपयोग न करने का कोई कारण? (या तो विंडोज, या यूनिक्स आधारित)
क्रिस्टोफर कारेल

2

एक तरफ के रूप में, मैं आपके ntpq आउटपुट का कुछ विश्लेषण शामिल करूँगा। बस भविष्य में सामान्य समस्या निवारण में मदद करने के लिए, अपने और दूसरों के लिए।

सबसे पहले, अपने सर्वर से:

[root@RackCard23]# /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 10.1.3.10       .INIT.          16 u    -   16    0    0.000    0.000   0.000
 10.1.4.255      .BCST.          16 u    -   64    0    0.000    0.000   0.001

पहला कॉलम इंगित करता है कि दो सर्वर इस मशीन को सिंक करने के लिए कॉन्फ़िगर किए गए हैं। उल्लेखनीय कमी है *या +जो एक सहकर्मी, या माध्यमिक उम्मीदवारों को इंगित करेगा। इसका मतलब है कि आपका सर्वर यहां प्रविष्टियों का उपयोग करने वाला नहीं है, लेकिन यह उनके साथ कम से कम जाँच कर रहा है।

कॉलम तीन, "सेंट", उन सर्वरों के स्ट्रैटम को इंगित करता है। इस मामले में, यह इंगित करता है कि वे दोनों मशीनें अपनी स्थानीय घड़ी का उपयोग कर रही हैं। (डिफ़ॉल्ट स्ट्रैटम ऑफ़ 16) अंतिम तीन कॉलम यह संकेत देते हैं कि दो घड़ियां कितनी दूर हैं। या तो "घड़ियों में सेकंड के अंतर" मूल्य में, या दो मशीनों के बीच विलंबता, उस विलंबता में अंतर के लिए। यहां, उच्च संख्या बदतर हैं।

इस तरह से गैर-सिंक होने वाली प्रविष्टियों का कारण कुछ कारकों पर निर्भर कर सकता है: यदि घड़ियों में ऑफसेट बहुत अधिक है, तो ntp भी कोशिश नहीं करेगा, क्योंकि यह स्थानीय समय में बहुत बड़ी छलांग लगाएगा। यदि घबराना खराब हो जाता है, तो ग्राहक तब तक खराब हो जाएगा, जब तक कि चीजें स्थिर नहीं हो जातीं। (यह आमतौर पर अस्थायी होता है, और फिर भी, पुनः प्राप्त करना) वैकल्पिक रूप से, आपके मामले में, यदि कॉन्फ़िगर किए गए सर्वर में समान या उच्च स्तर के मान हैं, तो यह दर्शाता है कि वे समय स्रोतों के रूप में कम विश्वसनीय हैं, तो क्लाइंट उनका उपयोग नहीं करेगा।

--क्रिस्टोफर कारेल

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.