السلام عليكم ورحمة الله وبركاته

اقوم بتركيب الحزمة bind و caching-nameserver كتركيب اي برنامج ثم اقوم بتشغيل الخدمة named بالاوامر

كود:
service named start
 chkconfig named on
تحرير ملف resolv.conf واجعل النيم سيرفر يشير لجهازي 127.0.0.1
كود:
nameserver 127.0.0.1
ملف الاعداد named.conf يعطينا تحكم كامل بالخدمة ، نحدد من خلاله مكان سجلات الزون او ملفات الزون ، ونحدد نوع الزون لان هناك نوعين وكمان نقدر من خلاله توجية الطلبات لسيرفر اخر ليكون سيرفري للكاش فقط ، لاضافة موقع ما لدينا يجب ان نعرف عنه في ملف الاعداد ونعرف عن اسم ملف الزون الخاص بهذا الموقع كما في المثال التالي
كود:
zone "example.com" IN {
 	type master;
 	file "example.com.zone";
 };
لاحظ نوع الزون master وهناك نوع اخر يسمى slave وظيفته يأخذ نسخة من الـ master ويحتفظ فيها ونستطيع تعريفه كما يلي
كود:
zone "example.com" IN {
 	type slave;
 	masters { 10.0.0.5; };
 	file "example.com.zone";
 };
لاحظ اننا قمنا بتحديد الـ master بالنسبة للـ slave


واذا اردنا السماح للشبكة المحلية من الاستعلام نستطيع بكتابة التالي

كود:
acl localnet { 10.0.0.0/24; };
 options {
 	allow-query { localnet; };
 };
باعتبار ان 10.0.0.0/24 هو مجال الشبكة لدي.

وان اردت ان يكون سيرفر كاش فقط اقوم بكتابة مايلي داخل بلوك options العام في الملف
كود:
options {
 forwarders { 10.0.0.5; };
 forward only;
 };
على اعتبار اني وجهت الطلبات للسيرفر 10.0.0.5

هذا مايخص ملف الاعداد العام للخدمة وكل موقع اريد ان اضيفه يجب ان اضع معلوماته هنا ، علما انه يمكنك عمل كل مافي الموضوع من خلال ضغطة زر بلوحة التحكم سي بنل او غيرها ، ان كنت غير مهتم بالمعرفة لا انصحك بتضييع وقتك بالقراءة هنا

ولفحص ملف الاعداد والتاكد من خلوه من الاخطاء اكتب الامر التالي
[
كود:
root@ex4mple ~]# named-checkconf
 [root@ex4mple ~]#

ملف الزون :
علينا ان نفهم السيناريو كما يجب ، زبدة الخدمة هو ملف الزون الموجود في المجلد /var/named ، بالنسبة لسيرفرات الاستضافة ليس عليها التعمق بالخيارات ، فكل ماعليها الاشارة الى ان هذا النطاق مكانه هنا.

نعتمد هنا في ملف الزون على عدة اشياء ويجب علينا ربطها ببعض ، أقل مافيها هو ربط دومين بعنوان اي بي عبر خيار توفره لنا الخدمة ، وخيار آخر يشير الى عنوان الدي ان اس ، وخيارات للتوقيت والكاش ، وخيارات لتوزيع الضغط على عدة سيرفرات ، يعني الدومين الواحد يشير الى اكثر من سيرفر ، وخيار لتحديد مكان خادم البريد الالكتروني ، وامور كثيرة اخرى

طريقة الربط في ملف الزون :
كود:
Domain  -   Class  -  Type   -  Rdata
النطاق Domain نكتبه بأول السطر أو نضع @ لتشير الى نفس الدومين في الملف
الكلاس Class عادة تكون IN
النوع Type هناك عدة انواع ربط وستكون محور حديثنا
اخر خيار Rdata ، المربوط فيه يعني عنوان السيرفر الموجه له هذا الدومين

مثالين سريعين
كود:
@		   IN	A	10.0.0.3
 domain.com	 IN	A		10.0.0.3
من اليسار لليمين انظر لأول خانة بها علامة @ التي تشير الى نفس الدومين وفي الخانة الثانية الكلاس IN وفي الثالثه نوع الربط A وفي الرابعه أشرت الى سيرفري المحلي 10.0.0.3

ساوضح الان بعض انواع الربط الشهيره

SAO : بداية التحقق + معلومات التوقيت
NS : لتعريف النيم سيرفر
A : ربط الدومين بعنوان اي بي
CNAME : لتعدد الاسماء
MX : ربط البريد الاكتروني

الملف يجب ان يبدأ بـ TTL كمايلي
كود:
$TTL	86400
هذا يشير الى اطول مدة تبقى فيه هذه البيانات صحيحه بعد الارسال ولا يهمنا كثيرا


