PDNSD(8) دستورهای مدیریت سیستم PDNSD(8)

pdnsd - دیمن پروکسی سامانه نام دامنه (DNS)

pdnsd [-h] [-V] [-s] [-d] [-g] [-t] [-p file] [-vn] [-mxx] [-c file] [-4] [-6] [-a]

این صفحه راهنما خلاصه‌ای از مستندات pdnsd است. برای مستندات کامل و به‌روز، به مستندات HTML (یا متن ساده) مراجعه کنید (که می‌توانید آن را در زیرپوشه doc/ سورس‌کد یا در یک دایرکتوری مستندات استاندارد، معمولاً در /usr/share/doc/pdnsd/ در صورت استفاده از بسته باینری، بیابید).

برنامه pdnsd یک سرور پروکسی سامانه نام دامنه (DNS) با قابلیت پشتیبانی از IPv6 است که محتویات حافظه نهان (کش) DNS خود را هنگام خروج بر روی دیسک ذخیره می‌کند.

-4
پشتیبانی از IPv4 را فعال می‌کند. پشتیبانی از IPv6 به‌طور خودکار غیرفعال می‌شود (در صورت موجود بودن). به‌طور پیش‌فرض فعال است.
-6
پشتیبانی از IPv6 را فعال می‌کند. پشتیبانی از IPv4 به‌طور خودکار غیرفعال می‌شود (در صورت موجود بودن). به‌طور پیش‌فرض غیرفعال است.
با این گزینه، pdnsd تلاش می‌کند به‌طور خودکار بررسی کند که آیا سیستم از IPv6 پشتیبانی می‌کند یا خیر، و در غیر این صورت به IPv4 بازمی‌گردد.
اطلاعات نسخه را چاپ کرده و خارج می‌شود.
مشخص می‌کند که پیکربندی باید از FILE خوانده شود. پیش‌فرض /etc/pdnsd.conf است.
اجرای pdnsd در حالت دیمن (به‌عنوان یک پردازش پس‌زمینه).
چاپ برخی پیام‌های اشکال‌زدایی در کنسول یا در فایل pdnsd.debug در دایرکتوری کش شما (در حالت دیمن).
چاپ خلاصه گزینه‌ها و خروج.
پیشوندی را تعیین می‌کند که pdnsd (هنگام اجرا در حالت IPv6) برای نگاشت آدرس‌های IPv4 در فایل پیکربندی به آدرس‌های IPv6 استفاده می‌کند. باید یک آدرس IPv6 معتبر باشد. پیش‌فرض ::ffff:0.0.0.0 است.
شناسه فرایند (PID) که سرور تحت آن اجرا می‌شود را در نام فایل مشخص‌شده می‌نویسد. تنها در حالت دیمن کار می‌کند.
کاربری را که pdnsd تحت آن اجرا خواهد شد چاپ کرده و خارج می‌شود.
سوکت کنترل وضعیت را فعال می‌کند. اگر می‌خواهید از pdnsd-ctl(8) برای کنترل pdnsd در زمان اجرا استفاده کنید، یا باید این گزینه به خط فرمان داده شود یا status_ctl=on; در فایل پیکربندی مشخص گردد.
رشته (thread) سرور TCP را فعال می‌کند. سپس pdnsd به پرس‌وجوهای TCP و UDP پاسخ خواهد داد.
میزان پرگویی (verbosity) برنامه pdnsd را تنظیم می‌کند. n یک آرگومان عددی بین 0 (عملکرد عادی) تا 3 (پیام‌های بسیار برای اشکال‌زدایی) است.
روش پرس‌وجویی را که pdnsd استفاده می‌کند تعیین می‌نماید. مقادیر ممکن برای xx عبارتند از:
uo - برنامه pdnsd فقط از UDP استفاده خواهد کرد. این سریع‌ترین روش است و باید توسط تمام نام‌سرورهای اینترنت پشتیبانی شود.
to - برنامه pdnsd فقط از TCP استفاده خواهد کرد. پرس‌وجوهای TCP معمولاً زمان بیشتری نسبت به پرس‌وجوهای UDP می‌برند، اما در برابر برخی حملات که در آن‌ها مهاجم تلاش می‌کند شناسه پرس‌وجو را حدس زده و پاسخ‌های جعلی ارسال کند ایمن‌تر هستند. پرس‌وجوهای TCP توسط برخی از سرورهای نام پشتیبانی نمی‌شوند.
tu - برنامه pdnsd تلاش می‌کند از TCP استفاده کند، و در صورتی که اتصال آن رد شود یا با اتمام مهلت زمانی (timeout) مواجه گردد، به UDP بازمی‌گردد.
ut - برنامه pdnsd تلاش می‌کند از UDP استفاده کند، و اگر پاسخ UDP ناقص باشد (یعنی بیت tc تنظیم شده باشد) پرس‌وجو را با استفاده از TCP تکرار خواهد کرد. این رفتار توصیه‌شده توسط استانداردهای DNS است.

