الحلقة الدراسية السابعة عشر: الاعتماد الكلي Slaving و التوجيه المشروط Conditional Forwarding



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

لنقوم الآن سويا بتطبيق ذلك كما فعلنا في الحاقة السابقة مع تغيير بسيط و هو أننا سنجعل سيرفرنا الابتدائي يعتمد كليا على السيرفر الثانوي و ذلك بأن نضغط باليمين على أيقونة السيرفر في نافذة DNS في السيرفر الابتدائي و نختار Properties ثم نتوجه الى تبويب Forwarders و هناك نضع إشارة على Do Not Use Recursion for This Domain كما في الصورة التالية:




الآن تستطيعون مسح ذاكرة المواقع المحفوظة و محاولة ترجمة أي عنوان لتروا أنه أصبح يعتمد كليا على السيرفر الثانوي و يمكن التأكد من ذلك بتعطيل خدمة DNS في السيرفر الثانوي و محاولة ترجمة أي عنوان من السيرفر الابتدائي ستجدون أنه يفشل في ذلك نظرا لاعتماده كليا على السيرفر الثانوي.

حتى الآن نكون قد عرفنا كيف ننشئ شبكة داخلية يكون لديها اسم مجال خاص بها و يخدمها مجموعة من سيرفرات DNS محمية عن الانترنت ، و قد عرفنا أنه إذا كان اسم المجال الذي اخترناه لشبكتنا الداخلية هو مثلا ibm.com و أننا أنشأنا سجل A في هذا النطاق و أسميناه www و أعطيناه عنوان IP لجهاز في شبكتنا الداخلية فإن أي مستخدم داخل شبكتنا يحاول الوصول الى الموقع www.ibm.com فإنه سينتهي به المطاف أمام موقع داخل شبكتنا المحلية و لن يتمكن مطلقا من الوصول الى موقع شركة IBM الحقيقي، حتى الآن هذا مفهوم ( أو هكذا أرجو ) ، و لكن ماذا لو كان لدينا شبكتان داخليتان أحدها تابع لنا و اسم مجالها كما افترضنا : ibm.com أما الشبكة الأخرى فلنقل أنها لصديق ما و قد اختار اسم adobe.com للمجال في شبكته الداخلية ، الآن نحن لسبب ما نريد أن يتمكن مستخدمو شبكتنا الداخلية من الوصول الى موقع الانترنت التابع للشبكة الداخلية الأخرى و الذي اسمه www.adobe.com و لكن ستواجهنا مشكلة و هي أننا عندما نحاول الوصول الى هذا الموقع يفتح لنا الموقع الحقيقي لشركة Adobe و ليس موقع صديقنا ، في هذه الحالة ما العمل؟

لدينا في الحقيقة 3 حلول سنستعرضها سويا كما يلي:

1- الحل الأول يتمثل في أن ننشئ لدينا في سيرفرات DNS نطاقا ثانويا secondary zone يكون باسم adobe.com و سيكون علينا في هذه الحالة تحديد عنوان سيرفر DNS الابتدائي لمجال adobe.com الوهمي و الذي سيكون تابعا لصديقنا و في نفس الوقت علينا أن نتوجه الى هذا السيرفر الابتدائي و نعلمه بعنوان السيرفر الذي يحتوي على النطاق الثانوي الذي أضفناه لدينا في شبكتنا،و في هذه الحالة فإنه عندما يقوم أحد المستخدمين لدينا بمحاولة الوصول الى موقع adobe.com فإن سيرفر DNS لدينا سيقوم أولا بالبحث في سجلاته عن هذا المجال قبل أن يتوجه لترجمته من الانترنت و حيث أنه سيجد لديه نطاق ثانوي بهذا الاسم فإنه سيعتمد عليه و لن يتوجه للبحث في الانترنت و عيب هذه الطريقة أن جميع سجلات السيرفر الابتدائي سيتم نسخها الى سيرفرنا الثانوي و نحن لا نريد أكثر من أن يتمكن مستخدمونا من فتح موقع الانترنت لصديقنا و لا نحتاج الى معرفة جميع سجلات شبكته لأن ذلك سيسبب ازدحاما على خط الاتصال بيننا و بينه نظرا لعملية نقل السجلات و تحديثها بين الشبكتين.

2- الحل الثاني شبيه بالحل الأول ، لكن بدلا من إنشاء نطاق ثانوي لدينا ، نقوم لدينا بإنشاء نطاق stub zone و هو كما عرفنا في السابق شبيه بالنطاق الثانوي إلا أنه لا ينسخ جميع السجلات و إنما فقط ينسخ سجلات NS و SOA و هذا سيكون كافيا لنا ليتمكن مستخدمونا من الوصول الى موقع الانترنت الخاص بصديقنا.

