DNS टाइमआउट को कैसे काम करना चाहिए?


9

मेरे पास हाल ही में एक समस्या थी जहां एक दूरस्थ सेवा अपने सर्वर के लिए आईपी पते का अनुरोध कर रही थी (एक होस्टेड डीएनएस प्रदाता के साथ):

DNS problem: SERVFAIL looking up A for mysql.xavamedia.nl

(अपडेट: यहां बताई गई रिमोट सेवा लेट्स एनक्रिप्ट है; मैंने उनके इश्यू ट्रैकर के खिलाफ बग दर्ज किया , जिसने मुझे इस रास्ते पर ले जाया।)

अपने स्थानीय नेटवर्क पर परीक्षण में, मैं यह देख पा रहा था कि मुझे कभी-कभी होस्ट किए गए DNS सर्वर से खाली DNS प्रतिक्रिया मिलती है। जाहिरा तौर पर यह आंतरायिक है क्योंकि यह केवल तब होता है जब DNS रिकॉर्ड कैश में नहीं होते हैं, और यह केवल एक समस्या है जब DNS सर्वर वास्तव में व्यस्त है।

यहाँ एक खाली प्रतिक्रिया संदेश का Wireshark वर्णन है:

खाली प्रतिक्रिया का स्क्रीनशॉट स्क्रीनशॉट

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

क्या किसी को कुछ दिशानिर्देशों के बारे में पता है कि यह कैसे काम करने वाला है, और कब / कैसे मैं साबित कर सकता हूं कि मेरी DNS होस्टिंग कुछ गलत कर रही है?


1
क्या आप खाली प्रतिक्रिया के बारे में अधिक जानकारी प्रदान करने के लिए प्रश्न को अपडेट कर सकते हैं? इसका मतलब है कि झंडे के आधार पर कई चीजें हो सकती हैं और प्राधिकरण अनुभाग कैसा दिखता है। हमें या तो dig/ nslookupया विंडसर विच्छेदन के आउटपुट को देखने की आवश्यकता होगी । ( tcpdumpपर्याप्त नहीं होगा) यदि आप उपयोग कर रहे हैं nslookup, तो set debugपहले निष्पादित करें ।
एंड्रयू बी

मेरे पास एक पीक है, लेकिन यकीन नहीं है कि मैं इसे यहां कैसे दिखा सकता हूं?
djc

1
इसे Wireshark में खोलें, पैकेट पर क्लिक करें, फिर DNS प्रोटोकॉल के लिए जानकारी का विस्तार करें। साथ ही उपश्रेणियों का विस्तार करें, फिर अपने प्रश्न में एक स्क्रीनशॉट सम्मिलित करें बटन का उपयोग करके पोस्ट करें। आप DNS प्रोटोकॉल सामान के लिए स्क्रीनशॉट फसल कर सकते हैं।
एंड्रयू बी

जवाबों:


6

खाली प्रतिक्रिया जो आप देख रहे हैं, वह एक सिंथेटिक स्थिति है जिसे कहा जाता है NODATANODATAऔर NXDOMAINदोनों इंगित करते हैं कि नाम मौजूद नहीं है, लेकिन संकेतित रिकॉर्ड के नीचे भीNXDOMAIN सभी नामों पर लागू होता है । यह सलाह दे रहा है कि या तो वह नाम बिना किसी प्रकार के रिकॉर्ड के साथ जुड़ा हुआ है, या यह कि अन्य रिकॉर्ड हैं जो अनुरोध के नीचे हैं। (यानी )NODATAexample.test.xavamedia.nl.

इस संदर्भ में आपका टेकअवे NODATAऔर NXDOMAINप्रभावी रूप से समान है: अनुरोधित नाम और प्रकार का रिकॉर्ड मौजूद नहीं था। अनुरोध किए गए डोमेन के लिए एक आधिकारिक नामवर पहुंच गया था, और उसने यह कहते हुए वापस जवाब दिया कि उस नाम और प्रकार का रिकॉर्ड मौजूद नहीं था। यह एक संचार त्रुटि नहीं है। आधिकारिक सर्वर ने कहा कि उसके पास डेटा नहीं था। जिस सर्वर से आप बात कर रहे थे, उससे अधिक संभव है कि आपने पहले ही इस अनुरोध को संसाधित कर दिया हो और पिछले चार घंटों के भीतर उस रिकॉर्ड की अनुपस्थिति को नकारात्मक रूप से कैश किया गया हो। (14400 सेकंड SOA रिकॉर्ड द्वारा परिभाषित नकारात्मक कैश अंतराल है xavamedia.nl.)

न तो NXDOMAINया NODATA द्वारा खुद को जब इस उदाहरण में सामना करना पड़ा है, लेकिन अपने रिसोल्वर पुस्तकालय शायद DNS खोज प्रत्यय, जिसमें ट्रिगर खोज डोमेन की आधिकारिक DNS सर्वर के लिए समय समाप्त हो सकता है जोड़कर करने के लिए यहाँ से आगे बढ़ने जाएगा समय समाप्त कर दिया जाएगा।

