वास्तव में एक पुनरावर्ती डीएनएस लुकअप में "पुनरावृत्ति" कौन करता है?


16

मैं पुनरावृत्त और पुनरावर्ती DNS लुकअप के बीच अंतर को समझने की कोशिश कर रहा हूं। मौलिक रूप से, मैं पुनरावृत्ति के बारे में सोचता हूं जैसे कि एक उत्पाद की तलाश में एक डिपार्टमेंटल स्टोर को कॉल करना, और जब उनके पास यह नहीं होता है, तो वे आपको कॉल करने के लिए अपनी एक और शाखा की संख्या देते हैं और फिर आप स्वयं दूसरी शाखा को कॉल करते हैं। वर्सस रिकर्सिव, जो डिपार्टमेंटल स्टोर को कॉल करने जैसा है, और जब आपके पास ऐसा नहीं होता है, तो वे प्रोडक्ट की तलाश में आपकी ओर से दूसरी ब्रांच को कॉल करते हैं। बात यह है, जब यह DNS की बात आती है, तो मुझे इस बारे में परस्पर विरोधी विचार मिल रहे हैं। जब मैं पुनरावर्ती के बारे में सोचता हूं, तो मुझे लगता है कि कुछ ऐसा है जो इस तरह दिखता है: वैकल्पिक शब्द

लेकिन वेब पर लेख पढ़ते समय, और यहां तक ​​कि DNS पुनरावर्ती के लिए एक Google छवि खोज करते हुए , मैं और भी कई उदाहरण देखता हूं जो इस तरह दिखते हैं: वैकल्पिक शब्द

मेरे लिए, यह दूसरा उदाहरण पुनरावर्ती की तुलना में अधिक पुनरावृत्त दिखता है, क्योंकि "अन्य DNS सर्वर" में से प्रत्येक "पसंदीदा DNS सर्वर" को अगली मशीन के पते को खोजने के लिए कह रहा है, बजाय इसे पसंद किए जाने के लिए। DNS सर्वर। एकमात्र पुनरावर्ती तत्व जो मैं देख रहा हूं वह यह है कि पसंदीदा DNS सर्वर DNS क्लाइंट की ओर से लुकअप करता है, लेकिन यहां से, यह निश्चित रूप से पुनरावृत्त दिखता है।

तो मुझे लगता है कि मेरा सवाल यह है कि क्या "पुनरावर्ती" DNS लुकअप का मतलब वास्तव में केवल ग्राहक की ओर से कुछ करने वाले पसंदीदा डीएनएस सर्वर के अर्थ में पुनरावर्ती है, लेकिन वास्तव में यहाँ से पुनरावृत्त होता है? Google छवि खोज में मेरे द्वारा देखे जा रहे अधिकांश परिणाम मुझे इस पर विश्वास करने के लिए प्रेरित कर रहे हैं, जो तब सवाल उठाता है, क्या इस पोस्ट में पहली छवि सिर्फ सादे गलत है?


मिस्टर डीएनएस पॉडकास्ट, मनोरंजक, सूचनात्मक पूछें और देखें कि वे 1989 से डीएनएस का प्रबंधन कर रहे हैं, प्रत्येक ओ'रिली डीएनएस पुस्तक को लेखक या सह-लेखक के रूप में लिखते हैं, आदि पूछें-mrdns.com आप जितना जानना चाहते थे उससे अधिक जानें।
रोनाल्ड पोटोल सेप

जवाबों:


16

आपका अंतिम पैराग्राफ सही है।

DNS रिक्वेस्ट हैडर में क्लाइंट द्वारा भेजा गया "रिकर्सन डिसर्ड" (आरडी) फ्लैग (आरएफसी 1035 देखें) सर्वर से पूछता है "कृपया मुझे इस सवाल का पूरा जवाब दें"।

उस सर्वर से पुनरावृत्ति सही उत्तर के लिए नाम सर्वर की श्रृंखला पूछता है। उन प्रश्नों को स्वयं आरडी बिट सेट नहीं होना चाहिए।

अंततः पुनरावर्ती सर्वर की प्रतिक्रिया में "पुनरावृत्ति उपलब्ध" (आरए) ध्वज सेट होगा, यह दर्शाता है कि उत्तर वास्तव में उत्तर दिया गया था। इसके विपरीत एक आधिकारिक सर्वर RA ध्वज को सेट नहीं करेगा।

IMHO, यह शब्दावली का एक खराब विकल्प है।

जो इसके लायक है, वह पहला डायग्राम जो आपने पाया है, मौलिक रूप से गलत है। रूट सर्वर किसी अन्य सर्वर के लिए क्वेरी नहीं करते हैं, वे केवल अन्य सर्वर के लिए रेफरल जारी करते हैं।


4

जहां तक ​​मैं इसे समझता हूं, "पुनरावर्ती देखने" केवल मूल क्वियरियर के दृष्टिकोण से है। इसलिए, यदि यह एक DNS सर्वर से पूछता है और पूरी तरह से हल किया हुआ उत्तर वापस पाता है, तो यह "पुनरावर्ती क्वेरी" है। यदि वह सर्वर बदले में पुनरावर्ती या पुनरावृत्त लुकअप करता है, तो ठीक है, कुछ नहीं जो मूल क्वायर का ध्यान रखना है।


1

आपके प्रश्न में दो आरेखों में से पहला गलत है। रूट सर्वर अन्य सर्वर को क्वेरी नहीं भेजते हैं। यदि रूट सर्वर ने वास्तव में आगे के प्रश्नों को किया जैसे कि आरेख में दिखाया गया है कि डीएनएस सिस्टम डीओएस के हमलों की तुलना में बहुत अधिक असुरक्षित होगा, जो वास्तव में है।