سنأخذ مثال على كل نوع ، مع شرح بسيط ان امكن ، اول نوع SAO :

كود:
@		IN SOA	@	   root (
 					42		; serial (d. adams)
 					3H		; refresh
 					15M		; retry
 					1W		; expiry
 					1D )		; minimum
لا يعني لنا تغيير اي شي هنا ، ان اردت وضع ايميلك مكان root لا مانع

ثم نعرف النيم سيرفر بالنوع الثاني NS :
كود:
@			IN NS		ns.example.com
 @		IN NS		ns2.example.com
ثم نربط الدومين بالاي بي المحلي لدينا بالنوع الثالث A :
كود:
@			 IN A			10.0.0.3
 @		 IN A		127.0.0.1
طبعا كل هذه الاي بيين تشير الى جهازي المحلي ، الاول في الشبكة المحلية والاخر لواجهة loopback

واقدر اربط اي اسم لاي جهاز كما يلي
كود:
station1.example.com.	A	10.0.0.1
 station2		A	10.0.0.2
 station3		A	10.0.0.3
 server1			A	10.0.0.2
 ns			A	10.0.0.2
 ns2			A	10.0.0.4

لاحظ ان الجهاز 10.0.0.2 له ثلاث اسماء هي station2 و server1 و ns ، ونقدر نعمل هذا باستخدام الخيار الخامس CNAME :
كود:
 station2	  IN CNAME 	server1.example.com.
لاحظ لو كتبت الدومين كامل يجب ان ينتهي بنقطه ( . ) للدلالة على ان هذا الاسم بشكل كامل

اما عند كتابه station2 فقط ، فان الخدمة ستقرأها station2.example.com

هذه من الامور النحوية التي يجب مراعاتها في كتابة ملف الزون

اما الخيار الاخير MX :
كود:
 example.com.	IN MX	10 station2.example.com
 @		IN MX 	20 10.0.0.3
فهو لربط رسائل البريد الالكتروني لسيرفر اخر او لنفس الجهاز كمافي السطر الثاني


بالنسبة لسيرفرات الاستضافة فهي تشير لنفسها دائما ، لانها هي من تقدم خدمة البريد والاف تي بي والويب ، فليست بحاجه لتشير لخوادم اخرى

لكن ماذا لو كان لدينا موقع من العيار الثقيل وماتشيله الا خمس سيرفرات ؟

الحل هو ان اجعل www يشير الى خمس سيرفرات
كود:
www 0 IN A 10.0.0.1
 www 0 IN A 10.0.0.2
 www 0 IN A 10.0.0.3
 www 0 IN A 10.0.0.4
 www 0 IN A 10.0.0.5
وبكذا راح يكون فيه توازن بالطلبات على السيرفرات الخمس

بعد فترة احتاج هذا الموقع لثلاث سيرفرات اخرى خاصه فقط برسائل البريد
كود:
mail IN A 10.0.0.6
 mail1 IN A 10.0.0.7
 mail2 IN A 10.0.0.8
اربط الاسماء باي بي السيرفرات الثلاث
كود:
@ IN MX 5 mail.example.com.
 @ IN MX 8 mail1.example.com.
 @ IN MX 10 mai2.example.com
.
ثم اجعل هذه الاسماء هي خادم البريد باستخدام MX .

وبالنسبة للترقيم 5 - 8 - 10 هذا لتحديد اولوية الطلب ، لو كان الاول مشغول يستخدم الاخر وهكذا


ماذا لو أردنا ان نجعل صب دومين يشير الى سيرفر آخر على سبيل المثال ، موقع
example.com
له صب دومين وليكن
support.example.com
انا اريد هذا الصب دومين أن يحول على سيرفر آخر يحمل الاي بي 10.0.0.5 على سبيل المثال

سأحتاج اولا ان اعمل ملف الزون الخاص بالصب دومين ( support.example.com) على السيرفر الجديد 10.0.0.5

بعد عملة أقوم بتحرير ملف الزون الخاص بـ ( example.com ) على السيرفر الحالي واكتب فيه مايلي:

اولا / اقوم بتعريف النيم سيرفر للصب دومين باستخدام NS :
كود:
support.example.com.  IN NS ns.support.example.com.
بعدها اقوم بربط ( ns.support ) بالاي بي للسيرفر الجديد 10.0.0.5 باستخدام خيار الربط A :

كود:
ns.support	IN A	10.0.0.5

اخيراً لفحص ملف الزون والتأكد من خلوه من الاخطاء استخدم الامر named-checkzone على النحو التالي
كود:
 [root@ex4mple ~]# named-checkzone example.com /var/named/example.com.zone
 zone example.com/IN: loaded serial 42
 OK
 [root@ex4mple ~]#
وسلامتكم

مرجع مفيد