راه اندازی DNS Server بر روی Raspberry Pi

راه اندازی DNS سرور بر روی برد رزبری پای

 

در این آموزش، مراحل راه اندازی سرور DNS در Raspberry Pi را با هم انجام می دهیم و مرحله به مرحله با هم جلو می رویم.

سرور DNS کار  ترجمه نام یک دامنه مانند pishronic.ir را به مقصد نهایی خود انجام می دهد. این همان اقدامی است که به تبدیل آدرس های IP مانند “۲۱۰.۳۴۵.۲۳۱.۳۴۵” به سیستم نام دامنه کاربر پسندتر و راحت تر صورت می گیرد و ما در Browser های خود تنها نام دامنه را مشاهده می کنیم.

با راه اندازی یک سرور DNS در Raspberry Pi، می توانید برای بهبود زمان انجام درخواست های DNS برای کامپیوتر استفاده کنید. سرور DNS ایجاد شده در Raspberry Pi برای تعیین IP خواسته شده و پنهان کردن آن، از سایر سرورهای DNS درخواست می کند و به این معنی می باشد که وقتی دوباره همان نام دامنه را دوباره درخواست کنید، تقریباً بلافاصله پاسخ آن درخواست به شما بازگردانده می شود.

قبل از اینکه با راه اندازیDNS سرور Raspberry Pi  خود شروع کنید ، ابتدا باید مطمئن شوید که برد خود را برای استفاده از یک آدرس IP ثابت تنظیم کرده اید.

اگر این کار را انجام نداده اید نگران نباشید ما قبلا نحوه انجام این کار را برای شما آموزش داده ایم

 


این مطالب نیز می تواند برایتان مفید باشد


 

ابزارهای مورد نیاز برای این پروژه

رزبری پای ۲ ، ۳ یا ۴

یکMicro SD

منبع تغذیه

سیم اترنت یا دانگل WiFi (مدل های ۳ و ۴ دارای WiFi داخلی)

 

راه اندازی DNS Server بر روی Raspberry Pi

 

۱. در این آموزش ، ما از سیستم عامل Raspbian استفاده خواهیم کرد. سیستم عامل های دیگر ممکن است کار کنند، اما تضمین شده نیست.

قبل از اینکه بتوانیم Raspberry Pi خود را به عنوان سرور DNS تنظیم کنیم، باید اطمینان حاصل کنیم که همه چیز به روز باشد.

برای این کار را با اجرای دو دستور زیر روی Raspberry Pi انجام دهیم.

sudo apt update
sudo apt upgrade

 

 

۲. پس از اینکه بروزرسانی به پایان رسید، می توانیم نرم افزاری را که برای راه اندازی Raspberry Pi خود به عنوان سرور DNS استفاده خواهیم کرد را نصب کنیم.

این بسته نرم افزاری که در حال نصب آن هستیم DNSmasq نام دارد. DNSmasq یک سرور DNS سبک و ساده است که با در نظر گرفتن شبکه های مقیاس کوچک طراحی شده است.

به لطف سبک بودن، DNSmasq بهترین راه حل برای راه اندازی سرور DNS در Raspberry Pi است زیرا منابع محدود آن را هدر نخواهد داد و در استفاده از این منابع بهینه عمل می کند.

با اجرای دستور زیر می توانیم dnsmasq را به Raspberry Pi خود نصب کنیم.

sudo apt install dnsmasq

پیکربندی سرور DNS

۱. اکنون که ما یک گام جلو رفته ایم  و نرم افزار dnsmasq را در Raspberry Pi خود نصب کردیم و باید برخی از تغییرات پیکربندی را در آن اعمال کنیم.

تغییراتی که در فایل کانفیگ ایجاد خواهیم کرد، به Raspberry Pi شما امکان می دهد به عنوان یک سرور DNS بهتر کار کند.

با اجرای دستور زیر می توانیم تغییراتی را در فایل ایجاد کنیم.

sudo nano /etc/dnsmasq.conf

برای پیدا کردن آسان تر قسمتها، می توانید از CTRL + W برای جستجوی متن مورد نیاز استفاده کنید.

 

#domain-needed

جایگزین شود با

domain-needed

 

این گزینه باعث می شود سرور DNS تغییر کند تا نامهایی را که حاوی نقطه (.) یا نام دامنه (.com) نیستند به nameservers بالادستی هدایت نکند. با این کار نام های ساده ای مانند “localhost” یا “dlinkrouter” در شبکه محلی حفظ می شود.

در مرحله بعد

#bogus-priv

جایگزین شود با

bogus-priv

 

این گزینه سرور DNS را از ارسال درخواست های جستجوی معکوس که دارای محدوده IP محلی به سرورهای بالادست DNS هستند متوقف می کند.

انجام این کار از خروج تنظیمات شبکه محلی جلوگیری می کند زیرا آدرس های IP هرگز به سرورهای بالادستی ارسال نمی شوند.

 

