PDNSUTIL(1) PowerDNS Authoritative Server PDNSUTIL(1)

pdnsutil - مدیریت و کنترل رکوردها و DNSSEC در PowerDNS

pdnsutil [OPTION]... COMMAND

pdnsutil (با نام پیشین pdnssec) دستوری قدرتمند و درگاهی کاربرپسند برای مدیران سیستم جهت مدیریت زون‌ها (zone) و DNSSEC در PowerDNS است. در پشت صحنه، pdnsutil پایگاه‌داده‌ی backend مربوط به PowerDNS را دستکاری می‌کند؛ بدین معنی که برای بسیاری از پایگاه‌های داده، pdnsutil می‌تواند از راه دور اجرا شده و داده‌های کلید را روی سرورهای مختلف پیکربندی کند.

نمایش خلاصه‌ای از گزینه‌ها
نمایش جزئیات بیشتر
اجبار در انجام یک عملیات
حالت بی‌صدا
مرتب‌سازی خروجی در صورت امکان
نام پیکربندی مجازی
محل pdns.conf. پیش‌فرض /etc/powerdns است.

دستورهای متعددی در دسترس هستند. بیشتر دستورها از الگوی pdnsutil <object> <action> [arguments...] پیروی می‌کنند، که در آن <object> یک اسم و <action> یک فعل است؛ تعداد کمی از دستورها که به شیء خاصی اعمال نمی‌شوند، تنها از فعل استفاده می‌کنند.

autoprimary add IP NAMESERVER [ACCOUNT]

افزودن یک مدخل autoprimary به backend. این کار دریافت به‌روزرسانی‌های زون از سرورهای دیگر را فعال می‌کند.

autoprimary list

فهرست کردن تمام autoprimaryها.

autoprimary remove IP NAMESERVER

حذف یک autoprimary از backend. در backend مربوط به BIND پشتیبانی نمی‌شود.

catalog list-members CATALOG

فهرست کردن تمام اعضای ناحیه کاتالوگ CATALOG.

catalog set ZONE [CATALOG]

تغییر کاتالوگ ZONE به CATALOG. اگر CATALOG مشخص نشود، ZONE را از کاتالوگی که در آن قرار دارد حذف می‌کند.

metadata add ZONE KIND VALUE [VALUE]...

الحاق مقدار VALUE به متاداده‌های موجود از نوع KIND برای ZONE. اگر KIND از مقادیر چندگانه پشتیبانی نکند، خطایی بازگردانده می‌شود؛ برای این مقادیر از metadata set استفاده کنید.

metadata get ZONE [KIND]...

دریافت متاداده ناحیه. اگر نوع KIND داده نشود، همه موارد شناخته‌شده را فهرست می‌کند.

metadata set ZONE KIND [VALUE]...

تنظیم متاداده ناحیه KIND برای ZONE به VALUE، که جایگزین تمام مقادیر موجود KIND می‌شود. مشخص نکردن مقدار، آن را پاک می‌کند.

network list

فهرست کردن تمام شبکه‌های تعریف‌شده به همراه نماهای (views) منتخب آن‌ها.

network set NET [VIEW]

تنظیم VIEW برای شبکه NET، یا در صورت نبود آرگومان VIEW، حذف آن.

در این دستورات، نام شیء rrset را می‌توان به صورت record نیز نوشت.

rrset add ZONE NAME TYPE [TTL] CONTENT

افزودن یک یا چند رکورد با نام NAME و نوع TYPE به ناحیه ZONE با محتوای CONTENT و مقدار اختیاری TTL. اگر TTL تنظیم نشود، مقدار پیکربندی‌شده‌ی default-ttl استفاده خواهد شد. NAME باید مطلق (absolute) باشد.

rrset delete ZONE NAME TYPE

حذف RRSET مشخص‌شده از ناحیه. NAME باید مطلق باشد.

rrset hash ZONE RNAME

این دستور کمکی نام RNAME را مطابق با تنظیمات NSEC3 ناحیه ZONE هش می‌کند. از هش کردن برای ناحیه‌های فاقد تنظیمات NSEC3 خودداری می‌کند.

rrset replace ZONE NAME TYPE [TTL] CONTENT [CONTENT...]

