دامنه نام اینترنتی برکلی (Berkeley Internet Name Domain- BIND) محبوبترین سرور سیستم نام دامنه (Domain Name Server- DNS) است که امروزه استفاده میشود. BIND در دهه 1980 میلادی در دانشگاه برکلی کالیفرنیا (UCB) توسعه یافت. BIND یک سیستم متنباز رایگان است که پروتکلهای DNS را برای اینترنت پیادهسازی کرده و تحت مجوز عمومی Mozilla عرضه میشود.
کاربرد BIND چیست؟
از BIND میتوان برای اجرای یک سرور caching DNS یا یک name server (سرور نام) معتبر استفاده کرد که ویژگیهایی مانند load balancing، اعلان، بهروزرسانی پویا، DNSSEC، تقسیم DNS، IPv6، TSIG،nsupdate ، remote name daemon control ازطریق shared secret رمزگذاری شده و موارد دیگر را فراهم میکند.
BIND یک پیادهسازی از پروتکلهای DNS است و همچنین یک پیادهسازیِ مرجعِ قابلِ توزیع از اجزای اصلی DNS ازجمله سرور DNS، کتابخانه DNS resolver و ابزارهای مدیریت و verify عملکرد صحیح سرور DNS را فراهم میکند. BIND یک پلتفرم مستحکم و پایدار است که سازمانها از طریق آن میتوانند سیستمهای محاسباتی توزیعشده را کاملاً منطبق با استانداردهای DNS بسازند. سرور BIND DNS که در بیشتر دستگاههای سرویسدهنده نام اینترنت استفاده میشود، معماری مستحکم و پایداری را برای ساخت معماری نامگذاری یک سازمان عرضه میکند. همچنین کتابخانه DNS resolver نیز APIهای استانداردی برای ترجمه بین نام دامنه و آدرسهای اینترنتی ارائه میکند که هدف آن متصلشدن به برنامههایی است که به سرویس نام نیاز دارند. علاوه بر این، BIND منبعی برای اجرای آن پروتکلها و تولید نرمافزارهایی با حجم و قابلیت اطمینان بالاست.
تاریخچه BIND چیست؟
BIND را چهار دانشجوی ارشد دانشگاه برکلی کالیفرنیا با نامهای Douglas Terry، Mark Painter، David Riggle و Songnian Zhou، بهعنوان بخشی از پروژه DARPA (پشینه اینترنت مدرن) نوشتند. در اواسط دهه 1980، شرکت تجهیزات دیجیتال Paul Vixie اولین توسعه را روی BIND انجام داد و درنهایت در سال 2012 مالکیت این پروژه به کنسرسیوم سیستمهای اینترنتی (ISC) تعلق گرفت.
آخرین نسخه BIND که نسخه 9 بود، در سال 2000 منتشر شد. همچنین BIND 10 در سال 2014 منتشر شد اما ISC بهدلیل ملاحظات هزینهای، کار خود را در این پروژه به پایان رساند، نام آن را به Bundy تغییر داد و توسعه آن را به دیگران واگذار کرد.
اجزاء یا کامپوننتهای BIND چیست؟
کامپوننتهای اصلی BIND عبارتاند از:
Name Server
Name Server، یک DNS zone file را در خود نگه میدارد و به درخواستهای DNS پاسخ میدهد و میتواند در دو حیطه ایفای نقش کند:
- بهعنوان یک Name Server ذخیرهسازی (Caching-Only) برای استفاده توسط کلاینتهای داخلی در یک سازمان
- بهعنوان یک Name Server معتبر (Authoritative-Only) برای استفاده توسط کلاینتهای خارجی در یک سازمان
Resolver سبُک
BIND ترکیبی از یک کتابخانه resolver سبُک که میتواند روی کلاینتهای DNS (مانند سیستمعاملهای میزبان یا روترها) اجرا شود را بههمراه یک resolver daemon process که میتواند روی یک میزبان محلی اجرا شود، به کاربران ارائه میکند. هر دوی این موارد با استفادهاز پروتکل resolver سبک مبتنی بر UDP با یکدیگر ارتباط برقرار میکنند.
ابزارهای Name Server
BIND ابزارهایی را برای کمک به مدیریت یک سیستم DNS فراهم میکنند که عبارتاند از:
- dig: این ابزار به کاربران امکان میدهد که query های DNS را اجرا کرده و خروجی سرور را مشاهده کنند.
- host: نام میزبانها (hostnames) را به آدرس IP تبدیل میکند.
- nslookup: از سرورهای DNS برای یافتن اطلاعات درمورد میزبانها و دامنهها، بهمنظور یافتن پاسخ query ها استفاده میکند.
- Remote Name Daemon Control (rndc): به مدیران این امکان را میدهد تا تمام عملیات Name Server را از طریق یک کانال رمزگذاریشده کنترل کنند.
[rpost]
عملکردها و ویژگیهای رایج BIND کداماند؟
ویژگیها و قابلیتهای اصلی BIND عبارتاند از:
- Authoritative DNS: رکوردهای DNS را تحت کنترل معتبر سرور منتشر میکند.
- Cache-Only DNS: تحلیل نام DNS برای اپلیکیشنها را با ارسال مجدد درخواست به یک سرور معتبر و یا با عملکردن بهعنوان یک سرور DNS ثانویه که یک کپی read-only از zone file معتبر را دراختیار دارد، ارائه میکند.
- Basic DNS load balancing: این کار با استفاده از چندین رکورد A برای یک نام انجام میشود.
- DNS notify: به سرورهای اصلی DNS اجازه میدهد تا سرورهای ثانویه را از تغییرات دادههای zone مطلع کنند.
- Dynamic update (بهروزرسانی پویا): متدی برای افزودن، جایگزینی یا حذف رکوردها در یک سرور اصلی با ارسال نوع خاصی از پیام DNS است.
- Incremental zone transfer (IXFR): به سرورهای ثانویه اجازه میدهد که بهجای کل DNS zone ، فقط دادههای اصلاحشده را منتقل کنند.
- Split DNS: امکان نمایش متفاوت فضای DNS را برای resolver های داخلی و خارجی فراهم میکند. (بهعنوانمثال مخفیکردن دادههای DNS داخلی از clientهای خارجی).
- Transaction Signatures (TSIG): امکان تأیید اعتبار پیامهای DNS را ازطریق امضای رمزنگاری شده با یک shared secret فراهم میکند.
- Transaction Key (TKEY): امکان مذاکره درباره یک Transaction Key بین دو میزبان را فراهم میکند.
- DNSSEC: آخرین نسخه BIND از احراز هویت رمزنگاریشده برای اطلاعات DNS از طریق پسوندهای DNSSEC پشتیبانی میکند.
- IPv6: سیستم BIND ، استفاده از رکوردهای AAAA را برای ترجمه نام میزبان به آدرس IP جدیدی از نوع IPv6 امکانپذیر میکند.
مزایای BIND چیست؟
مزیتهای مهم BIND که باعث میشود محبوبترین سرور DNS در اینترنت باشد عبارتاند از:
- کاربرد گسترده و جامعه قوی: BIND یک استاندارد عملی برای DNS در سیستمهای لینوکس است و یک جامعه بزرگ متنباز، بهطورفعال از آن پشتیبانی میکند.
- پایداری: BIND در میلیونها سرور تولیدی DNS استفاده میشود و به دلیل عملکرد پایدار و قابلپیشبینی خود، محبوبیت یافته است.
- پشتیبانی از سیستم عاملهای مختلف: BIND از سیستمعاملهای Linux ،NetBSD ،FreeBSD ،OpenBSD ،macOS ،Debian و Windows پشتیبانی میکند و در تمام این سیستمها، قابلنصب است.
- حاوی مجموعهای از ویژگیهای جامع: BIND یکی از تنها سرورهای DNS است که تمام کارکردهای اساسی DNS را پوشش میدهد.
معایب BIND چیست؟
تعدادی از معایب BIND نیز به شرح زیر هستند:
- فاقد BIND :API هیچگونه API ای ندارد؛ بنابراین امکان خودکارسازی پیکربندی و استقرار DNS وجود ندارد.
- فاقد یکپارچگی با CI/CD toolkits: تیمهای DevOps نمیتوانند از BIND برای استقرار DNS بهعنوان بخشی از CI/CD pipeline بهمنظور کاهش سرعت استقرار برنامهها استفاده کنند. بنابراین برای پیکربندی DNS در محیط خود، باید از مهندسان شبکه استفاده کنید.
مورد زیر نیز عیب مشترک BIND و سایر سرورهای DNS نسل اول مانند Power DNS و Microsoft DNS است:
- فاقد ویژگیهای مدیریت ترافیک هستند: نمیتوانند ترافیک را با استفاده از پارامترهایی مانند مکان کاربر، بار سرور، قابلیتهای سرور و... به مناسبترین سرور هدایت کنند.
جمعبندی
راهاندازی مستقل یک سرور DNS، چه با استفاده از BIND چه سایر نرمافزارها، کار پیچیدهای است. بنابراین بسیاری از سازمانها ترجیح میدهند از DNS بهعنوان یک سرویس مدیریتشده استفاده کنند که مزایای متعددی از جمله نصب فوری، سربار کمتر، بهروزرسانی تضمینی و قابلیتهای بهبودیافته را برای آنها فراهم میکند. BIND یکی از سرورهای محبوب DNS است که با ویژگیهای متعدد، توجه کاربران زیادی را به خود جلب کرده است. بنابراین میتوانید با نصب آن بر روی سیستمعامل خود، از قابلیتهای جذاب آن استفاده کنید.