विशिष्ट नाम-सर्वर की क्वेरी करते समय `डिग` और` होस्ट` के बीच क्या अंतर है?


11

मैं इस आदेश का उपयोग यह सत्यापित करने के लिए कर रहा था कि क्या मैं डीएनएस प्रदाता के साथ चीजों को सही ढंग से सेट करूँगा:

host hostname.example.com ns1.example-nameserver.com

जहाँ तक मैं बता सकता हूँ, यह ns1.example-nameserver.comदेखने के लिए कहता है hostname.example.comऔर जवाब रिपोर्ट करता है। मुझे एक मेजबान नहीं मिल रहा था, इसलिए मुझे लगा कि मैंने इसे गलत किया है। (यह देखने के लिए इस प्रकार मेरी आईएसपी के नाम-सर्वर की इजाजत दी अप) हालांकि, उनके नाम सर्वर निर्दिष्ट किए बिना मैं सही जवाब (मिल गया hostnameहै एक CNAMEअगर यह मायने रखती है)। मैं इसे थाह नहीं दे सकता था, इसलिए मैंने चारों ओर खोजा और digकमान मिली :

dig @ns1.example-nameserver.com hostname.example.com

जहां तक ​​मैं यह बता सकता हूं कि यह hostकमांड के समान काम करता है - एक होस्ट को देखने के लिए एक विशिष्ट नाम-सर्वर पूछता है। इसलिए मैं यह निष्कर्ष निकालता हूं कि उन्हें इसे किसी तरह से अलग करना चाहिए, और कैशिंग नाम-सर्वर को उसी विधि का उपयोग करना चाहिए dig

मेरा निष्कर्ष सही या गलत है, अगर यह सही है:

इन दो लुक-अप तरीकों में क्या अंतर है?

यदि यह गलत है:

DNS hostऔर digआदेशों के बारे में मेरी गलतफहमी क्या हैं जो मुझे इस निष्कर्ष पर ले गए हैं?

उदाहरण आउटपुट:

$ host cardiff.tzmchapters.org ns1.livedns.co.uk
Using domain server:
Name: ns1.livedns.co.uk
Address: 213.171.192.250#53
Aliases: 

Host cardiff.tzmchapters.org not found: 3(NXDOMAIN)

$ dig @ns1.livedns.co.uk cardiff.tzmchapters.org

; <<>> DiG 9.8.3-P1 <<>> @ns1.livedns.co.uk cardiff.tzmchapters.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 23620
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;cardiff.tzmchapters.org.   IN  A

;; ANSWER SECTION:
cardiff.tzmchapters.org. 3600   IN  CNAME   ghs.google.com.

;; AUTHORITY SECTION:
google.com.     3600    IN  SOA ns1.livedns.co.uk. admin.google.com. 1354213742 10800 3600 604800 3600

;; Query time: 27 msec
;; SERVER: 213.171.192.250#53(213.171.192.250)
;; WHEN: Mon Apr 22 23:47:05 2013
;; MSG SIZE  rcvd: 128

दोनों कमांड को इस मामले में एक ही तरह से काम करना चाहिए। क्या आप प्रत्येक कमांड का पूरा आउटपुट दिखा सकते हैं?
रेनन

दोनों को नोटिस करें digऔर hostरिपोर्ट करें NXDOMAIN। साथ digआप शीर्ष लेख (5 वीं गैर खाली उत्पादन की लाइन) में और साथ इसे देख सकते हैं hostइसे और अधिक स्पष्ट है। NXDOMAINइसका मतलब डोमेन मौजूद नहीं है। फिर भी एक CNAMEउत्तर अनुभाग में वापस आ गया है! मुझे विश्वास है कि DNS सर्वर में एक बग है!
सेलडा

तो उस स्थिति में, क्या दोनों digऔर hostएक ही क्वेरी पैकेट भेजते हैं, एक ही प्रतिक्रिया पैकेट प्राप्त करें (किसी भी टाइमस्टैम्प से अलग), लेकिन इसे अलग तरीके से व्याख्या करें? क्या hostयह देखते ही जमानत हो जाती है NXDOMAIN?
झब्बोट

FWIW मैं एक विशिष्ट उपडोमेन पर सटीक विपरीत समस्या है। इस विशिष्ट उपडोमेन पर होस्ट का प्रयोग अपेक्षित रिकॉर्ड प्रदान करता है जिससे यह पता चलता है कि यह विशेष उपडोमेन एक अपेक्षित कैनोनिकल होस्टनाम को हल करता है। हालांकि, इस विशेष उपडोमेन पर खुदाई का उपयोग करते समय - मुझे एक प्रतिक्रिया मिलती है कि रिकॉर्ड मौजूद नहीं है। इसके अतिरिक्त एक ब्राउज़र के साथ इस उपडोमेन पर नेविगेट करना काम नहीं करता है। मैंने कई बार कोशिश की है, वर्तनी की गलतियों की जाँच, आदि कमांड स्पष्ट रूप से उसी तरह से काम नहीं कर रहे हैं।
user12345

जवाबों:


13

host, digऔर nslookupसभी एक ही कार्यक्षमता के अधिकांश साझा करते हैं। मामले में आप के बारे में पूछ रहे हैं (किसी विशेष नाम विशेष के लिए एक विशेष DNS प्रश्न पूछ रहे हैं), digऔर host(और वास्तव में nslookup) बिल्कुल वैसा ही व्यवहार करते हैं।

DNS समस्या निवारण के digलिए पसंद किया जाता है क्योंकि इसका आउटपुट स्वरूप अधिक "कच्चा" है: इसके आउटपुट में यह सीधे DNS प्रतिक्रिया में सभी 4 क्षेत्रों की सामग्री दिखाता है: प्रश्न, उत्तर, प्राधिकरण और अतिरिक्त अनुभाग (हेडर में झंडे) , और इसके भी अधिक विकल्प हैं। hostदूसरी ओर, एक अधिक उपयोगकर्ता के अनुकूल आउटपुट स्वरूप है।

यदि आपको ऐसा विकल्प चुनने की आवश्यकता नहीं है जो किसी एक कमांड के पास है और अन्य के पास नहीं है, या जानकारी का एक टुकड़ा जो उनमें से एक आउटपुट और अन्य नहीं है, तो यह वरीयता के मामले में नीचे आता है।


2
यदि वे नेटवर्क साइड (वास्तविक क्वेरी) पर एक ही काम करते हैं तो मैं कैसे उपयोग करते समय होस्ट नहीं मिल सकता है hostलेकिन उपयोग करते समय सही उत्तर dig? यहां तक ​​कि अगर सर्वर को किसी विशेष सेटिंग (या तो विकल्प या दुर्घटना से) का उपयोग करके कॉन्फ़िगर किया गया है, तो यह अनुरोधों को अलग करने में सक्षम होना चाहिए।
झब्बोट

नहीं! आपके प्रश्न में आपके द्वारा दिए गए दो आदेश बराबर हैं और उन्हें एक ही उत्तर देना चाहिए! क्या आप सुनिश्चित हैं कि digआपने वास्तविक उत्तर दिया है और अतिरिक्त या प्राधिकरण अनुभाग में रिकॉर्ड नहीं किया है? जैसा कि रेनन सुझाव देते हैं, यह आउटपुट दिखाने में मदद कर सकता है।
सेलडा

ठीक है, मैंने कुछ उदाहरण आउटपुट जोड़े हैं। मुझे घर पर और काम पर एक ही परिणाम मिलता है। जब मैं उपयोग करने के लिए नाम सर्वर निर्दिष्ट नहीं करता और मेरा ISP क्वेरी को संभालता है, तो hostठीक काम करता है। कृपया इसे स्वयं आज़माएँ और मुझे परिणाम बताएं।
झब्बोट

बस इसकी समीक्षा करते हुए - आईएसपी ने अंततः मुझे बताया कि उनके सर्वर को सीधे क्लाइंट प्रश्नों का जवाब नहीं देने के लिए कॉन्फ़िगर किया गया था, केवल अन्य नेमसर्वर्स जो सूचना हस्तांतरण के लिए पूछ रहे थे - क्या digएक अलग तरीके से क्वेरी करता है , जैसे कि एक नेमसर्वर होगा?
झब्बोट

1
खुदाई दोनों नियमित प्रश्न कर सकते हैं (सभी प्रकार के एक्सएफ़आर को छोड़कर) और ज़ोन स्थानांतरण (टाइप एफ़एफ़आर) लेकिन DNS ऑपरेटर आमतौर पर ज़ोन ट्रांसफ़र को अधिकृत दासों तक सीमित रखते हैं ताकि आप संभवतः नियमित प्रश्नों का उपयोग करना चाहें
सेलाडा

0

यदि आप गैर- FQDN होस्टनाम का उपयोग कर रहे हैं, तो परिणाम भिन्न हो सकते हैं क्योंकि hostखोज डोमेन का उपयोग करेंगे resolv.conf, जबकि digडिफ़ॉल्ट रूप से नहीं।

आप का उपयोग करने के +searchविकल्प अगर आप चाहते हैं digउपयोग करने के लिए resolv.conf(या में जोड़ने ~/.digrc)।

उदाहरण के लिए:

$ host foo
foo.myfqdn.com has address 10.1.2.3

$ dig +short foo
# (no result)

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