جایگزینی NAME موجود در ناحیه ZONE با یک مجموعه جدید.

این دستورها اطلاعات کلید TSIG را در پایگاه داده دستکاری می‌کنند. برخی از دستورها به یک ALGORITHM نیاز دارند که می‌تواند یکی از موارد زیر باشد:

  • hmac-md5
  • hmac-sha1
  • hmac-sha224
  • hmac-sha256
  • hmac-sha384
  • hmac-sha512

tsigkey activate ZONE NAME {primary,secondary,producer,consumer}

فعال‌سازی AXFR احرازهویت‌شده با TSIG با استفاده از کلید NAME برای ناحیهٔ ZONE. این دستور متاداده‌های ناحیهٔ TSIG-ALLOW-AXFR (برای primary/producer) یا AXFR-MASTER-TSIG (برای secondary/consumer) را تنظیم می‌کند.

tsigkey deactivate ZONE NAME {primary,secondary,producer,consumer}

غیرفعال‌سازی AXFR احرازهویت‌شده با TSIG با استفاده از کلید NAME برای ناحیهٔ ZONE.

tsigkey delete NAME

حذف کلید TSIG با نام NAME. هشدار: این کار کلید مذکور را غیرفعال نمی‌کند.

tsigkey generate NAME ALGORITHM

تولید کلید TSIG جدید با نام NAME و الگوریتم مشخص‌شده.

tsigkey import NAME ALGORITHM KEY

وارد کردن KEY با الگوریتم مشخص‌شده به‌عنوان NAME.

tsigkey list

نمایش فهرستی از تمامی کلیدهای TSIG پیکربندی‌شده.

views add-zone VIEW ZONE..VARIANT

افزودن ZONE VARIANT داده‌شده به یک VIEW.

views del-zone VIEW ZONE..VARIANT

حذف یک ZONE VARIANT از یک VIEW.

views list VIEW

فهرست کردن تمام ناحیه‌های درون VIEW.

views list-all

فهرست کردن نام تمام نماها (views).

zone check ZONE

بررسی درستی ناحیهٔ ZONE.

zone check-all [exit-on-error]

بررسی درستی تمام ناحیه‌ها؛ در صورت مشخص شدن "exit-on-error"، با یافتن نخستین خطا در هر ناحیه‌ای متوقف می‌شود.

zone clear ZONE

پاک کردن رکوردهای موجود در ناحیهٔ ZONE، بدون تغییر خود ناحیه و تنظیمات آن.

zone copy ZONE NEW-ZONE

رونوشت محتویات ZONE (رکوردها، یادداشت‌ها، متادیتا و کلیدها) به ناحیهٔ جدید NEW-ZONE. ناحیهٔ جدید نباید از قبل وجود داشته باشد و در قالب عملیات رونوشت، در همان backend مربوط به ZONE ایجاد می‌شود.

zone create ZONE

ایجاد یک ناحیهٔ خالی با نام ZONE.

zone delete ZONE

حذف ناحیه با نام ZONE.

zone edit ZONE

باز کردن ZONE در قالب zonefile (صرف‌نظر از backendی که از آن بارگذاری شده است) در ویرایشگر تعیین‌شده در متغیر محیطی EDITOR. در صورتی که EDITOR خالی باشد، pdnsutil به استفاده از editor بازمی‌گردد.

zone increase-serial ZONE

افزایش مقدار SOA-serial به اندازهٔ ۱ واحد. از SOA-EDIT استفاده می‌کند.

zone list ZONE

نمایش تمام رکوردهای ZONE. ارسال --sort یا -s رکوردها را بر اساس نامشان مرتب می‌کند، اما ممکن است در ناحیه‌های عظیم به حافظه و زمان پردازش زیادی نیاز داشته باشد.

zone list-all KIND

فهرست کردن نام همهٔ ناحیه‌های فعال از نوع (KIND) داده‌شده (primary،‏ secondary،‏ native،‏ producer،‏ consumer) یا همهٔ آن‌ها در صورت مشخص نشدن نوع. ارسال --verbose یا -v ناحیه‌های غیرفعال یا خالی را نیز در بر می‌گیرد.

zone load ZONE FILE

بارگذاری رکوردهای ZONE از FILE. اگر ZONE از قبل وجود داشته باشد، تمام رکوردها بازنویسی می‌شوند؛ این عملیات اتمیک (atomic) است. اگر ZONE وجود نداشته باشد، ایجاد می‌شود.

zone set-account ZONE ACCOUNT

تغییر حساب (مالک) ZONE به ACCOUNT.

zone set-kind ZONE KIND

تغییر نوعِ ناحیهٔ ZONE به KIND (شامل primary،‏ secondary،‏ native،‏ producer یا consumer).

zone set-option ZONE [producer | consumer] [coo | unique | group] VALUE [VALUE ...]

تنظیم یا حذف یک گزینه برای ZONE. ارائهٔ یک مقدار خالی، گزینه را حذف می‌کند.

zone set-options-json ZONE JSONFILE

تغییر گزینه‌های ZONE به محتوای JSONFILE.

zone zonemd-verify-file ZONE FILE

اعتبارسنجی ZONEMD برای ZONE خوانده‌شده از FILE.

zone change-primary ZONE PRIMARY [PRIMARY]...

تغییر کارسازهای اصلی برای ناحیهٔ ثانویهٔ ZONE به کارسازهای اصلی جدید PRIMARY. همهٔ PRIMARYها باید آدرس‌های IP جداشده با فاصله به همراه پورت اختیاری باشند.

zone create-secondary ZONE PRIMARY [PRIMARY]...

ایجاد یک ناحیهٔ ثانویهٔ جدید ZONE با کارسازهای اصلی PRIMARY. همهٔ PRIMARYها باید آدرس‌های IP جداشده با فاصله به همراه پورت اختیاری باشند.

چندین دستور کلیدها و گزینه‌های DNSSEC را برای نواحی دستکاری می‌کنند. برخی از این دستورها نیازمند تنظیم یک ALGORITHM هستند. الگوریتم‌های زیر پشتیبانی می‌شوند:

  • rsasha1
  • rsasha1-nsec3-sha1
  • rsasha256
  • rsasha512
  • ecdsa256
  • ecdsa384
  • ed25519
  • ed448
نکته

الگوریتم‌های ed25519 و ed448 تنها در صورتی در دسترس خواهند بود که کتابخانه‌های رمزنگاری کافی هنگام کامپایل PowerDNS روی سیستم خاص شما موجود بوده باشند.

علاوه بر الگوریتم، برخی از دستورهای زیر ممکن است اندازهٔ کلید را بر حسب بیت درخواست کنند. اندازهٔ کلید را می‌توان برای الگوریتم‌های ECC نادیده گرفت، زیرا آنها تنها از یک اندازهٔ معتبر به ازای هر الگوریتم پشتیبانی می‌کنند؛ برای ECDSA256 و ED25519 این مقدار 256 است؛ برای ECDSA384 برابر با 384؛ و برای ED448 برابر با... 456 است.

zone dnssec-disable ZONE

غیرفعال کردن تمام کلیدها و لغو وضعیت PRESIGNED در ZONE.

zone export-dnskey ZONE KEY_ID

برون‌بری DNSKEY و DS مربوط به کلید با شناسهٔ کلید KEY_ID در ناحیهٔ ZONE در خروجی استاندارد.

zone export-ds ZONE

برون‌بری تمام رکوردهای KSK DS برای ZONE در خروجی استاندارد.

zone list-keys [ZONE]

فهرست کردن اطلاعات DNSSEC برای تمام کلیدها یا تنها برای ZONE. ارسال --verbose یا -v همچنین کلیدهای مربوط به نواحی غیرفعال یا خالی را شامل می‌شود.

zone rectify ZONE

فیلدهای 'ordername' و 'auth' را برای ناحیه‌ای به نام ZONE محاسبه می‌کند تا با تنظیمات DNSSEC مطابقت داشته باشند. می‌تواند برای تصحیح داده‌های مهاجرت‌یافته استفاده شود.

zone rectify-all

فیلدهای 'ordername' و 'auth' را برای تمام نواحی محاسبه می‌کند تا با تنظیمات DNSSEC مطابقت داشته باشند. می‌تواند برای تصحیح داده‌های مهاجرت‌یافته استفاده شود.

