مقارنة بروتوكولات DNS المشفرة: DoT، DoH، DoQ
تلخيص العلاقات الطبقية، المنافذ، الاختلافات في الأداء، ونطاقات الاستخدام لكل من Plain DNS، DoT، DoH، DoQ، مع تقديم اقتراحات عملية للاختيار والتكوين.
Categories:
نظرة سريعة على المصطلحات
- Plain DNS: DNS نصي واضح، يستخدم UDP/53 افتراضيًا، ويستخدم TCP/53 عند الحاجة (مثل قطع الاستجابة، نقل المنطقة، إلخ).
- DoT: DNS over TLS، يستخدم TCP فوق TLS، منفذ افتراضي 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
- طبقة الربط: Ethernet إلخ
- الطبقة الفيزيائية: كابل مجدول/ألياف/لاسلكي إلخ
النقاط الأساسية
- 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 افتراضيًا، ويتحول إلى TCP/53 عند قطع الاستجابة (وضع TC) أو الحاجة إلى نقل موثوق.
- DoT يبني نفق TLS فوق TCP لنقل رسائل DNS، منفذ افتراضي 853؛ يمكن إعادة استخدام الاتصال الطويل لتقليل تكلفة الربط.
- DoH يُدخل DNS كمورد ضمن HTTPS (
application/dns-message)، غالبًا باستخدام HTTP/2 أو HTTP/3، منفذ 443، سهل الاختلاط مع HTTPS العادي. - DoQ يستخدم QUIC مباشرة (مبني على UDP) لحمل DNS، ويتميز بتأخير منخفض وتجنب ازدحام الطابور، لكن التغطية البيئية لا تزال في نمو.
- القول “QUIC أسرع بنسبة X% مقارنة بـ TCP” ليس دقيقًا؛ الأداء الفعلي يعتمد على حالة الشبكة (فقد الحزمة، التقلب، RTT)، وإمكانية إعادة استخدام الاتصال، والتفاصيل التنفيذية، ونشر الخادم.
- DoH ليس “وضع DNS داخل HTTP يجعله بالضرورة أبطأ/أسرع”؛ الأداء يعتمد على إعادة استخدام الاتصال، جودة الشبكة، والتنفيذ؛ غالبًا تكون تجربة DoH/3 مشابهة أو أفضل من DoT.
- DoT يمكنه التحقق من اسم المضيف عبر SNI؛ بينما DoH يعتمد على التحقق القياسي لشهادة HTTPS ومطابقة اسم المضيف.
- DNS المشفر فقط يمنع التنصت والتلاعب على الاتصال، ولا يعني “الخصوصية التامة”. لا يزال من الممكن تسجيل الاستعلامات في محلل 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 افتراضيًا (يمكنها الترقية تلقائيًا إلى محلل يدعم DoH أو استخدام مزود قائمة مدمج).
- Windows: Windows 11 يدعم DoH أصليًا.
- Android: Android 9+ يوفر “DNS خاص” (DoT على مستوى النظام). التغطية على مستوى النظام لـ DoH تعتمد على الإصدار/الشركة المصنعة.
- منصات Apple: iOS 14+/macOS 11+ تدعم DoT و DoH عبر ملفات الوصف أو NetworkExtension.
اقتراحات النشر والاختيار
- الشبكات العادية/المقيدة (مثل Wi‑Fi العامة، الحاجة لاختراق الحظر البسيط): الأولوية لـ DoH (منفذ 443)، يمكن تمكين HTTP/3.
- مخرج موحد على مستوى النظام (الراوتر، البوابة، DNS خاص Android): الأولوية لـ DoT (853)، مع إضافة DoH كخيار احتياطي إذا سمح الشبكة.
- الشبكات عالية الفقد/المتنقلة: الأولوية لـ DoH/3 أو DoQ (المبني على QUIC) حسب دعم المحلل والعميل.
- المشهد المؤسسي/المتوافق: اختر حسب السياسة (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