दूसरा आरेख ज्यादातर सही है लेकिन आपको लुक्स के पुनरावर्ती स्वरूप को दिखाने के लिए बहुत सरल है। आरेख अभी भी पर्याप्त विस्तृत है, हालांकि हम इंगित कर सकते हैं कि पुनरावृत्ति कहां होती है।

डीएनएस सर्वर नंबर 12के बगल में Preferred DNS serverहै जहां एक पुनरावृत्ति होती है। अधिमान्य DNS सर्वर शब्द मानक शब्दावली नहीं है। उस सर्वर को आमतौर पर कैशिंग डीएनएस रिकर्सर या उस का कुछ संक्षिप्त नाम कहा जाएगा।

जब नेटवर्क ट्रैफ़िक को देखते हैं तो यह वास्तव में पुनरावृत्त दिखता है। DNS पुनरावर्ती के लिए पुनरावृत्ति पूरी तरह से आंतरिक है। यदि आप एक DNS पुनरावर्ती के कार्यान्वयन को देखते हैं तो आपको अनुरोधों को संभालने के तरीके में कुछ पुनरावर्ती संरचना मिलेगी।

यदि प्रति अनुरोध एक थ्रेड का उपयोग करता है और पुनरावर्ती फ़ंक्शन कॉल का उपयोग करके लुकअप लागू किए जाते हैं, तो पुनरावृत्ति को स्पॉट करना आसान हो सकता है। लेकिन अधिक कुशल डिजाइन प्रति अनुरोध एक थ्रेड का उपयोग नहीं करते हैं और रिवर्सन को डीएनएस रिकर्सर द्वारा उपयोग किए गए डेटा संरचनाओं के अंदर पाया जाता है।

कारण जो पुनरावृत्ति की आवश्यकता है, वह यह है कि आधिकारिक DNS सर्वरों के बीच संदर्भ कैसे लागू किए जाते हैं। यह एक उदाहरण के साथ सबसे अच्छा सचित्र है। आरेख में आप आधिकारिक DNS सर्वर को microsoft.comबिंदु के लिए आधिकारिक DNS सर्वर को देखते हैं example.microsoft.com। यह एक NSरिकॉर्ड का उपयोग करके किया जाता है जो एक होस्टनाम को इंगित करता है। इसलिए उदाहरण के लिए आधिकारिक सर्वर microsoft.comDNS पुनरावर्ती को बता सकता है जो इसके ms.example.netलिए आधिकारिक है example.microsoft.com

उस बिंदु पर DNS पुनरावर्ती को हल ms.example.netकरना होगा, इससे पहले कि वह संकल्प के साथ आगे बढ़ सके example.microsoft.com

एक होस्टनाम को हल करने के लिए पहले एक अलग होस्टनाम को हल करना होगा। वह पुनरावृत्ति है। इसके लिए अनंत पुनरावृत्ति न होने के लिए, DNS में गोंद रिकॉर्ड हैं जो NSकुछ मामलों में रिकॉर्ड के साथ भेजे जाते हैं ।


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

@Alnitak DNS रिज़ॉल्यूशन स्वाभाविक रूप से पुनरावर्ती है। किसी भी पुनरावर्ती एल्गोरिदम को निष्पादन डेटा को एक अलग डेटा संरचना में बदलकर कुछ पुनरावृत्तियों में बदल दिया जा सकता है। मेरे उत्तर में यह संभावना पहले से ही वर्णित है। और जिस चक्रीय निर्भरता समस्या का आप उल्लेख करते हैं वह अनंत पुनरावृत्ति से अलग नहीं है। दो वास्तव में एक ही बात कर रहे हैं। यदि आप एक बिना किसी पुनरावर्ती एल्गोरिथ्म को लागू करने के लिए ध्यान दिए बिना कि अंतर्निहित कार्य एक चक्रीय निर्भरता से ग्रस्त हैं, तो परिणाम अनंत पुनरावृत्ति होगा।
kasperd

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

मैं RFC 1034 उद्धृत करता हूं - "" इस समस्या से निपटने के लिए दो सामान्य दृष्टिकोण "पुनरावर्ती" हैं, जिसमें पहला सर्वर क्लाइंट के लिए दूसरे सर्वर पर क्वेरी का पीछा करता है, और "पुनरावृत्ति", जिसमें सर्वर क्लाइंट को दूसरे को संदर्भित करता है। सर्वर और ग्राहक क्वेरी को आगे बढ़ाने की सुविधा देता है । "" यह है कुछ भी नहीं के ढेर "या" डेटा संरचनाओं "के साथ क्या करना"।
अलनीतक

@Alnitak यह अनुच्छेद मेरे उत्तर की तुलना में एक अलग तरह की पुनरावृत्ति की बात कर रहा है। मेरे उत्तर में उल्लिखित पुनरावृत्ति (जैसा कि मेरे उत्तर में स्पष्ट रूप से कहा गया है) एक विशिष्ट डीएनएस सर्वर के लिए आंतरिक है। यदि आपने वास्तव में DNS पुनरावृत्ति को पूरी तरह से पुनरावृत्ति फैशन में लागू करने की कोशिश की है, तो यह कभी भी काम नहीं करेगा। जैसे ही आपको संबंधित गोंद के बिना एक एनएस रिकॉर्ड के साथ उत्तर मिलता है, आपको मूल रिज़ॉल्यूशन के साथ जारी रखने से पहले उस एनएस रिकॉर्ड द्वारा इंगित होस्टनाम का आईपी पता देखना होगा।
कास्परड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.