क्या मैं IP पते के साथ CNAME का उपयोग कर सकता हूं? क्यों काम करता है (कभी-कभी)?


13

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

अब, जब मैं इसे घर से जाँच रहा हूँ तो मुझे निम्नलिखित त्रुटि हुई है:

beast:~ viroos$ host somesubdomain.somedomain.com
Host somesubdomain.somedomain.com not found: 3(NXDOMAIN)

मैं 100% यह मेरे कार्यालय में काम करता था (वर्तमान में ऐसा लगता है कि ऐसा नहीं है, लेकिन मैं इसे अलग मशीन पर देख रहा हूँ)। इसलिए मैं 100% नहीं हूं अगर यह कुछ विशेष नेटवर्क सेटअप के कारण काम करता है या क्योंकि मैंने DNS प्रविष्टि को जोड़ने के बाद इसे परीक्षण किया है।

मुझे पता है कि यह कहानी थोड़ी पागल / अविश्वसनीय है, लेकिन क्या कोई मुझे इस पहेली को सुलझाने में मदद कर सकता है।

// संपादित करें: मैं खुदाई आउटपुट जोड़ रहा हूं

; <<>> DiG 9.6-ESV-R4-P3 <<>> somesubdomain.somedomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 60224
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;somesubdomain.somedomain.com.      IN  A

;; ANSWER SECTION:
somesubdomain.somedomain.com.   67  IN  CNAME   xxx.xxx.xxx.xx1.

;; AUTHORITY SECTION:
.           1800    IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2012040901 1800 900 604800 86400

;; Query time: 72 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Apr 10 00:11:01 2012
;; MSG SIZE  rcvd: 136

2
क्या आप सुनिश्चित हैं कि यह कुछ और नहीं था जिसने कार्यालय मशीनों को काम किया? कैश्ड एंट्री? लोकल रिज़ॉल्यूशन को ओवरराइड करने वाले स्थानीय नेटवर्क पर उस डोमेन के लिए आधिकारिक सर्वर? होस्ट्स की फाइलें?
शेन मैडेन

सटीक होने के लिए यह दो मशीनों पर काम किया, दोनों OSX हैं यह Ubuntu मशीन पर काम नहीं किया। चूंकि यह दो मशीनों पर काम कर रहा था इसलिए मैंने "ubuntu" समस्या (जो कि एक गलती थी) को नजरअंदाज कर दिया क्योंकि मेरा मानना ​​था कि यह dns प्रसार मुद्दा या dns कैश था। मैंने केवल प्रत्येक क्लाइंट पर DNS सेटअप की जाँच की और यह वही था (DNS प्रसार सिद्धांत के बारे में कुछ अनिश्चितता छोड़ दी)। उन मशीनों में से एक मेरा मैकबुक है और मैं वर्तमान में इसे घर और उस वेबसाइट से उपयोग कर रहा हूं जिसे मैंने सेटअप किया है वह इस पर सही ढंग से काम नहीं करता है: "somesubdomain.somedomain.com पर सर्वर नहीं मिल सकता है, क्योंकि DNS लुकअप विफल हुआ। "
Maciek Sawicki

जब आप नाम का उपयोग करके क्वेरी करते हैं तो क्या लौटाया जाता है dig?
शेन मैडेन

मैंने सवाल करने के लिए डिग आउटपुट को जोड़ा।
मैकिएक सॉविकी

मुझे दृढ़ता से संदेह है कि OSX कंप्यूटर लुकअप करने के लिए DNS के अलावा किसी अन्य चीज़ का उपयोग कर रहे हैं, जैसे mDNS (जो कि एक ही चीज़ नहीं है)।
क्रिस एस

जवाबों:


16

एक CNAMEरिकॉर्ड पर डेटा हमेशा एक और डीएनएस नाम होना चाहिए - यह एक की पूरी बात है CNAME

जैसा कि आरएफसी 1034 द्वारा सफलतापूर्वक कहा गया है, डेटा एक CNAMEहोना चाहिए:

            CNAME           a domain name.

हालांकि, यदि आप आईपी पते की ओर इशारा करना चाहते हैं, तो आपका टिकट है:

            A               For the IN class, a 32 bit IP address

CNAMEएक डीएनएस उर्फ ​​होने के लिए डिज़ाइन और कार्यान्वित किया गया है; उस डेटा फ़ील्ड में IP पता होने का कोई अनुमान नहीं है। जैसे, इसे अन्य DNS नाम के उपनाम के रूप में व्याख्या किया गया है, जैसा कि डिज़ाइन किया गया है; सब के बाद, एक आईपी पता एक DNS नाम के वाक्यविन्यास को फिट बैठता है।

तो, उदाहरण के लिए, मान लें कि आपका DNS डेटा है:

somesubdomain.somedomain.com.   60  IN  CNAME   192.0.2.1.

पुनरावर्ती DNS सर्वर जिसे आप क्वेरी कर रहे हैं, यह देखता है कि रिकॉर्ड एक है CNAME, और आंकड़े जो आप चाहते हैं कि वास्तविक डेटा इसमें शामिल हैं। के अलावा कोई रिकॉर्ड नहीं CNAMEमिला है, इसलिए ग्राहक को देने के लिए कोई जवाब नहीं है।

यह 192डोमेन के भीतर एक hostname के लिए एक रिकॉर्ड क्वेरी करने की कोशिश करता है 0.2.1। यह उस नाम के लिए कुछ भी कैश नहीं है, इसलिए यह रूट सर्वर से पूछता है। वे TLD जैसे .comऔर के लिए अनुरोधों की सेवा करते हैं .net, लेकिन यह अनुरोध एक अनुरोध है .1। वे तुरंत जवाब देते हैं कि ऐसा कोई नहीं है, और यही वह है जो आप पर पुनर्विचारकर्ता भेजता है।

आपके द्वारा देखा जा रहा प्रतिसाद digआपका पुनरावर्ती नाम सर्वर कह रहा है, "ठीक है, जिस नाम को आपने कहीं और इंगित किया था, और जो कहीं मौजूद नहीं था - रूट सर्वर से पूछें कि क्या आप मुझ पर विश्वास नहीं करते हैं"।


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


2

cname विहित नाम है, जो किसी अन्य नाम का सिर्फ एक उपनाम है, जो आमतौर पर A रिकॉर्ड या अन्य cname, आदि है। यदि आप किसी IP को इंगित करने के लिए cname सेट करते हैं, तो यह केवल उस IP का अन्य नाम है। मुझे नहीं लगता कि आपका DNS सर्वर जाँचता है कि लक्ष्य वैध है या नहीं, क्योंकि मानक RFC वास्तव में यह नहीं कहता है कि cname के लक्ष्य के लिए डेटा प्रारूप / सत्यापन क्या है। यह एक सामान्य उपयोग नहीं है, लेकिन अगर यह आपके लिए काम कर रहा है तो यह काम कर रहा है। तथ्य यह है कि यह काम नहीं कर रहा है कभी-कभी आपके लिए यह पारंपरिक रूप से उपयोग किए जाने के लिए पर्याप्त होना चाहिए, मुझे लगता है।


0

आप ले सकते हैं:

example IN CNAME 1.2.3.4.

जहां 1.2.3.4 एक कामकाजी आईपी पता है। CNAME में अनुगामी बिंदु पर ध्यान दें। तथ्य यह है कि आपके कार्यालय में कुछ मशीनें इसके साथ काम करती हैं, जबकि अन्य मुझे विश्वास नहीं करते हैं कि जिन लोगों के पास उपडोमेन सेट lmhostsया /etc/hostsफाइल में है।


1
हालांकि यह CNAME के ​​लिए मान्य डेटा है, मुझे पूरा यकीन है कि यह एक अतिरिक्त लुकअप को भड़काने वाला नहीं है .. रूट सर्वर के अलावा, एक गैर-मौजूद TLD के लिए जिसका नाम है 4?
शेन मैडेन

एक अतिरिक्त लुकअप किसी भी (जैसे host -a) क्वेरी के साथ किया जाएगा ।
अडामो

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