شما برای مطالعه این مقاله فقط 6 دقیقه وقت نیاز دارید

install-dns-server-on-linux

نحوه نصب DNS Server در لینوکس {مرحله به مرحله}

5/5 - (1 امتیاز)

سیستم نام دامنه یا DNS مسئول تبدیل آدرس دامنه به آدرس آی پی است و به واسطه همین سیستم است که می توان به وبسایت ها و خدمات اینترنتی دسترسی پیدا کرد چون مرورگر ها بر اساس آدرس های آی پی کار می کنند و نام دامنه برای آنها غیرقابل شناسایی است. در واقع، شما با نصب DNS Server در لینوکس می خواهید بخش تبدیل آدرس دامنه – آی پی یا همان DNS resolution شبکه خود را مدیریت کنید. 

برای نصب DNS Server در لینوکس اول باید نرم افزار BIND را نصب کنید و سپس با استفاده از فایل های پیکربندی مربوط به آن، تنظیمات و تغییرات موردنیاز را در این سرور اعمال کرده و از این طریق، کارایی شبکه خود را ارتقا دهید.

مدیریت و کنترل DNS Server در لینوکس، گزینه های زیادی برای افزایش عملکرد و امنیت اتصالات ارائه می دهد که با بهره مندی از آنها می توانید محدودیت های مربوط به دی ان اس سرور ارائه شده توسط ISP را دور بزنید و اصول دسترسی و امنیتی خود را خودتان تعیین کنید.

پس اینکه می خواهید مراحل نصب DNS در لینوکس را یاد بگیرید، یک ایده کاملاً هوشمندانه است ولی برای اینکه که این کار را به درستی انجام دهید، حتماً باید با یک آموزش معتبر جلو بروید تا بعدا سیستم دی ان اس دچار اختلال نشود. نیازی به هیچگونه نگرانی در این زمینه نیست چون ما این آموزش را همراه با تمام نکات و جزئیات در اختیار شما عزیزان قرار می دهیم.

اگر هم برای راه اندازی سرویس یا اپلیکیشن دلخواه خود به یک سرور لینوکس نیاز دارید و دوست دارید در مدیریت تنظیمات دی ان اس آن آزاد باشید تا راه برای اعمال هر گونه تغییرات در عملکرد و امنیت آن باز باشد، می توانید به صفحه خرید سرور مجازی لینوکس (Linux VPS Hosting) مراجعه کنید و پلن دلخواه خود را سفارش دهید. 

دیگر وقت آن است مراحل نصب DNS Server در لینوکس را شروع کنیم:

مرحله ۱. دی ان اس سرور را نصب کنید.

اولین قدم برای این کار، نصب نرم افزار  BIND (Berkeley Internet Name Domain) است. این نرم افزار، رایج ترین و قابل اعتماد ترین سرور dns مورداستفاده در لینوکس است که به خاطر ویژگی هایی مثل پیاده سازی استانداردها، پشتیبانی از زیردامنه ها، پیکربندی امن و انعطاف پذیر و قابلیت مانیتورینگ به یکی از ابزارهای اصلی برای اجرای سرور DNS در سیستم های مبتنی بر لینوکس تبدیل شده است.

برای نصب پکیج مربوط به نرم افزار BIND، اول باید از نوع توزیع لینوکس خود مطلع شوید و سپس از مدیر بسته مناسب آن برای نصب BIND استفاده کنید.

برای اطلاع از توزیع لینوکس خود می توانید از دستور زیر استفاده کنید:

hostnamectl

بررسی توزیع لینوکس با hostnamectl

اگر بخش operating system را بررسی کنید، می توانید نوع توزیع لینوکس را ببینید.

بعد، متناسب با نوع توزیع لینوکس یکی از دستورات زیر را اجرا کنید تا نرم افزار bind نصب شود:

* دستور آپدیت مخازن سیستم را فراموش نکنید.

Debian / Ubuntu

sudo apt update

sudo apt-get install bind9

Redhat / CentOS / Fedora

sudo yum update

sudo yum install bind

Arch Linux

sudo pacman -Syu

sudo pacman -S bind

مرحله ۲. سرور Bind DNS را پیکربندی کنید.

بعد از نصب موفقیت آمیز سرور BIND، وقت آن است که این سرور را متناسب با نیازمندی های خود پیکربندی کنید. فایل پیکربندی اصلی این سرور در مسیر etc/bind/named.conf/ قرار دارد.

این فایل را با استفاده از ویرایشگر متن دلخواه خود باز کنید.

vim /etc/bind/named.conf

متغیرهای بخش options را به صورت زیر تغییر دهید:

ویرایش فایل پیکربندی بعد از نصب dns server در لینوکس

این تغییرات به صورت زیر هستند:

ویژگی recursion فعال شد تا سرور BIND اجازه بازگشتی کردن درخواست ها را داشته باشد تا در صورت پیدا نکردن نتیجه درخواست از یک سرور بتواند از سرورهای dns دیگر هم کمک بگیرد.

متغیر allow-recursion برای تعریف آی پی ها و زیرشبکه هایی است که اجازه دارند از سرور bind به عنوان یک سرور بازگشتی استفاده کنند.

متغیر listen-on با مقدار any این امکان را به سرور dns می دهد که به رابط های شبکه گوش دهد.

با ویژگی allow-transfer می توانید آدرس های آی پی که مجاز به درخواست اطلاعات از سرور dns هستند را مشخص کنید.

بخش forwarders هم محل وارد کردن آدرس dns سرور موردنظر که در این مثال، فقط آدرس dns اصلی و فرعی دی ان اس گوگل لحاظ شده است.

* بعد از اعمال تغییر در هر بخش از سرور DNS، آن را ریستارت کنید تا تغییرات اعمال شوند:

sudo service bind9 restart

مرحله ۳. Dns zone ها را ایجاد کنید.

DNS Zone، یک بخش از فضای نام DNS است که به عنوان منطقه DNS هم شناخته می شود. در واقع، یک زون ناحیه ای است که رکوردهای مربوط به نگاشت آدرس های دامنه با آدرس های آی پی را شامل می شود.

کلیک کنید  نصب دیتابیس MongoDB در لینوکس اوبونتو، دبیان و CentOS

برای پیکربندی و نصب dns server در لینوکس به صورت کارآمدتر، حتماً باید زون های dns موردنیاز را ایجاد کنید و رکوردهای مناسبی را برای هر کدام از آنها لحاظ کنید. سپس، آنها را در فایل اصلی بایند تعریف کنید.

اگر در دایرکتوری etc/bind/ یک فایل جدید به اسم مثلاً example ایجاد کنید، در واقع یک DNS Zone به اسم example ایجاد کرده اید که در مسیر etc/bind/db.example/ قرار دارد و برای زون بودن حتماً باید دارای محتوایی شبیه به نمونه زیر باشد:

$TTL 1d ; Time to Live
@ IN SOA ns1.example.com. admin.example.com. (
    2024010101 ; Serial
    1d ; Refresh
    2h ; Retry
    4w ; Expire
    1d ; Minimum TTL
)
; Name Server Information
@ IN NS ns1.example.com.
; A Records (IPv4 addresses)
ns1 IN A 192.168.1.10
www IN A 192.168.1.20
mail IN A 192.168.1.30

TTL : حداکثر زمانی که یک رکورد DNS اعتبار دارد.

IN SOA: اطلاعات منبع و تنظیمات موردنظر برای zone

IN NS: تعیین nameserver اصلی

ns1 IN A 192.168.1.10: تعیین آدرس آی پی برای nameserver اصلی

www IN A 192.168.1.20: تعیین آدرس آی پی زیردامنه www.example.com

mail IN A 192.168.1.30: تعیین آدرس آی پی زیردامنه مربوط به سرور ایمیل یا همان mail.example.com

بعد از اینکه فایل zone موردنظر را ایجاد کردید، باید آن را در فایل پیکربندی اصلی تعریف کنید. برای این کار، ابتدا فایل etc/bind/named.conf/ را باز کنید.

