الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إعداد ملفات خدمة ال Dns يدوياً .. !

بدأه Dr.Pain في 20 أغسطس 2008 · 3 رد · 2,178 مشاهدة · في نظام تشغيل Unix & Linux
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

طيب الله أوقاتكم أحبتي وبلغكم رمضان ..

ملاحظة:

التوزيعه هي :

CentOS release 5 (Final)

سوف لن أخوض في شرح ماهية وظيفة الملفات الخاصة بخدمة ال Bind وذلك على أساس أنك تعرف وظيفة تلك الملفات سلفاً .

منذ فترة وانا أعاني من قلة مساحة القرص وفي الفترة الأخيرة بلغت المساحة المتبقيه 0%

لذا قمت بزيادة مساحة القرص الصلب ومن ثم إعادة تنصيب النظام مرة أخرى .

وعندما وددت التعامل مرة أخرى مع خدمة ال DNS Bind وجدت أن الملفات الخاصة بالخدمة غير موجودة !

لذا أول ما خطر ببالي هو الأداة المسماة :

system-config-bind

حيث أن وظيفة الأداة السابقة هي إعداد كل الملفات المطلوبه للعمل مع خدمة ال Bind .

ولكنني قلت لنفسي ماذا لو لم تكن تلك الأداة موجودة أو ماذا لو لم تكن الواجهه الرسومية تعمل !!

حسناً اليك ما قمت بفعله لحل المعضلة السابقة .. !!

أهم ملفين لخدمة ال Bind هما :

named.conf
named.root

وتجدهما تحت المسار التالي :

[root@LinuxServer /]# ls /var/named/chroot/etc/
localtime  named.conf  rndc.key
[root@LinuxServer /]# ls /var/named/chroot/var/named/
data  linuxac.local.zone  named.root  slaves
[root@LinuxServer /]#

ولكن يا ترى من أين أحصل على هاذين الملفين وهما غير موجودين أصلاً .. ؟

تستطيع الحصول عليهما من نظامك من المسار التالي :

[root@LinuxServer /]# ls /usr/share/doc/bind-9.3.3/sample/etc/
named.conf  named.root.hints  rndc.conf
[root@LinuxServer /]# ls /usr/share/doc/bind-9.3.3/sample/var/named/
data			  localhost.zone	   my.internal.zone.db  named.ip6.local  named.root  slaves
localdomain.zone  my.external.zone.db  named.broadcast	  named.local	  named.zero
[root@LinuxServer /]#

الان فقط قم بنسخ الملفات كالتالي :

[root@LinuxServer /]# cp /usr/share/doc/bind-9.3.3/sample/etc/named.conf /var/named/chroot/etc/
[root@LinuxServer /]# cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named/

الان اليك شكل الملف المسمى named.conf :

//
// Sample named.conf BIND DNS server 'named' configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrator's Reference Manual (ARM) for details, in:
//   file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options
{
		/* make named use port 53 for the source of all queries, to allow
		 */
		query-source	port 53;
		query-source-v6 port 53;

		// Put files that named is allowed to write in the data/ directory:
		directory "/var/named"; // the default
		dump-file			   "data/cache_dump.db";
		statistics-file		 "data/named_stats.txt";
		memstatistics-file	  "data/named_mem_stats.txt";

};
logging
{
/*	  If you want to enable debugging, eg. using the 'rndc trace' command,
 *	  named will try to write the 'named.run' file in the $directory (/var/named).
 *	  By default, SELinux policy does not allow named to modify the /var/named directory,
 *	  so put the default debug log file in data/ :
 */
		channel default_debug {
				file "data/named.run";
				severity dynamic;
		};
};
//
// All BIND 9 zones are in a "view", which allow different zones to be served
// to different types of client addresses, and for options to be set for groups
// of zones.
//
// By default, if named.conf contains no "view" clauses, all zones are in the
// "default" view, which matches all clients.
//
// If named.conf contains any "view" clause, then all zones MUST be in a view;
// so it is recommended to start off using views to avoid having to restructure
// your configuration files in the future.
//
view "localhost_resolver"
{
/* This view sets up named to be a localhost resolver ( caching only nameserver ).
 * If all you want is a caching-only nameserver, then you need only define this view:
 */
		match-clients		   { localhost; };
		match-destinations	  { localhost; };
		recursion yes;
		# all views must contain the root hints zone:
		include "/etc/named.root.hints";

		/* these are zones that contain definitions for all the localhost
		 * names and addresses, as recommended in RFC1912 - these names should
		 * ONLY be served to localhost clients:
		 */
		include "/etc/named.rfc1912.zones";
};
view "internal"
{
/* This view will contain zones you want to serve only to "internal" clients
   that connect via your directly attached LAN interfaces - "localnets" .
 */
		match-clients		   { localnets; };
		match-destinations	  { localnets; };
		recursion yes;
		// all views must contain the root hints zone:
		include "/etc/named.root.hints";

		// include "named.rfc1912.zones";
		// you should not serve your rfc1912 names to non-localhost clients.


		// These are your "authoritative" internal zones, and would probably
		// also be included in the "localhost_resolver" view above :

		zone "my.internal.zone" {
				type master;
				file "my.internal.zone.db";
		};
		zone "my.slave.internal.zone" {
				type slave;
				file "slaves/my.slave.internal.zone.db";
				masters { /* put master nameserver IPs here */ 127.0.0.1; };
		};
		zone "my.ddns.internal.zone" {
				type master;
				allow-update { key ddns_key; };
				file "slaves/my.ddns.internal.zone.db";
				// put dynamically updateable zones in the slaves/ directory so named can update$
		};
};
key ddns_key
{
		algorithm hmac-md5;
		secret "use /usr/sbin/dns-keygen to generate TSIG keys";
};
  GNU nano 1.3.12	   File: /usr/share/doc/bind-9.3.3/sample/etc/named.conf					

view	"external"
{
/* This view will contain zones you want to serve only to "external" clients
 * that have addresses that are not on your directly attached LAN interface subnets:
 */
		match-clients		   { !localnets; !localhost; };
		match-destinations	  { !localnets; !localhost; };

		recursion no;
		// you'd probably want to deny recursion to external clients, so you don't
		// end up providing free DNS service to all takers

		// all views must contain the root hints zone:
		include "/etc/named.root.hints";

		// These are your "authoritative" external zones, and would probably
		// contain entries for just your web and mail servers:

		zone "my.external.zone" {
				type master;
				file "my.external.zone.db";
		};
};

فقط قم بالتخلص من كل ما سبق مع إبقاء القسم المسمى options وقم بإضافة ال Zone الخاصة بال Root Hints Servers وللتجربة انا قمت بإضافة zone أسمها linuxac.local :

//
// Sample named.conf BIND DNS server 'named' configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrator's Reference Manual (ARM) for details, in:
//   file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options {
		/* make named use port 53 for the source of all queries, to allow
		 * firewalls to block all ports except 53:
		 */
//
// Sample named.conf BIND DNS server 'named' configuration file
// for the Red Hat BIND distribution.
//
// See the BIND Administrator's Reference Manual (ARM) for details, in:
//   file:///usr/share/doc/bind-*/arm/Bv9ARM.html
// Also see the BIND Configuration GUI : /usr/bin/system-config-bind and
// its manual.
//
options {
		/* make named use port 53 for the source of all queries, to allow
		 * firewalls to block all ports except 53:
		 */
  GNU nano 1.3.12			File: /var/named/chroot/etc/named.conf							  

		query-source	port 53;
//	  query-source-v6 port 53;

		// Put files that named is allowed to write in the data/ directory:
		directory "/var/named"; // the default
		dump-file			   "data/cache_dump.db";
		statistics-file		 "data/named_stats.txt";
		memstatistics-file	  "data/named_mem_stats.txt";

};

		zone "."  {
						type hint;
						file "named.root";
				};

		zone "linuxac.local" {

						type master;
						file "linuxac.local.zone";

};

ومن أجل أنشاء ملف ال zone المسماة linuxac.local سوف نقوم بعملية النسخ الصغيرة التالية :

[root@LinuxServer /]# cp /usr/share/doc/bind-9.3.3/sample/var/named/localhost.zone /var/named/chroot/var/named/linuxac.local.zone

ومن ثم سوق نعدل ملف ال zone المسماة linuxac.local والموجود هنا :

[root@LinuxServer /]# ls /var/named/chroot/var/named/
data  linuxac.local.zone  named.root  slaves
[root@LinuxServer /]#

بحيث يصبح كالتالي :

$TTL	86400
@			   IN SOA  @	   root (
										42			 ; serial (d. adams)
										3H			 ; refresh
										15M			; retry
										1W			 ; expiry
										1D )		   ; minimum

				IN NS		   @
linuxac.local.  IN A			192.168.0.100
www			 IN A			192.168.0.100

وذلك على إعتبار أن ال IP الخاص بي هو :

192.168.0.100

والان الخطوة ما قبل الاخيرة وهي التعديل على الملف :

/etc/resolv.conf

وذلك حتى يكون جهازنا هو نفسه ال DNS الخاص بنا :

nameserver 192.168.0.100

الان سم الله و قم بتشغيل الخدمة :

[root@LinuxServer /]# service named start
Starting named: [  OK  ]

وللتأكد فقط :

[root@LinuxServer /]# nslookup linuxac.local
Server:		 192.168.0.100
Address:		192.168.0.100#53

Name:   linuxac.local
Address: 192.168.0.100

[root@LinuxServer /]# nslookup www.linuxac.local
Server:		 192.168.0.100
Address:		192.168.0.100#53

Name:   www.linuxac.local
Address: 192.168.0.100

وفي الأخير أرجوا أن أكون قد أفدتكم ورمضان كريم مقدماً وفي أمان الله ..

Dr.Pain

#2

Amazing ...

شكرا لك Pain :)

It's hard to stay in such ridiculous situation

#3

السلام عليكم

جزاك الله خيرا على الشرح

اقتباس
منذ فترة وانا أعاني من قلة مساحة القرص وفي الفترة الأخيرة بلغت المساحة المتبقيه 0%

لذا قمت بزيادة مساحة القرص الصلب ومن ثم إعادة تنصيب النظام مرة أخرى .

لماذا لا تستخدم LVM ، حيث أنك تستطيع أن تزيد في حجم partition بدون إزالة النظام ، فقط من خلال أوامر معدودة ، أو من خلال الواجهة الرسومية الخاصة ب lvm

اقتباس
ولكن يا ترى من أين أحصل على هاذين الملفين وهما غير موجودين أصلاً .. ؟

بالنسبة لل centos توجد بها package اسمها ، caching-nameserver بها الملفات التالية:

/etc/named.caching-nameserver.conf
/etc/named.conf
/etc/named.rfc1912.zones
/usr/share/doc/caching-nameserver-9.3.4
/usr/share/doc/caching-nameserver-9.3.4/Copyright
/usr/share/doc/caching-nameserver-9.3.4/rfc1912.txt
/var/named/chroot/etc/named.caching-nameserver.conf
/var/named/chroot/etc/named.conf
/var/named/chroot/etc/named.rfc1912.zones
/var/named/chroot/var/named/localdomain.zone
/var/named/chroot/var/named/localhost.zone
/var/named/chroot/var/named/named.broadcast
/var/named/chroot/var/named/named.ca
/var/named/chroot/var/named/named.ip6.local
/var/named/chroot/var/named/named.local
/var/named/chroot/var/named/named.zero
/var/named/localdomain.zone
/var/named/localhost.zone
/var/named/named.broadcast
/var/named/named.ca
/var/named/named.ip6.local
/var/named/named.local
/var/named/named.zero

فأنت لست محتاج لعمل ما قمت به من نسخ للملفات

cp /usr/share/doc/bind-9.3.3/sample/etc/named.conf /var/named/chroot/etc/

cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named

، لأن كل شيء موجود في package السابق ذكرها.

أرجو أن الأمر قد اتضح الآن.

System Engineer

Red Hat Certified Engineer

Red Hat Certificate Number

805010381752078

#4

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

جمعة مباركة يا شباب ..

هلا كيفك أخي محمد أتمنى أن تكون بالف صحة وعافية يا أخي الحبيب :wub:

برق حبيبي أضافتك أكثر من رائعه B) .

أنار الله طريقك يا برق :happy: .

وهذا ناتج التنصيب :

[root@LinuxServer named]# yum install caching-nameserver

Dependencies Resolved
=============================================================================
 Package				 Arch	   Version		  Repository		Size 
=============================================================================
Installing:
 caching-nameserver	  i386	   30:9.3.4-6.0.2.P1.el5_2  updates			58 k
Updating for dependencies:
 bind					i386	   30:9.3.4-6.0.2.P1.el5_2  updates		   958 k
 bind-chroot			 i386	   30:9.3.4-6.0.2.P1.el5_2  updates			41 k
 bind-libs			   i386	   30:9.3.4-6.0.2.P1.el5_2  updates		   846 k
 bind-utils			  i386	   30:9.3.4-6.0.2.P1.el5_2  updates		   167 k

Transaction Summary
=============================================================================
Install	  1 Package(s)		 
Update	   4 Package(s)		 
Remove	   0 Package(s)		 

Total download size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): bind-9.3.4-6.0.2.P 100% |=========================| 958 kB	01:08	 
(2/5): bind-utils-9.3.4-6 100% |=========================| 167 kB	00:12	 
(3/5): caching-nameserver 100% |=========================|  58 kB	00:05	 
(4/5): bind-chroot-9.3.4- 100% |=========================|  41 kB	00:04	 
(5/5): bind-libs-9.3.4-6. 100% |=========================| 846 kB	00:52

في أمان الله ..

Dr.Pain

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…