الأربعاء، مارس 10، 2010

خادم أسماء النطاقاتDNS

إذا كنت قد وصلت إلى هذه الصفحة أو انك قمت بإرسال رسالة بريدية e-mail أو كنت تتجول عبر صفحات الانترنت فأنت بالتأكيد وبدون ان تلاحظ تتعامل مع خوادم لأسماء النطاقات والذي يعرف باسم domain name servers ويكتب اختصاراً DNS. تعتبر هذه خوادم DNS مهمة جدا وتعتبر الجزء الخفي من الانترنت. ويشكل نظام DNS أعظم قاعدة بيانات موزعة على الكرة الأرضية. وبدون الـ DNS فان الانترنت يتوقف في لحظات.
ان شبكة الانترنت تتعامل مع أرقام تعرف باسم IP addresses أي عناوين بروتوكول الانترنت. وهذا العناوين تستخدم للتميز بين المواقع التي نتصفحها على الانترنت. وفي كل مرة تقوم فيها بكتابة عنوان الموقع (اسم النطاق domain name) الذي تود زيارته فان المتصفح يقوم بالاتصال بجهاز الخادم الخاص بأسماء النطاقات DNS ليترجم له هذا العنوان ويحوله للأرقام المحجوزة لهذا الموقع IP address، وخلال تصفحك للانترنت فانك من الممكن ان تكون قد اتصلت بجهاز خادم DNS مئات المرات.
قد تعتقد ان الأمر بسيط في كون ان العملية ترتكز على تحويل اسم نطاق الموقع إلى عنوان IP، ولكن الأمر ليس بهذه البساطة التي تظهر بها، فهناك العديد من الأمور التي يجب ان ننتبه لها وهي:
(1) هناك بلايين من عناوين IP المستخدمة في عالم الانترنت بعدد أسماء النطاقات في العالم.
(2) هناك بلايين من الطلبات يوميا موجه لخوادم DNS والفرد الواحد قد يكون وجه مئات الطلبات في اليوم ان لم يكن آلاف الطلبات وتصور عدد الأشخاص المتصفحين للانترنت معك في نفس اللحظة.
(3) أسماء النطاقات وعناوينها تتغير باستمرار.
(4) كل يوم تستحدث مواقع جديدة.
(5) ملايين الناس تغير أسماء النطاقات وتضيف أسماء جديدة بصورة يومية.
لهذا فان نظام قاعدة بيانات DNS يتلقى اكبر قدر ممكن من الطلبات في اليوم وهذا ما يجعل قواعد بيانات الـ DNS أكثر قواعد البيانات التي يستخدمها الناس على الكرة الأرضية، وهذا ما يجعلها مميزة.
عناوين بروتوكول الانترنت IP Addresses
لكي تكون كل أجهزة الانترنت تعمل بطريقة سليمة فان لكل جهاز يعطى عنوان مميز يسمى عنوان بروتوكول الانترنت IP address وكل عنوان مكون من مجموعة من الأرقام بحجم 32-bit وتكتب هذه الأرقام بنسق متماثل بحيث تكون في صورة أربع مجموعات وكل مجموعة تمثل 8-bit. ويكون هذا العنوان على النحو التالي:
41.183.103.150
تسمى الأربع أرقام في عنوان IP بالثمانية لان تأخذ القيم من 0 إلى 255 أي ان هناك 28 من الاحتمالات لكل مجموعة.
كل جهاز متصل بالانترنت له عنوان IP مميز. أما الخادم فيكون له عنوان IP ثابت ولا يتغير في اغلب الأحيان. ولتوضيح هذا الأمر فانك عندما تقوم بالاتصال بالانترنت عبر جهاز المودم فان جهازك يحصل على رقم IP من مزود الخدمة المشترك معه ويكون هذا الرقم مخصص لك ومميز طالما استمر اتصالك بالانترنت ولكن إذا قمت بقطع الاتصال وإعادته مرة أخرى فان الجهاز يحصل على رقم IP آخر.