علاوه بر این، پیشوند "no" می‌تواند به گزینه‌های --status، --daemon، --debug و --tcp اضافه شود (مثلاً --notcp) تا اثر آن‌ها را معکوس کند.

برنامه pdnsd معمولاً از طریق یک اسکریپت راه‌اندازی اجرا می‌شود. برای کارکردن pdnsd، شما باید:

۱. با ویرایش فایل /etc/resolv.conf به سیستم خود اعلام کنید که از pdnsd به‌عنوان سرور DNS اولیه استفاده کند.
۲. با قرار دادن آدرس‌های IP یک یا چند سرور DNS، معمولاً سرورهای DNS ارائه‌دهنده خدمات اینترنتی شما (ISP)، در فایل /etc/pdnsd.conf به pdnsd بگویید که از یک منبع معتبر برای رکوردهای DNS استفاده کند.

برای این کار، خط زیر را در فایل /etc/resolv.conf خود قرار دهید

nameserver 127.0.0.X

که در آن X می‌تواند هر عددی باشد. (من از ۳ استفاده می‌کنم). بقیه ورودی‌ها را کامنت کنید. باید همین مقدار را در خط =server_ip در بخش global فایل /etc/pdnsd.conf نیز قرار دهید.
اگر می‌خواهید از pdnsd به‌عنوان سرور DNS برای یک شبکه محلی کوچک استفاده کنید، باید از آدرس IP یا نام رابط متصل به این شبکه به جای 127.0.0.X استفاده نمایید.

برای اینکه به pdnsd بگویید اطلاعات DNS را از کجا دریافت کند، خطوط زیر را در /etc/pdnsd.conf اضافه کنید:

server {
label= "myisp";
ip=123.456.789.001,123.456.789.002;
proxy_only=on;
timeout=10;
}

به آکولادهای باز و بسته دقت کنید. برای هر مجموعه‌ای از سرورهای DNS که می‌خواهید pdnsd از آن‌ها پرس‌وجو کند، بخش‌های server مشابه بیشتری اضافه نمایید. البته گزینه‌های پیکربندی نشان داده شده در اینجا فقط مثال هستند. نمونه‌های بیشتر را می‌توانید در /etc/pdnsd.conf.sample یا در فایل pdnsd.conf در دایرکتوری مستندات بیابید. صفحه راهنمای pdnsd.conf(5) را برای همه گزینه‌های ممکن و معانی دقیق آن‌ها ببینید.

اگر از اتصال dial up استفاده می‌کنید، به یاد داشته باشید که اسکریپت‌های ppp معمولاً هنگامی که اتصال با ISP برقرار می‌شود، فایل /etc/resolv.conf را جایگزین می‌کنند. باید ppp (یا هر ابزاری که برای برقراری اتصال استفاده می‌کنید) را طوری پیکربندی کنید که /etc/resolv.conf هر بار که اتصالی برقرار می‌شود بازنویسی نشود. مستندات اسکریپت‌هایی را که هنگام بالا آمدن شبکه اجرا می‌شوند بخوانید.

اگر از pppconfig استفاده می‌کنید، مقدار `none' را در گزینه `nameservers' در برگه `advanced' مشخص کنید. اگر از چندین ISP استفاده می‌کنید، باید این کار را برای هر اتصال/حساب انجام دهید.

در صورت استفاده از چندین ISP، باید با فراخوانی pdnsd-ctl (ابزار کنترل pdnsd) در اسکریپتی (مانند /etc/ppp/ip-up هنگام استفاده از pppd) که زمان برقراری اتصال اجرا می‌شود، به pdnsd اطلاع دهید که کدام سرورهای DNS در دسترس قرار گرفته‌اند. اگر آدرس‌های سرورهای DNS از طریق نوعی پروتکل پیکربندی پویا (مثلاً pppd با گزینه usepeerdns یا یک سرویس‌گیرنده DHCP) دریافت می‌شوند، می‌توانید آدرس‌های سرور DNS را به‌عنوان یک آرگومان اضافی به pdnsd-ctl ارسال کنید تا pdnsd در زمان اجرا پیکربندی شود. برای جزئیات به صفحه راهنمای pdnsd-ctl(8) مراجعه کنید.

/etc/pdnsd.conf فایل پیکربندی pdnsd است. قالب فایل و گزینه‌های پیکربندی در صفحه راهنمای pdnsd.conf(5) توصیف شده‌اند. می‌توانید نمونه‌های تقریباً تمامی گزینه‌ها را در /etc/pdnsd.conf.sample بیابید.

/var/cache/pdnsd/pdnsd.cache

/var/cache/pdnsd/pdnsd.status سوکت کنترل وضعیت است که باید پیش از امکان استفاده از pdnsd-ctl فعال شده باشد.

