यह जानना अच्छा है कि आरएफसी इस विषय पर क्या कहते हैं, और हमारे पास पहले से ही इस पर एक अच्छा आधिकारिक उत्तर है, लेकिन व्यावहारिक उद्देश्यों के लिए, मैं डीजेबीडीएनएस के लेखक प्रो डैनियल जे। बर्नस्टीन, पीएचडी से सलाह लेता हूं, जो काफी मनोरंजक है।
http://cr.yp.to/djbdns/tcp.html#why (2003-01-16)
टीसीपी प्रश्न कब भेजे जाते हैं?
यदि आप निम्न स्थितियों में से एक हैं, तो आपको टीसीपी प्रश्नों का उत्तर देने के लिए अपने DNS सर्वर को कॉन्फ़िगर करने की आवश्यकता है:
- आप 512 बाइट्स से बड़े रिकॉर्ड सेट प्रकाशित करना चाहते हैं। (यह लगभग हमेशा एक गलती है।)
- आप आउटगोइंग ज़ोन स्थानांतरण की अनुमति देना चाहते हैं, उदाहरण के लिए एक तृतीय-पक्ष सर्वर।
- जब तक आप TCP सेवा सेट नहीं करते, तब तक एक पैरेंट सर्वर आपको एक नाम सौंपने से मना कर देता है।
यदि आप उन स्थितियों में से किसी में नहीं हैं, तो आपको टीसीपी सेवा प्रदान करने की कोई आवश्यकता नहीं है, और आपको इसे सेट नहीं करना चाहिए। DNS-over-TCP, DNS-over-UDP की तुलना में बहुत धीमी है और स्वाभाविक रूप से इनकार करने वाली सेवा के हमलों के लिए अधिक कमजोर है। (यह BIND पर भी लागू होता है।)
ध्यान दें कि वह DNSSEC का स्पष्ट उल्लेख छोड़ देता है; कारण यह है कि, डीजेबी के अनुसार, DNSSEC "हमेशा एक गलती" श्रेणी में आता है। अधिक जानकारी के लिए https://cr.yp.to/djbdns/forgery.html देखें । डीजेबी का एक वैकल्पिक मानक है, जिसे DNSCurve कहा जाता है - http://dnscurve.org/ - जो पहले से ही कुछ प्रदाताओं (जैसे OpenDNS) द्वारा स्वतंत्र रूप से अपनाया गया है। ब्याज की: /security/45770/if-dnssec-is-so-questionable-why-is-it-ahead-of-dnscurve-in-adoption ।
ध्यान दें कि यदि DJBDNS सेटअप पर उपरोक्त प्रलेखन इसकी विशेषताओं का कोई संकेत है, तो ऐसा प्रतीत होता है कि यह केवल TCP के लिए AXFR का समर्थन करता है। चूंकि कई प्रदाता अभी भी डीजेबीडीएनएस का उपयोग करते हैं, इसलिए वे अतिरिक्त प्रयासों के बिना टीसीपी पर डीएनएस का समर्थन करने की संभावना नहीं रखते हैं।
पीएस ध्यान दें कि डीजेबी वास्तव में, जो वह प्रचार करता है उसका अभ्यास करता है। उसके अपने सर्वर, (1), DNSCurve चलाते हैं, (2), ठीक से टीसीपी का जवाब नहीं देते हैं। केवल वही +notcp
सफल होगा (जो डिफ़ॉल्ट है):
% dig +trace @ordns.he.net +notcp cr.yp.to | tail
yp.to. 86400 IN NS uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to.
yp.to. 86400 IN NS uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to.
;; Received 300 bytes from 216.74.32.100#53(tonic.to) in 151 ms
cr.yp.to. 600 IN A 131.155.70.11
cr.yp.to. 600 IN A 131.155.70.13
yp.to. 3600 IN NS uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to.
yp.to. 3600 IN NS uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.yp.to.
;; Received 244 bytes from 131.155.70.13#53(uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1.yp.to) in 14 ms
, जबकि +tcp
विफल हो जाएगा (जाहिर है एक अलग त्रुटि संदेश के साथ, जो उसके सर्वरों के चयन पर निर्भर करता है):
% dig +trace @ordns.he.net +tcp cr.yp.to | tail
yp.to. 86400 IN NS uz5hjgptn63q5qlch6xlrw63tf6vhvvu6mjwn0s31buw1lhmlk14kd.ns.yp.to.
;; Received 300 bytes from 216.74.32.100#53(tonic.to) in 150 ms
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.155.70.13#53: end of file
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.155.70.13#53: end of file
;; Connection to 131.155.71.143#53(uz5dz39x8xk8wyq3dzn7vpt670qmvzx0zd9zg4ldwldkv6kx9ft090.ns.yp.to) for cr.yp.to failed: connection refused.
;; communications error to 131.193.32.147#53: end of file
;; connection timed out; no servers could be reached