DNS (نظام اسم المجال) خدمة أساسية تُحوّل أسماء النطاقات القابلة للقراءة إلى عناوين IP، مما يُتيح الاتصال عبر الإنترنت. كان بروتوكول UDP (بروتوكول مخطط بيانات المستخدم) البروتوكول الأساسي لاستعلامات DNS، إلا أن TCP (بروتوكول التحكم في الإرسال) يُعدّ خيارًا مدعومًا أيضًا. يُقدّم RFC 5966 مواصفات وتوضيحات لاستخدام TCP في DNS لتكملة UDP. تتعمق هذه المقالة في RFC 5966، شارحةً عمليات الاتصال بين عملاء وخوادم DNS، وكيفية تطبيق موازنة التحميل لكلٍّ من حركة مرور UDP وTCP.
UDP مقابل TCP في اتصالات DNS #
UDP لـ DNS: النهج الافتراضي #
تُرسَل استعلامات DNS عادةً عبر بروتوكول UDP على المنفذ 53. UDP بروتوكول خفيف الوزن لا يحتاج إلى اتصال، ويتميز بإرسال حزم بيانات صغيرة بأقل تكلفة. يتضمن طلب DNS النموذجي قيام العميل بإرسال استعلام إلى خادم DNS، ويستجيب الخادم بعنوان IP المقابل.
السبب وراء كون UDP هو الخيار الافتراضي لـ DNS هو كفاءته:
- قليل من الكمون:لا يتطلب بروتوكول UDP إنشاء اتصال قبل نقل البيانات، مما يقلل من التأخير.
- التواصل عديم الجنسية:كل طلب مستقل، مما يجعله سريعًا وبسيطًا.
- الحمولات الصغيرة:غالبًا ما تكون طلبات DNS صغيرة جدًا، ويمكن لـ UDP التعامل مع هذا الأمر بفعالية دون ازدحام.
مع ذلك، لبروتوكول UDP قيود، لا سيما فيما يتعلق بالموثوقية. فقد تُفقد الحزم أو تصل بشكل غير منتظم. إضافةً إلى ذلك، قد تتجاوز استجابات DNS الحد الأقصى لحجم UDP المعتاد (512 بايت لبروتوكول DNS التقليدي، ويمتد إلى 4096 بايت مع EDNS0)، مما يؤدي إلى انقطاع البيانات.
TCP لـ DNS: بديل موثوق #
بخلاف بروتوكول TCP، يُعدّ بروتوكول TCP بروتوكولاً قائماً على الاتصال، ويوفر نقلاً موثوقاً للبيانات من خلال إنشاء مصافحة وضمان تسليم الحزم بالتسلسل. تقليدياً، كان DNS عبر TCP مخصصاً لنقل المناطق بين خوادم DNS (عمليات AXFR/IXFR) وللحالات الاحتياطية عندما تكون استجابة DNS كبيرة جداً بالنسبة لبروتوكول UDP.
يوضح RFC 5966 أن خوادم DNS يجب أن تدعم DNS عبر TCP لجميع الاستعلامات، وليس فقط في الحالات الاستثنائية. من أهم أسباب استخدام TCP في DNS ما يلي:
- استجابات كبيرة:أدت إضافات أمان DNS (DNSSEC) وغيرها من التحسينات إلى زيادة حجم رسائل DNS. إذا تجاوزت الاستجابة حد حجم UDP، ينتقل العميل إلى TCP لاسترداد الإجابة الكاملة.
- الموثوقية:يضمن بروتوكول TCP استلام جميع الحزم بالترتيب الصحيح، مما يعالج مشكلات الموثوقية الموجودة مع بروتوكول UDP.
كيف تعمل اتصالات DNS عبر UDP وTCP #
اتصالات UDP #
- يقوم العميل بإرسال استعلام DNS إلى الخادم عبر UDP.
- يقوم الخادم بمعالجة الاستعلام ويرسل استجابة، عادةً ضمن حد 512 بايت.
- إذا تجاوزت استجابة الخادم هذا الحد وحدث الاقتطاع، يعيد العميل إرسال الاستعلام عبر TCP.
اتصالات TCP #
- يقوم العميل ببدء اتصال TCP باستخدام مصافحة ثلاثية الاتجاهات.
- تم إرسال الاستعلام، ويستجيب الخادم بإجابة DNS الكاملة.
- يتم إغلاق الاتصال بعد الاتصال، على الرغم من أنه يمكن الحفاظ على الاتصالات المستمرة للاستعلامات المتعددة لتقليل التكلفة.
موازنة التحميل لـ UDP وTCP في DNS #
تلعب موازنة التحميل دورًا حاسمًا في ضمان موثوقية خدمات DNS وتوافرها وقابليتها للتوسع، خاصةً في البيئات ذات الحركة الكثيفة. فهي تُمكّن من توزيع طلبات DNS على خوادم متعددة، وتحسين استخدام الموارد، وتحسين أوقات الاستجابة. بالنسبة لحركة مرور DNS، تُعدّ موازنة التحميل لكلٍّ من بروتوكولي UDP وTCP مهمة، ولكن تختلف أساليبها اختلافًا طفيفًا.
موازنة تحميل حركة مرور UDP DNS #
بما أن بروتوكول UDP عديم الجنسية، فإن موازنة تحميل UDP تتضمن موازنة الطلبات الفردية دون تتبع حالات الاتصال. هناك عدة تقنيات لموازنة تحميل UDP:
- نظام DNS الدائري:يقوم محلل DNS بتوزيع الاستعلامات بشكل عشوائي عبر خوادم DNS المتعددة، مما يوفر طريقة بسيطة لتوزيع حركة المرور.
- توجيه Anycastمع البث المباشر، يتم نشر عنوان IP نفسه بواسطة خوادم DNS متعددة في مواقع مختلفة. تُوجِّه الشبكة استعلام العميل إلى أقرب خادم، مما يُقلِّل زمن الوصول.
- تجزئة IPتستخدم بعض موازنات التحميل عنوان IP المصدر لتوجيه حركة البيانات باستمرار إلى خادم DNS نفسه. هذا يضمن توجيه العميل نفسه إلى الخادم نفسه لفترة زمنية محددة.
موازنة تحميل حركة مرور TCP DNS #
بما أن بروتوكول TCP يعتمد على الاتصال، يجب على مُوازن التحميل تتبع حالة كل اتصال لضمان توجيه جميع حزم الجلسة إلى خادم DNS نفسه. تتضمن تقنيات موازنة تحميل TCP ما يلي:
- استمرارية الجلسةتُعرف هذه الطريقة أيضًا باسم "الجلسات الثابتة"، وتضمن توجيه جميع الحزم من جلسة TCP نفسها إلى الخادم نفسه. وهذا أمر بالغ الأهمية للحفاظ على سلامة اتصال TCP.
- موازنة التحميل من الطبقة الرابعة:تقوم موازنات التحميل في الطبقة 4 (طبقة النقل) بتوزيع حركة المرور على أساس عناوين IP وأرقام منفذ TCP/UDP، مما يضمن التعامل مع كل اتصال أو جلسة بواسطة نفس الخادم.
- موازنة التحميل من الطبقة الرابعة:في الطبقة 7 (طبقة التطبيق)، يستطيع موزع التحميل فحص استعلام DNS نفسه واتخاذ قرارات توجيه ذكية استنادًا إلى محتوى الاستعلام، مثل اسم المجال المطلوب.
مزايا تنفيذ موازنة التحميل لنظام أسماء النطاقات (DNS) #
- التكرار وتجاوز الفشل:تضمن موازنة التحميل أنه في حالة فشل أحد الخوادم، يمكن للخوادم الأخرى تولي المسؤولية بسلاسة، مما يوفر حل DNS مستمرًا.
- التوسعة:مع زيادة الطلب، يمكن إضافة خوادم إضافية خلف موازن التحميل دون تغيير تكوينات جانب العميل.
- التوزيع الجغرافي:باستخدام التوجيه عبر anycast، يمكن توزيع خوادم DNS عبر مواقع جغرافية مختلفة، مما يسمح للعملاء بالوصول إلى أقرب خادم للحصول على حل أسرع.
تكوين موازنة تحميل DNS عبر UDP وDNS عبر TCP #
لموازنة أحمال حركة مرور DNS بفعالية باستخدام مُوازن أحمال Relianoid، يمكنك تكوين مجموعتين منفصلتين مُخصصتين لـ DNS-over-UDP و DNS-over-TCP، وكلاهما على المنفذ 53. تُعالج مجموعة DNS-over-UDP استعلامات DNS القياسية، والتي عادةً ما تكون أصغر حجمًا ولا تتطلب اتصالًا، مما يُحسّن السرعة ويُقلل استهلاك الموارد. في الوقت نفسه، تُهيأ مجموعة DNS-over-TCP لاستعلامات DNS التي تتجاوز حجم حزمة UDP النموذجي (512 بايت) أو تتطلب تسليمًا أكثر موثوقية، مثل نقل المناطق. بتجزئة هذه المجموعات بناءً على البروتوكول، تضمن معالجة فعّالة لكل نوع حركة مرور على المنفذ 53، مستفيدًا من توزيع الأحمال الخاص بالبروتوكول مع تعزيز المرونة وتقليل الاختناقات.
للقيام بذلك، قم بإنشاء المزارع في القسم LSLB > المزارع مع L4xNAT الملف الشخصي و NAT الوضع كما هو موضح أدناه.

خاتمة #
يؤكد معيار RFC 5966 على أهمية دعم بروتوكول TCP لاستعلامات DNS، بالإضافة إلى طلبات UDP التقليدية. وبينما يظل UDP البروتوكول الرئيسي نظرًا لكفاءته، يوفر TCP الموثوقية للاستجابات الكبيرة واستعلامات DNSSEC. ولضمان مرونة خدمات DNS وقابليتها للتوسع، خاصةً في ظل كثافة حركة المرور، يُعدّ تطبيق استراتيجيات موازنة التحميل لكلٍّ من UDP وTCP أمرًا أساسيًا. تضمن هذه التقنيات بقاء خدمات DNS سريعة الاستجابة وآمنة وقادرة على التعامل مع الطلب المتزايد.
من خلال فهم كلا البروتوكولين والاستفادة منهما إلى جانب موازنة التحميل المناسبة، يمكن لمسؤولي الشبكة بناء بنى تحتية قوية لنظام DNS تلبي متطلبات الإنترنت الحديثة.