यह महत्वपूर्ण क्यों है कि सर्वरों का ठीक उसी समय है?


35

मैंने कई बार पढ़ा है (हालांकि मैं अभी इसे नहीं ढूँढ सकता) कि डेटा सेंटर यह सुनिश्चित करने के लिए बहुत प्रयास करते हैं कि सभी सर्वर का समय एक ही हो। सहित, लेकिन लीप सेकंड के बारे में चिंता करने के लिए सीमित नहीं है।

यह इतना महत्वपूर्ण क्यों है कि सर्वरों का समय समान है? और वास्तविक सहिष्णुता क्या हैं?

जवाबों:


53

सुरक्षा

सामान्य तौर पर, पुनरावृत्ति के हमलों को रोकने में मदद करने के लिए विभिन्न प्रमाणीकरण प्रोटोकॉल में टाइमस्टैम्प्स का उपयोग किया जाता है , जहां एक हमलावर एक प्रमाणीकरण टोकन का पुन: उपयोग कर सकता है जो वह चोरी करने में सक्षम था (जैसे नेटवर्क को सूँघकर)।

उदाहरण के लिए, Kerberos प्रमाणीकरण ठीक यही करता है। विंडोज में उपयोग किए जाने वाले केर्बरोस के संस्करण में, डिफ़ॉल्ट सहिष्णुता 5 मिनट है।

इसका उपयोग दो-कारक प्रमाणीकरण जैसे कि Google प्रमाणक, RSA SecurID, आदि के लिए उपयोग किए जाने वाले विभिन्न वन-टाइम पासवर्ड प्रोटोकॉल द्वारा भी किया जाता है। इन मामलों में सहिष्णुता आमतौर पर 30-60 सेकंड के आसपास होती है।

क्लाइंट और सर्वर के बीच समयांतराल के बिना, प्रमाणीकरण को पूरा करना संभव नहीं होगा। (यह प्रतिबंध MIT कर्बरोस के नवीनतम संस्करणों में हटा दिया गया है, जो कि आवश्यक होने के बाद और KDC प्रमाणीकरण के दौरान अपनी घड़ियों के बीच ऑफसेट का निर्धारण करता है, लेकिन ये परिवर्तन Windows Server 2012 R2 के बाद हुए हैं और इसे Windows में देखने से पहले आपको थोड़ी देर हो जाएगी संस्करण। लेकिन 2FA के कुछ कार्यान्वयनों को हमेशा सिंक्रनाइज़ घड़ियों की आवश्यकता होगी।)

शासन प्रबंध

सिंक में घड़ियां होने से विषम प्रणालियों के साथ काम करना आसान हो जाता है। उदाहरण के लिए, एकाधिक सर्वरों से लॉग प्रविष्टियों को सहसंबंधित करना बहुत आसान है यदि सभी प्रणालियों का समय समान हो। इन मामलों में आप आमतौर पर 1 सेकंड की सहिष्णुता के साथ काम कर सकते हैं, जो एनटीपी प्रदान करेगा, लेकिन आदर्श रूप से आप चाहते हैं कि जितनी बार आप इसे बर्दाश्त कर सकें। PTP, जो बहुत तंग सहिष्णुता प्रदान करता है, लागू करने के लिए बहुत अधिक महंगा हो सकता है।


16
+1 टाइमस्टैम्प्स को आउट-ऑफ-सिंक के साथ वितरित किए गए यस्टीम्स पर समस्या निवारण की समस्या: फिर कभी नहीं
मैथियास आर जेसेन

3
एक NTP डेमन चलाने वाले सर्वर को आमतौर पर 0.01 सेकंड (कुछ मिलीसेकंड) के भीतर सिंक्रोनाइज़ किया जाता है। देशी Windows NTP सिंक्रनाइज़ेशन केवल एक दिन में कुछ बार जांचता है, और उतना सटीक नहीं है। विंडोज के लिए एनटीपी क्लाइंट उपलब्ध हैं, जो अच्छा सिंक्रनाइज़ेशन प्रदान करते हैं।
बिलथोर

इस उत्तर के लिए +1, क्योंकि मैं अभी अपने सिस्टम का समय देखता हूं और मुझे 5 सेकंड देर हो गई थी, लेकिन अब मैं ntp का उपयोग करके सिंक्रनाइज़ करने के लिए हूं, प्रश्न को ntp.org के लिंक से जोड़ना अच्छा होगा ताकि लोग अपनी जांच कर सकें प्रणाली
फ्रीडो

2
makeक्लायंट / सर्वर NFS के बीच क्लॉक स्क्यू से भी भ्रमित हो जाता है।
सोब्रीक

@ विंडो समय सेवा के बारे में आपकी जानकारी एक दशक पीछे है। यह 2003R2 की रिलीज़ के बाद से एक पूर्ण NTP क्लाइंट है, और AD डोमेन के अनुकूल एजेंट भाग को सिंक करता है। हम देखते हैं <16 ms 2008R2 पर सामान्य ऑफसेट 64Hz सिस्टम टाइमर टिक की सीमा। हम 2012+ बॉक्स पर बेहतर टाइमकीपिंग देखते हैं जो छोटे टिक अंतराल का उपयोग कर सकते हैं।
रैलमैटर

17

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


