RNDC.CONF(5) BIND 9 RNDC.CONF(5)

rndc.conf - فایل پیکربندی ابزار rndc

rndc.conf

پرونده rndc.conf فایل پیکربندی برای rndc <#std-iscman-rndc>، ابزار کنترل کارگزار نام BIND 9 است. این پرونده ساختار و نحوی مشابه با named.conf <#std-iscman-named.conf> دارد. دستورات (statements) درون آکولاد قرار گرفته و با یک نقطه‌ویرگول (semi-colon) خاتمه می‌یابند. بندها (clauses) در دستورات نیز با نقطه‌ویرگول پایان می‌پذیرند. سبک‌های معمول کامنت‌گذاری پشتیبانی می‌شوند:

سبک C: /* */

سبک C++: // تا انتهای خط

سبک Unix: # تا انتهای خط

پرونده rndc.conf بسیار ساده‌تر از named.conf <#std-iscman-named.conf> است. این پرونده از سه دستور استفاده می‌کند: یک دستور options، یک دستور server و یک دستور key.

دستور options شامل پنج بند است. پس از بند default-server نام یا آدرس یک کارگزار نام قرار می‌گیرد. این میزبان زمانی استفاده می‌شود که هیچ کارگزار نامی به عنوان یک آرگومان به rndc <#std-iscman-rndc> داده نشده باشد. پس از بند default-key نام یک کلید می‌آید که توسط یک دستور key شناسایی می‌شود. اگر هیچ keyid در خط فرمان rndc ارائه نشود و هیچ بند key در یک دستور منطبق server یافت نشود، از این کلید پیش‌فرض برای احراز اصالت دستورات و پاسخ‌های سرور استفاده می‌شود. پس از بند default-port پورتی قرار می‌گیرد که باید برای اتصال به کارگزار نام راه دور استفاده شود. اگر هیچ گزینه port در خط فرمان rndc ارائه نشود و هیچ بند port در یک دستور منطبق server یافت نشود، از این پورت پیش‌فرض برای اتصال استفاده می‌شود. بندهای default-source-address و default-source-address-v6 می‌توانند به ترتیب برای تعیین آدرس‌های مبدأ IPv4 و IPv6 استفاده شوند.

پس از کلیدواژه server، دستور server شامل یک رشته است که نام میزبان یا آدرس یک کارگزار نام می‌باشد. این دستور سه بند ممکن دارد: key، port و addresses. نام کلید باید با نام یک دستور key در پرونده مطابقت داشته باشد. شماره پورت، پورت مورد نظر برای اتصال را مشخص می‌کند. اگر بند addresses ارائه شود، این آدرس‌ها به جای نام سرور استفاده می‌شوند. هر آدرس می‌تواند یک پورت اختیاری دریافت کند. اگر source-address یا source-address-v6 ارائه شده باشد، به ترتیب برای تعیین آدرس مبدأ IPv4 و IPv6 به کار می‌رود.

دستور key با یک رشته شناسایی، یعنی نام کلید، آغاز می‌شود. این دستور دارای دو بند است. بند algorithm الگوریتم احراز اصالت را برای استفاده توسط rndc <#std-iscman-rndc> مشخص می‌کند؛ در حال حاضر تنها HMAC-MD5 (برای سازگاری)، HMAC-SHA1، HMAC-SHA224، HMAC-SHA256 (پیش‌فرض)، HMAC-SHA384 و HMAC-SHA512 پشتیبانی می‌شوند. پس از آن بند secret می‌آید که شامل رشته کدگذاری‌شده base-64 از کلید احراز اصالت الگوریتم است. رشته base-64 درون علامت نقل‌قول دوتایی (double quotes) قرار می‌گیرد.

دو روش رایج برای تولید رشته base-64 برای secret وجود دارد. برنامه BIND 9 به نام rndc-confgen <#std-iscman-rndc-confgen> می‌تواند برای تولید یک کلید تصادفی استفاده شود، یا برنامه mmencode که با نام mimencode نیز شناخته می‌شود، می‌تواند برای تولید یک رشته base-64 از یک ورودی مشخص به کار رود. برنامه mmencode همراه BIND 9 عرضه نمی‌شود اما در بسیاری از سیستم‌ها موجود است. برای خط فرمان‌های نمونه هر یک، بخش مثال را ببینید.

options {
  default-server  localhost;
  default-key     samplekey;
};
server localhost {
  key             samplekey;
};
server testserver {
  key     testkey;
  addresses   { localhost port 5353; };
};
key samplekey {
  algorithm       hmac-sha256;
  secret          "6FMfj43Osz4lyb24OIe2iGEz9lf1llJO+lz";
};
key testkey {
  algorithm   hmac-sha256;
  secret      "R3HI8P6BKw9ZwXwN3VZKuQ==";
};

در مثال بالا، rndc <#std-iscman-rndc> به طور پیش‌فرض از سرور در localhost (127.0.0.1) و کلیدی به نام "samplekey" استفاده می‌کند. دستورات به سرور localhost از کلید "samplekey" استفاده می‌کنند که باید در پرونده پیکربندی سرور نیز با همان نام و secret تعریف شده باشد. دستور key نشان می‌دهد که "samplekey" از الگوریتم HMAC-SHA256 استفاده می‌کند و بند secret آن شامل رشته کدگذاری‌شده base-64 از راز HMAC-SHA256 در میان علامت‌های نقل‌قول دوتایی است.

اگر rndc -s testserver <#cmdoption-rndc-s> استفاده شود، آنگاه rndc <#std-iscman-rndc> با استفاده از کلید "testkey" به سرور روی localhost در پورت 5353 متصل می‌شود.

برای تولید یک عبارت محرمانه تصادفی با rndc-confgen <#std-iscman-rndc-confgen>:

rndc-confgen <#std-iscman-rndc-confgen>

یک پرونده کامل rndc.conf، شامل کلید به صورت تصادفی تولیدشده، در خروجی استاندارد نوشته می‌شود. همچنین دستورات کامنت‌شده key و controls برای named.conf <#std-iscman-named.conf> چاپ می‌شوند.

برای تولید یک عبارت محرمانه base-64 با mmencode:

echo "known plaintext for a secret" | mmencode

کارگزار نام باید به گونه‌ای پیکربندی شود که اتصالات rndc را بپذیرد و با استفاده از دستور controls در named.conf <#std-iscman-named.conf>، کلید مشخص‌شده در پرونده rndc.conf را شناسایی کند. برای جزئیات بیشتر، بخش‌های مربوط به دستور controls را در راهنمای مرجع مدیر BIND 9 ببینید.

rndc(8) <#std-iscman-rndc>, rndc-confgen(8) <#std-iscman-rndc-confgen>, mmencode(1), BIND 9 Administrator Reference Manual.

Internet Systems Consortium

2026, Internet Systems Consortium

2026-08-19 9.20.27