سیستم سلسله مراتبی که میزبان (host) موجود در اینترنت از طریق آن صاحب نشانی نام حوزه مثل www.subnet.ir میشوند و هم صاحب ip address مثل ۱۹۲٫۱۷۳٫۵٫۳
نشانی نام حوزه توسط اشخاص به کار برده میشود و به طور خودکار به ip address عددی تبدیل میشود.این نشانی توسط نرم افزار تعیین کننده مسیر بسته ها مورد استفاده قرار میگیرد
شماره پورت ۵۳ به DNS تعلق گرفته است

اجزای تشکیل دهنده DNS

۱٫Logical components-DNS name space
۲٫Physical components-ZOnes

DNS name space
ِِDNS name space ساختار و سلسله مراتب استفاده از اسم domain را مشخص میکند

Zones
zone ها یک شی هستند که پیکربندی DNS را شامل میشوند
DNS ساختار
dns ساختار

انواع مختلف zone عبارتند از

۱٫Forward lookup zone
۲٫Reverse lookup zone

Forward lookup zone
این zone اطلاعات  تبدیل اسم domain به ip address را در بردارد
به یاد داشته باشید آدرسی مثل www.subnet.ir را (FQDN(Fully Qualified Domain Name میگویم که subnet.ir اسم دومین و www اسم host میباشد.پس به تعبیری دیگر forward lookup zone عمل تبدیل FQDN را به IP بر عهده دارد
host recod ها در forward lookup zone قرار دارند
host recod ها به منظور ذخیره forward lookup zone ساخته میشود

Reverse lookup zone
این zone حاوی ip address برای host و یک pointer(اشاره گر) برای host record ها در forward lookup zone میباشد

هر zone میتواند به انواع مختلفی پیکربندی شود

۱٫Primary zone
۲٫secondary zone
۳٫stub zone

Primary zone(Default zone
اولین zone که درست میکنیم primary است

Secondary zone
یک نسخه مشابه از primary zone است که به دلیل back up و load balancing(توزیع بار کاری ) ایجاد میشود

Stub zone
name server record ها را در بردارد

قبل از اینکه به سراغ پیکربندی DNS برویم لازم است که با بعضی اصطلاحات و تنظیمات آشنا شوید

Daemon
فرایندی که در پس زمینه است و از سرویسی که در سیستم در جریان هست را پشتیبانی میکند و تنها در صورت نیاز فعال میشود

daemon که برای DNS استفاده میشود named نامیده میشود

BIND
Berkeley Internet Names Domain, یک سرویس دهنده برای نام zone که در ابتدا در دانشگاه کالیفرنیا برای نگارش BSD یونیکس نوشته شد,اما در حال حاضر برای بیشتر نگارشهای یونیکس در دسترس است.وظیفه این سرویس دهنده ترجمه نام zone از حالت قابل درک برای انسان به نشانیهای عددی IP است که بطور گسترده در سرویس دهنده های اینترنت مورد استفاده قرار میگیرد

از فرمان زیر به منظور چک کردن اینکه package نصب شده است یا خیر استفاده میکنیم

#rpm -qa bind*

از فرمان زیر به منظوراینکه آیا DNS در حالت اجرا هست یا خیر استفاده میکنیم

#service named status

بطور مثال قصد داریم DNS رابرای سایتی با نام www.pooya.com تنظیم کنیم
همانطور که گفته شده pooya.com اسم دومین و www اسم host میباشد.ابتدا باید domain name و host name را برای سیستمان از طریق مسیر زیر تعیین کنیم
برای تعیین host name در مسیر زیر تغییرات را انجام میدهیم

#vi /etc/sysconfig/network
#HOSTNAME=www

از مسیر زیر برای تعیین اسم دومین استفاده میکنیم

#vi /etc/hosts
۱۹۲٫۱۶۸٫۱۰٫۱              pooya.com     www

بخاطرداشته باشید ip 192.168.10.1 آدرس DNS ما میباشد و و پس از تغییرات باید سیستم را با فرمان init 6 دوباره راه اندازی کنیم

حال به سراغ پیکربندی named.conf که در دایرکتوری etc/named.conf قرار دارد که محتویات اصلی پیکربندی DNS را شامل میشود میریم.named.conf به BIND میگوید کجا میتواند پیکربندی فایلهای zone را پیدا کند
این فایل معمولا دو حوزه, forward zone که مشخص کننده domain به IP و reverse zone که مشخص کننده IP address به domain است را شامل میشود

جهت پیکربندی named.conf از ادیتور vi طبق فرمان زیر استفاده میکنیم

#vi /etc/named.conf

در این فایل باید دوچیز را تغییر دهیم اولی وارد کردن اسم دومین و دیگری ip مورد نظر ما میباشد
توجه کنید که باید network ID را به صورت برعکس وارد کنیم.یعنی اگر ip ما ۱۹۲٫۱۶۸٫۱۰٫۱ است باید ۱۰٫۱۶۸٫۱۹۲ را وارد کنیم
در فایل مورد نظر دنبال} zone “local.host” IN میگردیم و آن را با توجه به نام دومینمان به صورت زیر تغییر میدهیم

zone “pooya.com” IN {
type master;
file “localhost.zone”;
allow-update { none; };
};

سپس دنبال} zone”0.0.127.in-addr.arpa” IN  میگردیم و آن را با توجه به ip مورد نظر تغییر میدهیم

zone “10.168.192.in-addr.arpa” IN {
type master;
file “named.local”;
allow-update { none; };
};

اکنون به سراغ پیکربندی forward lookup zone که وظیفه تحلیل اسم دومین به IP را دارد میپردازیم.این پیکربندی را میتوانید با ادیتور vi در مسیری که زیر مشاهده میکنید انجام دهید

#vi /var/named/chroot/var/named/localhost.zone

خط ) IN     SOA  @  root       @ به شکل زیر تغییر میدهیم

