در مقاله قبلی در خصوص DNS سرور محبوب BIND در لینوکس صحبت کردیم و نوبتی هم باشد امروز نوبت به معرفی یکی از قدرتمند ترین DNS سرورهای دنیا یعنی PowerDNS است که طبق معمول وقتی صحبت از قدرت می شود یعنی این سرویس بر پایه و بستر Linux طراحی و پیاده سازی شده است . PowerDNS با استفاده از زبان برنامه نویسی C++ نوشته شده است و اگر با لایسنس های Open Source آشنایی داشته باشید این DNS سرور تحت لیسانس GPL ارائه می شود ، قبلا بصورت مفصل در خصوص لایسنس ها در جزیره لینوکس صحبت کرده ایم. PowerDNS تقریبا بر روی تمامی هم خانواده های Unix و لینوکس قابل نصب و استفاده است و جالب است بدانید که امکان نصب و استفاده از آن در ویندوز هم وجود دارد.
یکی از مهمترین ویژگی های این DNS سرور ساختار ماژولار و جداگانه هر سرویسی است که مورد نیاز است ، برای مثال سرویس Recursion یا Recursive DNS به عنوان یک برنامه جداگانه ارائه می شود . PowerDNS می تواند به سادگی یک DNS سرور معمولی باشد و ظاهری ساده مثل فایل های متنی BIND داشته باشد یا اینکه به جای استفاده از فایل های متنی از پایگاه داده های متنوعی مثل MSSQL و MySQL و ... استفاده کند ، از قابلیت های Load Balancing و Failover و همچنین الگوریتم های اختصاصی اینکار در PowerDNS نیز می توانیم به عنوان ابزار قدرت این DNS سرور نام ببریم.
PowerDNS در ابتدا یک محصول شرکتی بود اما در نوامبر 2002 سورس کدهای این محصول بصورت عمومی منتشر شد تا تحت لیسانس GPL v2 ادامه فعالیت بدهد. سرور اصلی PowerDNS یک هسته اصلی ( تکی ) Single core دارد که سایر قابلیت ها بصورت ماژول یا الحاقیات یا وصله ( یا هر کوفتی که اسمشو بزارید خوب Backend رو من چی ترجمه کنم اه ) به هسته اصلی متصل می شونند . هسته اصلی وظیفه پردازش تمامی درخواست های DNS را بر عهده دارد و با اضافه شدن یک یا چند Backend امکان اضافه شدن سرویس های رکوردهای DNS نیز وجود دارد ، جالب است بدانید که روش های ذخیره سازی رکورد متنوعی در PowerDNS وجود دارد و حتی ماژول هایی برای تبدیل کردن رکوردها از سایر DNS سرورها به این DNS سرور نیز وجود دارند و می توانند با استفاده از فرآیند Zone Transfer کلیه اطلاعات Zone های سایر DNS سرورها اعم از مایکروسافتی و لینوکسی و ... را تبدیل به اطلاعات پایگاه داده هایی مثل MySQL کنند و در خود نگه دارند.
امکانات متنوعی در خصوص Caching برای PowerDNS در نظر گرفته شده است تا سرعت پردازش ها و پاسخ به کاربران را افزایش بدهد. دستوری به نام pdns__control وجود دارد که به شما امکانReload کردن هر Zone بصورت مجزا ، پاک کردن Cache بصورت جداگانه ، اطلاع رسانی در خصوص Zone ها و خروجی گرفتن از اطلاعات توسط Dump ها را می دهد ، همچنین امکان دریافت گراف ترافیکی را نیز به شما می دهد. PowerDNS یک وب سرور built-In (در خود تعبیه شده ، خدای ترجمم من) دارد که امکان دریافت اطلاعات از DNS سرور بصورت Real-time را می دهد.
جالب است بدانید که پروژه های بسیاری وجود دارند که PowerDNS را با خودشان هماهنگ کرده اند و یک رابط گرافیکی برای مدیریت این DNS سرور ایجاد کرده اند برای مثال پروژه های PowerAdmin ، PDNSOps ، Power DNS On Rail و JPower Admin از جمله این پروژه ها هستند ، اگر با CMS ها یا سیستم های مدیریت محتوای وب آشنایی داشته باشید به ویژه دروپال ، بهتر است بدانید که با استفاده از ماژول PowerAdmin دروپال شما می توانید PowerDNS را با دروپال یکپارچه کنید. PowerDNS را می توان یکی از سردمداران پیاده سازی DNSSEC در دنیا دانست. هرچند برای پیاده سازی این مورد هنوز راه طولانی باقی مانده است.
در ادامه به نکاتی خلاصه ولی مفید در خصوص PowerDNS می پردازیم : PowerDNS برای اولین بار به بهترین شکل معنی Load Balancing سرور DNS بصورت جغرافیایی را طراحی و پیاده سازی کرد ، اهداف اصلی PowerDNS سرعت ، ماژولار بودن و امنیت است ، جالب است بدانید که در مقایسه با میزان خط های کد نوشته شده برای DNS سرور BIND که تقریبا 500 هزار خط است ، PowerDNS حداکثر 40 هزار خط کد دارد و این یکی از دلایل سرعت زیاد آن است . PowerDNS بر روی انواع نسخه های سیستم عامل BSD اعم از FreeBSD ، NetBSD و OpenBSD نصب و اجرا می شود. سرویس Global Load Balancing وب سایت Wikipedia با PowerDNS پیاده سازی شده است.
در حال حاضر بیشتر از 10 میلیون دومین از سرویس های PowerDNS بصورت مستقیم استفاده می کنند. پروتکل DNS بصورت کامل توسط PowerDNS پشتیبانی می شود و از طرفی انواع رکوردهای معمول و غیرمعمول ( SPF ، DKIM ، NAPTR ، SRV و ... ) پشتیبانی می شوند . قابلیت Replication بین DNS سرورها بصورت Master و Slave بصورت Real-time و با استفاده از LDAP و دیتابیس های MySQL و MSSQL و ... وجود دارد . امکان Cache کردن کل بسته برای بالا بردن کارایی سرور وجود دارد . تقریبا از هر چیزی می توانید به درون PowerDNS اطلاعات Zone و DNS را منتقل کنید .
نویسنده : محمد نصیری
منبع : جزیره لینوکس و متن باز وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود