NTP में टिंकर आतंक 0 को अक्षम करने के क्या नुकसान हैं?


10

हमें कभी-कभी यह समस्या होती है कि नए सर्वर के बायोस में गलत समय है, इसलिए एक महीने तक का समय हो सकता है।

जब आप वीएमवेयर में एक वीएम को निलंबित करते हैं और फिर इसे अनसेंड करते हैं, तो समय भी बंद हो जाएगा। क्योंकि एनटीपी अधिकतम ऑफसेट के बाद सिंक नहीं करता है, मैं /etc/ntp.conf में टिंकर पैनिक 0 का उपयोग करने पर विचार कर रहा हूं।

क्या कारण है कि 1000 सेकंड की डिफ़ॉल्ट अधिकतम ऑफ़सेट होती है जिसके कारण NTP समय को सिंक करना बंद कर देता है? हम NTP सेट करने के लिए कठपुतली का उपयोग कर रहे हैं, मैं इसे ntp.conf में टिंकर पैनिक 0 सेट करने पर विचार कर रहा हूं, इसलिए NTP वैसे भी सिंक करेगा। ऐसा करने के नुकसान क्या हैं?


जवाबों:


8

एक सर्वर जिसका समय इतना अलग है के खिलाफ सिंक नहीं करने का कारण यहां प्रलेखित है :

5.1.1.4। यदि संदर्भ समय बदलता है तो क्या होगा?

आदर्श रूप से संदर्भ समय दुनिया में हर जगह समान है। एक बार सिंक्रनाइज़ होने के बाद, ऑपरेटिंग सिस्टम की घड़ी और संदर्भ घड़ी के बीच कोई अप्रत्याशित परिवर्तन नहीं होना चाहिए। इसलिए, स्थिति को संभालने के लिए NTP के पास कोई विशेष तरीका नहीं है।

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

मेरे वर्तमान NTP कॉन्फ़िगरेशन में, द्वारा नियंत्रित भी puppet, मैं सर्वर के साथ सिंक्रनाइज़ेशन को ntp.confफाइल, उपयोग tinker panic, और डेमन सेटिंग्स में ( /etc/sysconfig/ntpd), जैसा कि ntpd(8)मैनपेज में वर्णित है :

-जी आम तौर पर, अगर सिस्टम ऑफसेट से पैनिक सीमा से अधिक है, जो डिफ़ॉल्ट रूप से 1000 s है, तो ntpd सिस्टम लॉग में एक संदेश के साथ बाहर निकलता है। यह विकल्प बिना किसी प्रतिबंध के समय को निर्धारित करने की अनुमति देता है; हालाँकि, यह केवल एक बार ही हो सकता है। यदि उसके बाद सीमा पार हो गई है, तो ntpd सिस्टम लॉग में एक संदेश के साथ बाहर निकल जाएगा। इस विकल्प का उपयोग -q और -x विकल्पों के साथ किया जा सकता है।

मैं ऐसा इसलिए करता हूं क्योंकि मैं उस NTP सर्वर पर भरोसा कर सकता हूं जिसे मैं कनेक्ट कर रहा हूं।

क्लाइंट पर लागू मॉड्यूल का प्रासंगिक भाग निम्नानुसार है:

class ntp (
  $foo
  $bar
  ...
  ){

  $my_files = {
    'ntp.conf'      => {
      path    => '/etc/ntp.conf',
      content => template("ntp/ntp.conf.$template.erb"),
      selrole => 'object_r',
      seltype => 'net_conf_t',
      require => Package['ntp'], },
    'ntp-sysconfig' => {
      path    => '/etc/sysconfig/ntpd',
      source  => 'puppet:///modules/ntp/ntp-sysconfig',
      require => Package['ntp'], },
      ...
  }

  $my_files_defaults = {
    ensure   => file,
    owner    => 'root',
    group    => 'root',
    mode     => '0644',
    selrange => 's0',
    selrole  => 'object_r',
    seltype  => 'etc_t',
    seluser  => 'system_u',
  }

  create_resources(file, $my_files, $my_files_defaults)

  exec { 'ntp initial clock set':
    command     => '/usr/sbin/ntpd -g -q -u ntp:ntp',
    refreshonly => true,
    timeout     => '-1',
    subscribe   => File['/etc/ntp.conf'],
  }

}

और संदर्भित फ़ाइलों की सामग्री हैं:

$ cat devops/puppet/modules/ntp/files/ntp-sysconfig
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -a"

तथा:

$ cat devops/puppet/modules/ntp/templates/ntp.conf.RedHat.erb
# HEADER: This file was autogenerated by puppet.
# HEADER: While it can still be managed manually, it
# HEADER: is definitely not recommended.
tinker panic 0
<% server.each do |ntpserver| -%>
server <%= ntpserver %> autokey
<% end -%>
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
crypto pw hunter2
crypto randfile /dev/urandom
keysdir /etc/ntp

यहां hieraहिस्सा गायब है, लेकिन आपको यह विचार मिलता है।


3

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

एल्गोरिथ्म में एक सुरक्षा तंत्र इस बात का पता लगाने के लिए है कि वे फाल्सेटिक को क्या कहते हैं , लेकिन यह केवल कुछ समस्याओं का पता लगा सकता है, ज्यादातर अगर एक अपस्ट्रीम घड़ी अचानक एक पिछड़े समय भेजता है।

यदि यह केवल "प्रारंभ समय में गलत घड़ी" के बारे में है:

  • आप / etc / ntp / step-tickers का उपयोग कर सकते हैं (RHEL * पर, डेबियन को कभी भी विचार नहीं मिला)। कदम-टिकर फ़ाइल एक या एक से अधिक NTP सर्वरों को ntpd शुरू करने से पहले ntpdate चलाने के लिए ले जाती है।
  • वैकल्पिक रूप से (या इसके अलावा) ntpd के लिए -g विकल्प है , जो बदसूरत ऑफसेट की अनुमति देता है, लेकिन केवल तब जब वे शुरुआत में पाए जाते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.