मैं परस्पर विरोधी DNS रिकॉर्ड की उत्पत्ति कैसे पा सकता हूं?
मैं परस्पर विरोधी DNS रिकॉर्ड की उत्पत्ति कैसे पा सकता हूं?
जवाबों:
आप किसी दिए गए डोमेन नाम के लिए SOA (स्टार्ट ऑफ़ अथॉरिटी) रिकॉर्ड चाहते हैं, और यह है कि आप सार्वभौमिक उपलब्ध nslookup कमांड लाइन टूल का उपयोग करके इसे कैसे पूरा करते हैं :
command line> nslookup
> set querytype=soa
> stackoverflow.com
Server: 217.30.180.230
Address: 217.30.180.230#53
Non-authoritative answer:
stackoverflow.com
origin = ns51.domaincontrol.com # ("primary name server" on Windows)
mail addr = dns.jomax.net # ("responsible mail addr" on Windows)
serial = 2008041300
refresh = 28800
retry = 7200
expire = 604800
minimum = 86400
Authoritative answers can be found from:
stackoverflow.com nameserver = ns52.domaincontrol.com.
stackoverflow.com nameserver = ns51.domaincontrol.com.
मूल (या प्राथमिक नाम सर्वर Windows पर) लाइन आपको बताता है कि ns51.domaincontrol के लिए मुख्य नाम सर्वर है stackoverflow.com ।
आउटपुट के अंत में दिए गए डोमेन के लिए बैकअप सर्वर सहित सभी आधिकारिक सर्वर सूचीबद्ध हैं।
dig
nslookup -type=soa stackoverflow.com
आज (2019-फरवरी) लिनक्स पर चलते हैं , तो आधिकारिक अनुभाग खाली है।
आपने अपने प्रश्न में एकवचन का उपयोग किया है लेकिन आमतौर पर कई आधिकारिक नाम सर्वर हैं, RFC 1034 कम से कम दो की सिफारिश करता है।
जब तक आपका मतलब "प्राथमिक नाम सर्वर" नहीं है और "आधिकारिक नाम सर्वर" नहीं है। माध्यमिक नाम सर्वर हैं आधिकारिक।
यूनिक्स पर एक डोमेन के नाम सर्वर का पता लगाने के लिए:
% dig +short NS stackoverflow.com
ns52.domaincontrol.com.
ns51.domaincontrol.com.
सर्वर को प्राथमिक के रूप में सूचीबद्ध करने के लिए ("प्राथमिक" की धारणा इन दिनों काफी अस्पष्ट है और आमतौर पर इसका कोई अच्छा जवाब नहीं है):
% dig +short SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.
नाम सर्वरों के बीच विसंगतियों की जांच करने के लिए, मेरी प्राथमिकता पुराने check_soa
उपकरण पर जाती है, जिसका वर्णन लियू एंड अल्बित्ज़ "DNS & BIND" पुस्तक (ओ रेली संपादक) में किया गया है। स्रोत कोड http://examples.oreilly.com/dns5/ में उपलब्ध है
% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300
यहां, दो आधिकारिक नाम सर्वर में एक ही सीरियल नंबर है। अच्छा।
www.pressero.com
, जो किसी अन्य साइट के लिए CNAME है - खुदाई + लघु SOA सिर्फ CNAME लक्ष्य देता है।
www.pressero.com
, आप शायद A रिकॉर्ड्स के बारे में सोच रहे थे ( dig
यदि आप इसे निर्दिष्ट नहीं करते हैं तो डिफ़ॉल्ट रिकॉर्ड प्रकार है)। लेकिन यदि आवश्यक हो, tail -1
तो अंतिम परिणाम प्राप्त करने के लिए बस एक जोड़ें ।
dig +short SOA www.pressero.com
। यह केवल CNAME लक्ष्य देता है - pressero.com
डोमेन के लिए SOA रिकॉर्ड नहीं , जो कि मुझसे अपेक्षित है। tail -1
मामलों में मदद नहीं करता है; dig +short SOA
केवल एक पंक्ति का उत्सर्जन कर रहा है।
* निक्स पर:
$ dig -t ns <domain name>
मेरे पास एक डीएनएस प्रचार उपकरण है जो इस तरह के सवालों के जवाब देने के लिए डिज़ाइन किया गया है।
स्रोत AGPLv3 के तहत जारी किया गया है।
(हाँ, इंटरफ़ेस फिलहाल बुनियादी है :))
आप "होस्ट" कमांड वाले डोमेन के लिए नेमसर्वर का भी पता लगा सकते हैं:
[davidp @ supernova: ~] $ host -t ns stackoverflow.com stackoverflow.com नाम सर्वर ns51.domaincontrol.com। stackoverflow.com नाम सर्वर ns52.domaincontrol.com।
मैंने पाया कि इसे हमेशा + ट्रेस विकल्प जोड़ने का सबसे अच्छा तरीका:
dig SOA +trace stackoverflow.com
यह विभिन्न प्रदाता में होस्ट किए गए पुनरावर्ती CNAME के साथ भी काम करता है। + ट्रेस ट्रेस + और न ही इसलिए ट्रेस ताकि परिणाम सिर्फ आपके द्वारा निर्दिष्ट डोमेन के लिए है।
शब्द जिसे आपको गूगुलिंग होना चाहिए, वह "आधिकारिक" है, "निश्चित" नहीं है।
लिनक्स या मैक पर आप आदेशों का उपयोग कर सकते हैं whois
, dig
, host
, nslookup
या कई अन्य शामिल हैं। nslookup
विंडोज पर भी काम कर सकते हैं।
एक उदाहरण:
$ whois stackoverflow.com
[...]
Domain servers in listed order:
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM
अतिरिक्त क्रेडिट के लिए: हाँ, यह संभव है।
आर्यह निश्चित रूप से गलत है, क्योंकि उनका सुझाव आमतौर पर केवल होस्टनाम के लिए आपको आईपी पता देगा। यदि आप उपयोग करते हैं dig
, तो आपको एनएस के रिकॉर्ड देखने होंगे, जैसे:
dig ns stackoverflow.com
ध्यान रखें कि यह आपके स्थानीय DNS सर्वर से पूछ सकता है और इस प्रकार गलत या आउट-ऑफ-डेट उत्तर दे सकता है जो उसके कैश में है।
हमने एक डीएनएस लुकअप टूल बनाया है जो आपको डोमेन के ऑथरिटिव नेमसर्वर और उसके सामान्य डीएनएस रिकॉर्ड एक ही अनुरोध में देता है।
उदाहरण: https://www.misk.com/tools/#dns/stackoverflow.com
हमारे टूल को ऑथोराइज़र नेमवेर्स मिलते हैं, जो रूट नेमवेर्स पर एक realtime (अनकैप्ड) डीएनएस लुकअप करते हैं और फिर नेमवेरिफेरल रेफ़रल का अनुसरण करते हैं, जब तक कि हम ऑथराइज़र नेमवेर्सर्स तक नहीं पहुँचते। यह वही तर्क है जो डीएनएस रिसॉल्वर को आधिकारिक जवाब प्राप्त करने के लिए उपयोग करता है। प्रत्येक क्वेरी पर एक यादृच्छिक आधिकारिक नामवर चुना जाता है (और पहचाना जाता है) जिससे आप कई अनुरोधों को करके परस्पर विरोधी डीएनएस रिकॉर्ड पा सकते हैं।
ऊपर दिए गए उदाहरण से dns लुकअप परिणामों के निचले भाग में "आधिकारिक नामकरण" पर क्लिक करके आप नेमसर्वर प्रतिनिधिमंडल पथ भी देख सकते हैं।
उदाहरण: https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net
आप Whois सेवा का उपयोग कर सकते हैं। ऑपरेटिंग सिस्टम जैसे UNIX पर आप निम्न कमांड निष्पादित करेंगे। वैकल्पिक रूप से आप इसे वेब पर http://www.internic.net/whois.html पर कर सकते हैं ।
whois stackoverflow.com
आपको निम्न प्रतिक्रिया मिलेगी।
... यहां पाठ हटाया गया ...
डोमेन सर्वर सूचीबद्ध क्रम में: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM
आप दिए गए डोमेन के रिकॉर्ड के बारे में अधिक जानकारी प्राप्त करने के लिए nslookup या खुदाई का उपयोग कर सकते हैं। यह आपके द्वारा वर्णित संघर्षों को हल करने में आपकी मदद कर सकता है।
दुर्भाग्य से, इनमें से अधिकांश उपकरण केवल वास्तविक नाम सर्वर द्वारा प्रदान किए गए अनुसार एनएस रिकॉर्ड वापस करते हैं। यह निर्धारित करने में अधिक सटीक होने के लिए कि कौन सा नाम सर्वर वास्तव में एक डोमेन के लिए जिम्मेदार है, आपको या तो "हूइस" का उपयोग करना होगा और वहां सूचीबद्ध डोमेन की जांच करनी होगी या "डिग [डोमेन] एनएस @ [रूट नाम सर्वर] का उपयोग करना होगा और इसे चलाना होगा नाम सर्वर लिस्टिंग प्राप्त होने तक पुनरावर्ती रूप से ...
काश, एक साधारण कमांड लाइन होती जो आप THAT परिणाम को भरोसेमंद रूप से और एक सुसंगत प्रारूप में प्राप्त करने के लिए चला सकते हैं, न कि केवल उस परिणाम से जो नाम सर्वर से दिया गया है। मेरे लिए इसका उद्देश्य लगभग 330 डोमेन नामों को क्वेरी करने में सक्षम होना है जो मैं प्रबंधित करता हूं इसलिए मैं यह निर्धारित कर सकता हूं कि प्रत्येक डोमेन किस नाम सर्वर की ओर इशारा कर रहा है (उनकी रजिस्ट्रार सेटिंग्स के अनुसार)।
किसी को भी "डिक्स" या "होस्ट" या कुछ और का उपयोग करके कमांड का पता है * निक्स?
SOA रिकॉर्ड पदानुक्रम को आगे बढ़ाते हुए सभी सर्वरों पर मौजूद होते हैं, जिस पर डोमेन स्वामी का कोई नियंत्रण नहीं होता है, और वे सभी प्रभावी रूप से डोमेन स्वामी के नियंत्रण में एक आधिकारिक नाम सर्वर को इंगित करते हैं।
आधिकारिक सर्वर पर SOA रिकॉर्ड स्वयं है, दूसरी ओर, उस डोमेन को हल करने के लिए कड़ाई से आवश्यक नहीं है, और इसमें फर्जी जानकारी (या छिपे हुए प्राथमिक, या अन्यथा प्रतिबंधित सर्वर) हो सकते हैं और आधिकारिक नाम सर्वर को निर्धारित करने के लिए इस पर भरोसा नहीं किया जाना चाहिए। किसी दिए गए डोमेन के लिए।
आपको उस सर्वर की क्वेरी करनी होगी जो किसी दिए गए चाइल्ड डोमेन के लिए विश्वसनीय SOA जानकारी प्राप्त करने के लिए शीर्ष स्तर डोमेन के लिए आधिकारिक है ।
(किस सर्वर के बारे में जानकारी आधिकारिक है जिसके लिए TLD को रूट नाम सर्वर से क्वेर किया जा सकता है)।
जब आपके पास TLD आधिकारिक सर्वर से SOA के बारे में विश्वसनीय जानकारी होती है, तो आप किसी भी अन्य NS रिकॉर्ड के लिए प्राथमिक नाम सर्वर को आधिकारिक (gTLD नेमसेर पर SOA रिकॉर्ड में एक thats) क्वेरी कर सकते हैं, और फिर सभी की जाँच करके आगे बढ़ें! उन नाम सर्वरों को आपने एनएस रिकॉर्ड्स को क्वेरी करने से प्राप्त किया है, यह देखने के लिए कि क्या उन सर्वरों पर किसी अन्य विशेष रिकॉर्ड के लिए कोई असंगतता है।
यह सभी लिनक्स के साथ और nslookup / खिड़कियों की तुलना में खुदाई के साथ बेहतर / विश्वसनीय काम करता है।
ऑनलाइन डोमेन टूल का उपयोग करने का एक आसान तरीका है। मेरा पसंदीदा डोमेन टूल (पूर्व में whois.sc) है। मुझे यकीन नहीं है कि वे परस्पर विरोधी DNS रिकॉर्ड को हल कर सकते हैं, हालांकि। एक उदाहरण के रूप में, stackoverflow.com के लिए DNS सर्वर हैं
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM
मैंने पाया है कि कुछ डोमेन के लिए, उपरोक्त उत्तर काम नहीं करते हैं। सबसे तेज़ तरीका जो मैंने पाया है, वह है एनएस रिकॉर्ड के लिए पहली जाँच। यदि वह मौजूद नहीं है, तो SOA रिकॉर्ड की जांच करें। यदि वह मौजूद नहीं है, तो खुदाई का उपयोग करके नाम को फिर से हल करें और पिछले एनएस रिकॉर्ड को वापस ले लें। एक उदाहरण जो इस पर फिट बैठता हैanalyticsdcs.ccs.mcafee.com.
host -t NS analyticsdcs.ccs.mcafee.com.
host -t SOA analyticsdcs.ccs.mcafee.com.
dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1
host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.