Powerdns
توسط royaflash دذ ۱۳ مهر, ۱۳۹۶ دذ ۱۲:۱۴ بعد از ظهر | دسته‌بندی شده در شبکه, گنو/لینوکس | با ۰ دیدگاه |112 views

 

کلمه DNS ، مخفف Domain Name System یا “سیستم نام دامنه” است.

سیستم نام دامنه (DNS) یک سیستم پایگاه داده است که نام کامل دامنه یک کامپیوتر را به یک آدرس IP ترجمه میکند.

کامپیوترهای موجود در یک شبکه برای اتصال به یکدیگر از آدرسهای IP استفاده می کنند، ولی به یاد داشتن آدرس های IP کامپیوترهای یک شبکه برای افرادی که قصد اتصال به آنان را دارند بسیار دشوار است. مثلا به خاطر سپردن نام دامنه example.com بسیار ساده تر از به خاطر سپردن آدرس IP نظیر آن (۲۰۷.۱۷۱.۱۶۶.۴۸) است. به همین علت اغلب ما برای اتصال به سایت ها، نام دامنه آن را وارد می کنیم. لذا DNS به شما امکان می دهد تا به جای استفاده از آدرس های عددی IP برای اتصال به یک کامپیوتر خاص در شبکه ای دیگر (یا برای دسترسی به یک سرویس راه دور)، با به کارگیری نام دامنه ای که به خاطر آوردن آن برای شما راحت تر است به آن کامپیوتر متصل شده یا از آن سرویس بهره بگیرید.

(برعکس عکس این مسئله، Reverse DNS یا rDNS نام دارد که آدرس IP را به نام دامنه متناظر ترجمه می کند)

هر سازمانی که دارای یک شبکه کامپیوتری است حداقل مجهز به یک سرور مرکزی است که پرس و جوهای DNS را کنترل و سازماندهی می کند. این سرور که Name Server نامیده می شود فهرستی از همه آدرس های IP اختصاص داده شده به کامپیوترهای موجود در آن شبکه را نگه می دارد. این سرور همچنین آدرس های IP  آن دسته از کامپیوترهای خارج از شبکه را که اخیرا مورد دسترسی قرار گرفته اند نیز نگه می دارد. هر کامپیوتر در هر شبکه باید مکان تنها یک Name Server  را بداند.

 

زمانی که کامپیوتر شما درخواست یک آدرس IP را می کند، بسته به اینکه آدرس IP درخواست شده در محدوده شبکه محلی شما قرار دارد یا خیر یکی از این سه حالت رخ می دهد:

حالت اول :  اگر آدرس IP درخواست شده به طور محلی ثبت شده است (مثلا این آدرس متعلق به یکی از کامپیوترهای  شبکه سازمان شماست) مستقیما پاسخی را از یکی از Name Server های محلی فهرست شده در تنظیمات Workstation خود دریافت خواهید داشت. در این حالت معمولا دریافت پاسخ یا خیلی کم طول می کشد یا به صورت کاملا بلادرنگ صورت می گیرد.

حالت دوم : اگر آدرس IP درخواست شده به صورت محلی ثبت نشده است (مثلا این آدرس متعلق به کامپیوتری در خارج شبکه سازمان شماست) ولی شخصی در سازمان شما اخیرا به همان آدرس IP رجوع کرده و به سایت نظیر آن متصل شده است، آنگاه Name Server  آدرس IP را از سیستم ذخیره سازی کش خود بازیابی خواهد کرد (کش= حافظه ای محدود که بخشی از آدرسهای IP که اخیرا مورد مراجعه قرار گرفته اند را در خود نگه می دارد). مجددا در این حالت هم معمولا دریافت پاسخ یا خیلی کم طول می کشد یا به صورت کاملا بلادرنگ صورت می گیرد.

حالت سوم : اگر آدرس IP درخواست شده به صورت محلی ثبت نشده است و شما اولین کسی هستید که در یک بازه زمانی خاص اطلاعاتی از سیستم مورد نظر را درخواست کرده اید، ( از ۱۲ ساعت تا یک هفته پیش) آنگاه Name Server محلی به جای Workstation شما جستجو را انجام خواهد داد. این جستجو ممکن است شامل پرس و جو از دو یا چند Name Server دیگر در هر مکان راه دور دیگری باشد. این پرس و جوها ممکن است از یک ثانیه تا بیشتر به طول انجامد (بسته به آنکه اتصال شما به شبکه راه دور چه کیفیتی دارد و با چند Name Server بایستی ارتباط برقرار شود).

 

برخی اوقات به خاطر پروتکل lightweight مورد استفاده در DNS ، ممکن است پاسخی دریافت نکنید. در چنین شرایطی Workstation یا نرم افزار Client شما ممکن است تا زمان دریافت پاسخ به تکرار پرس و جوی خود ادامه دهد یا ممکن است پیام خطایی دریافت کنید.

زمانی که از برنامه ای مثل Telnet برای اتصال به کامپیوتری دیگر استفاده می کنید، احتمالا برای برقراری این اتصال به جای تایپ کردن آدرس کامپیوتر مورد نظر، نام دامنه آن را وارد می کنید. برنامه Telnet نام دامنه ای که توسط کاربر تایپ شده است را دریافت کرده و با به کارگیری یکی از روشهایی که در بالا گفته شد و به کمک Name Server ، آدرس IP نظیر آن را به دست می آورد.

 

