| UNBOUND-CONTROL(8) | Unbound | UNBOUND-CONTROL(8) |
نام (NAME)
unbound-control - ابزار کنترل و مدیریت راه دور سرور Unbound
خلاصه دستور (SYNOPSIS)
unbound-control [-hq] [-c cfgfile] [-s server] command
توضیحات (DESCRIPTION)
برنامه unbound-control عملیات مدیریت از راه دور را بر روی سرور DNS unbound(8) انجام میدهد. این ابزار فایل پیکربندی را میخواند، از طریق TLS با سرور Unbound ارتباط برقرار میکند، دستور را ارسال کرده و نتیجه را نمایش میدهد.
گزینهها (OPTIONS)
گزینههای موجود عبارتند از:
- -h
- نمایش نسخه و راهنمای گزینههای خط فرمان.
- -c <cfgfile>
- فایل پیکربندی حاوی تنظیمات جهت خواندن. در صورت مشخص نشدن، از فایل پیکربندی پیشفرض /etc/unbound/unbound.conf استفاده میشود.
- -s <server[@port]>
- آدرس IPv4 یا IPv6 سرور جهت برقراری ارتباط. در صورت مشخص نشدن، آدرس از فایل پیکربندی خوانده میشود.
- -q
- حالت بیصدا؛ در صورت تعیین این گزینه، اگر عملیات با موفقیت انجام شود هیچ خروجی چاپ نمیشود.
دستورات (COMMANDS)
چندین دستور وجود دارد که سرور آنها را درک میکند:
- start
- راهاندازی سرور. صرفاً دستور unbound(8) را اجرا میکند. فایل اجرایی unbound در متغیر محیطی PATH جستجو میشود. این برنامه با فایل پیکربندی مشخصشده از طریق گزینه -c یا فایل پیشفرض شروع به کار میکند.
- stop
- توقف سرور. دیمن سرور خارج میشود.
- reload
- بارگذاری مجدد سرور. این دستور حافظه نهان (cache) را پاک کرده و فایل پیکربندی را مجدداً از نو میخواند.
- reload_keep_cache
- بارگذاری مجدد سرور با تلاش برای حفظ حافظه نهان پیامها و RRset در صورتی که پیکربندی (مجدد) اجازه دهد. این بدان معناست که اندازه حافظههای نهان و تعداد رشتهها نباید بین دفعات بارگذاری مجدد تغییر کند.
- fast_reload [+dpv]
- بارگذاری
مجدد سرور
با به حداقل
رساندن
زمان از
کارافتادگی،
به گونهای
که
پرسوجوهای
کاربران
بدون وقفه
پاسخ داده
شوند. این
قابلیت
نیازمند
کامپایل کد
با
پشتیبانی
از رشتهها
(threads) است.
پیکربندی
در یک رشته
جداگانه
بارگذاری و
آماده
میشود،
سپس به طور
موقت سرور
موجود را
متوقف کرده
و
گزینههای
پیکربندی
را
بهروزرسانی
میکند. هدف
این است که
این توقف
کوتاه اثری
بر
سرویسدهی
به
پرسوجوهای
کاربران
نگذارد.
حافظه نهان
حفظ میشود.
همچنین
پرسوجوهای
کاربر که در
حال پردازش
هستند حفظ
شده و با
گزینههای
پیکربندی
جدید ادامه
مییابند.
نکته:
میزان حافظه موقت مورد نیاز در حین fast_reload دو برابر مقدار مورد نیاز برای پیکربندی است. این به این دلیل است که Unbound موقتاً باید هم مقادیر پیکربندی فعلی و هم مقادیر جدید را در حین fast_reload نگهداری کند. ناحیههای (zones) بارگذاریشده از دیسک (ناحیههای معتبر و ناحیههای RPZ) نیز مشمول این میزان حافظه هستند.
گزینههایی که میتوان آنها را تغییر داد عبارتند از: forwards، stubs، views، authority zones، RPZ zones و local zones.
همچنین گزینههای access-control و گزینههای مشابه، interface-action و گزینههای مشابه و tcp-connection-limit. این دستور میتواند برخی تغییرات define-tag را مجدداً بارگذاری کند که توضیحات بیشتر آن در ادامه آمده است. گزینههای دیگر شامل موارد زیر هستند: insecure-lan-zones، domain-insecure، trust-anchor-file، trust-anchor، trusted-keys-file، auto-trust-anchor-file، edns-client-string، ipset، log-identity، infra-cache-numhosts، msg-cache-size، rrset-cache-size، key-cache-size، ratelimit-size، neg-cache-size، num-queries-per-thread، jostle-timeout، use-caps-for-id، unwanted-reply-threshold، tls-use-sni، outgoing-tcp-mss، ip-dscp، max-reuse-tcp-queries، tcp-reuse-timeout، tcp-auth-query-timeout، delay-close، iter-scrub-promiscuous، tls-service-key و tls-service-pem.
این دستور با تغییرات interface و outgoing-interface کار نمیکند؛ همچنین با remote control، outgoing-port-permit، outgoing-port-avoid، msg-buffer-size، تمامی گزینههای *-slabs و تغییرات statistics-interval سازگار نیست.
برای dnstap این گزینهها را میتوان تغییر داد: dnstap-log-resolver-query-messages، dnstap-log-resolver-response-messages، dnstap-log-client-query-messages، dnstap-log-client-response-messages، dnstap-log-forwarder-query-messages و dnstap-log-forwarder-response-messages.
این دستور با این گزینهها کار نمیکند: dnstap-enable، dnstap-bidirectional، dnstap-socket-path، dnstap-ip، dnstap-tls، dnstap-tls-server-name، dnstap-tls-cert-bundle، dnstap-tls-client-key-file و dnstap-tls-client-cert-file.
گزینههای dnstap-send-identity، dnstap-send-version، dnstap-identity و dnstap-version زمانی که از +p استفاده نشود قابل بارگذاری هستند.
گزینه +v خروجی را با جزئیات بیشتر همراه میکند که شامل زمان صرفشده برای بارگذاری مجدد است. با +vv خروجی جزئیات بیشتری خواهد داشت که شامل میزان حافظهای است که به طور موقت برای انجام بارگذاری مجدد تخصیص یافته بود؛ این میزان حافظه در صورت داشتن فایل پیکربندی با محتوای بزرگ میتواند زیاد باشد. در خروجی زمانبندی، عبارت 'reload' مدت زمانی است که سرور در طول آن متوقف شده بود.
گزینه +p باعث میشود بارگذاری مجدد رشتهها را متوقف نکند و آنها به اجرا ادامه دهند. قفلها گرفته میشوند، اما موارد به ترتیب بهروزرسانی میگردند؛ بنابراین ممکن است رشتهها وضعیت ناهمگونی را مشاهده کنند که در آن برخی گزینهها مربوط به پیکربندی قدیمی و برخی مربوط به پیکربندی جدید باشند، مانند پارامترهای TTL حافظه نهان از پیکربندی قدیمی و فورواردرها از پیکربندی جدید. استابها و فورواردرها همزمان بهروزرسانی میشوند تا به صورت همگن دیده شوند، یعنی مقادیر قدیمی یا جدید با یکدیگر مشاهده شوند. این گزینه باعث میشود زمان بارگذاری مجدد به جای ۰.۳ میلیثانیه، حدود ۳ میکروثانیه طول بکشد که طی آن رشتههای پردازشگر متوقف میشوند. بنابراین، وقفه بسیار کوتاهتر خواهد بود، به قیمت مقداری ناهمگونی گذرا. پس از بارگذاری مجدد، با تکتک رشتههای پردازشگر مختصراً ارتباط برقرار میشود تا منابع را آزاد کنند؛ این موضوع زمان حذف را کمی طولانیتر میکند و مقداری از زمان رشته کنترل از راه دور را میگیرد.
با گزینه nopause (+p)، بارگذاری مجدد برای برخی گزینهها که fast_reload بدون گزینه nopause روی آنها کار میکند، کار نخواهد کرد: val-bogus-ttl، val-override-date، val-sig-skew-min، val-sig-skew-max، val-max-restart، val-nsec3-keysize-iterations، target-fetch-policy، outbound-msg-retry، max-sent-count، max-query-restarts، do-not-query-address، do-not-query-localhost، private-address، private-domain، caps-exempt، nat64-prefix، do-nat64، infra-host-ttl، infra-keep-probing، ratelimit، ip-ratelimit، ip-ratelimit-cookie، wait-limit-netblock، wait-limit-cookie-netblock، ratelimit-below-domain و ratelimit-for-domain.
گزینه +d باعث میشود بارگذاری مجدد، پرسوجوهایی را که رشتههای پردازشگر در حال پردازش آنها هستند رها کند (دور بریزد). این شبیه به flush_requestlist است. بدون آن، پرسوجوها نگه داشته میشوند تا کاربران برای پرسوجوهایی که در حال حاضر در دست اقدام هستند پاسخ دریافت کنند. رها کردن پرسوجوها باعث میشود که آنها در طول چرخه پردازش خود، تنها گزینههای پیکربندی قدیمی یا فقط جدید را مشاهده کنند.
هنگامی که تغییراتی در برچسبهای پیکربندی از طریق گزینه define-tag وجود داشته باشد، گزینه +d به طور ضمنی همراه با یک پیام هشدار فعال شده و پرسوجوها دور ریخته میشوند. این کار برای جلوگیری از ارجاع پرسوجوهای قدیمی به اطلاعات برچسبهای قدیمی است. اگر تعداد برچسبها در پیکربندی بارگذاریشده جدید با اضافه کردن برچسبها در انتها افزایش یابد، گزینه ضمنی +d لازم نخواهد بود.
برای IP پاسخ، یعنی اقدامات مرتبط با آدرسهای IP و احتمالاً اشتراک آن با برچسبهای کنترل دسترسی و اطلاعات اقدام، این تنظیمات همراه با یک پرسوجو در هنگام دریافت، بر اساس آدرس IP مبدأ آن ذخیره میشوند. اطلاعات قدیمی تا زمان اتمام پرسوجوها همراه با آن باقی میماند. این اطلاعات پس از حلوفصل و اتمام پرسوجوها از بین میروند، یا میتوان فهرست درخواستها را با +d پاکسازی کرد.
- verbosity number
- تغییر مقدار پرگویی (verbosity) برای ثبت گزارشها. مشابه مقادیر کلیدواژه verbosity: در unbound.conf(5) است. این تنظیم جدید تا زمان بارگذاری مجدد سرور (که تنظیمات مجدداً از فایل پیکربندی خوانده میشوند) یا دستور بعدی تنظیم پرگویی باقی میماند.
- log_reopen
- بازگشایی مجدد فایل گزارش (بستن و دوباره باز کردن آن). برای چرخش گزارشها (logrotate) جهت آزادسازی فایلی که دیمن در آن مینویسد کاربرد دارد. در صورت استفاده از syslog، تلاش میکند syslog را ببندد و دوباره باز کند (که در صورت استفاده از chroot ممکن است کار نکند).
- stats
- چاپ آمارها. شمارندههای داخلی را صفر میکند؛ این رفتار را میتوان با گزاره پیکربندی statistics-cumulative: کنترل کرد. آمارها به صورت یک [name]: [value] در هر سطر چاپ میشوند.
- stats_noreset
- مشاهده اجمالی آمارها. آنها را همانند دستور stats چاپ میکند، اما شمارندههای داخلی را صفر نمیکند.
- status
- نمایش وضعیت سرور. در صورت عدم اجرا کد خروج ۳ (ارتباط با پورت رد شده است)، در صورت بروز خطا ۱، و در صورت فعال بودن سرور کد ۰ برگردانده میشود.
- local_zone name type
- افزودن ناحیه محلی جدید با نام و نوع مشخصشده. مشابه گزاره پیکربندی local-zone عمل میکند. اگر ناحیه از قبل وجود داشته باشد، نوع آن به آرگومان دادهشده تغییر مییابد.
- local_zone_remove name
- حذف ناحیه محلی با نام مشخصشده. تمامی دادههای محلی درون آن را حذف میکند. اگر ناحیه وجود نداشته باشد، دستور با موفقیت خاتمه مییابد.
- local_data RR data...
- افزودن داده محلی جدید (رکورد منبع مشخصشده). مشابه کلیدواژه local-data: است، به جز زمانی که هیچ ناحیه پوششدهندهای وجود نداشته باشد؛ در این حالت، این دستور کنترل از راه دور یک ناحیه شفاف (transparent) با همان نام رکورد ایجاد میکند.
- local_data_remove name
- حذف تمامی رکوردهای منبع (RR) از نام محلی. اگر نام از قبل هیچ موردی نداشته باشد، هیچ اتفاقی رخ نمیدهد. اغلب منجر به پاسخ NXDOMAIN برای نام (در یک ناحیه ایستا) میشود، اما اگر نام تبدیل به یک گره غیرپایانی تهی (empty nonterminal) شود (هنوز دادههایی در دامنههای زیر نام حذفشده وجود داشته باشد)، پاسخهای NOERROR nodata برای آن نام بازگردانده میشوند. اگر به جای یک نام دامنه، یک رکورد منبع خاص داده شود، فقط همان رکورد خاص از دادههای محلی حذف میشود و نه تمامی رکوردهای مربوط به آن نام.
- local_zones
- افزودن ناحیههای محلی با خواندن از ورودی استاندارد (stdin) در unbound-control. ورودی به صورت سطر به سطر خوانده میشود که در هر سطر نام، فاصله و نوع ناحیه قرار دارد. جهت افزودنهای دستهجمعی به کار میرود.
- local_zones_remove
- حذف ناحیههای محلی با خواندن از ورودی استاندارد در unbound-control. ورودی شامل یک نام در هر سطر است. جهت حذفهای دستهجمعی به کار میرود.
- local_datas
- افزودن رکوردهای داده محلی با خواندن از ورودی استاندارد در unbound-control. ورودی شامل یک رکورد منبع (RR) در هر سطر است. جهت افزودنهای دستهجمعی به کار میرود.
- local_datas_remove
- حذف رکوردهای داده محلی با خواندن از ورودی استاندارد در unbound-control. ورودی شامل یک نام در هر سطر است. جهت حذفهای دستهجمعی به کار میرود.
- dump_cache
- محتویات حافظه نهان به صورت متنی در خروجی استاندارد چاپ میشود. میتوانید آن را به یک فایل هدایت کنید تا حافظه نهان در یک فایل ذخیره شود. در Unboundهای راه دور تحت عملیات چندپردازشی پشتیبانی نمیشود.
- load_cache
- محتویات حافظه نهان را از ورودی استاندارد بارگذاری میکند. از همان قالبی استفاده میکند که دستور dump_cache تولید میکند. بارگذاری حافظه نهان با دادههای قدیمی یا نادرست میتواند منجر به بازگرداندن دادههای نامعتبر به کلاینتها شود. بارگذاری دادهها در حافظه نهان به این روش برای کمک به اشکالزدایی پشتیبانی میشود. در Unboundهای راه دور تحت عملیات چندپردازشی پشتیبانی نمیشود.
- cache_lookup [+t] names
- چاپ RRsetها و
پیامهای
موجود در
حافظه نهان
در خروجی
استاندارد.
برای هر نام
ذکرشده،
محتوای
موجود در آن
نام یا زیر
آن چاپ
میشود.
میتوان
چندین نام
را که با
فاصله از هم
جدا
شدهاند
مشخص کرد تا
هر کدام چاپ
شوند.
هنگامی که
subnetcache فعال
باشد،
مدخلهای
منطبق از
حافظه نهان
زیرشبکه
نیز چاپ
میشوند.
گزینه +t اجازه استفاده از نامهای ریشه و TLD را میدهد. با استفاده از آن نامهایی مانند 'com' و '.' قابل استفاده هستند، اما جستجوی آنها در حافظه نهان نیازمند پردازش سنگینی است.
- lookup name
- چاپ نامسرورهایی در خروجی استاندارد که برای جستجوی نام مشخصشده مورد استفاده قرار خواهند گرفت.
- flush [+c] name
- حذف نام از
حافظه نهان.
انواع
رکوردهای A،
AAAA، NS، SOA، CNAME، DNAME، MX،
PTR، SRV، NAPTR، SVCB و HTTPS را
پاک
میکند؛
زیرا انجام
این کار
سریع است.
سایر انواع
رکوردها را
میتوان با
استفاده از
flush_type یا flush_zone
حذف کرد.
گزینه +c موارد را در صورت استفاده از cachedb، از حافظه نهان cachedb نیز حذف میکند.
- flush_type [+c] name type
- حذف
اطلاعات
نام و نوع
مشخصشده
از حافظه
نهان.
گزینه +c موارد را در صورت استفاده از cachedb، از حافظه نهان cachedb نیز حذف میکند.
- flush_zone [+c] name
- حذف تمامی
اطلاعات در
نام
مشخصشده
یا زیر آن
از حافظه
نهان.
مجموعههای
RRset و کلیدها
حذف
میشوند تا
جستجوهای
جدید انجام
گیرند. این
دستور
نیازمند
پیمایش و
بررسی کل
حافظه نهان
است و
عملیاتی
زمانبر به
شمار
میرود.
مدخلها در
پیادهسازی
این دستور
به عنوان
منقضیشده
علامتگذاری
میشوند
(بنابراین
در صورت
فعال بودن
serve-expired، آن
اطلاعات
ارائه شده
اما واکشی
مجدد برای
اطلاعات
جدید
زمانبندی
میشود).
گزینه +c موارد را در صورت استفاده از cachedb، از حافظه نهان cachedb نیز حذف میکند.
- flush_bogus [+c]
- حذف تمامی
دادههای
نامعتبر و
جعلی (bogus) از
حافظه نهان.
گزینه +c موارد را در صورت استفاده از cachedb، از حافظه نهان cachedb نیز حذف میکند.
- flush_negative [+c]
- حذف تمامی
دادههای
منفی از
حافظه نهان.
این
دادهها
شامل
پاسخهای
nxdomain، nodata و servfail
هستند.
همچنین
کلیدهای
خراب (که
ممکن است
ناشی از
جستجوهای
ناموفق
باشند) از
حافظه نهان
کلید DNSSEC و
شکستهای
جستجوی
آخرین
راهحل
تکرارکننده
(iterator) از حافظه
نهان rrset حذف
میشوند.
گزینه +c موارد را در صورت استفاده از cachedb، از حافظه نهان cachedb نیز حذف میکند.
- flush_stats
- صفر کردن آمارها.
- flush_requestlist
- رها کردن پرسوجوهایی که در دست بررسی هستند. رسیدگی به پرسوجوهایی که سرور در حال حاضر روی آنها کار میکند متوقف میشود. حافظه نهان دستنخورده باقی میماند. هیچ پاسخی برای آن پرسوجوها ارسال نمیشود که احتمالاً باعث میشود آن کاربران بعداً دوباره درخواست ارسال کنند. برای راهاندازی مجدد پردازش پرسوجوها با تنظیمات جدید (مانند سطح پرگویی بالاتر) مفید است.
- dump_requestlist
- نمایش مواردی که در حال پردازش هستند. تمامی پرسوجوهایی را که سرور در حال حاضر روی آنها کار میکند چاپ میکند. مدت زمانی را که کاربران منتظر ماندهاند چاپ میکند. برای درخواستهای داخلی، زمانی چاپ نمیشود. سپس وضعیت ماژول را چاپ میکند. این دستور پرسوجوهای اولین رشته پردازشی را چاپ میکند و پرسوجوهایی که توسط سایر رشتهها سرویسدهی میشوند چاپ نمیشوند.
- flush_infra all|IP
- اگر all باشد، کل حافظه نهان زیرساخت (infra) خالی میشود. اگر یک آدرس IP مشخص باشد، مدخل مربوط به آن آدرس از حافظه نهان حذف میشود. این بخش شامل دادههای EDNS، پینگ و وضعیت لنگی (lameness) است.
- dump_infra
- نمایش محتویات حافظه نهان زیرساخت.
- set_option opt: val
- تنظیم
گزینه روی
مقدار
مشخصشده
بدون نیاز
به
بارگذاری
مجدد.
بنابراین
حافظه نهان
پاک
نمیشود.
نام گزینه
باید به یک
':' ختم شود و
بین گزینه و
مقدار باید
فاصله خالی
وجود داشته
باشد. برخی
مقادیر در
صورت تنظیم
به این روش
ممکن است
اثری
نداشته
باشند،
مقادیر
جدید در
فایل
پیکربندی
نوشته
نمیشوند و
همه
گزینهها
پشتیبانی
نمیشوند.
این رفتار
با
فراخوانی
set_option در libunbound
متفاوت
است؛ در
آنجا همه
مقادیر کار
میکنند
زیرا Unbound هنوز
مقداردهی
اولیه نشده
است.
مقادیری که کار میکنند عبارتند از: statistics-interval، statistics-cumulative، do-not-query-localhost، harden-short-bufsize، harden-large-queries، harden-glue، harden-dnssec-stripped، harden-below-nxdomain، harden-referral-path، prefetch، prefetch-key، log-queries، hide-identity، hide-version، identity، version، val-log-level، val-log-squelch، ignore-cd-flag، add-holddown، del-holddown، keep-missing، tcp-upstream، ssl-upstream، max-udp-size، ratelimit، ip-ratelimit، cache-max-ttl، cache-min-ttl، cache-max-negative-ttl.
- get_option opt
- دریافت مقدار گزینه. نام گزینه را بدون کاراکتر پایانی ':' وارد کنید. مقدار چاپ میشود. اگر مقدار "" باشد، چیزی چاپ نشده و اتصال بسته میشود. در صورت بروز خطا، 'error ...' چاپ میشود (روی گزینههای ناشناخته خطای ساختاری میدهد). برای برخی گزینهها، فهرستی از مقادیر که هر کدام در یک سطر هستند چاپ میشود. گزینهها همانطور که در فایل پیکربندی هستند یا با set_option اصلاح شدهاند نمایش داده میشوند. برای برخی گزینهها ممکن است بازنویسی خاصی اعمال شده باشد که با این دستور نشان داده نشود، مانند نتایج حاصل از دستورات کنترل پرگویی و هدایت پرسوجو. همه گزینهها کار نمیکنند؛ برای آنها به دستورات list_stubs، list_forwards، list_local_zones و list_local_data مراجعه کنید.
- list_stubs
- فهرست کردن ناحیههای استاب (stub zones) در حال استفاده. این موارد یک به یک در خروجی چاپ میشوند. شامل نکات ریشه (root hints) در حال استفاده نیز میشود.
- list_forwards
- فهرست کردن ناحیههای هدایت (forward zones) در حال استفاده. این موارد ناحیه به ناحیه در خروجی چاپ میشوند.
- list_insecure
- فهرست کردن ناحیهها با تنظیم domain-insecure.
- list_local_zones
- فهرست کردن ناحیههای محلی در حال استفاده. این موارد در هر سطر همراه با نوع ناحیه چاپ میشوند.
- list_local_data
- فهرست کردن رکوردهای منبع (RR) داده محلی در حال استفاده. رکوردهای منبع چاپ میشوند.
- insecure_add zone
- افزودن domain-insecure برای ناحیه دادهشده، مشابه دستور موجود در unbound.conf. به Unbound در حال اجرا اضافه میشود بدون اینکه بر محتوای حافظه نهان تأثیر بگذارد (که ممکن است هنوز نامعتبر باشد؛ برای حذف آن از flush_zone استفاده کنید)، و فایل پیکربندی را تغییر نمیدهد.
- insecure_remove zone
- حذف domain-insecure برای ناحیه دادهشده.
- forward_add [+it] zone addr ...
- افزودن ناحیه هدایت جدید به Unbound در حال اجرا. با گزینه +i یک domain-insecure نیز برای ناحیه اضافه میشود (تا در صورت پیکربندی لنگر اعتماد ریشه DNSSEC برای سایر نامها، بتواند به صورت ناامن حلوفصل شود). پارامتر addr میتواند آدرس IP4، IP6 یا نامهای سرور نام باشد، مشابه پیکربندی forward-zone در unbound.conf. گزینه +t آن را طوری تنظیم میکند که از TLS در بالادست استفاده کند، مشابه forward-tls-upstream: yes.
- forward_remove [+i] zone
- حذف یک ناحیه هدایت از Unbound در حال اجرا. گزینه +i همچنین domain-insecure را برای آن ناحیه حذف میکند.
- stub_add [+ipt] zone addr ...
- افزودن یک ناحیه استاب جدید به Unbound در حال اجرا. با گزینه +i یک domain-insecure نیز برای ناحیه اضافه میشود. با +p ناحیه استاب در حالت prime تنظیم میشود، و بدون آن در حالت notprime تنظیم میگردد. پارامتر addr میتواند آدرس IP4، IP6 یا نامهای سرور نام باشد، مشابه پیکربندی stub-zone: در unbound.conf. گزینه +t آن را طوری تنظیم میکند که از TLS در بالادست استفاده کند، مشابه stub-tls-upstream: yes.
- stub_remove [+i] zone
- حذف یک ناحیه استاب از Unbound در حال اجرا. گزینه +i همچنین domain-insecure را برای ناحیه حذف میکند.
- forward [off | addr ... ]
- راهاندازی
و تنظیم
حالت هدایت
(forwarding).
پیکربندی
میکند که
آیا سرور
باید از
سایر
سرورهای
نام
بالادست
پرسوجو
کند، خودش
به سرورهای
نام ریشه
اینترنت
مراجعه
کند، یا
پیکربندی
فعلی را
نشان دهد.
میتوانید
سرورهای
نام را پس
از
بهروزرسانی
DHCP ارسال
کنید.
بدون آرگومان، فهرست فعلی آدرسهایی که برای هدایت تمامی پرسوجوها استفاده میشوند چاپ میشود. در زمان راهاندازی، این اطلاعات از پیکربندی forward-zone مربوط به "." گرفته میشود. پس از آن، وضعیت را نمایش میدهد. در صورتی که هیچ هدایتی استفاده نشود، عبارت off چاپ میشود.
اگر مقدار off ارسال شود، هدایت غیرفعال شده و از سرورهای نام ریشه استفاده میشود. این کار را میتوان برای جلوگیری از سرورهای نام دارای اشکال یا عدم پشتیبانی از DNSSEC که از طریق DHCP دریافت شدهاند، به کار برد. اما ممکن است در هتلها یا هاتاسپاتها کار نکند.
اگر یک یا چند آدرس IPv4 یا IPv6 داده شود، از آنها برای هدایت پرسوجوها استفاده میشود. آدرسها باید با فاصله از هم جدا شوند. با '@port' میتوان شماره پورت را صریحاً تنظیم کرد (پورت پیشفرض ۵۳ (DNS) است).
به طور پیشفرض، اطلاعات فورواردر از فایل پیکربندی برای ریشه "." استفاده میشود. فایل پیکربندی تغییر نمیکند، بنابراین پس از بارگذاری مجدد، این تغییرات از بین میروند. سایر ناحیههای هدایت در فایل پیکربندی تحت تأثیر این دستور قرار نمیگیرند.
- ratelimit_list [+a]
- فهرست کردن دامنههایی که مشمول محدودیت نرخ درخواست (ratelimit) شدهاند. در هر سطر همراه با تخمین فعلی پرسوجو در ثانیه (qps) و حد مجاز qps از پیکربندی چاپ میشود. با گزینه +a تمامی دامنهها را چاپ میکند، نه فقط دامنههای دارای محدودیت، همراه با مقدار تقریبی qps آنها. دامنههای دارای محدودیت برای پرسوجوهای جدید (که در حافظه نهان نیستند) خطا برمیگردانند، اما پرسوجوهای کششده به طور معمول پاسخ داده میشوند.
- ip_ratelimit_list [+a]
- فهرست کردن آدرسهای IP که مشمول محدودیت نرخ درخواست شدهاند. در هر سطر همراه با تخمین فعلی qps و حد مجاز qps از پیکربندی چاپ میشود. با گزینه +a تمامی آدرسهای IP را همراه با مقدار تقریبی qps آنها چاپ میکند. آدرسهای IP دارای محدودیت قبل از بررسی حافظه نهان دور ریخته میشوند.
- list_auth_zones
- فهرست کردن ناحیههای معتبر (auth zones) پیکربندیشده. در هر سطر همراه با وضعیت چاپ میشود که نشان میدهد آیا ناحیه منقضی شده است و شماره سریال فعلی چیست. ناحیههای RPZ پیکربندیشده نیز در این فهرست گنجانده شدهاند.
- auth_zone_reload zone
- بارگذاری مجدد ناحیه معتبر (یا ناحیه RPZ) از فایل ناحیه. فایل ناحیه خوانده شده و محتوای فعلی ناحیه در حافظه بازنویسی میشود. این کار محتوای خود ناحیه معتبر را تغییر میدهد و نه محتوای حافظه نهان را. چنین محتوایی در حافظه نهان در صورتی وجود دارد که Unbound را برای اعتبارسنجی با for-upstream: yes تنظیم کرده باشید که با دستور flush_zone zone قابل پاکسازی است.
- auth_zone_transfer zone
- انتقال ناحیه معتبر (یا ناحیه RPZ) از سرور اصلی (master). توالی بررسی ناحیه معتبر آغاز میشود که در آن سرورهای اصلی بررسی میشوند تا مشخص شود آیا ناحیه بهروزرسانیشدهای دارند یا خیر (با بررسی سریال SOA). سپس ناحیه برای دریافت نسخه جدیدتر منتقل میشود.
- rpz_enable zone
- فعالسازی مجدد ناحیه RPZ در صورتی که قبلاً غیرفعال شده باشد.
- rpz_disable zone
- غیرفعالسازی ناحیه RPZ.
- view_list_local_zones view
- اجرای دستور list_local_zones برای نمای (view) مشخصشده.
- view_local_zone view name type
- اجرای دستور local_zone برای نمای مشخصشده.
- view_local_zone_remove view name
- اجرای دستور local_zone_remove برای نمای مشخصشده.
- view_list_local_data view
- اجرای دستور list_local_data برای نمای مشخصشده.
- view_local_data view RR data...
- اجرای دستور local_data برای نمای مشخصشده.
- view_local_data_remove view name
- اجرای دستور local_data_remove برای نمای مشخصشده.
- view_local_datas_remove view
- حذف فهرستی از local_data برای نمای دادهشده با خواندن از ورودی استاندارد. مشابه local_datas_remove عمل میکند.
- view_local_datas view
- افزودن فهرستی از local_data برای نمای دادهشده با خواندن از ورودی استاندارد. مشابه local_datas عمل میکند.
- افزودن یا
جایگزینی
دائمی رمز
کوکی (cookie secret).
پارامتر secret
باید یک
رشته
هگزادسیمال
۱۲۸ بیتی
باشد.
رمزهای کوکی میتوانند در وضعیت active یا staging باشند. رمزهای کوکی Active برای ایجاد کوکیهای DNS استفاده میشوند، اما تأیید صحت یک کوکی DNS با هر یک از رمزهای کوکی active یا staging موفقیتآمیز خواهد بود. وضعیت رمزهای کوکی فعلی را میتوان با دستور print_cookie_secrets چاپ کرد.
هنگامی که هنوز هیچ رمز کوکی پیکربندی نشده باشد، پارامتر secret به عنوان active اضافه میشود. اگر از قبل یک رمز کوکی active وجود داشته باشد، پارامتر secret به صورت staging اضافه شده یا جایگزین رمز staging موجود میشود.
برای چرخش (roll) رمز کوکی مورداستفاده در یک مجموعه anycast: رمز جدید باید به عنوان رمز staging به تمام گرههای مجموعه anycast اضافه شود. هنگامی که تمام گرهها بتوانند کوکیهای DNS را با رمز جدید تأیید کنند، رمز جدید را میتوان با دستور activate_cookie_secret فعال کرد. پس از اینکه رمز جدید در تمام گرهها حداقل به مدت یک ساعت در وضعیت active قرار داشت، میتوان رمز قبلی را با دستور drop_cookie_secret حذف کرد.
ماندگاری تنظیمات با نوشتن در فایلی انجام میشود که با گزینه cookie-secret-file در بخش server فایل پیکربندی مشخص شده است. این قابلیت به طور پیشفرض غیرفعال است ("").
- حذف رمز کوکی در وضعیت staging.
- تبدیل رمز کوکی فعلی staging به active، و تبدیل رمز کوکی فعلی active به staging.
- نمایش رمزهای کوکی پیکربندیشده فعلی همراه با وضعیت آنها.
کد خروج (EXIT CODE)
برنامه unbound-control در صورت بروز خطا با کد وضعیت ۱، و در صورت موفقیت با کد ۰ خارج میشود.
راهاندازی (SET UP)
راهاندازی نیازمند یک گواهی خودامضا (self-signed) و کلیدهای خصوصی برای هر دو بخش سرور و کلاینت است. اسکریپت unbound-control-setup این موارد را در پوشه اجرای پیشفرض، یا با گزینه -d در پوشه دیگری تولید میکند. اگر مجوزهای کنترل دسترسی فایلهای کلید را تغییر دهید، میتوانید تعیین کنید چه کسانی میتوانند از unbound-control استفاده کنند؛ به طور پیشفرض مالک و گروه دسترسی دارند اما نه همه کاربران. اسکریپت را تحت همان نام کاربری که در unbound.conf پیکربندی کردهاید یا به عنوان ریشه (root) اجرا کنید تا دیمن اجازه خواندن فایلها را داشته باشد، به عنوان مثال با:
sudo -u unbound unbound-control-setup
اگر نام کاربری را در unbound.conf پیکربندی نکردهاید، کلیدها نیازمند مجوز خواندن برای اطلاعات هویتی کاربری هستند که دیمن تحت آن اجرا میشود. این اسکریپت کلیدهای خصوصی موجود در پوشه را حفظ میکند. پس از اجرای اسکریپت به عنوان root، گزینه control-enable را در unbound.conf فعال کنید.
شمارندههای آماری (STATISTIC COUNTERS)
دستورات stats و stats_noreset تعدادی شمارنده آماری را نمایش میدهند:
- threadX.num.queries
- تعداد پرسوجوهای دریافتشده توسط رشته.
- threadX.num.queries_ip_ratelimited
- تعداد پرسوجوهای دارای محدودیت نرخ بر اساس IP توسط رشته.
- تعداد پرسوجوهای دارای کوکی معتبر DNS توسط رشته.
- تعداد پرسوجوهای دارای بخش کلاینت کوکی DNS توسط رشته.
- تعداد پرسوجوهای دارای کوکی نامعتبر DNS توسط رشته.
- threadX.num.queries_discard_timeout
- تعداد پرسوجوهای حذفشده به دلیل سررسید مهلت دور انداختن (discard-timeout) توسط رشته.
- threadX.num.queries_replyaddr_limit
- تعداد پرسوجوهای حذفشده به دلیل محدودیتهای replyaddr توسط رشته.
- threadX.num.queries_wait_limit
- تعداد پرسوجوهای حذفشده به دلیل wait-limit توسط رشته.
- threadX.num.cachehits
- تعداد پرسوجوهایی که با موفقیت از طریق جستجو در حافظه نهان پاسخ داده شدهاند.
- threadX.num.cachemiss
- تعداد پرسوجوهایی که نیازمند پردازش بازگشتی (recursive) بودهاند.
- threadX.num.dnscrypt.crypted
- تعداد پرسوجوهایی که رمزنگاری شده و توسط dnscrypt با موفقیت کپسولزدایی شدهاند.
- threadX.num.dnscrypt.cert
- تعداد پرسوجوهایی که درخواست گواهیهای dnscrypt را داشتهاند.
- threadX.num.dnscrypt.cleartext
- تعداد پرسوجوهای دریافتشده روی پورت dnscrypt که به صورت متن آشکار بوده و درخواست گواهی نبودهاند.
- threadX.num.dnscrypt.malformed
- تعداد درخواستهایی که نه متن آشکار بودند و نه پیامهای معتبر dnscrypt.
- threadX.num.dns_error_reports
- تعداد گزارشهای خطای DNS تولیدشده توسط رشته.
- threadX.num.prefetch
- تعداد پیشواکشیهای انجامشده در حافظه نهان. این عدد در cachehits گنجانده شده است، زیرا پرسوجوی اصلی پاسخ پیشواکشینشده را از حافظه نهان دریافت کرده و منجر به پردازش بازگشتی شده و یک جایگاه را در فهرست درخواستها اشغال نموده است. بخشی از recursivereplies (یا هیستوگرام آن) یا cachemiss نیست، زیرا پاسخ حافظه نهان ارسال شده است.
- threadX.num.expired
- تعداد پاسخهایی که با یک مدخل منقضیشده حافظه نهان ارائه شدهاند.
- threadX.num.queries_timed_out
- تعداد پرسوجوهایی که به دلیل انتظار بیش از حد در بافر سوکت UDP دور ریخته شدهاند.
- threadX.query.queue_time_us.max
- حداکثر زمان انتظار بستهها در بافر سوکت، بر حسب میکروثانیه. تنها زمانی گزارش میشود که گزینه sock-queue-timeout فعال باشد.
- threadX.num.recursivereplies
- تعداد پاسخهای ارسالشده به پرسوجوهایی که نیازمند پردازش بازگشتی بودهاند. در صورتی که به دلیل اتمام مهلت زمانی (timeout) برای برخی پرسوجوها پاسخی ارسال نشده باشد، میتواند از threadX.num.cachemiss کمتر باشد.
- threadX.requestlist.avg
- میانگین تعداد درخواستها در فهرست درخواستهای پردازش بازگشتی داخلی هنگام درج یک پرسوجوی جدید ورودی.
- threadX.requestlist.max
- حداکثر اندازه بهدستآمده توسط فهرست درخواستهای پردازش بازگشتی داخلی.
- threadX.requestlist.overwritten
- تعداد درخواستهای موجود در فهرست درخواستها که توسط مدخلهای جدیدتر رونویسی شدهاند. این اتفاق زمانی رخ میدهد که سیل عظیمی از پرسوجوها نیازمند پردازش بازگشتی باشند و سرور به سختی پاسخگو باشد. هنگامی که در طول این هجوم، گزینه jostle-timeout اجازه حذف یک پرسوجو را به نفع یک پرسوجوی جدید ورودی میدهد، این شمارنده افزایش مییابد. پرسوجوی قدیمیتر برای ایجاد فضا دور ریخته میشود.
- threadX.requestlist.exceeded
- پرسوجوهایی که به دلیل پر بودن فهرست درخواستها دور ریخته شدهاند. این اتفاق زمانی رخ میدهد که هجوم زیادی از پرسوجوها نیازمند پردازش بازگشتی باشند و سرور نتواند همگام شود. هنگامی که در طول هجوم فضایی با کنار زدن یک پرسوجوی قدیمیتر ایجاد نشود و پرسوجوی جدید دور ریخته شود، این شمارنده افزایش مییابد. از آنجا که پرسوجوی قدیمیتری حذف نمیشود (تنظیم jostle-timeout را ببینید)، فضایی برای پرسوجوی جدید وجود ندارد.
- threadX.requestlist.current.all
- اندازه فعلی فهرست درخواستها، شامل پرسوجوهای تولیدشده داخلی (مانند پرسوجوهای priming و جستجوهای glue).
- threadX.requestlist.current.user
- اندازه فعلی فهرست درخواستها، فقط شامل درخواستهای حاصل از پرسوجوهای کلاینت.
- threadX.requestlist.current.replies
- شمارش فعلی تعداد مدخلهای پاسخ که در انتظار مدخلهای فهرست درخواست هستند. از آنجا که یک مدخل فهرست درخواست میتواند نتایج را به چندین آدرس پاسخ ارسال کند، این عدد ممکن است از اندازه فهرست درخواستها بزرگتر باشد.
- threadX.recursion.time.avg
- میانگین زمان صرفشده برای پاسخگویی به پرسوجوهایی که نیازمند پردازش بازگشتی بودهاند. توجه داشته باشید که پرسوجوهایی که از حافظه نهان پاسخ داده شدهاند در این میانگین محاسبه نمیشوند.
- threadX.recursion.time.median
- میانه زمان صرفشده برای پاسخ به پرسوجوهایی که نیازمند پردازش بازگشتی بودهاند. میانه به این معنی است که به ۵۰ درصد از پرسوجوهای کاربران در زمانی کمتر از این مقدار پاسخ داده شده است. به دلیل وجود مقادیر پرت بزرگ (معمولاً پرسوجوها به سرورهای بدون پاسخ)، میانگین میتواند بزرگتر از میانه باشد. این میانه با درونیابی از یک هیستوگرام محاسبه شده است.
- threadX.tcpusage
- بافرهای TCP فعلی نگهداریشده برای اتصالات ورودی. یک مقدار نقطهای در زمان درخواست. این به شما کمک میکند متوجه شوید آیا بافرهای incoming-num-tcp پر هستند یا خیر.
- total.num.queries
- مجموع تمامی رشتهها.
- total.num.queries_ip_ratelimited
- مجموع تمامی رشتهها.
- مجموع تمامی رشتهها.
- مجموع تمامی رشتهها.
- مجموع تمامی رشتهها.
- total.num.queries_discard_timeout
- مجموع تمامی رشتهها.
- total.num.queries_replyaddr_limit
- مجموع تمامی رشتهها.
- total.num.queries_wait_limit
- مجموع تمامی رشتهها.
- total.num.cachehits
- مجموع تمامی رشتهها.
- total.num.cachemiss
- مجموع تمامی رشتهها.
- total.num.dnscrypt.crypted
- مجموع تمامی رشتهها.
- total.num.dnscrypt.cert
- مجموع تمامی رشتهها.
- total.num.dnscrypt.cleartext
- مجموع تمامی رشتهها.
- total.num.dnscrypt.malformed
- مجموع تمامی رشتهها.
- total.num.dns_error_reports
- مجموع تمامی رشتهها.
- total.num.prefetch
- مجموع تمامی رشتهها.
- total.num.expired
- مجموع تمامی رشتهها.
- total.num.queries_timed_out
- مجموع تمامی رشتهها.
- total.query.queue_time_us.max
- حداکثر مقادیر رشتهها.
- total.num.recursivereplies
- مجموع تمامی رشتهها.
- total.requestlist.avg
- میانگین در تمامی رشتهها.
- total.requestlist.max
- حداکثر مقدار requestlist.max در رشتهها.
- total.requestlist.overwritten
- مجموع تمامی رشتهها.
- total.requestlist.exceeded
- مجموع تمامی رشتهها.
- total.requestlist.current.all
- مجموع تمامی رشتهها.
- total.requestlist.current.user
- مجموع تمامی رشتهها.
- total.requestlist.current.replies
- مجموع تمامی رشتهها.
- total.recursion.time.median
- میانگین در تمامی رشتهها.
- total.tcpusage
- مجموع تمامی رشتهها.
- time.now
- زمان فعلی بر حسب ثانیه از سال ۱۹۷۰ (مبدأ زمان یونیکس).
- time.up
- زمان فعالیت (uptime) از زمان بوت سرور بر حسب ثانیه.
- time.elapsed
- زمان سپریشده از آخرین چاپ آمارها، بر حسب ثانیه.
آمارهای پیشرفته (EXTENDED STATISTICS)
- mem.cache.rrset
- میزان حافظه بر حسب بایت مورد استفاده توسط حافظه نهان RRset.
- mem.cache.message
- میزان حافظه بر حسب بایت مورد استفاده توسط حافظه نهان پیام (message).
- میزان حافظه بر حسب بایت مورد استفاده توسط حافظه نهان رمزهای مشترک dnscrypt.
- mem.cache.dnscrypt_nonce
- میزان حافظه بر حسب بایت مورد استفاده توسط حافظه نهان nonce در dnscrypt.
- mem.mod.iterator
- میزان حافظه بر حسب بایت مورد استفاده توسط ماژول تکرارکننده (iterator).
- mem.mod.validator
- میزان حافظه بر حسب بایت مورد استفاده توسط ماژول اعتبارسنج (validator). شامل حافظه نهان کلید و حافظه نهان منفی نیز میشود.
- mem.streamwait
- میزان حافظه بر حسب بایت مورد استفاده توسط بافرهای انتظار جریانهای TCP و TLS. این بافرها شامل پاسخهایی هستند که در صف ارسال مجدد به کلاینتها قرار دارند.
- mem.http.query_buffer
- میزان حافظه بر حسب بایت مورد استفاده توسط بافرهای پرسوجوی HTTP/2. شامل پرسوجوهای DNS (جزئی) در انتظار تکمیل جریان درخواست است.
- mem.http.response_buffer
- میزان حافظه بر حسب بایت مورد استفاده توسط بافرهای پاسخ HTTP/2. شامل پاسخهای DNS در انتظار ارسال به کلاینتها است.
- mem.quic
- میزان حافظه بر حسب بایت مورد استفاده توسط پروتکل QUIC. شامل اطلاعات اتصال، اطلاعات جریان، پرسوجوهای خواندهشده و پاسخهای ارسالشده به کلاینتها است.
- histogram.<sec>.<usec>.to.<sec>.<usec>
- نمایش یک هیستوگرام، تجمیعشده روی تمامی رشتهها. هر عنصر نشاندهنده تعداد پرسوجوهای بازگشتی است که زمان پاسخ آنها بین حد پایین و حد بالا قرار دارد. زمانها بزرگتر یا مساوی حد پایین و کوچکتر از حد بالا هستند. ۴۰ سطل (bucket) وجود دارد که اندازه سطلها به صورت تصاعدی دو برابر میشود.
- num.query.type.A
- تعداد کل پرسوجوها با نوع A در تمامی رشتهها. برای سایر انواع پرسوجو نیز چاپ میشود، اما فقط برای انواعی که پرسوجویی برای آنها دریافت شده است؛ بنابراین مواردی که برابر ۰ هستند برای اختصار حذف میشوند.
- num.query.type.other
- تعداد پرسوجوها با انواع ۲۵۶ تا ۶۵۵۳۵.
- num.query.class.IN
- تعداد کل پرسوجوها با کلاس پرسوجوی IN (اینترنت) در تمامی رشتهها. همچنین برای سایر کلاسها (مانند CH یا CHAOS که گاهی برای اشکالزدایی استفاده میشود) یا NONE و ANY که در بهروزرسانی پویا کاربرد دارند چاپ میشود. مقدار num.query.class.other برای کلاسهای ۲۵۶ تا ۶۵۵۳۵ چاپ میشود.
- num.query.opcode.QUERY
- تعداد کل پرسوجوها با کد عملیاتی (opcode) برابر QUERY در تمامی رشتهها. همچنین برای سایر آپکدها نظیر UPDATE و... چاپ میشود.
- num.query.tcp
- تعداد پرسوجوهایی که با استفاده از پروتکل TCP به سمت سرور Unbound ارسال شدهاند.
- num.query.tcpout
- تعداد پرسوجوهایی که سرور Unbound با استفاده از پروتکل TCP به سمت سرورهای دیگر ارسال کرده است.
- num.query.udpout
- تعداد پرسوجوهایی که سرور Unbound با استفاده از پروتکل UDP به سمت سرورهای دیگر ارسال کرده است.
- num.query.tls
- تعداد پرسوجوهایی که با استفاده از TLS به سمت سرور Unbound ارسال شدهاند. این موارد در num.query.tcp نیز شمرده میشوند، زیرا TLS بر بستر TCP اجرا میشود.
- num.query.tls.resume
- تعداد ازسرگیریهای نشست TLS؛ اینها پرسوجوهایی بر بستر TLS به سمت سرور Unbound هستند که کلاینت کلید ازسرگیری نشست TLS را مذاکره کرده است.
- num.query.https
- تعداد پرسوجوهایی که با استفاده از HTTPS به سمت سرور Unbound ارسال شدهاند. این موارد در num.query.tcp و num.query.tls نیز شمرده میشوند.
- num.query.quic
- تعداد پرسوجوهایی که با استفاده از پروتکل QUIC به سمت سرور Unbound ارسال شدهاند. این موارد در num.query.tls نیز شمرده میشوند، زیرا در این پرسوجوها از TLS استفاده میشود.
- num.query.ipv6
- تعداد پرسوجوهایی که با استفاده از IPv6 به سمت سرور Unbound ارسال شدهاند.
- num.query.flags.RD
- تعداد پرسوجوهایی که پرچم RD در هدر آنها تنظیم شده بود. همچنین برای پرچمهای QR، AA، TC، RA، Z، AD و CD چاپ میشود. توجه داشته باشید که پرسوجوهای دارای پرچم QR، AA یا TC ممکن است به همین دلیل رد شده باشند.
- num.query.edns.present
- تعداد پرسوجوهایی که رکورد EDNS OPT در آنها موجود بوده است.
- num.query.edns.DO
- تعداد پرسوجوهایی که رکورد EDNS OPT با بیت DO (DNSSEC OK) تنظیمشده داشتهاند. این پرسوجوها در مقدار num.query.edns.present نیز محاسبه شدهاند.
- num.query.ratelimited
- تعداد پرسوجوهایی که به دلیل محدودیت نرخ، از ارسال آنها به سرور نام جلوگیری شده است.
- تعداد پرسوجوهای dnscrypt که رمز مشترکی در حافظه نهان برای آنها یافت نشد. از این مقدار میتوان برای محاسبه نرخ موفقیت (hitrate) رمز مشترک استفاده کرد.
- num.query.dnscrypt.replay
- تعداد پرسوجوهای dnscrypt که مقدار nonce منطبقی در حافظه نهان nonce پیدا کرده و در نتیجه به عنوان بازپخش پرسوجو (replay) تلقی شدهاند.
- num.answer.rcode.NXDOMAIN
- تعداد پاسخها به پرسوجوها (از حافظه نهان یا از بازگشت) که دارای کد وضعیت NXDOMAIN بودند. همچنین برای سایر کدهای بازگشتی نیز چاپ میشود.
- num.answer.rcode.nodata
- تعداد پاسخها به پرسوجوها که دارای شبهکد بازگشتی nodata بودند. این بدان معناست که کد بازگشتی واقعی NOERROR بوده، اما علاوه بر آن، هیچ دادهای در پاسخ وجود نداشته است (وضعیتی که پاسخ NOERROR/NODATA نامیده میشود). این پرسوجوها در آمار num.answer.rcode.NOERROR نیز گنجانده شدهاند. معمولاً در جستجوهای AAAA زمانی رخ میدهد که رکورد A وجود دارد اما رکورد AAAA موجود نیست.
- num.answer.secure
- تعداد پاسخهایی که امن بودند. پاسخ با موفقیت اعتبارسنجی شده است. بیت AD ممکن است در برخی از این پاسخها تنظیم شده باشد، در مواردی که کلاینت اعلام کرده آماده پذیرش بیت AD در پاسخ است (با بیت DO یا AD در پرسوجو).
- num.answer.bogus
- تعداد پاسخهایی که نامعتبر و جعلی (bogus) بودند. این پاسخها به دلیل شکست در اعتبارسنجی، منجر به بازگرداندن SERVFAIL به کلاینت شدند.
- num.rrset.bogus
- تعداد RRsetهایی که توسط اعتبارسنج به عنوان جعلی و نامعتبر علامتگذاری شدهاند. به ازای هر بررسی RRset که ناموفق باشد افزایش مییابد.
- num.valops
- تعداد عملیات اعتبارسنجی انجامشده توسط اعتبارسنج. به ازای هر عملیات بررسی RRSIG فارغ از نتیجه اعتبارسنجی افزایش مییابد. ترکیب RRSIG و کلید ابتدا باید از بررسیهای اولیهای عبور کند (مانند بررسی طول یا پروتکل) پیش از آنکه Unbound اقدام به اعتبارسنجی کند.
- unwanted.queries
- تعداد پرسوجوهایی که به دلیل عدم تطابق با تنظیمات کنترل دسترسی رد یا دور ریخته شدهاند.
- unwanted.replies
- پاسخهای ناخواسته یا درخواستنشده. میتواند ترافیک تصادفی، پاسخهای تکراری با تأخیر، پاسخهای بسیار دیرهنگام یا تلاش برای جعل (spoofing) باشد. سطح اندکی از پاسخهای دیرهنگام و بستههای تکراری با پروتکل UDP قابل انتظار است. مقادیر بسیار بالا میتواند نشاندهنده یک تهدید امنیتی (حمله جعل) باشد.
- msg.cache.count
- تعداد موارد (پاسخهای DNS) موجود در حافظه نهان پیام.
- rrset.cache.count
- تعداد RRsetها در حافظه نهان rrset. شامل rrsetهای مورد استفاده توسط پیامها در حافظه نهان پیام و همچنین اطلاعات تفویض اختیار است.
- infra.cache.count
- تعداد موارد موجود در حافظه نهان زیرساخت. شامل آدرسهای IP به همراه زمانبندی و اطلاعات پشتیبانی از پروتکل آنها است.
- key.cache.count
- تعداد موارد در حافظه نهان کلید. شامل کلیدهای DNSSEC، یک مورد به ازای هر نقطه تفویض، و وضعیت اعتبارسنجی آنها است.
- msg.cache.max_collisions
- حداکثر تعداد تداخلها در جدول درهمسازی (hash table) حافظه نهان پیام. تعداد هشهایی که هنگام درج یک عنصر جدید در جدول درهمسازی یکسان هستند. اگر این مقدار بسیار بزرگ باشد (مثلاً صدها مورد)، عملکرد جدول درهمسازی با مشکل مواجه است و مقادیر هش نادرست یا مخرب هستند.
- rrset.cache.max_collisions
- حداکثر تعداد تداخلها در جدول درهمسازی حافظه نهان rrset. اگر این مقدار بسیار بزرگ باشد (مثلاً صدها مورد)، عملکرد جدول درهمسازی مشکل دارد و مقادیر هش نادرست یا مخرب هستند.
- تعداد موارد در حافظه نهان رمز مشترک. شامل رمزهای مشترک از پیش محاسبهشده برای یک جفت کلید عمومی کلاینت / کلید خصوصی سرور مشخص است. رمزهای مشترک مصرف بالای CPU دارند و این حافظه نهان به Unbound اجازه میدهد تا در صورت ارسال چندین پرسوجوی dnscrypt از یک کلاینت، از محاسبه مجدد رمز مشترک اجتناب کند.
- dnscrypt_nonce.cache.count
- تعداد موارد در حافظه نهان nonce کلاینت. این حافظه نهان برای جلوگیری از بازپخش (replay) پرسوجوهای dnscrypt استفاده میشود. مقدار nonce کلاینت باید برای هر جفت کلید عمومی کلاینت / کلید خصوصی سرور منحصربهفرد باشد. این حافظه نهان باید بتواند کلیدهای بازه QPS * replay window را نگهداری کند تا از بازپخش پرسوجو در طول ثانیههای replay window جلوگیری شود.
- num.query.authzone.up
- تعداد پرسوجوهای بالادست که از دادههای auth-zone پاسخ داده شدهاند. این پرسوجوها در غیر این صورت (با فعال بودن fallback) به اینترنت ارسال میشدند، اما اکنون از ناحیه معتبر پاسخ داده شدهاند.
- num.query.authzone.down
- تعداد پرسوجوهای کلاینتهای پاییندست که از دادههای auth-zone پاسخ داده شدهاند.
- num.query.aggressive.NOERROR
- تعداد پرسوجوهایی که با استفاده از رکوردهای کششده NSEC با کد وضعیت NODATA پاسخ داده شدهاند. این پرسوجوها در غیر این صورت به اینترنت ارسال میشدند، اما اکنون با دادههای ذخیرهشده در حافظه نهان پاسخ داده شدهاند.
- num.query.aggressive.NXDOMAIN
- تعداد پرسوجوهایی که با استفاده از رکوردهای کششده NSEC با کد وضعیت NXDOMAIN پاسخ داده شدهاند.
- num.query.subnet
- تعداد پرسوجوهایی که پاسخی حاوی دادههای زیرشبکه کلاینت EDNS دریافت کردند.
- num.query.subnet_cache
- تعداد پرسوجوهایی که از حافظه نهان زیرشبکه کلاینت edns پاسخ داده شدهاند. این موارد توسط شمارندههای اصلی به عنوان cachemiss شمرده میشوند، اما پس از پردازش توسط ماژول edns client subnet، در حافظه نهان اختصاصی زیرشبکه کلاینت یافت میشوند.
- num.query.cachedb
- تعداد پرسوجوهایی که از حافظه نهان خارجی cachedb پاسخ داده شدهاند.
- num.rpz.action.<rpz_action>
- تعداد پرسوجوهایی که با استفاده از سیاست RPZ پیکربندیشده پاسخ داده شدهاند، به تفکیک نوع اقدام RPZ. اقدامات ممکن عبارتند از: nxdomain، nodata، passthru، drop، tcp-only، local-data، disabled و cname-override.
فایلها (FILES)
- /etc/unbound/unbound.conf
- فایل پیکربندی Unbound.
- /etc/unbound
- پوشه حاوی کلیدهای خصوصی (unbound_server.key و unbound_control.key) و گواهیهای خودامضا (unbound_server.pem و unbound_control.pem).
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
توسعهدهندگان Unbound در فایل CREDITS توزیع نرمافزار ذکر شدهاند.
حق نشر (COPYRIGHT)
1999-2026, NLnet Labs
| August 4, 2026 | 1.26.0 |