.\" Copyright (c) 1986 The Regents of the University of California. .\" All rights reserved. .\" .\" %%%LICENSE_START(PERMISSIVE_MISC) .\" Redistribution and use in source and binary forms are permitted .\" provided that the above copyright notice and this paragraph are .\" duplicated in all such forms and that any documentation, .\" advertising materials, and other materials related to such .\" distribution and use acknowledge that the software was developed .\" by the University of California, Berkeley. The name of the .\" University may not be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" %%%LICENSE_END .\" .\" @(#)resolver.5 5.9 (Berkeley) 12/14/89 .\" $Id: resolver.5,v 8.6 1999/05/21 00:01:02 vixie Exp $ .\" .\" Added ndots remark by Bernhard R. Link - debian bug #182886 .\" .TH resolver 5 2024-05-02 "Linux man-pages 6.9.1" .UC 4 .SH "نام (NAME)" resolver \- فایل پیکربندی تفکیک‌کننده نام دامنه DNS .SH "خلاصه دستور (SYNOPSIS)" .nf .B /etc/resolv.conf .fi .SH "توضیحات (DESCRIPTION)" .I تفکیک‌کننده .RI ( resolver ) مجموعه‌ای از روال‌ها و توابع در کتابخانه C است که دسترسی به سامانه نام دامنه .RI ( DNS ) اینترنت را فراهم می‌سازد. فایل پیکربندی تفکیک‌کننده حاوی اطلاعاتی است که در نخستین باری که این روال‌ها توسط یک فرایند فراخوانی می‌شوند، خوانده می‌شود. این فایل به‌گونه‌ای طراحی شده است که برای انسان خوانا باشد و شامل فهرستی از کلیدواژه‌ها به همراه مقادیر آن‌هاست که انواع مختلفی از اطلاعات تفکیک‌کننده را مهیا می‌سازند. این فایل پیکربندی یک منبع مورد اعتماد از اطلاعات DNS به شمار می‌رود؛ برای جزئیات به گزینه .B trust\-ad در زیر مراجعه کنید. .P اگر این فایل وجود نداشته باشد، فقط از کارگزار نام روی ماشین محلی پرس‌وجو می‌شود و فهرست جستجو شامل نام دامنه محلی خواهد بود که از روی نام میزبان .RI ( hostname ) تعیین می‌گردد. .P گزینه‌های مختلف پیکربندی عبارتند از: .TP \fBnameserver\fP \fIنشانی آی‌پی کارگزار نام\fR نشانی اینترنتی کارگزار نامی که تفکیک‌کننده باید از آن پرس‌وجو کند؛ یا یک نشانی IPv4 (با نشانه‌گذاری نقطه‌ای) یا یک نشانی IPv6 با نشانه‌گذاری دونقطه (و احتمالاً نقطه) مطابق با RFC\ 2373. حداکثر تا .B MAXNS (در حال حاضر ۳، فایل \fI\fP را ببینید) کارگزار نام می‌تواند فهرست شود، هر کدام در یک سطر با کلیدواژه مجزا. اگر چندین سرور وجود داشته باشد، کتابخانه تفکیک‌کننده به همان ترتیبی که نوشته شده‌اند از آن‌ها پرس‌وجو می‌کند. اگر هیچ مدخل .B nameserver وجود نداشته باشد، حالت پیش‌فرض استفاده از کارگزار نام بر روی ماشین محلی است. (الگوریتم مورد استفاده به این صورت است که ابتدا یک کارگزار نام را امتحان می‌کند و اگر مهلت زمانی پرس‌وجو به پایان رسید، به سراغ بعدی می‌رود تا تمام کارگزاران تمام شوند؛ سپس این فرایند برای تمام کارگزاران نام تکرار می‌شود تا حداکثر تعداد تلاش‌های مجدد انجام پذیرد.) .TP \fBsearch\fP \fIفهرست جستجو برای یافتن نام میزبان\fR به‌طور پیش‌فرض، فهرست جستجو شامل یک مدخل است: نام دامنه محلی. این نام از نام میزبان محلی که توسط .BR gethostname (2) بازگردانده می‌شود، تعیین می‌گردد؛ نام دامنه محلی برابر با هر آنچه پس از اولین \[aq].\[aq] بیاید در نظر گرفته می‌شود. در نهایت، اگر نام میزبان شامل کاراکتر \[aq].\[aq] نباشد، دامنه ریشه به عنوان نام دامنه محلی در نظر گرفته می‌شود. .IP این رفتار را می‌توان با نوشتن مسیر جستجوی دامنه دلخواه در ادامه کلیدواژه \fIsearch\fP، با جدا کردن نام‌ها توسط فاصله‌ها یا تب‌ها تغییر داد. پرس‌وجوهای تفکیک‌کننده‌ای که تعداد نقطه‌های آن‌ها کمتر از .I ndots باشد (پیش‌فرض ۱ است)، با استفاده از هر یک از بخش‌های مسیر جستجو به نوبت امتحان خواهند شد تا یک تطابق پیدا شود. برای محیط‌هایی با چندین زیردامنه لطفاً بخش .BI "options ndots:" n در زیر را بخوانید تا از حملات مرد میانی (Man-in-the-middle) و ترافیک غیرضروری به سرورهای ریشه DNS جلوگیری شود. توجه داشته باشید که اگر سرورهای دامنه‌های فهرست‌شده محلی نباشند، این فرایند ممکن است کند باشد و ترافیک شبکه زیادی ایجاد کند، و اگر هیچ سروری برای یکی از دامنه‌ها در دسترس نباشد، زمان پرس‌وجو به پایان خواهد رسید (Timeout). .IP اگر چندین دستورالعمل .B search وجود داشته باشد، فقط فهرست جستجوی آخرین مورد اعمال می‌شود. .IP در glibc نسخه 2.25 و قدیمی‌تر، فهرست جستجو محدود به شش دامنه با مجموع ۲۵۶ کاراکتر بود. از glibc نسخه 2.26 به بعد، فهرست جستجو نامحدود است. .IP دستورالعمل .B domain یک نام منسوخ‌شده برای دستورالعمل .B search است که تنها از یک مدخل در فهرست جستجو پشتیبانی می‌کند. .TP \fBsortlist\fP این گزینه امکان مرتب‌سازی نشانی‌های بازگردانده‌شده توسط .BR gethostbyname (3) را فراهم می‌کند. یک sortlist با جفت‌های نشانی آی‌پی و ماسک شبکه (netmask) مشخص می‌شود. ماسک شبکه اختیاری است و پیش‌فرض آن ماسک طبیعی شبکه است. نشانی آی‌پی و جفت شبکه اختیاری با اسلش از یکدیگر جدا می‌شوند. حداکثر ۱۰ جفت می‌توان مشخص کرد. در اینجا یک نمونه آورده شده است: .IP .in +4n sortlist 130.155.160.0/255.255.240.0 130.155.0.0 .in .TP \fBoptions\fP گزینه options امکان تغییر برخی متغیرهای داخلی تفکیک‌کننده را فراهم می‌کند. ساختار دستوری به صورت زیر است: .RS .IP \fBoptions\fP \fIoption\fP \fI...\fP .P که در آن \fIoption\fP یکی از موارد زیر است: .TP \fBdebug\fP تنظیم پرچم .B RES_DEBUG در .I _res.options (تنها در صورتی مؤثر است که glibc با پشتیبانی از اشکال‌زدایی کامپایل شده باشد؛ به .BR resolver (3) مراجعه کنید). .TP .BI ndots: n آستانه‌ای برای تعداد نقطه‌هایی تعیین می‌کند که باید در نام داده‌شده به .BR res_query (3) (به .BR resolver (3) مراجعه کنید) ظاهر شوند قبل از اینکه یک \fIپرس‌وجوی مطلق اولیه\fP انجام شود. مقدار پیش‌فرض برای \fIn\fP برابر با ۱ است؛ به این معنی که اگر نقطه‌ای در نام وجود داشته باشد، قبل از اینکه هر یک از عناصر \fIفهرست جستجو\fP به آن ضمیمه شوند، ابتدا به عنوان یک نام مطلق امتحان می‌شود. مقدار این گزینه حداکثر تا ۱۵ پذیرفته می‌شود (مقادیر بالاتر بدون هشدار به ۱۵ محدود می‌شوند). .TP .BI timeout: n میزان زمانی را تعیین می‌کند که تفکیک‌کننده منتظر پاسخ از یک کارگزار نام راه دور می‌ماند قبل از اینکه پرس‌وجو را از طریق یک کارگزار نام دیگر مجدداً تلاش کند. این مقدار ممکن است .B نه زمان کل صرف‌شده توسط هر فراخوانی API تفکیک‌کننده باشد و هیچ تضمینی وجود ندارد که یک فراخوانی API تفکیک‌کننده منفرد دقیقاً با یک مهلت زمانی تطابق داشته باشد. این مقدار بر حسب ثانیه اندازه‌گیری می‌شود و مقدار پیش‌فرض آن .B RES_TIMEOUT است (در حال حاضر ۵، فایل \fI\fP را ببینید). مقدار این گزینه به حداکثر ۳۰ محدود می‌شود. .TP .BI attempts: n تعداد دفعاتی را تعیین می‌کند که تفکیک‌کننده پیش از تسلیم شدن و بازگرداندن خطا به برنامه فراخواننده، یک پرس‌وجو را به سرورهای نام ارسال می‌کند. مقدار پیش‌فرض آن .B RES_DFLRETRY است (در حال حاضر ۲، فایل \fI\fP را ببینید). مقدار این گزینه به حداکثر ۵ محدود می‌شود. .TP .B rotate تنظیم پرچم .B RES_ROTATE در .IR _res.options ، که موجب انتخاب نوبتی و گردشی (Round-robin) کارگزاران نام از میان فهرست ارائه‌شده می‌شود. این کار بار پرس‌وجوها را میان تمامی سرورهای فهرست‌شده توزیع می‌کند، به جای اینکه همه کلاینت‌ها هر بار ابتدا اولین سرور فهرست را امتحان کنند. .TP .B no\-aaaa " (از glibc نسخه 2.36)" تنظیم پرچم .B RES_NOAAAA در .IR _res.options ، که پرس‌وجوهای AAAA انجام‌شده توسط تفکیک‌کننده استاب را متوقف می‌کند؛ از جمله جستجوهای AAAA فعال‌شده توسط رابط‌های مبتنی بر NSS مانند .BR getaddrinfo (3). تنها جستجوهای DNS تحت تأثیر قرار می‌گیرند: داده‌های IPv6 در .BR hosts (5) همچنان استفاده می‌شوند، .BR getaddrinfo (3) با پرچم .B AI_PASSIVE همچنان نشانی‌های IPv6 تولید می‌کند، و کارگزاران نام IPv6 پیکربندی‌شده همچنان استفاده می‌شوند. برای تولید نتایج صحیح خطای نام (NXDOMAIN)، پرس‌وجوهای AAAA به پرس‌وجوهای A ترجمه می‌شوند. این گزینه در درجه اول برای اهداف عیب‌یابی و تشخیصی در نظر گرفته شده است تا مشخص شود آیا پرس‌وجوهای AAAA در DNS اثر نامطلوبی دارند یا خیر. این گزینه با استفاده از EDNS0 و اعتبارسنجی DNSSEC توسط برنامه‌ها ناسازگار است. .TP .B no\-check\-names تنظیم پرچم .B RES_NOCHECKNAME در .IR _res.options ، که بررسی نوین BIND را برای کاراکترهای نامعتبر در نام‌های میزبان ورودی و نام‌های پستی مانند زیرخط (_)، کاراکترهای غیر اسکی (non-ASCII) یا کاراکترهای کنترلی غیرفعال می‌کند. .TP .B inet6 تنظیم پرچم .B RES_USE_INET6 در .IR _res.options . این گزینه باعث می‌شود که درون تابع .BR gethostbyname (3) ابتدا یک پرس‌وجوی AAAA پیش از پرس‌وجوی A امتحان شود و در صورتی که هیچ رکورد AAAA یافت نشود اما مجموعه رکوردهای A وجود داشته باشد، پاسخ‌های IPv4 در قالب «تونل‌شده» به IPv6 نگاشت شوند. از glibc نسخه 2.25 به بعد، این گزینه منسوخ شده است؛ برنامه‌ها به جای .BR gethostbyname (3) باید از .BR getaddrinfo (3) استفاده کنند. .PP برخی برنامه‌ها زمانی که این گزینه فعال است رفتارهای عجیبی نشان می‌دهند. .TP .BR ip6\-bytestring " (از glibc 2.3.4 تا glibc 2.24)" تنظیم پرچم .B RES_USEBSTRING در .IR _res.options . این گزینه موجب می‌شود که جستجوهای معکوس IPv6 با استفاده از قالب برچسب بیتی (Bit-label) شرح داده‌شده در RFC\ 2673 انجام شوند؛ اگر این گزینه تنظیم نشود (که حالت پیش‌فرض است)، از قالب nibble استفاده می‌شود. این گزینه در glibc نسخه 2.25 حذف شد، زیرا به یک افزونه DNS ناسازگار با گذشته وابسته بود که هرگز در سطح اینترنت فراگیر نشد. .TP .BR ip6\-dotint / no\-ip6\-dotint " (از glibc 2.3.4 تا glibc 2.24)" پاک کردن/تنظیم پرچم .B RES_NOIP6DOTINT در .IR _res.options . هنگامی که این گزینه پاک باشد .RB ( ip6\-dotint )، جستجوهای معکوس IPv6 در پهنه (zone) منسوخ‌شده .I ip6.int انجام می‌شوند؛ زمانی که این گزینه تنظیم شود .RB ( no\-ip6\-dotint )، جستجوهای معکوس IPv6 به‌طور پیش‌فرض در پهنه .I ip6.arpa صورت می‌گیرند. این گزینه‌ها تا glibc نسخه 2.24 در دسترس بودند که در آن .B no\-ip6\-dotint حالت پیش‌فرض بود. از آنجا که پشتیبانی از .B ip6\-dotint مدت‌ها پیش در اینترنت متوقف شد، این گزینه‌ها در glibc نسخه 2.25 حذف گردیدند. .TP .BR edns0 " (از glibc نسخه 2.6)" تنظیم پرچم .B RES_USE_EDNS0 در .IR _res.options . این گزینه پشتیبانی از افزونه‌های DNS شرح‌داده‌شده در RFC\ 2671 را فعال می‌کند. .TP .BR single\-request " (از glibc نسخه 2.10)" تنظیم پرچم .B RES_SNGLKUP در .IR _res.options . به‌طور پیش‌فرض از glibc نسخه 2.9 به بعد، جستجوهای IPv4 و IPv6 به صورت موازی انجام می‌شوند. برخی از تجهیزات کارگزار DNS توانایی پردازش صحیح این درخواست‌ها را ندارند و موجب پایان مهلت زمانی (Timeout) می‌شوند. این گزینه رفتار مذکور را غیرفعال کرده و باعث می‌شود glibc درخواست‌های IPv6 و IPv4 را به صورت متوالی و پشت‌سرهم اجرا کند (به بهای مقداری کندی در فرایند تفکیک نام). .TP .BR single\-request\-reopen " (از glibc نسخه 2.9)" تنظیم پرچم .B RES_SNGLKUPREOP در .IR _res.options . تفکیک‌کننده از یک سوکت مشترک برای هر دو درخواست A و AAAA استفاده می‌کند. برخی سخت‌افزارها به اشتباه فقط یک پاسخ ارسال می‌کنند. در چنین حالتی، سامانه کلاینت منتظر پاسخ دوم معطل می‌ماند. فعال کردن این گزینه این رفتار را تغییر می‌دهد به گونه‌ای که اگر دو درخواست از همان درگاه (پورت) به درستی رسیدگی نشوند، سوکت بسته شده و قبل از ارسال درخواست دوم یک سوکت جدید باز می‌شود. .TP .BR no\-tld\-query " (از glibc نسخه 2.14)" تنظیم پرچم .B RES_NOTLDQUERY در .IR _res.options . این گزینه موجب می‌شود .BR res_nsearch () تلاش نکند یک نام واجد شرایط نشده (unqualified) را به گونه‌ای حل کند که گویی یک دامنه سطح‌بالا (TLD) است. این گزینه در صورتی که سایت به جای داشتن localhost در یک یا چند عنصر فهرست جستجو، عبارت «localhost» را به عنوان TLD داشته باشد می‌تواند مشکلاتی ایجاد کند. این گزینه در صورتی که هیچ‌یک از پرچم‌های RES_DEFNAMES یا RES_DNSRCH تنظیم نشده باشند هیچ اثری ندارد. .TP .BR use\-vc " (از glibc نسخه 2.14)" تنظیم پرچم .B RES_USEVC در .IR _res.options . این گزینه استفاده از پروتکل TCP را برای تفکیک نام‌های DNS اجباری می‌کند. .TP .BR no\-reload " (از glibc نسخه 2.26)" تنظیم پرچم .B RES_NORELOAD در .IR _res.options . این گزینه بارگذاری مجدد خودکار فایل پیکربندی تغییر یافته را غیرفعال می‌کند. .TP .BR trust\-ad " (از glibc نسخه 2.31)" تنظیم پرچم .B RES_TRUSTAD در .IR _res.options . این گزینه رفتار بیت AD (داده‌های احراز هویت شده) تفکیک‌کننده استاب را کنترل می‌کند. اگر یک تفکیک‌کننده اعتبارسنجی بیت AD را در یک پاسخ تنظیم کند، نشان‌دهنده آن است که داده‌های موجود در پاسخ مطابق با پروتکل DNSSEC تایید و اعتبارسنجی شده‌اند. به منظور اتکا به بیت AD، سیستم محلی باید هم به تفکیک‌کننده اعتبارسنج DNSSEC و هم به مسیر شبکه تا آن اعتماد داشته باشد؛ به همین دلیل است که تایید صریح نیاز است. اگر گزینه .B trust\-ad فعال باشد، تفکیک‌کننده استاب بیت AD را در پرس‌وجوهای DNS خروجی تنظیم می‌کند (برای فعال‌سازی پشتیبانی از بیت AD) و بیت AD را در پاسخ‌ها حفظ می‌نماید. بدون این گزینه، بیت AD در پرس‌وجوها تنظیم نمی‌شود و پیش از بازگرداندن پاسخ به برنامه، همیشه از پاسخ‌ها حذف می‌گردد. این بدان معناست که اگر گزینه .B trust\-ad به درستی تنظیم شده باشد، برنامه‌ها می‌توانند به بیت AD در پاسخ‌ها اعتماد کنند. .IP در glibc نسخه 2.30 و قبل‌تر، بیت AD به صورت خودکار در پرس‌وجوها تنظیم نمی‌شد و در پاسخ‌ها بدون تغییر به برنامه‌ها تحویل داده می‌شد. .RE .P کلیدواژه \fIsearch\fP در فایل \fIresolv.conf\fP سیستم می‌تواند برای هر فرایند به‌طور مجزا با تنظیم متغیر محیطی .B LOCALDOMAIN روی فهرستی از دامنه‌های جستجو که با فاصله از هم جدا شده‌اند بازنویسی شود. .P کلیدواژه \fIoptions\fP در فایل \fIresolv.conf\fP سیستم می‌تواند برای هر فرایند با تنظیم متغیر محیطی .B RES_OPTIONS روی فهرستی از گزینه‌های تفکیک‌کننده (همان‌طور که در بالا تحت عنوان \fBoptions\fP توضیح داده شد) اصلاح شود. .P کلیدواژه و مقدار باید در یک سطر قرار گیرند و کلیدواژه (مانند \fBnameserver\fP) باید در ابتدای سطر باشد. مقدار بعد از کلیدواژه با فاصله خالی (White space) می‌آید. .P سطرهایی که در ستون اول دارای نقطه-ویرگول (;) یا علامت هش (#) باشند به عنوان توضیح (کامنت) در نظر گرفته می‌شوند. .SH "فایل‌ها (FILES)" .IR /etc/resolv.conf , .I .SH "همچنین ببینید (SEE ALSO)" .BR gethostbyname (3), .BR resolver (3), .BR host.conf (5), .BR hosts (5), .BR nsswitch.conf (5), .BR hostname (7), .BR named (8) .P راهنمای عملیات سرور نام برای BIND .RI ( "Name Server Operations Guide for BIND" )