سپس، زون موردنظر را با یک اسم منحصر به فرد و غیرتکراری به صورت زیر در این فایل لحاظ کنید:

zone "example.com" IN{
    type master;
    file "/etc/bind/db.example";
};

example.com اسم دامنه است که باید آن را با دامنه موردنظر خود جایگزین کنید.

نوع master نشاندهنده این است که این زون، زون اصلی سرور BIND است.

متغیر file هم مسیر فایل پیکربندی zone را نشان می دهد.

مرحله ۴. DNS Resolverها را آپدیت کنید.

بعد از اینکه zone های موردنظر خود را در فایل اصلی تعریف کردید، دستور زیر را اجرا کنید تا از درست بودن پیکربندی های BIND مطمئن شوید.

named-checkconf /etc/bind/named.conf

اگر نتیجه این دستور موفقیت آمیز بود، تغییرات جدید را ذخیره و اعمال کنید. بعد از اینکه فایل را ذخیره کردید و آن را بستید، دستور زیر را اجرا کنید تا سرور DNS مجدداً راه اندازی شود:

sudo systemctl restart bind9

مرحله ۵. سرور dns را تست کنید.

اکنون که پروسه نصب bind و پیکربندی های اولیه را با موفقیت پشت سر گذاشتید، می توانید سرور خود را تست کنید. برای اجرای کوئری dns و بررسی پاسخ آنها می توانید از ابزارهایی مثل dig و nslookup استفاده کنید. 

dig ubuntu.com

اجرای دستور dig

این دستور تمام اطلاعات لازم مثل آدرس آی پی و زمان کوئری و پاسخ گویی را در اختیار شما قرار می دهد.

راه اندازی کش سرور dns

وقتی یک سرور dns برای اولین بار یک آدرس را ترجمه می کند و به درخواست پاسخ می دهد، زمان نسبتاً بیشتری را صرف می کند ولی اگر قابلیت کش را راه اندازی کنید، این زمان زیاد فقط برای اولین درخواست جدید صرف می شود و دفعات بعدی که درخواست ترجمه همان آدرس انجام شود، برای پاسخ گویی به آن از حافظه کش استفاده می شود که حاصل داده های درخواست های قبلی است و نیازی به ترجمه مجدد آدرس توسط سرور نیست. این حافظه به صورت دوره ای بروز می شود تا از پتانسیل لازم برای پاسخگویی سریع تر به تمام درخواست ها بهره مند باشد.

تنها کاری که باید برای پیکربندی Cache NameServer انجام دهید این است که آدرس سرور dns موردنظر خود مثل گوگل یا opendns را به فایل etc/bind/named.conf.options/ اضافه کنید.

پس فایل را باز کنید:

vim /etc/bind/named.conf.options

بخش forwarders را پیدا کنید و آدرس دی ان اس گوگل را به صورت زیر به این بخش اضافه کنید:

forwarders {

    8.8.8.8;

    8.8.4.4;

};

بعد از تغییرات بالا، فایل را ذخیره کرده و ببندید. 

در آخر، سرور dns را ریستارت کنید تا این تغییرات اعمال شود.

اولین اجرای dig برای آدرس ubuntu.com با زمان 1323msecقبل از راه اندازی کش سرور

دومین اجرای dig برای آدرس ubuntu.com با زمان 3msecبعد از راه اندازی کش سرور

سخن آخر

با نصب dns server در لینوکس می توانید کنترل پروسه DNS resolution را به دست بگیرید و کارایی شبکه خود را ارتقا دهید. با طی مراحلی که در مقاله بررسی کردیم، به راحتی می توانید از عهده نصب و پیکربندی اولیه سرور دی ان اس bind بربیایید. البته، توجه داشته باشید که علاوه بر این پیکربندی ها، قابلیت های دیگری هم وجود دارند که می توانید متناسب با نیازهای خود در تنظیمات سرور dns اعمال کنید.

از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید