.\" 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 resolv.conf 5 2024-05-02 "Linux man-pages 6.9.1" .UC 4 .SH "نام (NAME)" resolv.conf \- فایل پیکربندی تفکیککننده نام دامنه (Resolver) .SH "خلاصه دستور (SYNOPSIS)" .nf .B /etc/resolv.conf .fi .SH "توضیحات (DESCRIPTION)" .I تفکیک‌کننده نام (resolver) مجموعه‌ای از توابع در کتابخانه C است که دسترسی به سامانه نام دامنه اینترنت (DNS) را فراهم می‌کند. فایل پیکربندی تفکیک‌کننده شامل اطلاعاتی است که در نخستین باری که این توابع توسط یک فرایند فراخوانی می‌شوند، توسط آن‌ها خوانده می‌شود. این فایل به گونه‌ای طراحی شده است که برای انسان خوانا باشد و شامل فهرستی از کلیدواژه‌ها به همراه مقادیری است که انواع مختلفی از اطلاعات تفکیک‌کننده را ارائه می‌دهند. این فایل پیکربندی به عنوان یک منبع مورد اعتماد برای اطلاعات DNS در نظر گرفته می‌شود؛ برای جزئیات بیشتر به گزینه .B trust\-ad در زیر مراجعه کنید. .P اگر این فایل وجود نداشته باشد، تنها از کارگزار نام موجود روی ماشین محلی پرس‌وجو خواهد شد، و فهرست جستجو تنها شامل نام دامنه محلی خواهد بود که بر اساس نام میزبان (hostname) تعیین می‌شود. .P گزینه‌های مختلف پیکربندی عبارتند از: .TP \fBnameserver\fP \fIنشانی IP کارگزار نام\fP نشانی اینترنتی کارگزار نامی که تفکیک‌کننده باید از آن پرس‌وجو کند؛ خواه یک نشانی IPv4 (با نشانه‌گذاری نقطه) یا یک نشانی IPv6 با نشانه‌گذاری دونقطه (و احتمالاً نقطه) مطابق با RFC 2373. حداکثر تا .B MAXNS (در حال حاضر ۳ کارگزار، به \fI\fP مراجعه کنید) کارگزار نام را می‌توان فهرست کرد، هر کدام با یک کلیدواژه در یک خط جداگانه. اگر چندین کارگزار وجود داشته باشد، کتابخانه تفکیک‌کننده به ترتیبی که فهرست شده‌اند از آن‌ها پرس‌وجو می‌کند. اگر هیچ مدخل .B nameserver وجود نداشته باشد، حالت پیش‌فرض استفاده از کارگزار نام روی ماشین محلی است. (الگوریتم مورد استفاده بدین صورت است که ابتدا یک کارگزار نام را امتحان می‌کند و اگر مهلت پرس‌وجو به پایان رسید، کارگزار بعدی را امتحان می‌کند تا زمانی که کارگزارها تمام شوند، سپس امتحان کردن تمامی کارگزارهای نام را تا رسیدن به حداکثر تعداد تلاش‌های مجدد تکرار می‌کند.) .TP \fBsearch\fP \fIفهرست جستجو برای یافتن نام میزبان\fP به صورت پیش‌فرض، فهرست جستجو شامل یک مدخل است: نام دامنه محلی. این نام از نام میزبان محلی که توسط .BR gethostname (2) برگردانده می‌شود، تعیین می‌گردد؛ نام دامنه محلی برابر با همه چیز پس از نخستین \[aq].\[aq] در نظر گرفته می‌شود. در نهایت، اگر نام میزبان شامل هیچ \[aq].\[aq] نباشد، دامنه ریشه (root domain) به عنوان نام دامنه محلی فرض می‌شود. .IP این رفتار را می‌توان با درج مسیر جستجوی دامنه مورد نظر پس از کلیدواژه .I search و جدا کردن نام‌ها با فاصله یا کلید تب (tab) تغییر داد. پرس‌وجوهای تفکیک‌کننده‌ای که تعداد نقطه‌های آن‌ها کمتر از .I ndots باشد (پیش‌فرض ۱ است)، با استفاده از هر جزء از مسیر جستجو به نوبت امتحان خواهند شد تا زمانی که یک تطابق پیدا شود. برای محیط‌هایی با چندین زیردامنه، لطفاً بخش .BI "options ndots:" n در زیر را مطالعه کنید تا از حملات مرد میانی (man-in-the-middle) و ترافیک غیرضروری به سمت کارگزارهای ریشه DNS جلوگیری شود. .\" When having a resolv.conv with a line .\" search subdomain.domain.tld domain.tld .\" and doing a hostlookup, for example by .\" ping host.anothersubdomain .\" it sends dns-requests for .\" host.anothersubdomain. .\" host.anothersubdomain.subdomain.domain.tld. .\" host.anothersubdomain.domain.tld. .\" thus not only causing unnecessary traffic for the root-dns-servers .\" but broadcasting information to the outside and making man-in-the-middle .\" attacks possible. توجه داشته باشید که اگر کارگزارهای دامنه‌های فهرست‌شده محلی نباشند، این فرایند ممکن است کند باشد و ترافیک شبکه زیادی تولید کند، و در صورتی که کارگزاری برای یکی از دامنه‌ها در دسترس نباشد، پرس‌وجوها با اتمام مهلت زمانی (timeout) مواجه خواهند شد. .IP اگر چندین دستور .B search وجود داشته باشد، تنها فهرست جستجوی مربوط به آخرین مورد استفاده خواهد شد. .IP در glibc 2.25 و نسخه‌های پیشین، فهرست جستجو به شش دامنه با مجموع ۲۵۶ کاراکتر محدود بود. از نسخه glibc 2.26، .\" glibc commit 3f853f22c87f0b671c0366eb290919719fa56c0e فهرست جستجو نامحدود است. .IP دستور .B domain یک نام منسوخ‌شده برای دستور .B search است که تنها از یک مدخل در فهرست جستجو پشتیبانی می‌کند. .TP \fBsortlist\fP این گزینه امکان مرتب‌سازی نشانی‌های بازگردانده‌شده توسط .BR gethostbyname (3) را فراهم می‌کند. یک فهرست مرتب‌سازی (sortlist) با جفت‌های نشانی IP و ماسک شبکه (netmask) مشخص می‌شود. ماسک شبکه اختیاری است و به طور پیش‌فرض روی ماسک شبکه طبیعی شبکه تنظیم می‌شود. نشانی IP و جفت‌های شبکه اختیاری با خط مایل (اسلش) از هم جدا می‌شوند. حداکثر ۱۰ جفت را می‌توان مشخص کرد. در اینجا یک مثال آمده است: .IP .in +4n sortlist 130.155.160.0/255.255.240.0 130.155.0.0 .in .TP \fBoptions\fP گزینه‌ها اجازه می‌دهند برخی از متغیرهای داخلی تفکیک‌کننده اصلاح شوند. نحو آن به صورت زیر است: .RS .IP \fBoptions\fP \fIoption\fP \fI...\fP .P که در آن .I option یکی از موارد زیر است: .TP \fBdebug\fP .\" Since glibc 2.2? فلگ .B RES_DEBUG را در .I _res.options تنظیم می‌کند (تنها در صورتی مؤثر است که glibc با پشتیبانی از اشکال‌زدایی کامپایل شده باشد؛ به .BR resolver (3) مراجعه کنید). .TP .BI ndots: n .\" Since glibc 2.2 آستانه‌ای برای تعداد نقطه‌هایی تعیین می‌کند که باید در نام داده‌شده به .BR res_query (3) (به .BR resolver (3) مراجعه کنید) ظاهر شود قبل از اینکه یک \fIپرس‌وجوی مطلق اولیه\fP انجام گیرد. مقدار پیش‌فرض برای \fIn\fP برابر ۱ است، بدین معنا که اگر هر نقطه‌ای در نام وجود داشته باشد، آن نام ابتدا به عنوان یک نام مطلق امتحان می‌شود قبل از اینکه هر یک از عناصر \fIفهرست جستجو\fP به آن ضمیمه گردد. مقدار این گزینه به طور نامحسوس به ۱۵ محدود می‌شود. .TP .BI timeout: n .\" Since glibc 2.2 مدت‌زمانی را تعیین می‌کند که تفکیک‌کننده پیش از تلاش مجدد برای ارسال پرس‌وجو از طریق یک کارگزار نام دیگر، منتظر پاسخ از یک کارگزار نام دوردست می‌ماند. این ممکن است زمان کل صرف‌شده توسط هر فراخوانی API تفکیک‌کننده .B نباشد و هیچ تضمینی وجود ندارد که یک فراخوانی منفرد API تفکیک‌کننده به یک مهلت زمانی منفرد مربوط باشد. این مقدار بر حسب ثانیه اندازه‌گیری می‌شود و مقدار پیش‌فرض آن .B RES_TIMEOUT است (در حال حاضر ۵ ثانیه، به \fI\fP مراجعه کنید). مقدار این گزینه به طور نامحسوس به ۳۰ محدود می‌شود. .TP .BI attempts: n تعداد دفعاتی را تعیین می‌کند که تفکیک‌کننده پیش از تسلیم شدن و بازگرداندن یک خطا به برنامه فراخواننده، پرس‌وجو را به کارگزارهای نام خود ارسال می‌کند. مقدار پیش‌فرض .B RES_DFLRETRY است (در حال حاضر ۲ بار، به \fI\fP مراجعه کنید). مقدار این گزینه به طور نامحسوس به ۵ محدود می‌شود. .TP .B rotate .\" Since glibc 2.2 فلگ .B RES_ROTATE را در .IR _res.options تنظیم می‌کند، که باعث انتخاب چرخشی (round-robin) کارگزارهای نام از میان موارد فهرست‌شده می‌شود. این کار اثر توزیع بار پرس‌وجو میان تمام کارگزارهای فهرست‌شده را دارد، به جای اینکه همه کلاینت‌ها هر بار ابتدا اولین کارگزار فهرست‌شده را امتحان کنند. .TP .BR no\-aaaa " (از نسخه glibc 2.36)" .\" f282cdbe7f436c75864e5640a409a10485e9abb2 فلگ .B RES_NOAAAA را در .IR _res.options تنظیم می‌کند، که باعث متوقف کردن پرس‌وجوهای AAAA انجام‌شده توسط تفکیک‌کننده پایه (stub resolver) می‌شود، از جمله جستجوهای AAAA که توسط واسط‌های مبتنی بر NSS مانند .BR getaddrinfo (3) آغاز می‌شوند. تنها جستجوهای DNS تحت تأثیر قرار می‌گیرند: داده‌های IPv6 در .BR hosts (5) همچنان استفاده می‌شوند، .BR getaddrinfo (3) با .B AI_PASSIVE همچنان نشانی‌های IPv6 تولید می‌کند، و کارگزارهای نام IPv6 پیکربندی‌شده همچنان استفاده می‌شوند. برای ایجاد نتایج صحیح خطای نام (NXDOMAIN)، پرس‌وجوهای AAAA به پرس‌وجوهای A ترجمه می‌شوند. این گزینه در وهله نخست برای اهداف عیب‌یابی در نظر گرفته شده است، تا احتمال اثر منفی پرس‌وجوهای DNS مربوط به AAAA رد شود. این گزینه با استفاده از EDNS0 و اعتبارسنجی DNSSEC توسط برنامه‌ها ناسازگار است. .TP .B no\-check\-names .\" since glibc 2.2 فلگ .B RES_NOCHECKNAME را در .IR _res.options تنظیم می‌کند، که بررسی مدرن BIND را روی نام‌های میزبان و نام‌های پستی دریافتی برای نویسه‌های نامعتبر مانند زیرخط (_)، نویسه‌های غیر اسکی (non-ASCII) یا نویسه‌های کنترلی غیرفعال می‌کند. .TP .B inet6 .\" Since glibc 2.2 فلگ .B RES_USE_INET6 را در .IR _res.options تنظیم می‌کند. این گزینه باعث می‌شود که در داخل تابع .BR gethostbyname (3) پیش از پرس‌وجوی A یک پرس‌وجوی AAAA امتحان شود، و اگر هیچ رکورد AAAA یافت نشد اما مجموعه‌ای از رکوردهای A موجود بود، پاسخ‌های IPv4 در «قالب تونل‌شده» IPv6 نگاشت شوند. از نسخه glibc 2.25، .\" b76e065991ec01299225d9da90a627ebe6c1ac97 این گزینه منسوخ شده است؛ برنامه‌ها باید به جای .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 در منطقه (منسوخ‌شده) .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 از نسخه glibc 2.9 جستجوهای IPv4 و IPv6 را به صورت همزمان (موازی) انجام می‌دهد. برخی از کارگزارهای DNS سخت‌افزاری/تجهیزاتی نمی‌توانند این پرس‌وجوها را به درستی پردازش کنند و باعث می‌شوند مهلت زمانی درخواست‌ها به پایان برسد. این گزینه این رفتار را غیرفعال می‌کند و باعث می‌شود glibc درخواست‌های IPv6 و IPv4 را به صورت متوالی انجام دهد (به بهای مقداری کند شدن فرایند تفکیک نام). .TP .BR single\-request\-reopen " (از نسخه glibc 2.9)" فلگ .B RES_SNGLKUPREOP را در .IR _res.options تنظیم می‌کند. تفکیک‌کننده از یک سوکت مشترک برای درخواست‌های A و AAAA استفاده می‌کند. برخی سخت‌افزارها به اشتباه تنها یک پاسخ را بازمی‌گردانند. هنگامی که این وضعیت رخ می‌دهد، سامانه کلاینت منتظر پاسخ دوم مانده و معطل می‌شود. فعال کردن این گزینه این رفتار را تغییر می‌دهد به طوری که اگر دو درخواست از یک درگاه (port) یکسان به درستی مدیریت نشوند، سوکت بسته شده و قبل از ارسال درخواست دوم یک سوکت جدید باز می‌شود. .TP .BR no\-tld\-query " (از نسخه glibc 2.14)" فلگ .B RES_NOTLDQUERY را در .IR _res.options تنظیم می‌کند. این گزینه باعث می‌شود تابع .BR res_nsearch () تلاش نکند یک نام نامشخص (بدون پسوند دامنه) را به گونه‌ای تفکیک کند که گویی یک دامنه سطح‌بالا (TLD) است. اگر یک سایت به جای قرار دادن localhost در یک یا چند عنصر از فهرست جستجو، دارای «localhost» به عنوان یک TLD باشد، این گزینه می‌تواند موجب بروز مشکل شود. این گزینه در صورتی که هیچ‌یک از مقادیر RES_DEFNAMES یا RES_DNSRCH تنظیم نشده باشند، هیچ اثری ندارد. .TP .BR use\-vc " (از نسخه glibc 2.14)" فلگ .B RES_USEVC را در .IR _res.options تنظیم می‌کند. این گزینه استفاده از پروتکل TCP را برای تفکیک‌های DNS اجباری می‌کند. .\" aef16cc8a4c670036d45590877d411a97f01e0cd .TP .BR no\-reload " (از نسخه glibc 2.26)" فلگ .B RES_NORELOAD را در .IR _res.options تنظیم می‌کند. این گزینه بارگذاری مجدد خودکار یک فایل پیکربندی تغییریافته را غیرفعال می‌کند. .TP .BR trust\-ad " (از نسخه glibc 2.31)" .\" 446997ff1433d33452b81dfa9e626b8dccf101a4 فلگ .B RES_TRUSTAD را در .IR _res.options تنظیم می‌کند. این گزینه رفتار بیت AD مربوط به تفکیک‌کننده پایه (stub resolver) را کنترل می‌کند. اگر یک تفکیک‌کننده اعتبارسنجی‌کننده بیت AD را در پاسخ تنظیم کند، نشان می‌دهد که داده‌های موجود در پاسخ بر اساس پروتکل DNSSEC راستی‌آزمایی شده‌اند. به منظور اعتماد به بیت AD، سامانه محلی باید هم به تفکیک‌کننده اعتبارسنج DNSSEC و هم به مسیر شبکه منتهی به آن اعتماد داشته باشد، به همین دلیل نیاز به انتخاب و فعال‌سازی صریح (opt-in) است. اگر گزینه .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) باید خط را شروع کند. مقدار پس از کلیدواژه قرار گرفته و با نویسه‌های فاصله از آن جدا می‌شود. .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 Name Server Operations Guide for BIND