PDNSD-CTL(8) PDNSD-CTL(8)

pdnsd-ctl - کنترل برنامه pdnsd

pdnsd-ctl [-c cachedir] [-q] command [arguments]

برنامه pdnsd-ctl، برنامه pdnsd را کنترل می‌کند که یک سرور پروکسی سامانه نام دامنه (DNS) با ذخیره‌سازی دائمی در حافظه نهان (کش) است. توجه داشته باشید که پیش از استفاده از pdnsd-ctl، سوکت کنترل وضعیت باید فعال شده باشد (با مشخص کردن یک گزینه در خط فرمان pdnsd یا در فایل پیکربندی آن).

تنظیم دایرکتوری کش به cachedir (باید با تنظیمات pdnsd مطابقت داشته باشد). این مورد تنها در صورتی لازم است که دایرکتوری با مقدار پیش‌فرض مشخص‌شده در زمان کامپایل تفاوت داشته باشد.
حالت بی‌صدا؛ هیچ خروجی چاپ نمی‌شود مگر این‌که توسط دستور مشخص شده باشد یا خطایی رخ دهد.

چاپ خلاصه‌ای از دستورات.

چاپ اطلاعات نسخه و مجوز.

چاپ شرحی از وضعیت کش، وضعیت ریسه‌ها (threadها) و پیکربندی pdnsd. همچنین نشان می‌دهد کدام نام‌سرورهای دوردست (remote) در دسترس فرض می‌شوند.

تنظیم وضعیت سرورها با اندیس یا برچسب داده‌شده به فعال (up) یا غیرفعال (down)، یا اجبار به آزمودن مجدد (retest). اندیس بر اساس ترتیب تعریف در pdnsd.conf و با شروع از 0 تخصیص می‌یابد. برای مشاهده اندیس‌ها از دستور status استفاده کنید. می‌توانید به‌جای اندیس از all استفاده کنید تا عملیات برای تمام سرورهای ثبت‌شده در pdnsd انجام شود.

می‌توان یک آرگومان سوم اختیاری شامل فهرستی از آدرس‌های IP که با کاما یا نویسه‌های فاصله خالی (white-space) جدا شده‌اند ارائه داد. این فهرست جایگزین آدرس‌های سرورهای نامی خواهد شد که pdnsd برای بخش سرور داده‌شده استفاده می‌کند. این ویژگی برای پیکربندی زمان اجرای pdnsd با داده‌های پویای DNS در اسکریپت‌های فراخوانی‌شده توسط ppp یا کلاینت‌های DHCP مفید است. آخرین آرگومان همچنین می‌تواند یک رشته خالی باشد که باعث حذف آدرس‌های IP موجود و غیرفعال شدن بخش سرور مربوطه می‌شود.

حذف (delete) یا ابطال (invalidate) رکوردهای نام دامنه داده‌شده در صورت وجود در کش. ابطال به این معناست که رکوردها به‌عنوان منقضی‌شده (timed out) علامت‌گذاری می‌شوند و در صورت امکان مجدداً بارگیری خواهند شد. برای رکوردهای محلی (یعنی رکوردهایی که در فایل پیکربندی با استفاده از بخش rr تعریف شده‌اند، رکوردهای خوانده‌شده از فایل‌های به سبک hosts، و رکوردهای اضافه‌شده با استفاده از pdnsd-ctl)، ابطال هیچ تأثیری ندارد؛ هرچند حذف کردن کار خواهد کرد.

بارگیری یک فایل به سبک hosts. مشابه استفاده از بخش پیکربندی source در pdnsd عمل می‌کند. پارامترهای owner و ttl مانند بخش source استفاده می‌شوند. مقدار پیش‌فرض ttl برابر ۹۰۰ ثانیه است (نیازی به مشخص کردن آن نیست). آرگومان یکی مانده به آخر متناظر با گزینه serve_aliases است و به‌طور پیش‌فرض off می‌باشد. گزینه noauth برای غیرمعتبر ساختن دامنه‌ها از نظر اختیارات و مرجعیت (non-authoritative) به کار می‌رود (این مشابه تنظیم authrec=off در فایل پیکربندی است؛ لطفاً برای مفهوم آن به صفحه راهنمای pdnsd.conf(5) مراجعه کنید). پارامتر fn نام فایل است که باید توسط pdnsd قابل خواندن باشد.

افزودن رکوردی از نوع مشخص‌شده به حافظه کش pdnsd، و جایگزینی رکوردهای موجود با همان نام و نوع. آرگومان دوم متناظر با مقدار گزینه‌ای در بخش rr است که همنام با آرگومان اول نام‌گذاری شده است. آرگومان addr می‌تواند فهرستی از آدرس‌های IP باشد که با کاما یا فاصله خالی از هم جدا شده‌اند. مقدار ttl اختیاری است و پیش‌فرض آن ۹۰۰ ثانیه است. گزینه noauth برای غیرمعتبر ساختن دامنه‌ها از نظر اختیارات و مرجعیت (non-authoritative) به کار می‌رود (این مشابه تنظیم authrec=off در فایل پیکربندی است؛ لطفاً برای مفهوم آن به صفحه راهنمای pdnsd.conf(5) مراجعه کنید). اگر می‌خواهید هیچ رکورد دیگری به جز رکورد تازه اضافه‌شده در کش وجود نداشته باشد، پیش از افزودن رکوردها دستور pdnsd-ctl record name delete را اجرا نمایید.

