[align=center]
المحاضرة الرابعة
مقدمة حول DNS
تناولنا في الحلقات السابقة كيفية إعداد سيرفر DHCP و التحكم به و عرفنا أنه المسئول عن منح العناوين للأجهزة في الشبكة و لكن كي تكتمل الصورة بشكل جيد و نفهم آلية عمل الشبكات لابد أن نعرف كيف يتم الربط بين الأسماء و العناوين ، بمعنى كيف تعرف الأجهزة أن العنوان :
http://www.yahoo.com هو نفسه : 216.109112.135 و كيف يتم تحويل عناوين البريد الالكتروني الى وجهتها و الى أصحابها. هنا يأتي دور (Domain Name System (DNS و الذي تم اختراعه في عام 1984.
فيما يخص أنظمة تشغيل ميكروسوفت فإنها قبل ويندوز 2000 أي عندما كان يستخدم ويندوز NT كانت تعتمد على نظام (Windows Internet Name Service (WINS و الذي كان يقوم بنفس مهمة DNS لكنه كان يعتمد على البرتوكول NetBIOS لهذا كان نظاما خاصا بميكروسوفت و لا يعمل على أي من أنظمة التشغيل الأخرى أما DNS فهو نظام متوافق مع أغلب أنظمة التشغيل لهذا قررت ميكروسوفت ابتداء من ويندوز 2000 و ما يليه أ، تستخدمه عوضا عن WINS.
و لمعرفة أهمية DNS للدليل النشط يكفي أن تعرف أن أجهزة الزبائن تعتمد على DNS في العثور على المتحكمات بالمجال كي تتمكن من الولوج الى الشبكة ، كما أن المتحكمات بالمجال لابد أن يعثر أحدها على الآخر لتتشارك فيما بينها بمعلومات المستخدمين و المجموعات و لا يتم ذلك إلا بمساعدة DNS.
يعتمد نظام DNS على بعض القواعد فيما يخص الأسماء التي يتم منحها للأجهزة حيث يتكون الاسم من أجزاء تفصل نقاط بينها فمثلا يمكن لجهاز أن يكون اسمه كما يلي: PC1.lab.arabs.com و يجب ألا يزيد كل جزء عن 63 رمزا بينما يجب ألا يزيد مجمل الاسم كاملا عن 255 رمزا ، و الرموز المسموح بها في الأسماء هي : A-Z , a-z, 0-9, -.
يكون الجزء الأيسر الأقصى من الاسم هو اسم الكمبيوتر بينما يكون الجزء المتبقي هو اسم المجال الذي ينتمي إليه الكمبيوتر ففي مثالنا السابق يكون اسم الكمبيوتر هو PC1 بينما يكون اسم المجال هو lab.arabs.com.
و لكي نفهم آلية عمل DNS دعنا نتناول المثال التالي :
لنفترض أنك قمت بكتابة العنوان التالي في متصفح الانترنت .sudabest.com و انتظرت أن يقوم المتصفح بعرض الموقع ، ماذا يحدث لتحقيق ذلك؟:
يقوم المتصفح بسؤال سيرفر DNS المحلي في شبكتك ليقوم بترجمة الاسم الى عنوان IP ليتم الاتصال به ، مما يعني أنه سيكون عليه أن يعرف عنوان الجهاز المسئول عن خدمة www في المجال sudabest.com ، و السؤال هنا من أين يحصل على العنوان؟ ببساطة عليه الاتصال بسيرفر DNS المسئول عن المجال sudabest.comو لكن يبرز السؤال من جديد من أين له أن يعرف عنوان سيرفر DNS هذا؟ الجواب : بشكل عام يتم الحصول على عنوان DNS لمجال معين بسؤال سيرفر DNS للمجال الأب الذي يعلوه بمعنى للحصول على عنوان DNS للمجال lab.sudabest.com نسأل DNS للمجالsudabest.com ، حسنا نعود لمثالنا السابق ، للحصول على عنوان DNS للمجال sudabest.com علينا أن نسأل DNS للمجال الأب وهو في هذه الحالة ببساطة com ، حيث يحتوي DNS المجال com على جميع عناوين DNS للمجالات التي تنتهي ب com و كذلك هو الحال بالنسبة لباقي المجالات net , org و غيرها. حسنا و لكننا عدنا لنفس السؤال من جديد من أين نحصل على عنوان DNS للمجال com؟ في هذه الحالة نسأل DNS للمجال الأب و الذي يطلق عليه المجال الجذر Root حيث يوجد 13 سيرفر DNS خاصة بالجذر و يتم الحصول على عناوينها من ملف اسمه cache.dns تقوم ميكروسوفت بتوفيره لك عند تنصيب خدمة DNS على السيرفر و تجده في المجلد التالي: windowssystem32dns، بهذه الطريقة يتصل المتصفح بأحد سيرفرات DNS للجذر و الذي يعطيه بدوره عناوين سيرفرات DNS للمجال com ليتصل بأحدها و الذي يعطيه بدوره عناوين سيرفرات DNS للمجال sudabest.com ليتصل به و يعرف عنوان الجهاز المسئول عن تشغيل خدمة الويب و يحتوي على الموقع و هكذا بإتباع هذه الخطوات يتمكن متصفح الانترنت من العثور على العنوان الصحيح للموقع و يعرضه لك.
تنصيب DNS و بدء العمل به
تناولنا في الحلقة السابقة مقدمة حول مفهوم DNS و الجدوى منه ، أما في هذه الحلقة فسنقوم بتنصيب خدمة DNS و نختبر عمله في ترجمة العناوين.
كي نتمكن من تشغيل خدمة DNS بشكل سليم سنحتاج الى جهاز يشغل ويندوز 2003 سيرفر متصل بالانترنت و له عنوان IP ثابت ، و لتبسيط الأمور سنقوم باستخدام السيرفر الذي شغلنا عليه خدمة DHCP حيث تتوفر فيه الشروط اللازمة فهو يعتمد على نظام ويندوز 2003 سيرفر و لديه اتصال بالانترنت عن طريق البوابة كما أننا خصصنا له عنوان IP ثابت و هو 192.168.0.10 لهذا سنقوم بتنصيب DNS عليه.
بداية سأقوم بمنح اسم Server لجهازنا الذي نعمل عليه و سأختار أن أسمي المجال الذي ينتمي إليه sudabest.edu طبعا بإمكانكم اختيار أي أسماء تجدوها مناسبة مع تذكر استخدام نفس اسم المجال عند إعداد الدليل النشط.
لتغيير اسم الكمبيوتر و المجال نضغط Start ثم نضغط باليمين على My Computer و نختار Properties ثم نتوجه الى تبويب Computer Name ثم نضغط على Change ليظهر مربع حوار حيث ندخل اسم الكمبيوتر الذي نريده ، في حالتي سأدخل اسم Server ثم نضغط على More ليظهر ربع حوار آخر و فيه ندخل في Primary DNS Suffix of This Computer اسم المجال و في حالتي سأدخل sudabest.edu ثم نضغط على OK و مرة أخرى نضغط على OK في مربع الحوار التالي ليظهر مربع حوار تنبيهي بضرورة إعادة التشغيل و فيه نضغط على OK ثم OK مرة أخيرة ثم Yes لإعادة تشغيل الجهاز.
بعد إعادة التشغيل و للتأكد من تغيير الاسم و المجال يمكن التوجه الى Run ثم كتابة cmd و الضغط على OK و هناك اكتب الأمر ipconfig /all .
الآن نحن مستعدون لتنصيب خدمة DNS و لعمل ذلك نتوجه الى Start/Control Panel/Add or Remove Programs ثم نضغط على Add/Remove Windows Components و عندما يظهر مربع اختيار المكونات نختار Networking Services ثم نضغط على Details ثم نضع إشارة على Domain Name System (DNS) ثم نضغط على OK ثم نضغط على Next لبدء تنصيب خدمة DNS حيث سنحتاج الى قرص ويندوز 2003 سيرفر ليقوم الويندوز بنسخ بعض الملفات منه و عند الانتهاء اضغط على Finish.
الخطوة التالية هي توجيه السيرفر ليقوم باستخدام خدمة DNS المثبتة فيه عند الحاجة لترجمة العناوين و لعمل ذلك نذهب الى Network Connections ثم نضغط باليمين على Local Area Connection أو أيا ً كان اسم البطاقة الشبكية ثم نختار Properties و هناك في تبويب General نختار Internet Protocol TCP/IP و نضغط على Properties و هناك نختار Use the Following DNS Server Addresses ثم ندخل عنوان السيرفر 192.168.0.10 و نضغط على OK :
و يمكن الاستعاضة عن هذه الخطوات باستخدام أمر واحد هو:
Netsh int ip set dns name static ipaddress primary
مع استبدال name بأول كلمة من اسم البطاقة الشبكية و استبدال ipaddress بعنوان السيرفر و بالتالي يصبح الأمر في حالتنا كما يلي :
Netsh int ip set dns local static 192.168.0.10 primary
في حال كان لديك أكثر من بطاقة شبكية و كلها تبدأ أسماءها بنفس الكلمة local عندها تستطيع كتابة اسم البطاقة كاملا و لكن بين أقواس الاقتباس " ، كما في المثال التالي:
Netsh int ip set dns "Local Area Connection 2" static 192.168.0.10 primary
للتأكد من نجاح التغيير نفذ الأمر التالي ipconfig /all لترى عنوان DNS يظهر فيه.
الآن لتشغيل لوحة تحكم خدمة DNS توجه الى Start> Administrative tools> DNS :
ستطيع أن تضغط على أيقون السيرفر و تختار Configure DNS Server و ذلك لتشغل معالج تركيب خدمة DNS و لكني أنصح بشدة بعدم استخدام هذا المعالج لأنه يقوم بافتراض بعض الأمور حول طبيعة الشبكة و يأخذ قرارات خاطئة لهذا لن نقوم باستخدامه و عوضا عن ذلك سندخل جميع الإعدادات التي تتوافق مع احتياجاتنا بدون مساعدته.
قبل أن نتعمق في إعدادات DNS هيا بنا نختبر عمله في ترجمة العناوين و لعمل ذلك نذهب الى Start>Run و نكتب cmd ثم نضغط على OK و هناك ندخل الأمر التالي:
nslookup ثم نضغط Enter لنحصل على نتيجة شبيهة بما يلي:
DNS request timed out.
Timeout was 2 seconds.
***Can't find Server name for address 192.168.0.10 : Timed out
Default Server: Unkown
Address: 192.168.0.10
لا داعي للخوف من هذه النتيجة فكل شيء على ما يرام و لكننا لم نقم بإعداد DNS كما يجب بعد لتخطي رسالة الخطأ هذه .
الآن لنختبر مقدرته على ترجمة العناوين ، و لهذا الغرض أولا ندخل الأمر التالي و ذلك لمنحه فترة كافية لترجمة العناوين:
Set timeout=10
الآن لنترجم العنوان التالي :
http://www.sudabest.com و لعمل ذلك فقط نكتب العنوان و نضغط على Enter لتظهر النتيجة التالية:
Default Server: Unkown
Address: 192.168.0.10
Non-authoritative answer:
Nameudabest.com
Address: 66.79.185.200
Aliases:
http://www.sudabest.com
و بهذه النتيجة نتأكد أن خدمة DNS تعمل بشكل جيد حيث تتمكن من ترجمة عناوين المواقع.
و لكن ماذا لو لم يتمكن من ترجمة الموقع و أعطى بدلا من ذلك رسالة خطأ؟
في هذه الحالة علينا مراجعة ما يلي:
1- أن نتأكد من أن خدمة DNS تعمل فعلا و ذلك بالتوجه الى DNS في Administrative Tools و هناك نضغط باليمين على أيقونة السيرفر و نختار All Tasks حيث يجب أن نجد الخيارات التالية متوفرة: Stop, Pause, Restart أما خيار Start فيجب أن يكون باهتا ، أما إذا كان خيار Start متوفر هو أيضا فهذا يعني أن خدمة DNS متوقفة و لتشغيلها نختار Start.
2- تأكد من أن السيرفر قادر على الاتصال بالانترنت و لعمل ذلك استخدم الأمر ping لاختبار اتصاله بالمواقع الأخرى على الانترنت.
3- قد تكون المشكلة من الجدار الناري Firewall و لحل هذه المشكلة نفذ الأمر Nslookup ثم نضغط على Enter ثم ندخل الأمر : server 164.109.1.3 و ذلك لتوجيه النظام الى DNS خارجي ، و بعدها ستستطيعون ترجمة أي موقع.[/font][/size][/b][/color][/align]