#no-resolv

جایگزین شود با

no-resolv

 

با استفاده از این گزینه، به dnsmasq می گوییم فایل “/etc/resolv.conf” را برای nameserver نخواند و در عوض به موارد مشخص شده در پیکربندی آن اعتماد کند.

 

#server=/localnet/192.168.0.1

جایگزین شود با

server=8.8.8.8
server=8.8.4.4

 

با استفاده از این ما به dnsmasq دستور می دهیم تا از سرورهای DNS Googles برای nameserver  بالادستی خود استفاده کند. همچنین می توانید از سایر DNS های عمومی مانند CloudFlare’s DNS یا OpenDNS استفاده کنید.

 

#cache-size=150

جایگزین شود با

cache-size=1000

با استفاده از این گزینه ما در حال افزایش میزان درخواست های DNS هستیم که نرم افزار dnsmasq آنها را پنهان می کند.

با افزایش اندازه حافظه پنهان آن، باید بتوانیم عملکرد کلی سرورهای DNS  در Raspberry Pi خود را بهبود بخشیم و زمان انجام جستجوی DNS را کاهش دهیم.

 

۲. با تغییراتی که در پرونده پیکربندی اعمال شده است، اکنون می توانید با کلید های CTRL + X سپس Y و سپس ENTER فایل را ذخیره کنید.

۳. همانطور که در تنظیمات dnsmasq تغییراتی ایجاد کرده ایم ، باید سرویس آن را مجدداً راه اندازی کنیم تا در تغییرات ما ذهیره و اجرا شود.

با اجرای دستور زیر می توانیم dnsmasq را مجدداً راه اندازی کنیم.

sudo systemctl restart dnsmasq

۴- از آنجا که در سرویس dnsmasq تغییراتی ایجاد کرده ایم ، باید بررسی کنیم که آیا درست راه اندازی شده است.

با استفاده از دستور زیر می توانیم وضعیت سرور DNS خود را بررسی کنیم.

sudo systemctl status dnsmasq

 

اگر وضعیت به صورت “Active: active (running)” نشان داده می شود، می توانید Raspberry Pi خود را با موفقیت به عنوان سرور DNS استفاده کنید.

اکنون باید بتوانید دستگاه خود را به آدرس IP Raspberry Pi نشان دهید تا از آن به عنوان سرور DNS استفاده کند.

 

 آزمایش سرور DNS در Raspberry Pi

۱. اگر می خواهید نتایج سرور DNS را در برد رزبری پای خود، بدون تغییر DNS خود آزمایش کنید، می توانید با استفاده از ابزار “dig” استفاده کنید.

برای استفاده از ابزار dig روی Raspberry Pi، ابتدا باید با اجرای دستور زیر بسته “dnsutils” را نصب کنید.

sudo apt install dnsutils

 

۲. با نصب بسته “dnsutils” روی Raspberry Pi، می توانیم با اجرای دستور زیر سرور Pi DNS خود را پرس و جو کنیم.ما با استفاده از “localhost” به ابزار dig می گوییم تا از سرور DNS localhost برای جستجوی DNS استفاده کند.

dig pimylifeup.com @localhost

۳. بعد از اجرای این دستور، باید پاسخی دریافت کنید که در زیر آورده ایم. این خروجی پاسخی است که نرم افزار dig از سرور Raspberry Pi’s DNS بازیابی کرده است.

از این خروجی، می توانید مدت زمان انجام جستجو و همچنین اطلاعات اضافی را ببینید.

pi@raspberrypi:~ $ dig pishronic.ir

; <<>> DiG 9.11.5-P4-5.1-Raspbian <<>> pishronic.ir
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40018
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;pishronic.ir.                        IN      A

;; ANSWER SECTION:
pishronic.ir.         257     IN      A       104.25.42.22
pishronic.ir.         257     IN      A       104.25.43.22

;; Query time: 45 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 01 08:04:35 BST 2019
;; MSG SIZE  rcvd: 75

 

۴- اگر دستور را دوباره اجرا کنید، متوجه خواهید شد که زمان جستجو به طور قابل توجهی کاهش می یابد زیرا می تواند درخواست DNS را از حافظه پنهان یا cache بازیابی کند.

همانطور که ما از localhost درخواست می کنیم، شما باید زمان جستجوی نزدیک به ۰ msec داشته باشید.

;; Query time: 0 msec

 

امیدوارم که تا اینجا، شما Raspberry Pi خود را با موفقیت تنظیم کرده باشید تا به عنوان یک سرور DNS برای شبکه شما عمل کند. اگر با مشکلی روبرو شدید یا نظری دارید، می توانید نظر خود را برای ما بنویسید.

 


 

در ادامه می توانید مطالعه کنید

 

 


 

 

 

 

محمد صداقتی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *