क्या CNAME से CNAME श्रृंखला की अनुमति है?


68

क्या DNS में CNAME रिकॉर्ड रखने की अनुमति है जो किसी अन्य CNAME रिकॉर्ड को इंगित करता है?

इसका कारण यह है कि हमारे पास एक होस्टनाम है जिसे हम अपने वेब सर्वर कंप्यूटर के आईपी पते तक देखना चाहते हैं। हमारे पास एक अन्य वेब सर्वर कंप्यूटर स्टैंड भी है जिसे उस स्थिति में सक्रिय किया जा सकता है जब पहले वाला मर जाएगा। ऐसे मामले में हमें वेब सर्वर कंप्यूटर द्वारा स्टैंड के आईपी पते पर होस्टनाम को जल्दी से इंगित करने की आवश्यकता होगी।

दुर्भाग्यवश होस्टनाम एक DNS डोमेन में रहता है जहाँ मैनुअल परिवर्तन के कारण अन्य sysadmins पर निर्भर होने के कारण किसी भी परिवर्तन में लंबा समय लगेगा। लेकिन हमारे पास एक और डीएनएस डोमेन है जहां हम परिवर्तनों को स्वयं जल्दी कर सकते हैं। CNAME से CNAME श्रृंखला का होना संभव समाधान की तरह लगता है। लेकिन क्या इसकी अनुमति है? क्या वेब ब्राउज़र इसे समझ पाएंगे?

जवाबों:


81

से डोमेन नाम - - RFC 1034 अवधारणाओं और सुविधाओं :

RRs में डोमेन नाम जो किसी अन्य नाम पर इंगित करते हैं, उन्हें हमेशा प्राथमिक नाम पर इंगित करना चाहिए, न कि उपनाम। यह जानकारी तक पहुँचने में अतिरिक्त अप्रत्यक्षताओं से बचता है। उदाहरण के लिए, उपरोक्त होस्ट के लिए RR का नाम पता होना चाहिए:

52.0.0.10.IN-ADDR.ARPA  IN      PTR     C.ISI.EDU

USC-ISIC.ARPA पर इंगित करने के बजाय। निश्चित रूप से, मजबूती सिद्धांत द्वारा, CNAME चेन या लूप के साथ प्रस्तुत किए जाने पर डोमेन सॉफ्टवेयर विफल नहीं होना चाहिए; CNAME चेन का अनुसरण किया जाना चाहिए और CNAME लूप्स को एक त्रुटि के रूप में संकेत दिया जाना चाहिए।

तो हां, इसकी अनुमति है और ठीक से लिखा गया सॉफ्टवेयर इसे ठीक कर देगा। CNAME श्रृंखला को हालांकि अच्छा अभ्यास नहीं माना जाता है और यह बुनियादी ढांचे पर एक उपरि लागू करता है।


3
RFC संदर्भ के लिए +1
Alnitak

16
यद्यपि मैं यह हर समय करता हूं, ऊपर दिया गया उद्धरण संदर्भ से बाहर है। इस पैराग्राफ के ठीक ऊपर यह लिखा है ..Domain names in RRs which point at another name should always point at the primary name and not the alias. This avoids extra indirections in accessing information.
मोलोमबी

3
Microsoft Azure नेटवर्किंग लड़के द्वारा उल्लेख किया गया , CNAME चाइनिंग उनके लिए AnyCast लोडिंग बैलेंसिंग करना महत्वपूर्ण है।
पॉल लैन

26

यकीन है, यह संभव है।

यह आमतौर पर हतोत्साहित किया जाता है, स्पष्ट कारण के लिए कि यह अधिक DNS संसाधनों का उपयोग करता है। उदाहरण के लिए:

foo   IN      CNAME  someserver.somehost.com.
bar   IN      CNAME  foo

'बार' को छोड़ने के परिणामस्वरूप CNAME fooको क्वेरी किया जाएगा, फिर someserver.somehost.com.क्वेरी की जाएगी, जिसके परिणामस्वरूप एक अतिरिक्त क्वेरी होगी।

श्रृंखला में प्रत्येक तत्व के लिए आप जोड़ देंगे, एक और क्वेरी की आवश्यकता होगी।

एक और कारण यह हतोत्साहित किया जाता है कि, इस तरह की चेन बनाकर, आप किसी तरह CNAME लूप बनाएंगे संभावना बढ़ जाती है; ये वर्तमान DNS सर्वरों द्वारा स्वचालित रूप से पता लगाया जाना चाहिए, लेकिन अभी भी सर्वर पर एक बड़ा भार लागू करेगा।


5

हां, इसकी अनुमति है और यह काम करेगा, लेकिन इसे अच्छा अभ्यास नहीं माना जाता है। एकाधिक लुकअप अधिक संसाधनों का उपयोग करते हैं, और गलती से लूप बनाने का जोखिम होता है।

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