/etc/init.d/pdnsd (نام و مکان اسکریپت راه‌اندازی ممکن است بسته به توزیع شما متفاوت باشد.)

/etc/resolv.conf

/etc/defaults/pdnsd شامل پارامترها یا گزینه‌های اضافی است که ممکن است هنگام بوت به pdnsd ارسال شوند. این کار از زحمت دستکاری اسکریپت‌های راه‌اندازی (initscripts) جلوگیری می‌کند (در همه توزیع‌ها موجود نیست).

در حال حاضر به نظر نمی‌رسد گزینه پرگویی -vn تأثیر چندانی بر حجم خروجی اشکال‌زدایی داشته باشد.
اشکالات باقیمانده را به نویسندگان گزارش دهید.

برنامه pdnsd باید با RFCهای 1034 و 1035 سازگار باشد. از نسخه 1.0.0، سازگاری با RFC بهبود یافته و اکنون باور بر این است (یا امید می‌رود؟) که pdnsd کاملاً با RFC سازگار باشد. این برنامه کاملاً از RFC 2181 پیروی می‌کند (به‌جز یک مورد جزئی در پورت FreeBSD؛ به مستندات مراجعه فرمایید).

این برنامه از قابلیت‌های زیر که اغلب آن‌ها در این RFCها به‌صورت اختیاری، آزمایشی یا منسوخ علامت‌گذاری شده‌اند پشتیبانی نمی‌کند:

• پرس‌وجوهای معکوس (Inverse queries)
• پرس‌وجوهای وضعیت (Status queries)
• پرس‌وجوهای تکمیل (Completion queries)
• فضاهای نامی غیر از IN (اینترنت)
• پرس‌وجوهای AXFR و IXFR (انتقال کامل زون)؛ از آنجا که pdnsd زون‌ها را نگهداری نمی‌کند، نباید استاندارد را نقض کند

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

• رکورد RP (شخص مسئول، RFC 1183)
• رکورد AFSDB (مکان پایگاه‌داده AFS، RFC 1183)
• رکورد X25 (آدرس X25، RFC 1183)
• رکورد ISDN (شماره/آدرس ISDN، RFC 1183)
• رکورد RT (مسیریابی از طریق، RFC 1183)
• رکورد NSAP (آدرس پروتکل دسترسی به خدمات شبکه، RFC 1348)
• رکورد PX (اطلاعات نگاشت X.400/RFC822، RFC 1995)
• رکورد GPOS (موقعیت جغرافیایی، منسوخ)
• رکورد AAAA (آدرس IPv6، RFC 1886)
• رکورد LOC (مکان جغرافیایی، RFC 1876)
• رکورد EID (شناسه Nimrod EID)
• رکورد NIMLOC (مکان‌یاب Nimrod)
• رکورد SRV (رکورد سرویس، RFC 2782)
• رکورد ATMA (آدرس ATM)
• رکورد NAPTR (نگاشت URI، RFC 2168)
• رکورد KX (تبادل کلید، RFC 2230)

pdnsd-ctl(8), pdnsd.conf(5), pppconfig(8), resolv.conf(5)

مستندات بیشتر در زیرپوشه doc/ سورس‌کد یا در /usr/share/doc/pdnsd/ در صورت استفاده از بسته باینری در دسترس است.

برنامه pdnsd در ابتدا توسط Thomas Moestl نوشته شد، <tmoestl@gmx.net>, و به‌طور گسترده توسط Paul A. Rombouts بازبینی شد <p.a.rombouts@home.nl> (برای نسخه‌های 1.1.8b1-par و بالاتر).

چندین نفر دیگر نیز در توسعه pdnsd مشارکت داشته‌اند؛ فایل‌های موجود در سورس‌کد یا دایرکتوری /usr/share/doc/pdnsd/ را ببینید.

این صفحه راهنما توسط Mahesh T. Pai نوشته شد <paivakil@yahoo.co.in> با استفاده از مستندات موجود در دایرکتوری /usr/share/docs/pdnsd/ برای دبیان، اما می‌تواند در سایر توزیع‌ها نیز استفاده شود.

آخرین بازبینی: ۲۲ ژوئیه ۲۰۰۷ توسط Paul A. Rombouts.

این صفحه راهنما بخشی از بسته pdnsd است و ممکن است به شکل اصلی یا اصلاح‌شده تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) منتشرشده توسط بنیاد نرم‌افزار آزاد توزیع شود؛ نسخه ۳ یا (به انتخاب شما) هر نسخه بالاتر.

می‌توانید یک نسخه از GNU GPL را در فایل COPYING در سورس‌کد یا در دایرکتوری /usr/share/common-licenses/ در صورت استفاده از سیستم دبیان پیدا کنید.

Jul 2007 pdnsd 1.2.9b-par