zone secure ZONE

ناحیه‌ای به نام ZONE را با تنظیمات معقول DNSSEC پیکربندی می‌کند. پس از آن باید 'pdnsutil zone rectify' را به صورت دستی اجرا کنید.

zone secure-all [increase-serial]

تمام نواحی که در حال حاضر امضا نشده‌اند را با تنظیمات معقول DNSSEC پیکربندی می‌کند. تنظیم increase-serial شماره سریال آن نواحی را نیز افزایش می‌دهد. پس از آن باید 'pdnsutil zone rectify-all' را به صورت دستی اجرا کنید.

zone set-nsec3 ZONE ['HASH-ALGORITHM FLAGS ITERATIONS SALT'] [narrow]

پارامترهای NSEC3 را برای این ناحیه تنظیم می‌کند. پارامترهای داخل نقل‌قول ۴ مقداری هستند که برای رکورد NSEC3PARAM استفاده می‌شوند و تعیین می‌کنند رکوردهای NSEC3 چگونه ایجاد شوند. پارامترهای NSEC3 در خط فرمان باید داخل نقل‌قول باشند. HASH-ALGORITHM باید 1 (SHA-1) باشد. تنظیم FLAGS روی 1، عملکرد NSEC3 opt-out را فعال می‌کند. این کار را فقط در صورتی انجام دهید که می‌دانید به آن نیاز دارید. برای ITERATIONS، لطفاً به RFC 5155 مراجعه کنید.

همچنین آگاه باشید که یک مقدار بزرگ ممکن است بار زیادی به resolverهای اعتبارسنج تحمیل کند و می‌توان با max-nsec3-iterations در pdns.conf برای آن حد تعیین کرد. مقدار SALT یک رشتهٔ هگزادسیمال شامل بیت‌های کدگذاری‌شده برای salt است، یا - برای استفاده نکردن از salt.

تنظیم narrow باعث می‌شود PowerDNS برای جلوگیری از شمارش ناحیه (zone enumeration)، «دروغ‌های مصلحتی» (RFC 7129) دربارهٔ رکورد امن بعدی ارسال کند. به جای جستجوی آن در پایگاه داده، مقدار hash + 1 را به عنوان رکورد امن بعدی ارسال می‌کند. حالت narrow نیازمند قابلیت‌های امضای برخط (online signing) توسط nameserver است و بنابراین انتقال‌های ناحیه (zone transfers) رد می‌شوند.

اگر فقط ناحیه به عنوان آرگومان داده شود، رشتهٔ دارای ۴ پارامتر داخل نقل‌قول به صورت پیش‌فرض برابر با '1 0 0 -' خواهد بود، همان‌گونه که توسط RFC 9276 توصیه شده است.

یک نمونه خط فرمان عبارت است از:

pdnsutil zone set-nsec3 powerdnssec.org '1 1 1 ab' narrow

هشدار: در صورت اجرا در حالت RSASHA1 (الگوریتم 5 یا 7)، تغییر از NSEC به NSEC3 نیازمند به‌روزرسانی DS در ناحیهٔ والد (parent zone) خواهد بود.

zone set-presigned ZONE

ناحیهٔ ZONE را به حالت عملیاتی از پیش امضاشده تغییر می‌دهد و از RRSIGهای درون ناحیه استفاده می‌کند.

zone set-publish-cdnskey ZONE [delete]

تنظیم ZONE برای انتشار رکوردهای CDNSKEY. مقدار 'delete' را برای انتشار یک CDNSKEY با یک الگوریتم حذف DNSSEC اضافه کنید.

zone set-publish-cds ZONE [DIGESTALGOS]

تنظیم ZONE برای پاسخ‌دهی به پرس‌وجوهای رکوردهای CDS خود. آرگومان اختیاری DIGESTALGOS باید یک فهرست جداشده با کاما از الگوریتم‌های DS مورد استفاده باشد. به صورت پیش‌فرض، این مقدار 2 (SHA-256) است. مقدار 0 یک CDS با الگوریتم حذف DNSSEC منتشر می‌کند.

zone show ZONE

جزئیات گوناگون ناحیه‌ای با نام ZONE، از جمله تنظیمات مرتبط با DNSSEC آن را نمایش می‌دهد.
zone unset-nsec3 ZONE
ناحیهٔ ZONE را به عملیات NSEC تبدیل می‌کند. هشدار: در صورت اجرا در حالت RSASHA1 (الگوریتم ۵ یا ۷)، تغییر از NSEC به NSEC3 نیازمند به‌روزرسانی DS در ناحیهٔ والد (parent zone) خواهد بود!

zone unset-presigned ZONE

عملیات پیش‌امضاشده (presigned) را برای ZONE غیرفعال می‌کند.

zone unset-publish-cdnskey ZONE

ناحیهٔ ZONE را طوری تنظیم می‌کند که انتشار رکوردهای CDNSKEY را متوقف کند.

zone unset-publish-cds ZONE

ناحیهٔ ZONE را طوری تنظیم می‌کند که پاسخ‌دهی به پرس‌وجوهای رکوردهای CDS خود را متوقف کند.

zone activate-key ZONE KEY_ID

فعال‌سازی یک کلید با شناسهٔ KEY_ID در ناحیه‌ای به نام ZONE.

zone add-key ZONE [KSK,ZSK] [active,inactive] [published,unpublished] ALGORITHM [KEYBITS]

ایجاد یک کلید جدید برای ناحیهٔ ZONE و تنظیم آن به‌عنوان KSK (پیش‌فرض) یا ZSK، با ALGORITHM و KEYBITS مشخص‌شده. اگر KEYBITS مشخص نشود، از مقدار default-ksk-size یا default-zsk-size استفاده می‌شود.

کلید به‌طور پیش‌فرض غیرفعال است؛ آن را روی active تنظیم کنید تا بلافاصله برای امضای ZONE استفاده شود. کلید به‌طور پیش‌فرض در ناحیه منتشر می‌شود؛ آن را روی unpublished تنظیم کنید تا از بازگردانده شدن آن در پاسخ پرس‌وجوی DNSKEY جلوگیری شود، که برای جابه‌جایی الگوریتم (algorithm rollover) مفید است.

شناسهٔ کلید اضافه‌شده را چاپ می‌کند.

zone deactivate-key ZONE KEY_ID

غیرفعال‌سازی کلیدی با شناسهٔ KEY_ID در ناحیه‌ای به نام ZONE.

zone export-key ZONE KEY_ID

برون‌بری کلید کامل (خصوصی) با شناسهٔ کلید KEY_ID در ناحیهٔ ZONE به خروجی استاندارد. قالب استفاده‌شده با BIND و NSD/LDNS سازگار است.

zone export-key-pem ZONE KEY_ID

برون‌بری کلید کامل (خصوصی) با شناسهٔ کلید KEY_ID در ناحیهٔ ZONE به خروجی استاندارد در قالب فایل PEM. این قالب با بسیاری از محصولات نرم‌افزاری غیر-DNS سازگار است.

zone generate-key {KSK,ZSK} [ALGORITHM] [KEYBITS]

تولید یک ZSK یا KSK با الگوریتم و بیت‌های مشخص‌شده و چاپ آن در خروجی استاندارد. اگر ALGORITHM تعیین نشده باشد، ECDSA256 استفاده می‌شود. اگر KEYBITS مشخص نشده باشد، اندازهٔ کلید مناسبی برای ALGORITHM انتخاب می‌شود: برای کلیدهای RSA، مقدار ۲۰۴۸ بیت برای KSK و ۱۰۲۴ بیت برای ZSK؛ برای کلیدهای ECC، اندازهٔ مورد نیاز الگوریتم به‌طوری که در بالا ذکر شد.

zone import-key ZONE FILE [KSK,ZSK] [active,inactive] [published,unpublished]

درون‌ریزی کلید کامل (خصوصی) از FILE برای ناحیهٔ ZONE. قالب استفاده‌شده با BIND و NSD/LDNS سازگار است. KSK یا ZSK پرچم‌هایی را که این کلید باید هنگام درون‌ریزی داشته باشد مشخص می‌کند. به‌طور پیش‌فرض KSK، فعال (active) و منتشرشده (published) است. شناسهٔ کلید اضافه‌شده را چاپ می‌کند.

