| KNOTC(8) | Knot DNS | KNOTC(8) |
نام (NAME)
knotc - ابزار کنترل Knot DNS
خلاصه دستور (SYNOPSIS)
knotc [گزینه_پیکربندی] [گزینهها] [اقدام]
توضیحات (DESCRIPTION)
این برنامه فرآیند در حال اجرای knotd را با استفاده از یک سوکت کنترل میکند.
اگر یک اقدام مشخص شده باشد، انجام میشود و knotc خارج میگردد، در غیر این صورت برنامه در حالت تعاملی اجرا میشود.
گزینههای پیکربندی (Config options)
- -c, --config file
- استفاده از یک فایل پیکربندی متنی (پیشفرض /etc/knot/knot.conf است).
- -C, --confdb directory
- استفاده از دایرکتوری پایگاهداده باینری پیکربندی (پیشفرض /var/lib/knot/confdb است). پایگاهداده پیشفرض پیکربندی، در صورت وجود، نسبت به فایل پیکربندی پیشفرض اولویت دارد.
گزینهها (Options)
- -m, --max-conf-size MiB
- تنظیم حداکثر اندازه پایگاهداده پیکربندی (پیشفرض ۵۰۰ مبیبایت، حداکثر ۱۰۰۰۰ مبیبایت).
- -s, --socket path
- استفاده از مسیر سوکت یونیکس کنترلی (پیشفرض /run/knot/knot.sock است).
- -t, --timeout seconds
- تنظیم مهلت زمانی کنترل بر حسب ثانیه. برای نامحدود مقدار 0 را قرار دهید (پیشفرض 60 است). عملیات سوکت کنترلی همچنین تابع پارامتر مهلت زمانی <#control-timeout> تنظیمشده در سمت سرور در بخش پیکربندی Control سرور هستند.
- -b, --blocking
- دستورات راهاندازی رویدادهای زون تا پایان رویداد منتظر میمانند. اگر مهلت زمانی با مشخص کردن صریح تحمیل نشده باشد، مهلت زمانی کنترل روی بینهایت تنظیم میشود.
- -e, --extended
- نمایش خروجی گسترشیافته (حتی موارد خالی در وضعیت زون).
- -f, --force
- عملیات اجباری. برخی بررسیها را نادیده میگیرد.
- -x, --mono
- خروجی رنگی تولید نکن.
- -X, --color
- اجبار خروجی رنگی در خروجی گسترشیافته یا هنگام هدایت به لوله (pipe).
- -v, --verbose
- فعالسازی خروجی اشکالزدایی.
- -h, --help
- چاپ راهنمای برنامه.
- -V, --version
- چاپ نسخه برنامه. گزینه -VV باعث میشود برنامه خلاصه پیکربندی زمان کامپایل را چاپ کند.
اقدامات (Actions)
- status [detail]
- بررسی در حال اجرا بودن سرور. جزئیات شامل version برای نسخه سرور در حال اجرا، workers برای تعداد رشتههای کاری، configure برای خلاصه پیکربندی، یا cert-key برای پین کلید عمومی گواهی در حال استفاده است.
- stop
- متوقف کردن سرور در صورت اجرا.
- reload
- بارگذاری مجدد پیکربندی سرور و فایلهای زون تغییریافته، و بازگشایی مجدد فایلهای لاگ در صورت پیکربندی آنها. تمام تراکنشهای باز زون لغو خواهند شد!
- stats [module[.counter]]
- نمایش شمارنده(های) آماری سراسری. برای چاپ شمارندههای دارای مقدار 0 نیز از گزینه force استفاده کنید.
- zone-check [zone...]
- آزمایش اینکه آیا سرور میتواند زون را بارگذاری کند یا خیر. در صورت فعال بودن در پیکربندی، بررسیهای معنایی اجرا میشوند. اگر با گزینه force فراخوانی شود، در صورت ظاهر شدن هشدار بررسی معنایی، یک خطا بازگردانده میشود. (*)
- zone-status [zone...] [filter]
- نمایش
وضعیت زون.
فیلترها
عبارتند از
+role، +serial، +transaction،
+events، +freeze و +catalog.
پارامترهای
خالی زون
حذف
میشوند،
مگر اینکه
از گزینه
--extended استفاده
شود. یک خط
تیره منفرد
در خروجی
نشاندهنده
مقدار
تنظیمنشده
است.
رنگآمیزی
خودکار را
میتوان با
استفاده از
گزینههای
--mono و --color
تغییر داد.
کد رنگی به این صورت است: سبز - زون به عنوان اصلی (master) عمل میکند / قرمز - زون به عنوان فرعی (slave) عمل میکند، قلم توپر (برجسته) - زون فعال است / عادی - زون خالی است، زیرخطدار - زون یک عضو کاتالوگ تفسیر شده است.
- zone-reload [zone...]
- راهاندازی بارگذاری مجدد زون از روی دیسک بدون بررسی زمان تغییر آن. برای زون ثانویه، رویداد تازهسازی از سرور(های) اولیه زمانبندی میشود؛ برای زون اولیه، رویداد اطلاعرسانی به سرور(های) ثانویه زمانبندی میشود. هر تراکنش باز زون لغو خواهد شد! در صورت فراخوانی با گزینه force، ماژولهای زون نیز مجدداً بارگذاری میشوند، اما ممکن است حالت انسدادی به درستی کار نکند. (#)
- zone-refresh [zone...]
- راهاندازی بررسی سریال زون در سرور اولیه زون. اگر سرور اولیه زون جدیدتری داشته باشد، انتقال زمانبندی میشود. این دستور برای زونهای ثانویه معتبر است. (#)
- zone-retransfer [zone...]
- راهاندازی انتقال زون از سرور اولیه آن. سرور شماره سریال زون سرور اولیه را بررسی نمیکند. این دستور برای زونهای ثانویه معتبر است. (#)
- zone-notify [zone...]
- ارسال پیام NOTIFY به تمام ریموتهای پیکربندیشده. این کار میتواند در مواردی که NOTIFY قبلی از دست رفته باشد یا سرورهای ثانویه آفلاین بودهاند کمک کند. (#)
- zone-flush [zone...] [+outdir directory]
- تخلیه ژورنال زون به فایل زون پیکربندیشده. اگر همگامسازی فایل زون غیرفعال باشد، باید از گزینه force استفاده شود. اگر دایرکتوری خروجی مشخص شده باشد، زون فعلی بلافاصله (در حالت انسدادی) در یک فایل زون در دایرکتوری مشخصشده ذخیره میشود. توضیحات زیر را درباره مجوزهای دایرکتوری ببینید. (#)
- zone-backup [zone...] +backupdir directory [filter...]
- راهاندازی پشتیبانگیری از دادهها و متادادههای زون در یک دایرکتوری مشخص. فیلترهای موجود عبارتند از +zonefile، +journal، +timers، +kaspdb، +keysonly، +catalog، +quic و همتایان منفی آنها +nozonefile، +nojournal، +notimers، +nokaspdb، +nokeysonly، +nocatalog و +noquic. با تنظیم این فیلترها، به ترتیب محتوای زون، ژورنال زون، زمانسنجهای مربوط به زون، دادههای مربوط به زون در پایگاهداده KASP به همراه کلیدها (یا کلیدها بدون پایگاهداده KASP)، کاتالوگ زون، و کلید و گواهی QUIC سرور پشتیبانگیری میشوند، یا از پشتیبانگیری حذف میگردند. به طور پیشفرض، فیلترهای +zonefile، +timers، +kaspdb، +catalog، +quic، +nojournal و +nokeysonly برای پشتیبانگیری تنظیم شدهاند. همین پیشفرضها برای بازیابی نیز تنظیم شدهاند، تنها با این تفاوت که +noquic تنظیم است. تنظیم یک فیلتر برای یک مورد، تنظیمات پیشفرض سایر موارد را تغییر نمیدهد. تنها استثنا +keysonly است که تمام فیلترهای دیگر را به طور پیشفرض غیرفعال میکند، اما هنوز میتوان آنها را به صراحت فعال کرد. اگر تخلیه زون غیرفعال باشد، فایل زون اصلی به جای نوشتن محتوای زون در یک فایل پشتیبانگیری میشود. هنگام پشتیبانگیری از یک زون کاتالوگ، توصیه میشود با استفاده از zone-freeze از اعمال تغییرات مداوم روی آن جلوگیری شود. گزینه force اجازه میدهد دایرکتوری backupdir از قبل موجود رونویسی شود. توضیحات زیر را درباره مجوزهای دایرکتوری ببینید. (#)
- zone-restore [zone...] +backupdir directory [filter...]
- راهاندازی بازیابی دادهها و متادادههای زون از یک دایرکتوری پشتیبان مشخصشده. فیلترهای اختیاری معادل همان فیلترهای zone-backup هستند. بازیابی از نسخههای پشتیبان ایجادشده توسط نگارشهای Knot DNS قبل از 3.1 با گزینه force امکانپذیر است. توضیحات زیر را درباره مجوزهای دایرکتوری ببینید. (#)
- zone-sign [zone...]
- راهاندازی امضای مجدد DNSSEC برای زون. امضاهای موجود حذف خواهند شد. این دستور برای زونهایی که امضای DNSSEC در آنها فعال است معتبر است. (#)
- zone-validate [zone...]
- راهاندازی اعتبارسنجی DNSSEC برای زون. اگر اعتبارسنجی ناموفق باشد و زون از نوع ثانویه باشد، زون بلافاصله منقضی میشود! (#)
- zone-keys-load [zone...]
- راهاندازی بارگذاری کلیدهای DNSSEC و سایر مواد امضا از پایگاهداده KASP (که ممکن است به صورت دستی تغییر یافته باشد). در صورت مناسب بودن، پس از آن زون مجدداً امضا میشود (با حفظ امضاهای معتبر به صورت دستنخورده). (#)
- zone-key-rollover zone key_type
- راهاندازی فوری تعویض کلید (rollover). انتشار کلید جدید و شروع تعویض کلید، حتی اگر کلید هنوز مدت اعتبار داشته باشد. نوع کلید میتواند ksk (همچنین برای CSK) یا zsk باشد. این دستور برای زونهای دارای امضای DNSSEC و مدیریت خودکار کلید معتبر است. توجه داشته باشید که تعویض کامل کلید شامل چند مرحله است و حالت انسدادی تنها مربوط به مرحله اولیه است! (#)
- zone-ksk-submitted zone... [+ttl seconds]
- زمانی استفاده میشود که تعویض KSK زون در مرحله ارسال (submission) است. با فراخوانی این دستور، کاربر به صورت دستی تایید میکند که زون والد حاوی رکورد DS برای KSK جدید در مرحله ارسال است و KSK قدیمی میتواند بازنشسته شود. پارامتر اختیاری +ttl مقدار TTL رکورد DS والد و احتمالاً تأخیرهای دیگر را مشخص میکند، با این اثر که حذف KSK قدیمی به اندازه این تعداد ثانیه به تعویق میافتد. (#)
- zone-freeze [zone...]
- راهاندازی انجماد زون. تمام رویدادهای در حال اجرا پایان مییابند و تمام رویدادهای جدید و معلق (برنامهریزیشده) تغییردهنده زون (بارگذاری، تازهسازی، بهروزرسانی، تخلیه و امضای DNSSEC) تا زمان خروج از انجماد زون متوقف خواهند شد. تا 8 بهروزرسانی DDNS (این محدودیت در کد برنامه ثابت است) به ازای هر زون در صف قرار میگیرند، بهروزرسانیهای بعدی رد خواهند شد. وضعیت انجماد زون پس از راهاندازی مجدد سرور باقی نمیماند! (#)
- zone-thaw [zone...]
- راهاندازی لغو انجماد زون. (#)
- zone-xfr-freeze [zone...]
- غیرفعالسازی موقت AXFR/IXFR خروجی برای زون(ها). وضعیت انجماد انتقال زون پس از راهاندازی مجدد سرور پایدار میماند. (#)
- zone-xfr-thaw [zone...]
- لغو انجماد انتقالهای خروجی XFR. (#)
- zone-read zone [owner [type]]
- دریافت دادههای زون که در حال حاضر ارائه میشوند.
- zone-begin zone... [+benevolent]
- آغاز یک تراکنش زون. در صورت استفاده از +benevolent، تراکنش حتی در صورتی که حاوی حذف رکوردهای ناموجود یا افزودن رکوردهای موجود باشد اعمال خواهد شد.
- zone-commit zone...
- اعمال تراکنش زون. تمام تغییرات روی زون اعمال میشوند.
- zone-abort zone...
- لغو تراکنش زون. تمام تغییرات دور ریخته میشوند.
- zone-diff zone
- دریافت تغییرات زون درون تراکنش.
- zone-get zone [owner [type]]
- دریافت دادههای زون درون تراکنش.
- zone-set zone owner [ttl] type rdata
- افزودن رکورد زون درون تراکنش. نخستین رکورد در یک rrset نیازمند مشخص کردن مقدار ttl است.
- zone-unset zone owner [type [rdata]]
- حذف دادههای زون درون تراکنش.
- zone-purge zone... [+orphan] [filter...]
- پاکسازی دادههای زون، فایل زون، ژورنال، زمانسنجها و/یا دادههای KASP در زونهای مشخصشده. فیلترهای موجود عبارتند از +expire، +zonefile، +journal، +timers، +kaspdb و +catalog. اگر فیلتری مشخص نشود، تمام فیلترها فعال خواهند بود. اگر زون دیگر پیکربندی نشده است، پارامتر +orphan را اضافه کنید (فایل زون در این حالت نمیتواند پاکسازی شود). هنگام پاکسازی زونهای یتیم (orphan)، همیشه گزارش وقایع سرور را برای خطاهای احتمالی بررسی کنید. برای عملکرد مناسب، لازم است از تغییرات در حال انجام روی زون و راهاندازی رویدادهای مربوط به زون حین پاکسازی جلوگیری شود؛ استفاده از zone-freeze توصیه میشود. این دستور همیشه نیازمند گزینه force است. (#)
- zone-stats zone [module[.counter]]
- نمایش شمارنده(های) آماری زون. برای چاپ شمارندههای با مقدار 0 نیز از گزینه force استفاده کنید.
- zone-serial-set zone [[+]serial]
- تنظیم سریال SOA زون به مقدار مشخصشده. اگر آرگومان دارای پیشوند + باشد، سریال به اندازه آن مقدار افزایش مییابد (ثابت ویژه MAX میتواند برای افزایش به اندازه حداکثر مقدار مجاز 2147483647 استفاده شود). اگر تراکنش زون باز باشد، هم خواندن و هم نوشتن سریال SOA درون همان تراکنش رخ میدهد. در غیر این صورت، یک تراکنش کوتاهمدت تنها برای تنظیم سریال جدید SOA ایجاد و اعمال میشود. اگر هیچ آرگومانی مشخص نشود، سریال فعلی SOA زون بازگردانده میشود.
- conf-init
- مقداردهی اولیه پایگاهداده پیکربندی. اگر پایگاهداده هنوز وجود ندارد، این دستور را با کاربر مورد نظر اجرا کنید تا اطمینان حاصل شود سرور مجاز به دسترسی به پایگاهداده است (مانند sudo -u knot knotc conf-init). (*)
- conf-check
- بررسی پیکربندی سرور. (*)
- conf-import filename [+nopurge]
- وارد کردن یک فایل پیکربندی به پایگاهداده پیکربندی. اگر پایگاهداده هنوز وجود ندارد، این دستور را با کاربر مورد نظر اجرا کنید تا مطمئن شوید سرور مجاز به دسترسی به پایگاهداده است (مانند sudo -u knot knotc conf-import ...). یک فیلتر اختیاری +nopurge از پاکسازی احتمالی پایگاهداده پیکربندی موجود قبل از خود عملیات واردسازی جلوگیری میکند. همچنین مطمئن شوید که سرور همزمان از پایگاهداده پیکربندی استفاده نمیکند! (*)
- conf-export [filename] [+schema]
- صادر کردن پایگاهداده پیکربندی (یا طرحواره JSON) به یک فایل یا خروجی استاندارد. (*)
- conf-list [item]
- فهرست کردن بخشهای پایگاهداده پیکربندی یا موارد یک بخش.
- conf-read [item]
- خواندن مورد از پایگاهداده پیکربندی فعال.
- conf-begin
- آغاز یک تراکنش نوشتن در پایگاهداده پیکربندی. در هر زمان تنها یک تراکنش میتواند باز باشد.
- conf-commit
- اعمال تراکنش پایگاهداده پیکربندی.
- conf-abort
- بازگرداندن (انصراف از) تراکنش پایگاهداده پیکربندی.
- conf-diff [item]
- دریافت تفاوتهای مورد در تراکنش.
- conf-get [item]
- دریافت دادههای مورد از تراکنش.
- conf-set item [data...]
- تنظیم دادههای مورد در تراکنش.
- conf-unset [item] [data...]
- لغو تنظیم دادههای مورد در تراکنش.
یادداشتها (Notes)
پارامتر خالی یا -- zone به معنای همه زونها یا همه زونهای دارای یک تراکنش است.
از @ owner برای نشان دادن نام زون استفاده کنید.
پارامتر item را به فرمت section[[id]][.name] تایپ کنید.
(*) نشاندهنده یک عملیات محلی است که نیازمند پیکربندی است.
(#) نشاندهنده یک عملیات اختیاری انسدادی (blocking) است.
گزینههای -b و -f میتوانند دقیقاً پس از نام دستور قرار گیرند.
پاسخهای بازگرداندهشده توسط دستورات knotc به حالت اجرا بستگی دارند:
- در حالت انسدادی، knotc گزارش میدهد که آیا خطایی حین پردازش دستور توسط سرور رخ داده است یا خیر. اگر خطایی گزارش شود، معمولاً اطلاعات دقیقتر درباره شکست را میتوان در لاگ سرور یافت.
- در حالت غیرانسدادی (پیشفرض)، knotc خطاهای پردازش را گزارش نمیکند. پاسخ OK به دستورات راهاندازی به این معنی است که دستور با موفقیت به سرور ارسال شده است. برای بررسی موفقیتآمیز بودن عملیات، لازم است گزارشهای سرور بررسی شوند.
اقدامات zone-flush، zone-backup و zone-restore توسط فرآیند knotd انجام میشوند. دایرکتوری مشخصشده باید برای حساب کاربری که knotd تحت آن اجرا میشود قابل دسترسی باشد و اگر دایرکتوری از قبل وجود دارد، مجوزهای آن باید برای آن حساب کاربری مناسب باشد.
حالت تعاملی (Interactive mode)
این ابزار یک حالت تعاملی با قابلیتهای اساسی ویرایش خط، تکمیل دستور و تاریخچه دستورات ارائه میدهد.
رفتار حالت تعاملی را میتوان در ~/.editrc سفارشی کرد. برای جزئیات به editrc(5) مراجعه کنید.
تاریخچه دستورات در ~/.knotc_history ذخیره میشود.
کدهای خروج (EXIT VALUES)
وضعیت خروج 0 به معنای عملیات موفقیتآمیز است. هر وضعیت خروج دیگری نشاندهنده یک خطا است.
مثالها (EXAMPLES)
بارگذاری مجدد کل پیکربندی سرور (Reload the whole server configuration)
$ knotc reload
تخلیه ژورنال زونهای example.com و example.org (Flush the example.com and example.org zones)
$ knotc zone-flush example.com example.org
دریافت پیکربندی فعلی سرور (Get the current server configuration)
$ knotc conf-read server
دریافت فهرست زونهای فعلی (Get the list of the current zones)
$ knotc conf-read zone.domain
دریافت سرورهای اولیه برای زون example.com (Get the primary servers for the example.com zone)
$ knotc conf-read 'zone[example.com].master'
افزودن زون example.org به همراه مکان فایل زون (Add example.org zone with a zonefile location)
$ knotc conf-begin $ knotc conf-set 'zone[example.org]' $ knotc conf-set 'zone[example.org].file' '/var/zones/example.org.zone' $ knotc conf-commit
دریافت رکورد SOA برای هر زون پیکربندیشده (Get the SOA record for each configured zone)
$ knotc zone-read -- @ SOA
همچنین ببینید (SEE ALSO)
نویسنده (AUTHOR)
CZ.NIC, z.s.p.o. and contributors https://www.knot-dns.cz
حق نشر (COPYRIGHT)
Copyright (C) CZ.NIC, z.s.p.o. and contributors
| 2026-06-12 | 3.5.5 |