ما هو الـ DNS ؟

ما هو الـ DNS ؟


Domain Name System… هو بمثابة دليل الهاتف بالنسبة لمواقع الإنترنت. 
دليل الهاتف يجمع بين اسم الشخص ورقم هاتفه، أما DNS فيجمع بين اسم النطاق Domain Name وعنوان IP الخاص به.

قم بفتح المتصفح لديك وأكتب العنوان التالي  http://173.194.45.64/  ماذا سيحدث؟ ستجد أنه يقودك إلى موقع Google.

كما نعلم، الأصل في عنونة الإنترنت بكل ما تشمله من خدمات، تتم باستخدام عناوين IP. وتخيّل لو كان عليك حفظ العنوان السابق وكتابته كلما أردت الدخول لموقع جوجل… كم سيكون صعباً أو حتى مستحيلاً أن نتعامل مع عشرات أو مئات العناوين التي نعرفها بهذا الشكل المجرد. أو تخيّل مثلاً أن تكون قائمة المواقع المفضلة لديك هي عبارة عن تسلسل “فظيع” من الأرقام… من هنا نشأت الحاجة لنظام يحوّل العناوين إلى أسماء واضحة ومقروءة ومفهومة بالنسبة لنا، أو ما يعرف بـِ Name Resolution. وهذا النظام هو بروتوكول DNS.


إذن يعمل DNS على إنشاء قاعدة بيانات تحوي سجلات تربط عناوين IP بالأسماء المعبرة عنها، وذلك بشكل بنية هيكلية Hierarchical. كما في الشكل التالي:

المستوى الأعلى هو الجذر root: ويمثَّل بنقطة. لكنها -كما نعرف- لا تُكتب عادة في أسماء النطاقات.بعد ذلك يأتي Top-Level Domains أي المستويات العليا من النطاقات. مثل com, net, org, edu بالإضافة إلى النطاقات الدالة على الدول مثل sa, us, ps, uk.
ثم أسماء النطاقات العادية domain التي يختارها المستخدمون ويحجزونها من خلال الجهات المعتمدة.
أخيراً، هناك النطاقات الفرعية sub-domains أو hosts وهي نطاقات متفرعة عن السابقة يستطيع المستخدمون تعريفها بحرّية حسب حاجتهم. ويمكن إضافة حتى 127 نطاق فرعي في التسلسل الهيكلي. بمعنى:

sub127.sub126 …….. sub2.sub1.domain.com.

العدد الهائل من سجلات DNS يحتّم أن تكون قاعدة بياناته غير مركزية، بل موزعة. لأن من المستحيل على أي سيرفر أو حتى مجموعة محدودة من السيرفرات أن تحمل الملايين من السجلات وتخدم جميع طلبات تحويل العناوين التي قد تصلها. لذلك، عملياً تتوزع أجزاء قاعدة بيانات DNS على آلاف السيرفرات على إتساع العالم وكل منها يجيب على الطلبات التي تصله إن استطاع تلبيتها، وإلا فإنه يشير إلى سيرفر آخر من الممكن أن يلبي المطلوب.. وفيما يلي توضيح لذلك.

كيف يعمل DNS؟

عندما تريد الوصول إلى أحد المواقع ليكن مثلاً موقعnettales.wordpress.com يرسل المتصفح استعلاماً لمعرفة عنوان IP إلى سيرفر DNS المعرّف على جهازك…(سندعوه السيرفر المحلي).
يبحث DNS عن العنوان إن كان مخزّنا لديه في قاعدة بياناته المحلية، أو في الـ cache. فإن وجده يرسل رداً إلى الجهاز المستعلم… وبذلك ينتهي الأمر.

( cache: هي العناوين التي سبق للسيرفر أن استعلم عنها، ويقوم بالإحتفاظ بها لفترة محددة بهدف الرجوع إليها مباشرة إذا طُلِبت منه مرة أخرى، دون الحاجة إلى إعادة الاستعلام عنها بطريقة recursion كما سنرى في الخطوات اللاحقة ).

إذا لم تتواجد المعلومات المطلوبة لدى السيرفر المحلي، يعمل هو على الإستعلام عنها في خطوات متسلسلة تسمى Recursion. حيث يقوم في كل خطوة بالاستعلام عن جزء محدد من العنوان.

Recursion

يبدأ السيرفر المحلي عملية recursion إبتداءاً بأعلى مستوى في التسلسل أي root. حيث يقوم بإرسال استعلام لأحد سيرفرات root name (والتي تكون معرفة عليه بشكل تلقائي)، وهذا استعلام عن أول جزء في العنوان المطلوب أي “com.”.


يرد root server على الاستعلام بإرسال قائمة بسيرفرات DNS المخوّلة بالمعلومات عن نطاق TLD المطلوب، وبالتحديد “com.”
يعيد السيرفر المحلي عملية الإستعلام إلى واحد من سيرفرات TLD التي وصلته في القائمة. بالطبع، هذه المرة يستعلم عن wordpress.com.

