السبت، 8 أكتوبر 2011

كيف يعمل خادم أسماء النطاقات


إذا كنت قد وصلت إلى هذه الصفحة أو انك قمت بإرسال رسالة بريدية e-mail أو كنت تتجول عبر صفحات الانترنت فأنت بالتأكيد وبدون ان تلاحظ تتعامل مع خوادم لأسماء النطاقات والذي يعرف باسم domain name servers ويكتب اختصاراً DNS تعتبر هذه خوادم DNSمهمة جدا وتعتبر الجزء الخفي من الانترنت.  ويشكل نظام DNS أعظم قاعدة بيانات موزعة على الكرة الأرضية.  وبدون الـ DNS فان الانترنت يتوقف في لحظات.
في هذه المقالة من كيف تعمل الأشياء سوف نتحدث عن نظام الـ DNS لتتعرف على فكرة عمله وقدرته المذهلة. 
عندما نقوم بزيارة صفحة على الانترنت أو نقوم بإرسال رسالة الكترونية لأحد أصدقاؤنا فاننا نستخدم اسم النطاق domain name لفعل ذلك.  وعلى سبيل المثال فان الرابطhttp://www.hayatk.com/ يحتوي على النطاق hayatk.com وكذلك البريد الالكتروني @hotmail.com.
 
لاحظ عزيزي القارئ اننا نعتمد على الأسماء كثيرا وأسهل لنا ان نتذكرها فمثلا تذكر اسم صديقك وربما لا تحفظ رقم تلفونه ولذلك عندما تخزن رقمه فانك تشير لهذا الرقم باسم صديقك الذي تعرفه به، ولكن بالنسبة للآلات فان الأمر مختلف تماما حيث ان الأسماء بالنسبة لها لا تعني شيء فهي لا تتعامل إلا بالأرقام ولذلك فان شبكة الانترنت تتعامل مع أرقام تعرف باسم IP addresses أي عناوين بروتوكول الانترنت. وهذا العناوين تستخدم للتميز بين المواقع التي نتصفحها على الانترنت.  فمثلا العنوان hayatk.com له عنوان محدد ومميز هو 66.103.150.101. وفي كل مرة تقوم فيها بكتابة عنوان الموقع (اسم النطاق domain name) الذي تود زيارته فان المتصفح يقوم بالاتصال بجهاز الخادم الخاص بأسماء النطاقات DNS ليترجم له هذا العنوان ويحوله للأرقام المحجوزة لهذا الموقع IP address، وخلال تصفحك للانترنت فانك من الممكن ان تكون قد اتصلت بجهاز خادم DNS مئات المرات.
 
قد تعتقد ان الأمر بسيط في كون ان العملية ترتكز على تحويل اسم نطاق الموقع إلى عنوان IP، ولكن الأمر ليس بهذه البساطة التي تظهر بها، فهناك العديد من الأمور التي يجب ان ننتبه لها وهي:
(1) هناك بلايين من عناوين IP المستخدمة في عالم الانترنت بعدد أسماء النطاقات في العالم.
(2) هناك بلايين من الطلبات يوميا موجه لخوادم DNS والفرد الواحد قد يكون وجه مئات الطلبات في اليوم ان لم يكن آلاف الطلبات وتصور عدد الأشخاص المتصفحين للانترنت معك في نفس اللحظة.
(3) أسماء النطاقات وعناوينها تتغير باستمرار.
(4) كل يوم تستحدث مواقع جديدة.
(5) ملايين الناس تغير أسماء النطاقات وتضيف أسماء جديدة بصورة يومية.
 
لهذا فان نظام قاعدة بيانات DNS يتلقى اكبر قدر ممكن من الطلبات في اليوم وهذا ما يجعل قواعد بيانات الـ DNS أكثر قواعد البيانات التي يستخدمها الناس على الكرة الأرضية، وهذا ما يجعلها مميزة.
 
عناوين بروتوكول الانترنت IP Addresses
لكي تكون كل أجهزة الانترنت تعمل بطريقة سليمة فان لكل جهاز يعطى عنوان مميز يسمى عنوان بروتوكول الانترنت IP address وكل عنوان مكون من مجموعة من الأرقام بحجم 32-bit وتكتب هذه الأرقام بنسق متماثل بحيث تكون في صورة أربع مجموعات وكل مجموعة تمثل 8-bit ويكون هذا العنوان على النحو التالي:
 
216.183.103.150
 
تسمى الأربع أرقام في عنوان IP بالثمانية لان تأخذ القيم من 0 إلى 255 أي ان هناك 28 من الاحتمالات لكل مجموعة.
كل جهاز متصل بالانترنت له عنوان IP مميز.  أما الخادم فيكون له عنوان IP ثابت ولا يتغير في اغلب الأحيان.  ولتوضيح هذا الأمر فانك عندما تقوم بالاتصال بالانترنت عبر جهاز المودم فان جهازك يحصل على رقم IP من مزود الخدمة المشترك معه ويكون هذا الرقم مخصص لك ومميز طالما استمر اتصالك بالانترنت ولكن إذا قمت بقطع الاتصال وإعادته مرة أخرى فان الجهاز يحصل على رقم IP آخر. 
 