यह ध्यान दिया जाना चाहिए कि इसमें से कोई भी यह नहीं बताता है कि आपको देखते SERVFAILसमय प्रतिक्रिया क्यों मिली mysql.xavamedia.nl.। यह एक समस्या है जो पुनरावर्ती सर्वर से आधिकारिक सर्वर से उत्तर प्राप्त करने में समस्या है। या तो आधिकारिक सर्वर ने उत्तर दिया SERVFAIL, पुनरावर्ती सर्वर किसी भी आधिकारिक सर्वर तक नहीं पहुंच सकता है, या पुनरावर्ती सर्वर ने निर्धारित किया है कि लौटाया गया डेटा अमान्य था। इसमें से कोई भी आपके द्वारा प्रदान की गई जानकारी से सिद्ध नहीं किया जा सकता है।


आपके विस्तृत उत्तर के लिए धन्यवाद! कुछ चीजें अभी भी अस्पष्ट हैं: यदि आधिकारिक सर्वर द्वारा किसी तरह NODATA प्रतिक्रिया शुरू की जाती है, तो मेरी DNS होस्टिंग में समस्या है, क्योंकि ये डोमेन लंबे समय से मौजूद थे (एक वाइल्ड कार्ड ए रिकॉर्ड के आधार पर)। तो फिर मेरा दूसरा सवाल है, मैं कैसे साबित कर सकता हूं कि क्या आधिकारिक सर्वर ने कुछ गलत किया है?
djc

NODATAअपने पैकेट पर कब्जा में सबूत है। प्रासंगिक सवाल "एक आधिकारिक सर्वर ने जवाब क्यों दिया और कहा कि ऐसा कोई रिकॉर्ड मौजूद नहीं था?" । दुर्भाग्य से यह दबाने के लिए एक कठिन मुद्दा है जब तक कि आप इसे आधिकारिक सर्वर के खिलाफ प्रत्यक्ष लुकअप के साथ साबित नहीं कर सकते (हटाए जाने और पुनरावर्ती सर्वर के संचालकों को दोष देने की क्षमता), यह ध्यान में रखते हुए कि तीन में से केवल एक ही कभी-कभी दुर्व्यवहार हो सकता है।
एंड्रयू बी

NODATAनाम का अर्थ होता है मौजूद हैं, लेकिन यह प्रकार के रिकार्ड का अनुरोध नहीं है। उदाहरण के लिए A, आप रिकॉर्ड मांगते हैं , लेकिन यह केवल MXरिकॉर्ड है। यह भी हो सकता है अगर नाम DNS पदानुक्रम में एक मध्यवर्ती नोड के लिए है और इसका कोई रिकॉर्ड नहीं है।
बमर

@ बरमर हां, जो यहां कहा जा रहा है वह यह है कि आधिकारिक सर्वर उस रिकॉर्ड नाम + प्रकार की जोड़ी की अनुपस्थिति की रिपोर्ट कर रहा है, और djc कुछ समय के लिए मौजूद वाइल्डकार्ड रिकॉर्ड के कारण इस पर भ्रम की स्थिति व्यक्त कर रहा है।
एंड्रयू बी

मेरी टिप्पणी को आपके पहले बिंदु "NODATA और NXDOMAIN" से संबोधित किया गया है, दोनों बताते हैं कि नाम मौजूद नहीं है "। NXDOMAINइसका मतलब है कि नाम मौजूद नहीं है, NODATAइसका मतलब है कि नाम मौजूद है लेकिन अनुरोधित रिकॉर्ड प्रकार नहीं है।
बमर

2

मुझे RFC 1123 http://tools.ietf.org/rfcmarkup?rfc=1123#page-77 के अनुभाग "6.1.3.3 कुशल संसाधन उपयोग" में परिभाषित लोगों को छोड़कर किसी भी विशिष्ट दिशानिर्देशों का पता नहीं है

"5 सेकंड से कम नहीं" का एक टाइमआउट मान निर्दिष्ट है। RFC यह भी कहता है कि अस्थायी विफलताओं को कैश किया जाना चाहिए। यदि क्लाइंट RFC की धारा 2.2 का उल्लंघन करते हैं तो DNS अनुरोधों की अत्यधिक मात्रा को रोकना है। उस खंड में कहा गया है कि क्लाइंट को नरम विफलताओं के मामले में रिट्रीट के बीच "उचित" समय की प्रतीक्षा करनी चाहिए।

इस विषय के बारे में एक स्टैकओवरफ़्लो धागा भी है, लेकिन इसमें कुछ वास्तविक दुनिया टिप्पणियों के अलावा बहुत अधिक जानकारी नहीं है। /programming/3036054/ideal-timeout-period-for-dns-lookup

इस विषय पर मैं बस इतना ही कह सकता हूं। अगर किसी और को जोड़ना है, तो मुझे भी दिलचस्पी होगी।

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