DNSDIST(1) dnsdist DNSDIST(1)

dnsdist - یک متعادل‌کننده بار آگاه از DNS و DoS با قابلیت اسکریپت‌نویسی

dnsdist [<option>...] [address]...

dnsdist پرس‌وجوهای DNS را دریافت کرده و آن‌ها را به یک یا چند سرور پایین‌دستی بازپخش می‌کند. سپس پاسخ‌ها را به درخواست‌کننده اصلی بازمی‌گرداند.

dnsdist بر روی TCP و UDP عمل می‌کند و می‌کوشد تا کارایی بسیار بالایی را روی هر دو ارائه دهد.

در حال حاضر، پرس‌وجوها به سرور پایین‌دستی با کمترین پرس‌وجوهای معوق ارسال می‌شوند. این امر عملاً موجب متعادل‌سازی بار شده و تضمین می‌کند که سرورهای کندتر، پرس‌وجوهای کمتری دریافت کنند.

اگر پس از چند ثانیه پاسخی دریافت نشود، از صف حذف می‌شود؛ اما در کوتاه‌مدت، وقفه‌های زمانی باعث می‌شوند سرور ترافیک کمتری دریافت کند.

عملیات‌های IPv4 و IPv6 می‌توانند ترکیب شوند؛ به عبارت دیگر، پرس‌وجوهایی که از طریق IPv6 دریافت می‌شوند می‌توانند به IPv4 هدایت شوند و برعکس.

dnsdist با Lua قابلیت اسکریپت‌نویسی دارد؛ برای اطلاعات بیشتر در این رابطه، مستندات dnsdist را ببینید.

dnsdist در مورد پرس‌وجوهای DNS «فکر» نمی‌کند، بلکه کار خود را به اندازه‌گیری زمان‌های پاسخ و کدهای خطا، و مسیریابی پرسش‌ها بر همین اساس محدود می‌کند. این برنامه دارای یک حافظهٔ نهان بسته‌ای (packet-cache) با کارایی بسیار بالا است.

هدف dnsdist ساده ماندن است. اگر به متعادل‌سازی بار قدرتمندتری نیاز باشد، استفاده از سخت‌افزار یا نرم‌افزار اختصاصی توصیه می‌شود؛ برای مثال، اغلب از Linux Virtual Server نام برده می‌شود.

افزودن netmask به ACL.
بارگذاری پیکربندی از file.
بررسی پروندهٔ پیکربندی (که ممکن است با --config یا -C تعیین شده باشد) برای یافتن خطاها. dnsdist خطاها را نشان داده و در صورت وجود خطا با یک کد خروج غیرصفر خارج می‌شود.
کارکرد به عنوان کلاینت، اتصال به dnsdist. این گزینه پیکربندی dnsdist را برای عبارت controlSocket می‌خواند و به آن متصل می‌شود. هنگامی که address (به همراه شماره درگاه اختیاری) مشخص شده باشد، dnsdist در عوض به آن متصل خواهد شد.
هنگام کارکرد به عنوان کلاینت (-c، --client)، از key به عنوان کلید محرمانهٔ مشترک برای اتصال به dnsdist استفاده می‌کند. این کلید باید همان کلیدی باشد که در سرور استفاده می‌شود (با setKey() تنظیم می‌شود). توجه داشته باشید که این کار کلید را در تاریخچهٔ شل شما و در فهرست فرایندهای در حال اجرای سیستم فاش می‌کند. تنها در صورتی در دسترس است که dnsdist با پشتیبانی از libsodium یا libcrypto کامپایل شده باشد.
اتصال به dnsdist و اجرای command.
نمایش یک پیام راهنما و خروج.
پیوند (bind) به address؛ برای شنود به هر تعداد نشانی که نیاز است (با استفاده از چند عبارت --local) وارد کنید. IPv4 را به صورت 0.0.0.0:53 و IPv6 را به صورت [::]:53 مشخص کنید.
اجرا در پیش‌زمینه، اما بدون باز کردن کنسول. از این سوییچ برای اجرای dnsdist درون یک ناظر (مانند استفاده با systemd و daemontools) استفاده کنید.
غیرفعال‌سازی ثبت گزارش در syslog. هنگام اجرا درون ناظری که ثبت وقایع را مدیریت می‌کند (مانند systemd) از این گزینه استفاده کنید.
افزودن برچسب زمانی به ابتدای پیام‌های ثبت‌شده در خروجی استاندارد.
تعیین فعال بودن گزارش‌گیری ساختاریافته.
بک‌اند مورد استفاده در زمان فعال بودن گزارش‌گیری ساختاریافته. مقادیر پشتیبانی‌شده شامل 'default'، 'json' و 'systemd-journal' هستند.
تغییر کاربر فرایند به uid پس از پیوند سوکت‌ها. uid می‌تواند نام یا شناسه عددی باشد.
تغییر گروه فرایند به gid پس از پیوند سوکت‌ها. gid می‌تواند نام یا شناسه عددی باشد.
نمایش نسخهٔ dnsdist و خروج.
حالت پرگو (نمایش جزئیات بیشتر).

address هر تعداد از سرورهای DNS پایین‌دستی با همان ساختار نحوی استفاده‌شده در --local است. اگر درگاه تعیین نشده باشد، 53 به کار می‌رود.

در حال حاضر، پشتیبانی از TCP محدودیت‌های نسبتاً سلیقه‌ای دارد.

وب‌گاه: https://dnsdist.org

PowerDNS.COM BV و مشارکت‌کنندگان آن

PowerDNS.COM BV و مشارکت‌کنندگان آن

August 5, 2026