RESOLVCONF(8) System Manager's Manual RESOLVCONF(8)

resolvconf — چارچوب مدیریت اطلاعات سرورهای نام و فایل resolv.conf

resolvconf -I resolvconf [-m metric] [-p] [-x] -a key <file resolvconf -C pattern resolvconf -c pattern resolvconf [-f] -d key resolvconf [-x] -iLlp pattern resolvconf -u resolvconf --version

دستور resolvconf فایل‌های resolv.conf(5) را از چندین منبع، مانند کلاینت‌های DHCP و VPN مدیریت می‌کند. به‌طور سنتی، میزبان تنها یک کلاینت اجرا می‌کند و همان، /etc/resolv.conf را به‌روزرسانی می‌کند. سیستم‌های مدرن‌تر معمولاً دارای رابط‌های سیمی و بی‌سیم هستند و هیچ تضمینی وجود ندارد که هر دو روی یک شبکه باشند. با پیدایش VPN و سایر انواع دیمن‌های شبکه، اکنون مؤلفه‌های متعددی بر سر محتوای /etc/resolv.conf رقابت می‌کنند.

resolvconf این مشکل را با دادن امکان ارسال فایل resolv.conf(5) توسط دیمن‌ها به resolvconf از طریق stdin(4) با آرگومان -a key به جای دستکاری مستقیم فایل‌سیستم حل می‌کند. سپس resolvconf فایل /etc/resolv.conf را به بهترین شکلی که تشخیص می‌دهد به‌روزرسانی می‌کند. اگر /etc/resolv.conf از قبل وجود داشته باشد و خط اول آن با امضای مورد انتظار مطابقت نداشته باشد، resolvconf از به‌روزرسانی آن خودداری خواهد کرد، مگر اینکه دستور به‌روزرسانی -u داده شده باشد. هنگامی که یک تحلیل‌گر محلی به جز libc نصب شده باشد، مانند dnsmasq(8) یا named(8), آن‌گاه resolvconf فایل‌هایی را فراهم می‌کند که تحلیل‌گر باید برای استفاده از آن‌ها پیکربندی شود.

در اصل، resolvconf یک ذخیره‌ساز کلید/مقدار برای فایل‌های resolv.conf است. هر مدخل باید یک key منحصربه‌فرد داشته باشد و بهتر است به‌صورت بیان شود تا به‌سادگی مشخص گردد فایل resolv.conf از کجا آمده است. این کار همچنین امکان استفاده از تطبیق الگو مانند را برای مطابقت با تمام پروتکل‌های در حال اجرا روی آن رابط فراهم می‌سازد. به‌عنوان مثال، یک سیستم امروزی احتمالاً پروتکل‌های DHCP،‏ RA و DHCPv6 را اجرا می‌کند که می‌توانند از برنامه‌های جداگانه یا یک برنامه مجری چندین پروتکل باشند. با این حال، این یک الزام قطعی نیست؛ resolvconf با هر نام کلیدی کار خواهد کرد و در خارج از resolvconf باید به عنوان یک مقدار مبهم با آن رفتار شود.

resolvconf می‌تواند یک resolv.conf را به عنوان خصوصی و در صورت تمایل غیرقابل جستجو علامت‌گذاری کند. این بدان معناست که سرورهای نام فهرست‌شده در آن resolv.conf تنها برای پرس‌وجوهای مربوط به دامنه/جستجوی فهرست‌شده در همان فایل استفاده می‌شوند و در صورت غیرقابل جستجو بودن، دامنه/جستجوی فهرست‌شده از فهرست جستجوی سراسری تعریف‌شده در /etc/resolv.conf مستثنی می‌شوند. این ویژگی فقط زمانی کار می‌کند که یک تحلیل‌گر محلی به جز libc نصب شده باشد. برای چگونگی پیکربندی resolvconf جهت استفاده از یک سرور نام محلی و نحوه حذف علامت خصوصی، به resolvconf.conf(5) مراجعه کنید.

resolvconf می‌تواند یک resolv.conf را به عنوان اختصاصی علامت‌گذاری کند. در این حالت تنها آخرین کلید اختصاصی برای پردازش استفاده می‌شود، در غیر این صورت همه کلیدها پردازش می‌گردند.

هنگامی که یک منبع پیکربندی از بین می‌رود، مانند قطع شدن یک رابط یا متوقف شدن VPN، باید resolvconf را با آرگومان‌های -d key فراخوانی کند تا فایل resolv.conf ای را که قبلاً اضافه کرده بود پاک‌سازی نماید. برای سیستم‌هایی که از مفهوم پایداری پیکربندی در زمان تعلیق منبع پشتیبانی می‌کنند (مانند قطع شدن سیگنال حامل)، باید در عوض resolvconf را با آرگومان‌های -C key برای منسوخ کردن مدخل و با -c key برای فعال‌سازی مجدد مدخل هنگام بازگشت دوباره آن فراخوانی کرد. این کار تنها بر ترتیبی که مدخل‌های resolv.conf پردازش می‌شوند تأثیر می‌گذارد.

در اینجا چند گزینه برای دستورات فوق آورده شده است:

نادیده گرفتن مدخل‌های ناموجود resolv.conf. این گزینه در واقع فقط برای حذف کردن کاربرد دارد.
metric
تنظیم متریک مدخل resolv.conf هنگام افزودن آن؛ پیش‌فرض 0 است. متریک‌های پایین‌تر اولویت دارند. این امر بر ترتیب پیش‌فرض مدخل‌ها هنگام فهرست‌بندی تأثیر می‌گذارد.
[pattern]
اگر دستور -a داده شده باشد، resolv.conf را به عنوان خصوصی علامت‌گذاری می‌کند، در غیر این صورت مدخل‌های resolv.conf که کلید آن‌ها با pattern مطابقت دارد فهرست می‌شوند. اگر یک -p اضافی داده شود، resolv.conf به عنوان غیرقابل جستجو نیز علامت‌گذاری می‌گردد.
علامت‌گذاری resolv.conf به عنوان اختصاصی هنگام افزودن؛ در غیر این صورت فقط از آخرین کلید اختصاصی استفاده می‌شود.

resolvconf دستورات دیگری نیز برای کاربردهای عمومی دارد:

[pattern]
فهرست کردن کلیدهای ذخیره‌شده‌ای که فایل‌های resolv.conf برای آن‌ها موجود است، با امکان تطبیق اختیاری با pattern. اگر ابتدا گزینه -L داده شود، کلیدها پس از پس‌پردازش فهرست خواهند شد.
[pattern]
فهرست کردن فایل‌های resolv.conf موجود، پس از اعمال پس‌پردازش توسط پیکربندی resolvconf.conf(5). در صورت تعیین pattern, فایل‌های مربوط به کلیدهایی که با آن مطابقت دارند فهرست می‌شوند.
[pattern]
فهرست کردن فایل‌های resolv.conf موجود. در صورت تعیین pattern, فایل‌های مربوط به کلیدهایی که با آن تطابق دارند فهرست می‌شوند.
وادار کردن resolvconf به به‌روزرسانی تمام مشترکین خود. resolvconf هنگام افزودن یک resolv.conf که با آنچه در حال حاضر برای آن کلید دارد یکسان باشد، مشترکین را به‌روزرسانی نمی‌کند.
چاپ نسخه resolvconf در .

resolvconf همچنین دستوراتی دارد که برای استفاده توسط مشترکین آن و در زمان راه‌اندازی سیستم طراحی شده‌اند:

مقداردهی اولیه دایرکتوری وضعیت /run/resolvconf. این دستور باید پس از پاک‌سازی دایرکتوری وضعیت پایه یا سوار شدن آن به عنوان یک سیستم‌فایل مبتنی بر حافظه در طول توالی راه‌اندازی اولیه، پیش از اینکه هر دیمنی فرصت فراخوانی resolvconf را داشته باشد، اجرا شود.
چاپ دستور مورداستفاده برای راه‌اندازی مجدد یک سرویس.
service
اگر service در حال اجرا باشد، آن را مجدداً راه‌اندازی می‌کند. اگر سرویس وجود نداشته باشد یا در حال اجرا نباشد مقدار صفر، و در غیر این صورت نتیجه راه‌اندازی مجدد سرویس بازگردانده می‌شود.
چاپ متغیرهای DOMAINS،‏ SEARCH و NAMESERVERS تا مشترک بتواند تحلیل‌گر را به‌آسانی پیکربندی کند.
مشابه -v, با این تفاوت که فقط اطلاعات پیکربندی‌شده در resolvconf.conf(5) تنظیم می‌شوند.

برای اینکه resolvconf به‌طور مؤثر کار کند، باید مدخل‌های resolv.conf را به ترتیب صحیح پردازش نماید. resolvconf ابتدا کلیدهای موجود در فهرست را پردازش می‌کند، سپس مدخل‌های بدون متریک و منطبق با فهرست را، سپس مدخل‌های دارای متریک را به ترتیب، و در نهایت سایر موارد را بر اساس ترتیب الفبایی سیستم‌عامل پردازش می‌کند. برای جزئیات بیشتر درباره این فهرست‌ها به resolvconf.conf(5) مراجعه کنید.

در اینجا چند برچسب پروتکل پیشنهادی برای استفاده در هر resolv.conf آورده شده است:

dhcp
پروتکل پیکربندی پویای میزبان (Dynamic Host Configuration Protocol).
ppp
پروتکل نقطه به نقطه (Point-to-Point Protocol).
ra
اعلان رهیاب در IPv6 (IPv6 Router Advertisement).
dhcp6
پروتکل پیکربندی پویای میزبان برای IPv6، نسخه ۶.

اگر یک مشترک بیت اجرایی داشته باشد اجرا می‌شود، در غیر این صورت فرض می‌شود که یک اسکریپت شل است و در یک زیرپوسته به محیط جاری منبع‌دهی (source) می‌شود. این کار به این دلیل انجام می‌شود تا مشترکین سریع باقی بمانند و همچنین به زبان پوسته محدود نباشند.

مشترکین با قابلیت حمل بالا نباید از هیچ چیزی خارج از /bin و /sbin استفاده کنند؛ زیرا ممکن است /usr و سایر دایرکتوری‌ها هنگام راه‌اندازی سیستم در دسترس نباشند. همچنین، تکیه بر ویژگی‌های خاص یک پوسته توصیه نمی‌شود.

IF_METRIC
اگر گزینه -m داده نشده باشد، از IF_METRIC برای متریک استفاده می‌شود.
IF_PRIVATE
فایل resolv.conf را به عنوان خصوصی علامت‌گذاری می‌کند.
IF_NOSEARCH
فایل resolv.conf را به عنوان غیرقابل جستجو علامت‌گذاری می‌کند.
IF_EXCLUSIVE
فایل resolv.conf را به عنوان اختصاصی علامت‌گذاری می‌کند.

/etc/resolv.conf.bak
فایل پشتیبان از resolv.conf اصلی.
/etc/resolvconf.conf
فایل پیکربندی برای resolvconf.
/usr/lib/resolvconf
دایرکتوری مشترکینی که در هر بار افزودن، حذف یا به‌روزرسانی توسط resolvconf اجرا می‌شوند.
/usr/lib/resolvconf/libc.d
دایرکتوری مشترکینی که پس از اجرای مشترک libc اجرا می‌شوند.
/run/resolvconf
دایرکتوری وضعیت برای resolvconf.

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

هنگام اجرای یک تحلیل‌گر محلی غیر از libc، باید آن را طوری پیکربندی کنید که فایل‌های تولیدشده توسط resolvconf را شامل شود. برای دستورالعمل‌های مربوط به نحوه پیکربندی تحلیل‌گر خود، به resolvconf.conf(5) مراجعه کنید.

resolver(3), stdin(4), resolv.conf(5), resolvconf.conf(5)

این پیاده‌سازی از resolvconf تحت عنوان openresolv شناخته می‌شود و با resolvconf توزیع دبیان که توسط Thomas Hood نوشته شده، از نظر خط فرمان کاملاً سازگار است.

Roy Marples <roy@marples.name>

لطفاً اشکالات را به نشانی زیر گزارش دهید: http://roy.marples.name/projects/openresolv

June 26, 2025 Linux 6.12.107+deb13-amd64