لنقوم بفحص عنوان IP لجهازك الآن، كل ما عليك هو ان تقوم بتشغيل الأمر RUN وتكتب CMD وتضغط على زر موافق لتفتح لك شاشة تنفيذ الأوامر (شاشة سوداء) تكتب عند إشارة الإدخال الأمر IPCONFIG.EXE ثم تضغط على المفتاح Enter.
 
 
وبالتالي فانه من حيث فكرة عمل الانترنت فانه يمكن ان يتم كتابة رقم IP للموقع المراد تصفحه وسيقوم المتصفح بالوصول للخادم الذي يحتوي على الموقع ويجلبه لك.  ولكننا بالتأكيد نفضل التعامل مع أسماء المواقع Domain name.
 
أسماء المواقع أو النطاقات Domain Names
كما ذكرنا سابقا اننا نجيد حفظ الأسماء ولا نستطيع حفظ سلسلة من الأرقام ولهذا فان التعامل مع أسماء المواقع أفضل بكثير وبالطبع هناك الكثير من المواقع التي نتذكرها بسهولة ومن هذه الأسماء على سبيل المثال
 
اسم نموذجي لموقع
اسم موقع مشهور
اسم موقع تعليمي
اسم موقع لا يبدأ بالأحرف www
اسم موقع مختصر بأحرفه الأولى
اسم موقع يشير إلى خادم FTPوليس خادم صفحات ويب.
www.yahoo.com
www.mit.edu
Encarta.msn.com
www.bbc.co.uk
ftp.microsoft.com
 
 
وتعتبر الكلمات com و edu  و uk و غيرها بأسماء النطاق ذو المستوى العالي top-level domain أو المستوى الأول first level domain. وهناك الكثير من هذه الكلمات التي نتعامل معها مثل gov  و net و org وكذلك الأسماء المكونة من حرفين تشير للدولة التي فيه الموقع. 
وفي كل اسم نطاق يوجد أيضا المستوى الثاني second-level domains وهي الأسماء التي تسبق المستوى الأول مثل
 
hayatk
yahoo
msn
microsoft
والكثير الكثير
 
وكل اسم مستوى ثاني في com يجب ان يكون فريد ولا مثيل له ولكن من الممكن ان يكون هناك لكل اسم ثاني أكثر من مستوى أول يحتويه مثل hayatk.com أو hayatk.net أو hayatk.org.
 
وفي بعض التسميات التي تضاف لها رمز الدولة مثل 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

السبت، 8 أكتوبر 2011

كيف يعمل خادم أسماء النطاقات


إذا كنت قد وصلت إلى هذه الصفحة أو انك قمت بإرسال رسالة بريدية e-mail أو كنت تتجول عبر صفحات الانترنت فأنت بالتأكيد وبدون ان تلاحظ تتعامل مع خوادم لأسماء النطاقات والذي يعرف باسم domain name servers ويكتب اختصاراً DNS تعتبر هذه خوادم DNSمهمة جدا وتعتبر الجزء الخفي من الانترنت.  ويشكل نظام DNS أعظم قاعدة بيانات موزعة على الكرة الأرضية.  وبدون الـ DNS فان الانترنت يتوقف في لحظات.
في هذه المقالة من كيف تعمل الأشياء سوف نتحدث عن نظام الـ DNS لتتعرف على فكرة عمله وقدرته المذهلة. 
عندما نقوم بزيارة صفحة على الانترنت أو نقوم بإرسال رسالة الكترونية لأحد أصدقاؤنا فاننا نستخدم اسم النطاق domain name لفعل ذلك.  وعلى سبيل المثال فان الرابطhttp://www.hayatk.com/ يحتوي على النطاق hayatk.com وكذلك البريد الالكتروني @hotmail.com.
 
لاحظ عزيزي القارئ اننا نعتمد على الأسماء كثيرا وأسهل لنا ان نتذكرها فمثلا تذكر اسم صديقك وربما لا تحفظ رقم تلفونه ولذلك عندما تخزن رقمه فانك تشير لهذا الرقم باسم صديقك الذي تعرفه به، ولكن بالنسبة للآلات فان الأمر مختلف تماما حيث ان الأسماء بالنسبة لها لا تعني شيء فهي لا تتعامل إلا بالأرقام ولذلك فان شبكة الانترنت تتعامل مع أرقام تعرف باسم IP addresses أي عناوين بروتوكول الانترنت. وهذا العناوين تستخدم للتميز بين المواقع التي نتصفحها على الانترنت.  فمثلا العنوان hayatk.com له عنوان محدد ومميز هو 66.103.150.101. وفي كل مرة تقوم فيها بكتابة عنوان الموقع (اسم النطاق domain name) الذي تود زيارته فان المتصفح يقوم بالاتصال بجهاز الخادم الخاص بأسماء النطاقات DNS ليترجم له هذا العنوان ويحوله للأرقام المحجوزة لهذا الموقع IP address، وخلال تصفحك للانترنت فانك من الممكن ان تكون قد اتصلت بجهاز خادم DNS مئات المرات.
 