لنقوم بفحص عنوان IP لجهازك الآن، كل ما عليك هو ان تقوم بتشغيل الأمر RUN وتكتب CMD وتضغط على زر موافق لتفتح لك شاشة تنفيذ الأوامر (شاشة سوداء) تكتب عند إشارة الإدخال الأمر IPCONFIG.EXE ثم تضغط على المفتاح Enter.
وبالتالي فانه من حيث فكرة عمل الانترنت فانه يمكن ان يتم كتابة رقم IP للموقع المراد تصفحه وسيقوم المتصفح بالوصول للخادم الذي يحتوي على الموقع ويجلبه لك. ولكننا بالتأكيد نفضل التعامل مع أسماء المواقع Domain name.
أسماء المواقع أو النطاقات Domain Names
كما ذكرنا سابقا اننا نجيد حفظ الأسماء ولا نستطيع حفظ سلسلة من الأرقام ولهذا فان التعامل مع أسماء المواقع أفضل بكثير وبالطبع هناك الكثير من المواقع التي نتذكرها بسهولة ومن هذه الأسماء على سبيل المثال
اسم نموذجي لموقع www.compunet4arab.com
اسم موقع مشهور www.yahoo.com
اسم موقع تعليمي www.mit.edu
اسم موقع لا يبدأ بالأحرف www
اسم موقع مختصر بأحرفه الأولى Encarta.msn.com
اسم موقع يشير إلى خادم FTP وليس خادم صفحات ويب. ftp.microsoft.com
وتعتبر الكلمات com و edu و uk و غيرها بأسماء النطاق ذو المستوى العالي top-level domain أو المستوى الأول first level domain. وهناك الكثير من هذه الكلمات التي نتعامل معها مثل gov و net و org وكذلك الأسماء المكونة من حرفين تشير للدولة التي فيه الموقع. وفي كل اسم نطاق يوجد أيضا المستوى الثاني second-level domains وهي الأسماء التي تسبق المستوى الأول مثل
yahoo
msn
microsoft
وكل اسم مستوى ثاني في com يجب ان يكون فريد ولا مثيل له ولكن من الممكن ان يكون هناك لكل اسم ثاني أكثر من مستوى أول يحتويه مثلcompunet4arab.com
وفي بعض التسميات التي تضاف لها رمز الدولة مثل yahoo.com.uk فهذا تعتبر مستوى ثالث ويمكن ان تصل عدد المستويات إلى 127 مستوى ولكن أكثر من أربع مستويات تعتبر حالات نادرة.
أما الكلمة www أو Encarta فهي تشير إلى اسم المضيف host name. وهو يشير إلى جهاز محدد له عنوان IP ثابت ويمكن ان يكون لكل اسم نطاق أكثر من اسم مضيف طالما إنها أسماء مميزة لهذا النطاق.
ولهذا فان كل الأسماء التي تشترك في اسم نطاق المستوى الأول com يجب ان تكون وحيدة ولا يسمح أبدا بتكرار اسم النطاق تحت الاسم com لذلك فان شركة Network Solutions هي المسئولة عن هذا الأمر. فعندما تقوم بتسجيل اسم نطاق لك فان عملية تحقق تتم من خلال مسجلين متصلين مع تلك الشركة ليتم إضافة هذا الاسم لقائمة الأسماء. وتقوم شركة Network Solutions بالحفاظ على قاعدة البيانات المركزية والتي تعرف باسم whois والتي فيها كل البيانات عن الموقع وصاحبه ومعلومات أخرى. ويمكنك ان تجرب الآن بالضغط على whois form لتحصل على معلومات عن موقع ما إذا كان محجوزا أو تستعلم عن موقع ما. حيث يظهر لك نموذج لإدخال اسم النطاق والبحث عنه.
كما يمكنك إدخال رقم الـ IP وبالحث عن اسم الموقع بتحديد خانة IP Address في النموذج.
قد يتبادر في ان هذا قد يكون مشكلة فكيف تكون شركة وحيدة هي مالكة هذه المعلومات الغاية في الأهمية؟ أو ان تكون دولة مثل بريطانيا أو السعودية أو مصر لها اسم نطاقها العالي uk أو su أو eg أو شركة كبيرة مثل مايكروسوفت تمتلك ملايين الأسماء فلماذا لا يكون لها الحق في إدارة الأسماء التي تخضع لها. بالطبع هذا تساؤل منطقي جدا وله حل بالتأكيد حيث ان نظام الـ DNS يتعامل بنظام قواعد البيانات الموزعة distributed database. فمثلا شركة ميكروسوفت مسئولة تماما عن الخادم الذي يدير نطاقها وكذلك الحال لنطاق الدول فتكون مصر مسئولة عن النطاقات التي تقع تحت eg وهكذا لباقي الدول وهذه المسؤولية أيضا تسمح لها بتغير وحجز النطاقات لكل من يريد ان يحجز اسم له تحت اسم النطاق العالي.
وكل نطاق له خادم DNS مسئول عنه ويقوم بالتجاوب مع كل الاتصالات التي ترد من مستخدمي الانترنت لهذا النطاق وهناك شخص يقوم بمتابعة جهاز الخادم وتوفير الصيانة اللازمة للحفاظ عليه يعمل طوال الوقت. ولهذا فان نظام الانترنت موزع على كل العالم ويدار من قبل ملايين الناس الذين يمتلكون أجهزة خوادم الـ DNS، إلا انه في النهاية نظام واحد وكل المعلومات الموجودة في هذه الخوادم تدار كأنها قاعدة بيانات واحدة.
أنظمة التوزيع The Distributed System
أنظمة الخادم DNS تقوم طوال الوقت بمهمتين هما
(1) استقبال الطلبات من متصفحات الانترنت وتحولها إلى عناوين رقمية IP addresses.
(2) استقبال الطلبات من أجهزة الخادم الأخرى (تذكر اننا ذكرنا انه لا يوجد جهاز خادم مركزي) للـ DNS وتحولها إلى عناوين رقمية IP addresses.
وعندما يتم استقبال طلب فان جهاز الخادم DNS يقوم بأحد هذه العمليات
(1) الإجابة المباشرة على الطلب وتوفير رقم IP لأنه يعرفه أو انه موجود لديه لان النطاق محجوز فيه.
(2) الاتصال بخادم DNS آخر في محاولة لإيجاد رقم IP للنطاق المطلوب وربما حاول من خوادم أخرى لحين إيجاد الخادم الذي يعرف المعلومة المطلوبة.
(3) ان يعطي رد بأنه لا يعرف عنوان IP للنطاق الذي تتصفحه.
(4) ان يعطي رسالة خطأ تخبرك بان النطاق المطلوب غير متوفر أو انه لا يوجد من الأساس.
توضيح أكثر
عندما تقوم بكتابة عنوان موقع ما (URL) في متصفح الإكسبلورر أو الابرا أو الفيرفوكس، فان المتصفح يقوم بتحويل عنوان الموقع (اسم النطاق واسم المضيف) إلى رقم IP حتى يتمكن المتصفح من طلب صفحة الويب من الجهاز الخادم الذي يحتوي على الصفحة. وهنا فان المتصفح يقوم بالاتصال بالجهاز الذي يحتوي الصفحة (web server) فانه يفعل ذلك من خلال الاتصال مع DNS
ملاحظة: جهاز خادم الويب web server هو جهاز خادم يستضيف الموقع الذي تتصفحه . محتويات الموقع له أجهزة تخدمه web server واسم الموقع له أجهزة تخدمه DNS كما ان أنظمة البريد الالكتروني له أجهزة تخدمه تسمى mail server.
يتصل المتصفح مع خادم اسم النطاق DNS ويطلب منه ان تحويل اسم النطاق إلى عنوان IP فيقوم الخادم بالرد عليه وقد يعتمد على ذاكرة الكاش cache التي يختزن فيها أرقام IP التي طلبت حديثا فتسرع العملية كثيرا. ولهذا عندما تطلب موقع قد يحتاج الأمر بعض الوقت ولكن إذا قمت بطلبه مرة أخرى ستجد ان الحصول على الموقع أصبح أسرع من المحاولة الأولى. حيث انه في المحاولة الأولى فان الخادم سوف يقوم بالاتصال بالأجهزة الرئيسية لأسماء النطاقات root name servers والتي تحتفظ بعناوين كل أجهزة الخوادم التي تتحكم في أسماء النطاقات العليا top-level servers مثل com أو net أو غيرها، فيحصل الخادم على طلبه أو يتم تحويله إلى خادم آخر وهكذا حتى يحصل على رقم IP. وتخيل ان هذه العلمية تحدث عبر أجهزة الخادم DNS المنتشرة في كل مكان على الكرة الأرضية.
ملاحظة: كل جهاز خادم لأسماء النطاقات DNS يحتفظ بقائمة بالخوادم الرئيسية root name servers ليتم الاتصال بها واحد تلو الآخر.
عملية البحث هذه عملية معقدة وذكية في نفس الوقت (ان صح التعبير) حيث انه عملية البحث تنتشر بين أجهزة خوادم DNS لتحصل على المعلومة وأي خادم يحصل على المعلومات يقوم بحفظها في ذاكرة الكاش حتى لو تكرر الطلب مرة أخرى من أي متصفح فان عملية البحث تتوجه مباشرة لهذا الخادم دون الحاجة لتكرار عملية البحث مرة أخرى. والجدير بالذكر هنا ان عملية الحفظ هذه لا تدوم لفترة طويلة حيث ان كل خادم لديه زمن محدد بتقنية تعرف باسم Time To Live وتكتب اختصارا TTL تحدد الزمن الذي تحتفظ به الذاكرة بالمعلومات. فعندما يستقبل الخادم العنوان فانه يستقبل معه TTL أيضا. ويقوم الخادم بالاحتفاظ بالعنوان حسب المدة المحددة بالـ TTL وهذه المدة قد تكون في حدود الدقائق وقد تستمر لأيام وبعدها يقوم بحذفها من ذاكرته.
ملاحظة: تفيد أيضا تقنية TTL في حالة تغير اسم الخادم (أي عندما تقوم بتحويل اسم نطاق الموقع من شركة إلى أخرى) حيث تستغرق عملية تعميم الاسم الجديد ثلاثة أسابيع متصلة لتتحدث المعلومات في كافة الأجهزة وهنا تأتي أهمية TTL في إبقاء الموقع فعالا خلال عملية الانتقال. ولقد لمست هذا الأمر فعليا عندما قمت بنقل اسم النطاق compunet4arab.com من شركة إلى أخرى حيث كان الموقع يعمل أحيانا وأحيانا أخرى يظهر المتصفح رسالة ان الموقع غير موجود.
إنشاء اسم نطاق Domain Name
عندما ترغب في ان تحجز لك اسم نطاق على الانترنت فانك تقوم بالتالي
(1) إيجاد جهاز الخادم DNS المناسب لحجز اسم النطاق لديه.
(2) تسجيل اسم النطاق.
ولإيجاد خادم DNS فيمكنك ان تقوم بذلك إما بنفسك أو ان تستعين بأحد الشركات الخاصة للقيام بذلك لك. وفي معظم الأحيان يكون للشركات الكبيرة أجهزة DNS الخاصة بهم في حين تتعامل الشركات الصغيرة مع تلك الشركات لتوفير خدمة حجز النطاقات لزبائنها.
ولحجز اسمك على الانترنت أي اسم النطاق تحتاج إلى ان تقوم بتعبئة نموذج معد من قبل الشركة على الانترنت وتدخل بيانات التسجيل واسم النطاق الذي تود حجزه كاسمك أو اسم شركتك أو أي اسم ترغب في ان يكون عنوان موقعك. وبعد تلقي طلبك والتأكد من عدم حجز هذا الاسم وإلا ستضطر للبحث عن اسم بديل أو قبول الاقتراحات التي ستوفرها لك يظهرها لك النموذج بان يضيف أرقام أو كلمة قبل الاسم وكلما قلت أحرف الاسم كلما كانت فرصة حجزه اقل وستجد ان هناك من سبقك له لذا ستضطر لقبول أسماء نطاقات بعدد اكبر من الأحرف.
بمجرد تأكيد قبولك لحجز الاسم ودفع القيمة المستحقة (في حدود 10 دولار سنويا للنطاقات الشائعة مثل com أو net ويزداد هذا السعر لنطاقات مثل tv أو نطاقات الدول) وبعدها يحجز الاسم لك ويتم وضح صفحة under construction ويتم تحويل طلب حجز الاسم إلى قاعدة بيانات whois، والتي تقوم بدورها بتحديث قاعدة بياناتها مرتين كل يوم للنطاقات مثل com و net وorg وغيرها فيكون لك اسم في قاعدة بيانات DNS مع عنوان الـ IP لتعمم على كافة قواعد البيانات الأخرى في العالم.
وعندما تقوم بتصفح موقعك سوف تجد صفحة under construction إلى ان تقوم بتحميل تصميمك الخاص ومعلوماتك بدلا من هذه الصفحة.
وهنا يجب ان ننوه إلى انه عادة عندما تقوم ببناء موقعك وترغب في نشره على الانترنت فانك تقوم باستغلال احد عروض الاستضافة التي تمنحك اسم نطاق مجاني طالما ان موقعك سيكون مستضاف لديهم. وهذه الشركات تستخدم لهذا الغرض أجهزة تسمى virtual Web hosting تقوم باستضافة ما يقارب 500 موقع أو أكثر وتتشارك هذه المواقع مواد الجهاز من معالج وذاكرة. ولذلك قد يكون تصفحها بطيئا في بعض الأحيان. وإذا انتشر موقعك وأصبح له زوار كثر فان هذه الشركة سوف تقوم بإغلاق موقعك لأنه أصبح يؤثر على موارد الجهاز لديهم ويؤثر على المواقع الأخرى المشتركة. وعند هذه النقطة فانك سوف تحتاج إلى امتلاك خادم خاص بموقعك وتحصل على لهذا الخادم على DNS خاص بك وتستطيع التحكم به، (بالطبع التكلفة ستكون أعلى في هذه الحالة) وتصبح واحد من البلايين الذين يتحكمون في الانترنت.
لمزيد من المعلومات هذه المواقع ذات صلة:
IANA
WHOIS
Register.com
BIND - the software that implements most name servers
Domain name registries around