السلام عليكم ورحمة الله وبركاته ........
طيب الله أوقاتكم أحبتي وبلغكم رمضان ..
ملاحظة:
التوزيعه هي :
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