قد تعتقد ان الأمر بسيط في كون ان العملية ترتكز على تحويل اسم نطاق الموقع إلى عنوان IP، ولكن الأمر ليس بهذه البساطة التي تظهر بها، فهناك العديد من الأمور التي يجب ان ننتبه لها وهي:
(1) هناك بلايين من عناوين IP المستخدمة في عالم الانترنت بعدد أسماء النطاقات في العالم.
(2) هناك بلايين من الطلبات يوميا موجه لخوادم DNS والفرد الواحد قد يكون وجه مئات الطلبات في اليوم ان لم يكن آلاف الطلبات وتصور عدد الأشخاص المتصفحين للانترنت معك في نفس اللحظة.
(3) أسماء النطاقات وعناوينها تتغير باستمرار.
(4) كل يوم تستحدث مواقع جديدة.
(5) ملايين الناس تغير أسماء النطاقات وتضيف أسماء جديدة بصورة يومية.
 
لهذا فان نظام قاعدة بيانات DNS يتلقى اكبر قدر ممكن من الطلبات في اليوم وهذا ما يجعل قواعد بيانات الـ DNS أكثر قواعد البيانات التي يستخدمها الناس على الكرة الأرضية، وهذا ما يجعلها مميزة.
 
عناوين بروتوكول الانترنت IP Addresses
لكي تكون كل أجهزة الانترنت تعمل بطريقة سليمة فان لكل جهاز يعطى عنوان مميز يسمى عنوان بروتوكول الانترنت IP address وكل عنوان مكون من مجموعة من الأرقام بحجم 32-bit وتكتب هذه الأرقام بنسق متماثل بحيث تكون في صورة أربع مجموعات وكل مجموعة تمثل 8-bit ويكون هذا العنوان على النحو التالي:
 
216.183.103.150
 
تسمى الأربع أرقام في عنوان IP بالثمانية لان تأخذ القيم من 0 إلى 255 أي ان هناك 28 من الاحتمالات لكل مجموعة.
كل جهاز متصل بالانترنت له عنوان IP مميز.  أما الخادم فيكون له عنوان IP ثابت ولا يتغير في اغلب الأحيان.  ولتوضيح هذا الأمر فانك عندما تقوم بالاتصال بالانترنت عبر جهاز المودم فان جهازك يحصل على رقم IP من مزود الخدمة المشترك معه ويكون هذا الرقم مخصص لك ومميز طالما استمر اتصالك بالانترنت ولكن إذا قمت بقطع الاتصال وإعادته مرة أخرى فان الجهاز يحصل على رقم IP آخر. 
 
لنقوم بفحص عنوان IP لجهازك الآن، كل ما عليك هو ان تقوم بتشغيل الأمر RUN وتكتب CMD وتضغط على زر موافق لتفتح لك شاشة تنفيذ الأوامر (شاشة سوداء) تكتب عند إشارة الإدخال الأمر IPCONFIG.EXE ثم تضغط على المفتاح Enter.
 
 
وبالتالي فانه من حيث فكرة عمل الانترنت فانه يمكن ان يتم كتابة رقم IP للموقع المراد تصفحه وسيقوم المتصفح بالوصول للخادم الذي يحتوي على الموقع ويجلبه لك.  ولكننا بالتأكيد نفضل التعامل مع أسماء المواقع Domain name.
 
أسماء المواقع أو النطاقات Domain Names
كما ذكرنا سابقا اننا نجيد حفظ الأسماء ولا نستطيع حفظ سلسلة من الأرقام ولهذا فان التعامل مع أسماء المواقع أفضل بكثير وبالطبع هناك الكثير من المواقع التي نتذكرها بسهولة ومن هذه الأسماء على سبيل المثال
 
اسم نموذجي لموقع
اسم موقع مشهور
اسم موقع تعليمي
اسم موقع لا يبدأ بالأحرف www
اسم موقع مختصر بأحرفه الأولى
اسم موقع يشير إلى خادم FTPوليس خادم صفحات ويب.
www.yahoo.com
www.mit.edu
Encarta.msn.com
www.bbc.co.uk
ftp.microsoft.com
 
 
وتعتبر الكلمات com و edu  و uk و غيرها بأسماء النطاق ذو المستوى العالي top-level domain أو المستوى الأول first level domain. وهناك الكثير من هذه الكلمات التي نتعامل معها مثل gov  و net و org وكذلك الأسماء المكونة من حرفين تشير للدولة التي فيه الموقع. 
وفي كل اسم نطاق يوجد أيضا المستوى الثاني second-level domains وهي الأسماء التي تسبق المستوى الأول مثل
 
hayatk
yahoo
msn
microsoft
والكثير الكثير
 
وكل اسم مستوى ثاني في com يجب ان يكون فريد ولا مثيل له ولكن من الممكن ان يكون هناك لكل اسم ثاني أكثر من مستوى أول يحتويه مثل hayatk.com أو hayatk.net أو hayatk.org.
 
وفي بعض التسميات التي تضاف لها رمز الدولة مثل 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