3- الحل الثالث يتمثل باستخدام ما يطلق عليه التوجيه المشروط Conditional Forwarding ، حيث نخبر سيرفر DNS لدينا أنه اذا احتاج لترجمة عنوان تابع للمجال adobe.com أن لا يذهب الى الانترنت بحثا عن الإجابة و إنما يتوجه الى عنوان سيرفر محدد يكون هو عنوان سيرفر DNS الخاص بصديقنا، و هذه الطريقة تتميز بسهولتها حيث لا تتطلب إنشاء أي نطاقات لدينا، كما أننا لسنا مضطرين لإعلام سيرفر DNS الخاص بصديقنا بأي شيء ، فكل ما فعلناه هو أننا أعلمنا سيرفر DNS لدينا أن يتوجه الى سيرفر صديقنا في حال تم طلب أي عنوان تابع للمجال الوهمي الذي يستخدمه صديقنا، و لعمل ذلك نتوجه الى نافذة DNS في السيرفر لدينا و نضغط باليمين على أيقونة السيرفر و نختار Properties ثم نتوجه الى تبويب Forwarders و هناك نضغط على New ليظهر مربع حوار كما في الصورة التالية:



و فيه ندخل اسم adobe.com ثم نضغط على OK لنعود الى صفحة Forwarders كما في الصورة التالية:



و فيها تحت DNS domain نضغط على adobe.com ثم في خانة Selected domain's forwarder IP address list: ندخل عنوان IP لسيرفر DNS الخاص بصديقنا ثم نضغط على Add ثم OK.

لنقوم الآن سويا بتطبيق فكرة التوجيه المشروط في شبكتنا حيث سنخبر سيرفر DNS الابتدائي لدينا أن يقوم بتوجيه ترجمة العناوين الى السيرفر ns2 فقط اذا تم طلب عنوان تابع للمجال nasa.gov ، حيث سنتوجه الى السيرفر ns2 و نقوم بإنشاء نطاقين أحدهما نسميه nasa.gov و الآخر نسميه ibm.com و نختبر متى يقوم سيرفرنا الابتدائي فعليا بتوجيه ترجمة العناوين الي سيرفر ns2 و لعمل ذلك ننفذ الخطوات التالية:

1- سنقوم أولا بحذف أي بيانات لأي Forwarder في سيرفرنا الابتدائي ، حيث سنتوجه الى نافذة DNS لدينا و نضغط باليمين على أيقونة السيرفر و نختار Properties ثم نتوجه الى تبويب Forwarders و هناك نضغط على All Other DNS Servers ثم نقوم بحذف أي عنوان IP يظهر في الأسفل حيث سنختار العنوان ثم نضغط على Remove لإزالته.
2- الآن في نفس تبويب Forwarders نضغط على New ثم ندخل nasa.gov ثم نضغط على OK لنعود الى صفحة Forwarders و فيها نضغط على nasa.gov ثم نقوم في خانة Selected domain's forwarder IP address list: بإدخال عنوان IP لسيرفر ns2 و هو 192.168.0.3 ثم نضغط على Add و نزيد عدد الثواني الى 15 ثانية مثلا و نزيل الإشارة عن Do Not Use Recursion for This Domain ثم نضغط على OK.
3- نقوم بمسح ذاكرة ترجمة العناوين كما فعلنا سابقا من نافذة DNS و من موجه الأوامر.
4- نتوجه الى سيرفر ns2 و نفتح نافذة DNS و هناك ننشئ نطاقين ابتدائيين أحدهما نسميه nasa.gov و الآخر ibm.com ثم ننشئ في الأول سجل A اسمه www و نعطيه العنوان الوهمي 192.168.0.100 و ننشئ في الثاني أيضا سجل A و نسميه www و نعطيه عنوانا وهميا آخر و ليكن 192.168.0.150.
5- نقوم بمحو ذاكرة ترجمة العناوين في هذا السيرفر أيضا.
6- نعود مرة أخرى الى السيرفر الابتدائي و نفتح موجه الأوامر و ننفذ الأمر nslookup ثم ندخل www.nasa.gov لنجد أننا سنحصل على العنوان 192.168.0.100.
7- ندخل الآن www.ibm.com و سنجد أننا حصلنا على العنوان الحقيقي لموقع شركة IBM و ليس العنوان الوهمي و ذلك لأننا أخبرنا سيرفر DNS لدينا أن يقوم بالتوجيه الى سيرفر ns2 فقط لترجمة العناوين الخاصة بالمجال nasa.gov دون غيره.

بهذا ننتهي من درس اليوم و نلتقي مع درس آخر ان شاء الله.

الكاتب: وليد عودة