2
इसके अलावा, कुछ सुरक्षा समाधान जैसे कि ldap और / या kerberos विफल हो जाएंगे यदि समय सिंक नहीं किया गया है। जैसा कि कुछ हा समाधान होगा।
जेनी डी का कहना है कि मोनिका

7

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

इसके अलावा, उदाहरण के लिए VMWare ESXi सर्वर पर वर्चुअलाइजेशन और VM का समय हाइपरविजर के साथ सिंक में नहीं है, तो वीएमओएन जैसी क्रिया हाइपरवेर्स के साथ VM घड़ी को फिर से सिंक कर सकती है और इससे बदले में अप्रत्याशित परिणाम हो सकते हैं। अगर समय का अंतर काफी बड़ा है।

मुझे नहीं पता कि कोई भी वास्तविक सहिष्णुता क्या है, क्योंकि मुझे लगता है कि यह इस बात पर बहुत निर्भर करता है कि किस प्रकार के सिस्टम हैं, लेकिन मुझे लगता है कि आम तौर पर बोलते हुए सर्वर को डेटासेंटर में एक सेकंड से कम समय के लिए एक दूसरे के बीच ऑफसेट रखना संभव है।


6

चूंकि आपने लीप सेकंड का उल्लेख किया है, इसलिए यह ध्यान दिया जाना चाहिए कि उन्हें विशेष रूप से कठिन हैंडलिंग की आवश्यकता होती है।

वे आमतौर पर 23:59:60 के रूप में एक दूसरे को इंजेक्ट करके जोड़ते हैं, यह समस्याग्रस्त है यदि आप मिनट और सेकंड फ़ील्ड के लिए 0-59 के रूप में टाइमस्टैम्प को मान्य कर रहे हैं। इसे 2 सेकंड लंबा करने के लिए 23:59:59 दोहराए जाने का विकल्प बहुत बेहतर नहीं है क्योंकि यह उस चीज के साथ गड़बड़ करेगा जो प्रति सेकंड के स्तर के प्रति संवेदनशील है।

Google वास्तव में कुछ समय पहले एक अच्छे समाधान के साथ आया था जो लगता है कि व्यापक रूप से अभी तक अपनाया नहीं गया है। उनका समाधान एक लीप "स्मीयर" लागू करना और समय की अवधि में परिवर्तन को विभाजित करना था, पूरी प्रक्रिया एक एनटीपी सर्वर द्वारा प्रबंधित की जा रही थी। उन्होंने 2011 में इसके बारे में एक ब्लॉग प्रकाशित किया , दिलचस्प पढ़ने के लिए बनाता है और इस प्रश्न के लिए प्रासंगिक लगता है।


कुछ NTP क्लाइंट्स के स्लीव व्यवहार की तरह बहुत कुछ लगता है , जिसे हमेशा की तरह लागू किया गया है।
एक CVn

@ माइकलकॉर्जलिंग की तरह। अंतर यह है कि समय के साथ सुधार करने से घड़ी को गलत होने के लिए निर्धारित करने के बाद बड़े कूद से बचने का इरादा है। जानबूझकर अपने ntp सर्वर में ऑफ़सेट जोड़ने के लिए Google ने जो किया था, वह पहले से ही चल रहा था और इस तरह कभी लीप सेकंड नहीं रहा।
कैथार

5

जब भी टाइमस्टैम्प शामिल होते हैं, तो डी-सिंक्रोनाइज़्ड डिवाइस तार्किक असंगति पैदा कर सकते हैं, जैसे: A, B को एक क्वेरी भेजता है, और B का उत्तर उस टाइमस्टैम्प से पहले आता है, जो संभवतः क्वेरी की तुलना में होता है, जिससे संभवतः A इसे अनदेखा कर सकता है।


4

मैं उपरोक्त सभी बिंदुओं से सहमत हूं। मैं अधिक विचार फेंकना चाहता हूं
कुछ डेटाबेस जैसे कि कैसेंद्र समय की मुहर पर बहुत अधिक भरोसा करते हैं । यही तरीका है कि यह संगामिति से निपटता है।

अलग-अलग टाइमस्टैम्प डेटाबेस में समान रूप से गड़बड़ करेंगे।


2
यह एक टिप्पणी के रूप में बेहतर रूप से पोस्ट किया गया है
डेव एम

इसलिए मैंने CentOS 5.2 मशीनों के एक समूह पर glibc को अपग्रेड किया, और अपडेट गलती से MST समय क्षेत्र का आधा हिस्सा सेट कर दिया - हमें तुरंत उपयोगकर्ताओं को "निष्क्रियता" के लिए लॉग आउट करने में समस्या हो रही थी। सभी प्रकार के छोटे विजेट और डोडिंग से समय कम या ज्यादा सही होने की उम्मीद है। इसके अलावा, अगर आपका समय गलत है और स्वतः पूर्ण तरीके से वापस आ जाता है, तो आप फ़ाइलों के साथ हवा देते हैं और टाइमस्टैम्प को लॉग करते हैं जो वास्तव में भ्रामक हैं और भविष्य से आते हैं ...
कुछ लिनक्स नर्ड

मुझे उम्मीद है कि यह बहुत सारे वितरित डेटाबेस का सच होगा। केवल दो सेकंड के आदेश को उलटने के लिए कुछ सेकंड के टाइमस्टैम्प में अंतर पर्याप्त हो सकता है।
कैथार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.