DNS एन्क्रिप्शन प्रोटोकॉल तुलना: DoT, DoH, DoQ
Plain DNS, DoT, DoH, DoQ के परत रिश्ते, पोर्ट, प्रदर्शन अंतर और उपयोग के मौके को संगठित करना, वास्तविक चयन और विन्यास सुझाव देना।
Categories:
नामकरण अवलोकन
- Plain DNS: सादा DNS, UDP/53 पर डिफ़ॉल्ट, ज़रूरत पड़ने पर TCP/53 (जैसे जवाब कट जाना, क्षेत्र स्थानांतरण आदि)।
- DoT: DNS over TLS, TLS पर TCP, डिफ़ॉल्ट पोर्ट 853 (RFC 7858/8310)।
- DoH: DNS over HTTPS, HTTPS (HTTP/2 या HTTP/3) पर आधारित, डिफ़ॉल्ट पोर्ट 443 (RFC 8484)।
- DoQ: DNS over QUIC, QUIC + TLS 1.3 पर आधारित, डिफ़ॉल्ट पोर्ट UDP/853 (RFC 9250, IANA ने 853/udp में आवंटित किया है)।
परत रिश्ते (सरल TCP/IP मॉडल)
- अनुप्रयोग परत: HTTP, HTTPS, DNS (DoH HTTPS अनुप्रयोग परत एन्कैप्सूलेशन में आता है)
- सुरक्षा परत: TLS (TCP या QUIC के लिए एन्क्रिप्शन प्रदान करता है)
- ट्रांसपोर्ट परत: TCP, UDP, QUIC
- नेटवर्क परत: IP
- लिंक परत: ईथरनेट आदि
- भौतिक परत: ट्विस्टेड पेयर/फाइबर/वायरलेस आदि
मुख्य बिंदु
- Plain DNS UDP/TCP पर काम करता है, एन्क्रिप्टेड नहीं।
- DoT = TCP + TLS + DNS (डेडिकेटेड पोर्ट 853)।
- DoH = TCP/QUIC + TLS + HTTP(S) + DNS (443 पर चलता है, सामान्य HTTPS के साथ पोर्ट साझा करता है)।
- DoQ = QUIC + TLS 1.3 + DNS (डेडिकेटेड पोर्ट UDP/853)।
graph TB
subgraph अनुप्रयोग परत
A[HTTP]
A2[HTTPS]
C[DNS]
D[DoH DNS over HTTPS]
end
subgraph सुरक्षा परत
E[TLS]
end
subgraph ट्रांसपोर्ट परत
F[TCP]
G[UDP]
H[QUIC]
end
subgraph नेटवर्क परत
I[IP]
end
subgraph लिंक परत
J[Ethernet]
end
subgraph भौतिक परत
K[ट्विस्टेड पेयर/फाइबर/वायरलेस]
end
A2 --> F
A2 --> H
A --> F
C --> F
C --> G
D --> A2
E --> F
E --> H
F --> I
G --> I
H --> I
I --> J
J --> K
style D fill:#e1f5fe
style E fill:#fff3e0
आधारभूत ज्ञान और सुधार
- Plain DNS डिफ़ॉल्ट UDP/53 पर चलता है, जवाब कटने (TC बिट) या विश्वसनीय ट्रांसमिशन की आवश्यकता पड़ने पर TCP/53 इस्तेमाल होता है।
- DoT TCP पर TLS टनल बनाता है और DNS पैकेट भेजता है, डिफ़ॉल्ट पोर्ट 853; लंबे कनेक्शन को दोहराकर हैंडशेक लागत कम की जा सकती है।
- DoH DNS को HTTPS का एक संसाधन (
application/dns-message) बनाता है, आमतौर पर HTTP/2 या HTTP/3 इस्तेमाल करता है, पोर्ट 443, सामान्य HTTPS के साथ मिलने में आसानी होती है। - DoQ सीधे QUIC (UDP पर आधारित) पर DNS ले जाता है, कम देरी और फ्रंट-ऑफ़-लाइन ब्लॉकिंग से बचाव के फ़ायदे होते हैं, लेकिन इकोसिस्टम कवरेज अभी बढ़ रहा है।
- “QUIC हमेशा TCP से X% तेज़ होता है” जैसे सामान्यीकृत निष्कर्ष सटीक नहीं हैं; वास्तविक प्रदर्शन नेटवर्क स्थिति (ड्रॉप, झिझक, RTT), कनेक्शन रीयूज़, और इम्प्लीमेंटेशन पर निर्भर करता है।
- DoH “DNS को HTTP में डालना = ज़रूर धीमा/तेज़” नहीं है, प्रदर्शन कनेक्शन रीयूज़, नेटवर्क क्वालिटी और इम्प्लीमेंटेशन पर निर्भर करता है; कई मामलों में DoH/3 और DoT का अनुभव तुलनीय या बेहतर होता है।
- DoT SNI से सर्टिफिकेट होस्टनेम वेरिफ़ाय कर सकता है; DoH HTTPS के सामान्य सर्टिफिकेट वेरिफ़िकेशन और होस्टनेम मिलान पर निर्भर करता है।
- एन्क्रिप्टेड DNS केवल लिंक पर इंटरसेप्शन और टैम्परिंग रोकता है, “पूर्ण गुमनामता” नहीं है। रिज़ॉल्वर अभी भी क्वेरी लॉग कर सकता है; विश्वसनीय प्रदाता चुनें और गोपनीयता नीति देखें।
graph TD
subgraph DNS परिवार
A[Plain DNS UDP/TCP + DNS]
subgraph एन्क्रिप्टेड DNS
B[DoT TCP + TLS + DNS]
C[DoH HTTP/2,3 + TLS + DNS]
D[DoQ QUIC + TLS 1.3 + DNS]
end
subgraph ट्रांसपोर्ट आधार
E[TCP]
F[UDP]
G[QUIC]
end
end
A --> B
A --> C
A --> D
B --> E
C --> E
C --> G
D --> G
A --> F
style A fill:#f3e5f5
style B fill:#e8f5e8
style C fill:#e3f2fd
style D fill:#fff3e0
तुलना सारांश
| प्रोटोकॉल | ट्रांसपोर्ट परत | एन्क्रिप्शन | एन्कैप्सूलेशन | डिफ़ॉल्ट पोर्ट | प्रमुख विशेषताएँ |
|---|---|---|---|---|---|
| Plain DNS | UDP/TCP | कोई नहीं | DNS नेटिव | 53 | सरल कुशल, सादा दिखाई, टैम्पर/निगरानी के लिए खुला |
| DoT | TCP | TLS 1.2/1.3 | DNS | 853 | डेडिकेटेड पोर्ट, पोर्ट ब्लॉकिंग का शिकार, सिस्टम-लेवल सपोर्ट अच्छा |
| DoH | TCP/QUIC | TLS 1.2/1.3 | HTTP/2-3 + DNS | 443 | HTTPS के साथ पोर्ट साझा, अधिक पिनीट्रेशन, ब्राउज़र प्राथमिकता |
| DoQ | QUIC | TLS 1.3 | DNS | 853/UDP | कम देरी, फ्रंट-ऑफ़-लाइन ब्लॉकिंग से बचाव, इकोसिस्टम विकासरत |
प्रदर्शन और देरी
- कनेक्शन रीयूज़: DoT/DoH/DoQ लंबे कनेक्शन दोहराकर हैंडशेक लागत कम कर सकते हैं; DoH/2, DoH/3 और DoQ एक कनेक्शन में बहु-मार्ग क्वेरी समर्थन करते हैं।
- फ्रंट-ऑफ़-लाइन ब्लॉकिंग: TCP में एप्लीकेशन लेयर पर “हेड-ऑफ़-लाइन ब्लॉकिंग” होती है; HTTP/2 TCP पर बहु-मार्ग से थोड़ा राहत देता है लेकिन TCP के ड्रॉप से प्रभावित रहता है, QUIC (DoH/3, DoQ) ट्रांसपोर्ट लेयर पर ब्लॉकिंग से बचता है, उच्च ड्रॉप/मोबाइल नेटवर्क में बेहतर।
- प्रथम पैकेट देरी: पहले कनेक्शन में DoT को TCP+TLS हैंडशेक चाहिए; DoH/2 इसी तरह; DoH/3/DoQ QUIC पर आधारित, रीकनेक्शन और माइग्रेशन तेज़। लंबी अवधि के लोड में अंतर अधिकतर इम्प्लीमेंटेशन और नेटवर्क स्थिति पर निर्भर।
- उपलब्धता: DoH 443 पोर्ट पर, साधारण पोर्ट ब्लॉकिंग से सबसे कम प्रभावित; DoT 853 पोर्ट पर, अक्सर काट दिया जाता है; DoQ 853/UDP पर, वर्तमान में बाधित या अनुमति नहीं हो सकता।
क्लाइंट और सिस्टम सपोर्ट
- ब्राउज़र: Chromium परिवार और Firefox डिफ़ॉल्ट DoH सपोर्ट (स्वचालित उन्नयन या आंतरिक सूची प्रदाता)।
- Windows: Windows 11 नेटिव DoH सपोर्ट।
- Android: Android 9+ “प्राइवेट DNS” (सिस्टम-लेवल DoT)। सिस्टम-लेवल DoH कवरेज वर्जन/निर्माता पर निर्भर।
- Apple प्लेटफ़ॉर्म: iOS 14+/macOS 11+ विवरण फ़ाइल या NetworkExtension के माध्यम से DoT और DoH सपोर्ट।
तैनाती और चयन सुझाव
- सामान्य/सीमित नेटवर्क (जैसे पब्लिक Wi‑Fi, साधारण ब्लॉकिंग पार करने की आवश्यकता): प्राथमिकता DoH (पोर्ट 443), HTTP/3 सक्षम करें।
- सिस्टम-लेवल एकीकृत आउटलेट (राउटर, गेटवे, Android प्राइवेट DNS): प्राथमिकता DoT (853), यदि नेटवर्क अनुमति दे तो DoH (443) बैकअप जोड़ें।
- उच्च ड्रॉप/मोबाइल नेटवर्क: QUIC वाले DoH/3 या DoQ को प्राथमिकता (प्रदाता और क्लाइंट सपोर्ट पर निर्भर)।
- उद्यम/अनुपालन स्थिति: नीति के अनुसार (DoH मौजूदा HTTPS बुनियादी ढांचे के साथ एकीकृत होता है; DoT DNS नियंत्रण तल से अलग करने में आसान)।
सारांश
- प्राथमिकता DoH (443, पिनीट्रेशन अच्छा), यदि उपलब्ध हो तो HTTP/3 सक्षम करें।
- यदि सिस्टम-लेवल एकीकृत चाहिए: प्राथमिकता DoT (853) + स्थायी कनेक्शन, आवश्यकता पड़ने पर DoH (443) बैकअप।
- यदि आपका रिज़ॉल्वर और क्लाइंट दोनों समर्थन करते हैं: DoQ का प्रयास करें (मोबाइल नेटवर्क में अनुभव अक्सर बेहतर)।
संदर्भ मानक
- RFC 7858, RFC 8310 (DNS over TLS)
- RFC 8484 (DNS over HTTPS)
- RFC 9250 (DNS over QUIC)
DNS सेवा सिफ़ारिश
- निंग पिंग DNS: https://www.nullprivate.com DoT, DoH(HTTP3 समर्थन), विज्ञापन हटाने और विभाजन के लिए नेटिव समर्थन।
- स्व-होस्टेड संस्करण: https://github.com/NullPrivate/NullPrivate