بدوره يقوم سيرفر TLD بإرسال عنوان السيرفر المخوّل بالنطاقwordpress.com إلى السيرفر المحلي.
يرسل السيرفر المحلي إلى السيرفر المخوّل بـِ wordpress.com استعلاماً عن العنوان nettales.wordpress.com.
مسك الختام، وهذه المرة من خلال وصول رد بعنوان IP الخاص بالموقع المطلوب.

وهذا الشكل يلخص العملية برمتها:

نستطيع من خلال عملية Recursion أن نفهم جيداً فائدة البنية الهيكلية لـ DNS:

أولاً: تتيح له إجراء عمليات الإستعلام على عدة مستويات متسلسلة. وبالتالي تقليص عدد السيرفرات التي يحتاج للإتصال بها في كل مرحلة.
ثانياً: ما كنت قد ذكرته أعلاه، أي تخزين قاعدة البيانات بشكل موزع، وبالتالي تخفيف عملية المعالجة وتوزيعها على مجموعات السيرفرات في كل مستوى.


قلنا سابقاً أن DNS هو عبارة عن قاعدة بيانات هائلة للسجّلات التي تحوي أسماء النطاقات وعناوينها. في أي سيرفر DNS يتم تجميع السجلات الخاصة بكل نطاق في كيانات تسمى Zones. وهي ثلاثة أنواع:
  • Primary Zone:  وهي تحمل النسخة الأصلية Master من السجلات في الدومين.
  • Secondary Zone:  وتحمل نسخة ثانوية من النسخة الأصلية للسجلات، كإحتياط في حال حدوث مشكلة في النسخة الأصلية. ويتم تحديثها بشكل تلقائي من Primary Zone خلال عملية تدعى Zone Transfer.
  • Stub Zone:  وتحمل فقط سجلات NS (سأذكرها لاحقاً)
يستطيع DNS العمل بالإتجاهين ( forward lookup أو reverse lookup). ويمكن تحديد طريقة عمل أي Zone أثناء تعريفها:
  • Forward Lookup Zone: الوضع الإفتراضي بالبحث عن عنوان IP للنطاق المعلوم.
  • Reverse Lookup Zone: بأن يكون عنوان IP معلوماً، والمطلوب إيجاد اسم النطاق الخاص به.

من أهم السجلات التي تحويها DNS Zones:

  • SOA  أي Start of Authority : وهي سجل يُنشأ مع بداية تعريف أي Zone. وهو يحمل بعض المعلومات الإفتراضية مثل اسم السيرفر الرئيسي والشخص المسؤول، وكذلك رقماً تسلسلياً يوضح عدد عمليات Zone Transfer التي حدثت بين Primary Zone و Secondary Zone.
  • A: وهو Host record :  الذي يمثّل عناوين مواقع الإنترنت الإعتيادية مثل www.google.com أو عناوين أجهزة الكمبيوتر في أي دومين pc1.domain.local مثلاً.
  • NS: أي Name Server : وهي سجلات تحدد أسماء السيرفرات الأخرى (من خارج الـ Zone) المخوّلة بإجراء عمليات DNS.
  • CNAME: أي Canonical Name : وتسمى أيضاً Alias. وتقوم بتعيين اسم مخصص لأي سجل A. مثلاً لديك سيرفر إسمه الفعلي webserver.domain.com يحمل الموقع الإلكتروني، يمكن عمل CNAME له بالإسم المتعارف عليه http://www.domain.com.
  • MX: أو Mail Exchanger : يقوم برنامج البريد الإلكتروني بالإستفسار عن هذا السجل من أجل تحديد المسار الذي يجب على رسالة البريد الإلكتروني أن تسلكه للوصول إلى وجهتها. مثلاً في العنوان abcde@gmail.com يتم البحث عن سجل MX الخاص بسيرفر gmail.com ومن ثم توجّه الرسائل إلى عنوان IP الخاص به باستخدام بروتوكول SMTP.
  • PTR: إختصار Pointer :  ويتواجد فقط في reverse lookup zone للإشارة إلى إسم النطاق الذي عُُرف عنوانه (وهو عكس عمل سجل A).
  • SRV: أو Service Location : تستخدم بشكل خاص في Active Directory الخاصة بسيرفرات ويندوز. وهي سجلات تعمل ربطاً بين الخدمات services المتوفرة في الدومين مع الأجهزة التي تقدم هذه الخدمات. لهذا السبب بالذات يعتمد عمل Active Directory على DNS بشكل جذري، إذ لا يمكن أن تعمل بدونه. وحتى أثناء تعريفها لأول مرة (أي من خلال تشغيل الأمر DCPROMO وإنشاء أول Domain Controller) سوف يُطلب تثبيت DNS بالمعيّة.
إحدى الملاحظات التي أود التنويه إليها ما دمنا في موضوع Active Directory: إذا صادفك بطء في عملية ولوج الأجهزة للشبكة، فتأكد من عمل سيرفر DNS بشكل جيد، لأنه -على الأغلب- السبب في حصول البطء.


تعليقات



حجم الخط
+
16
-
تباعد السطور
+
2
-