افزودن یک رکورد با کش منفی (negatively cached) به حافظه کش pdnsd، و جایگزینی رکوردهای موجود با همان نام و نوع. اگر نوعی (type) مشخص نشود، کل دامنه به‌صورت منفی کش می‌شود. برای رکوردهای کش‌شده منفی، در صورت دریافت پرس‌وجو فوراً پیام خطا بازگردانده می‌شود، بدون این‌که ابتدا از سایر سرورها پرس‌وجو به عمل آید. مقدار ttl اختیاری است و پیش‌فرض آن ۹۰۰ ثانیه می‌باشد.

بارگیری مجدد فایل پیکربندی pdnsd.
فایل پیکربندی باید متعلق به کاربری (uid) باشد که pdnsd در زمان شروع داشته است، و توسط run_as uid مربوط به pdnsd قابل خواندن باشد. اگر نام فایلی مشخص نشود، فایل پیکربندی استفاده‌شده در زمان راه‌اندازی، مجدداً بارگیری می‌شود. توجه داشته باشید که برخی از تغییرات پیکربندی، مانند پورت یا آدرس IP که pdnsd روی آن گوش می‌دهد، از این طریق قابل اعمال نیستند و پیام خطا دریافت خواهید کرد. در این موارد، باید به‌جای آن pdnsd را مجدداً راه‌اندازی کنید.

تجزیه یک فایل ضمیمه (include).
فایل ضمیمه می‌تواند شامل همان نوع بخش‌هایی باشد که در یک فایل پیکربندی وجود دارد، به‌جز بخش‌های global و server که مجاز نیستند. از این دستور می‌توان برای افزودن داده‌ها به کش بدون نیاز به پیکربندی مجدد pdnsd استفاده کرد.

تجزیه یک رشته به‌گونه‌ای که گویی بخشی از یک فایل ضمیمه است.
این رشته باید شامل یک یا چند بخش کامل پیکربندی باشد، اما نباید شامل بخش‌های global و server باشد، چرا که مجاز نیستند. اگر چندین رشته داده شود، با استفاده از نویسه‌های خط جدید به هم متصل شده و با یکدیگر تجزیه خواهند شد.

حذف تمام ورودی‌های کش که با قوانین شمول/عدم شمول مطابقت دارند.
اگر هیچ آرگومانی ارائه نشود، کش کاملاً خالی شده و تمام ورودی‌های موجود آزاد می‌شوند. توجه داشته باشید که این کار رکوردهای محلی تعریف‌شده توسط فایل پیکربندی را نیز حذف می‌کند. برای بازیابی رکوردهای محلی، بلافاصله پس از آن دستور "pdnsd-ctl config" را اجرا کنید.
اگر یک یا چند آرگومان ارائه شود، آن‌ها به‌عنوان نام‌های شمول/عدم شمول تفسیر می‌شوند. اگر آرگومانی با '+' شروع شود، آن نام مشمول حذف می‌شود. اگر با '-' شروع شود، مستثنی خواهد شد. اگر آرگومانی با '+' یا '-' شروع نشود، پیش‌فرض '+' در نظر گرفته می‌شود. چنانچه نام دامنه یک ورودی کش به یکی از نام‌های موجود در فهرست ختم شود، نخستین تطابق تعیین‌کننده نتیجه خواهد بود. اگر نام منطبق مشمول باشد، ورودی کش حذف می‌شود، وگرنه باقی می‌ماند. اگر هیچ تطابقی وجود نداشته باشد، اقدام پیش‌فرض حذف نکردن است.

چاپ اطلاعات ذخیره‌شده در کش درباره name. اگر name با یک نقطه شروع شود و دامنه ریشه نباشد، اطلاعات مربوط به نام‌های موجود در کش که به name ختم می‌شوند (شامل name بدون نقطه ابتدایی) چاپ خواهد شد. اگر name مشخص نشود، اطلاعات تمام نام‌های موجود در کش چاپ خواهد شد.

فهرست کردن انواع رکوردهای منبع (rr) موجود برای دستور neg. توجه داشته باشید که این موارد تنها برای دستور neg استفاده می‌شوند، نه برای add!

اگر خروجی دستور dump را به برنامه‌ای لوله‌کشی (pipe) کنید که تنها بخشی از خروجی را خوانده و سپس مسدود (block) می‌شود (مانند more یا less)، ریسه‌های pdnsd که تلاش می‌کنند ورودی‌های جدیدی به کش بیفزایند، تا زمان بسته شدن لوله به حالت تعلیق درخواهند آمد. در چنین مواردی ترجیح بر این است که خروجی را در یک فایل ذخیره نمایید.
هرگونه اشکال باقیمانده را به نویسندگان گزارش دهید.

Thomas Moestl <tmoestl@gmx.net>
Paul A. Rombouts <p.a.rombouts@home.nl> (برای نسخه‌های 1.1.8b1-par و بالاتر)

آخرین بازبینی: ۰۴ سپتامبر ۲۰۰۸ توسط Paul A. Rombouts.

pdnsd(8), pdnsd.conf(5)

Sep 2008 pdnsd 1.2.9b-par