zone import-key-pem ZONE FILE ALGORITHM {KSK,ZSK}

درون‌ریزی کلید کامل (خصوصی) از FILE با قالب PEM برای ناحیهٔ ZONE با ALGORITHM مشخص‌شده. قالب استفاده‌شده با بسیاری از محصولات نرم‌افزاری غیر-DNS سازگار است. KSK یا ZSK پرچم‌هایی را که این کلید باید هنگام درون‌ریزی داشته باشد مشخص می‌کند. شناسهٔ کلید اضافه‌شده را چاپ می‌کند.

zone publish-key ZONE KEY_ID

انتشار کلید با شناسهٔ KEY_ID در ناحیهٔ ZONE.

zone remove-key ZONE KEY_ID

حذف کلیدی با شناسهٔ KEY_ID از ناحیهٔ ZONE.

zone unpublish-key ZONE KEY_ID

لغو انتشار کلید با شناسهٔ KEY_ID در ناحیهٔ ZONE.

b2b-migrate OLD NEW

مهاجرت داده‌ها از یک backend به دیگری. نیازمند launch=OLD,NEW در پیکربندی است.

backend-cmd BACKEND CMD [CMD...]

ارسال یک دستور متنی به یک backend برای اجرا. backendهای GSQL دستورهای SQL را می‌پذیرند، backendهای دیگر ممکن است موارد دیگری را بپذیرند. مراقب باشید!

backend-lookup BACKEND NAME [TYPE [CLIENT_IP_SUBNET]]

انجام جستجوی رکورد در backend.

bench-db [FILE]

انجام ارزیابی کارایی (benchmark) برای پایگاه‌دادهٔ backend. FILE می‌تواند فایلی شامل فهرستی از نام‌های zone در هر سطر باشد که برای این کار استفاده می‌شود. اگر FILE مشخص نشود، از powerdns.com استفاده خواهد شد.

create-bind-db FILENAME

ایجاد پایگاه‌دادهٔ DNSSEC (از نوع sqlite3) در FILENAME برای backend مربوط به BIND. به‌خاطر داشته باشید که bind-dnssec-db=*FILE* را در pdns.conf خود تنظیم کنید.

hash-password [WORK_FACTOR]

این دستور کاربردی یک گذرواژه را (بدون نمایش نویسه‌ها) از ورودی استاندارد می‌خواند و نسخه‌ای درهم‌سازی‌شده (hashed) و نمک‌زده (salted) را برای استفاده به‌عنوان گذرواژهٔ وب‌سرور یا کلید api برمی‌گرداند. یک ضریب کاری اختیاری برای scrypt می‌تواند به‌صورت توان‌هایی از دو مشخص شود، در غیر این صورت مقدار پیش‌فرض آن 1024 است.

ipdecrypt IP_ADDRESS PASSPHRASE_OR_KEY [key]

رمزگشایی یک نشانی IP بر اساس استاندارد 'ipcipher'. اگر عبارت عبور یک کلید base64 است، کلمهٔ "key" را پس از آن اضافه کنید.

ipencrypt IP_ADDRESS PASSPHRASE_OR_KEY [key]

رمزنگاری یک نشانی IP بر اساس استاندارد 'ipcipher'. اگر عبارت عبور یک کلید base64 است، کلمهٔ "key" را پس از آن اضافه کنید.

list-algorithms [with-backend]

فهرست کردن تمام الگوریتم‌های پشتیبانی‌شدهٔ DNSSEC؛ در صورت تعیین "with-backend"، کتابخانهٔ رمزنگاری مورداستفاده نیز به‌صورت اختیاری فهرست می‌شود.

test-schema ZONE

آزمایش طرحوارهٔ (schema) پایگاه‌داده؛ این دستور ناحیهٔ ZONE را ایجاد می‌کند.

raw-lua-from-content TYPE CONTENT

نمایش محتوای رکورد در قالبی مناسب برای دستور SpoofRawAction در dnsdist.

pdns_server (1), pdns_control (1)

PowerDNS.COM BV

PowerDNS.COM BV

August 5, 2026