به عنوان مثال می توان DNS را مانند یک دفترچه تلفن الکترونیکی برای یک شبکه کامپیوتری در نظر گرفت، به طوری که اگر نام کامپیوتر مورد نظر را بدانید، Name Server آدرس IP نظیر آن را جستجو کرده و می یابد.

در این مقاله به شما آموزش خواهیم داد که چگونه دی ان اس سرور جایگزین که powerdns نامیده می شود را نصب و راه اندازی کنید.که بر خلاف bind، می تواند با استفاده از بک اندهای مختلف از قبیل فایل های Bind Zone یا پایگاه داده های مختلف نصب شود.
در این نمونه ، ما powedns را با استفاده از پایگاه داده MySQL در CentOS 6.3 نصب خواهیم کرد.در مجموع ما PowerAdmin را که یک کنترل پنل مبتنی بر وب برای PowerDNSاست ،نصب خواهیم کرد.

 

گام اول-نصب مخازن وبسته های REMI و EPEL

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install php php-mcrypt php-pdo php-mysql pdns pdns-backend-mysql mysql-server httpd

گام دوم-ایجاد یک پایگاه داده و نام کاربری

service mysqld start
service httpd start
mysqladmin create powerdns

پسورد خود را در دستورات زیر تعریف کنید.

mysql -Bse "create user 'powerdns'@'localhost' identified by 'password'"
mysql -Bse "grant all privileges on powerdns.* to 'powerdns'@'localhost'"

گام سوم – پایگاه داده ها و جداول PowerDNS را ایجاد کنید

کنسول mysql را توسط “mysql” استارت کنید.

mysql> use powerdns;
CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);

CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

از کنسول mysql توسط تایپ دستور “exit” خارج شوید:

mysql> exit

گام چهارم – نصب PowerAdmin

به عنوان روت لاگین شوید و اجرا کنید:

cd /root
wget https://github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz
tar xvfz poweradmin-2.1.6.tgz
cd poweradmin-2.1.6/inc
mv config-me.inc.php config.inc.php

config.inc.php را ویرایش کنید و اطمینان حاصل کنید که پسورد را به همان پسوردی که در گام ۲ داده بودید تغییر دهید.

nano config.inc.php

db_pass و session_key را به مقادیر خودتان ویرایش کنید:

$db_host = 'localhost';
$db_port = '3306';
$db_user = 'powerdns';
$db_pass = 'password';
$db_name = 'powerdns';
$db_type = 'mysql';
$session_key = 'session_key'

پوشه PowerAdmin را به DocumentRoot آپاچی انتقال دهید. ما می توانیم این آدرس آی پی سرور مجازی را برای مدیریت تنظیمات DNS خودمان به کار ببریم.

mv /root/poweradmin-2.1.6/* /var/www/html/
service httpd restart

/etc/pdns/pdns.conf را ویرایش کنید و خط های زیر را اضافه کنید.اطمینان حاصل کنید که gmysql-passwordرا به پسورد MYSQL ای که در گام دوم داده بود تغییر دهید.

launch=gmysql
gmysql-host=localhost
gmysql-user=powerdns
gmysql-password=password
gmysql-dbname=powerdns

Power DNS را ریستارت کنید:

service pdns restart

گام پنجم-ایجاد حساب کاربری PowerAdmin

نصب PowerAdmin را از وب سرور ادامه دهید .install/آی پی سرور مجازی ، را در مرورگر وارد کنید.(مسیر نصب ما در اینجا پوشه install است)

poweradmin1 300x117 Powerdns

یک حساب کاربری ادمین Poweradminایجاد کنید.

poweradmin2 300x136 Powerdns گام بعدی اختیاری است.

poweradmin3 1024x442 300x129 Powerdns

عملیات نصب را به اتمام برسانید و وقتی به گام هفتم رسیدید پوشه /var/www/html/installرا پاک کنید:

rm -rf /var/www/html/install

حالا می توانید آدرس آی پی سرور مجازی خود را در مرورگر وارد کنید و به عنوان admin با پسوردی که در گام ۵ تعیین کرده اید،لاگین شوید.

حالا می توانید رکوردهای DNS zoneخودتان را ایجاد کنید:

poweradmin4 300x119 Powerdns

حالا می توانید تایید کنید که سرور PowerDNS جدید شما کار می کند با اجرای دستور زیر:

dig @198.211.110.153 domain.com

;; ANSWER SECTION:
domain.com. 86400 IN A 127.0.0.1

و تمام شد ، کار با موفقیت انجام شده است.

منبع

درباره -

یاشار اسمعیل دخت هستم ۲۷ سالمه (به دنیال یافتم آنم که کیستم)به صورت ۱۰۰٪ به گنو/لینوکس مهاجرت کردم . من رو با نام royaflash میشناسید . در زمینه شبکه و امنیت شبکه فعالیت میکنم . لینوکس همیشه چیزی برای یادگیری داره و لینوکس یه فرهنگه . در صورت نیاز میتونین با آدرس ایمیل : [email protected] یا شماره تلفن : 09141100257 در ارتباط باشید .
وبلاگ شخصی من
(-:)
درباره من

فرستادن یک دیدگاه

XHTML: شما می‌توانید از این برچسب‌ها استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>