$TTL  ۳D
@                  IN       SOA                      pooya.com.   root.pooya.com. (

همچنیین تغییرات زیر را میدهیم

IN      NS    rooman.com.
www                    IN       A     ۱۹۲٫۱۶۸٫۱۰٫۱
pooya.com          IN       A      ۱۹۲٫۱۶۸٫۱۰٫۱

حال به توضیحی در مورد موارد بالا مبپردازیم
TTL به معنی Time To Live است و نشان میدهد که اطلاعات در این DNS server سه روز(۳D) نگهداشته میشود
SOA(Start Of Authority دیباچه ای برای همه فایلهای zone است.SOA مدیریت عمومی و کنترل اطلاعات درباره domain را شامل میشود
NS به معنی Name Server است
A که به مفهوم host record است به منظور ذخیره forward lookup zones است

اکنون به پیکربندی revers lookup zone از طریق مسیر زیر میپردازیم

#vi /var/named/chroot/var/named/named.local

حال خط  ) IN  SOA      localhost.root.  local host   @ را طبق خط زیر تغییر میدهیم

@      IN     SOA              pooya.com.      root.pooya.com. (

همچنین تغییرات زیر را میدهیم

IN     NS           pooya.com.
۱                      IN     PTR        pooya.com.

PTR به مفهوم POINTER میباشد و عدد ۱ که در ابتدای خط است با توجه به ip 192.168.10.1 است و با توجه به IP مورد نظرمان قابل تغییر است

دراین قسمت پیکربندی DNS به پایان رسید فقط لازم است با فرمان زیر سرویسDNS را restart میکنیم

#service named restart

اکنون با فرمانهای زیر درست تنظیم شدن DNS را امتحام میکنیم و اگر خروجی NOERROR را مشاهده کردیم نشانگر درست پیکربندی شدن این سرویس میباشد

#dig www.pooya.com
#dig pooya.com
#dig -x 192.168.10.1