resolv.conf(5) File Formats Manual resolv.conf(5)

resolv.conf - plik konfiguracyjny mechanizmu obsługi nazw (ang. resolver)

/etc/resolv.conf

Obsługa nazw (resolver) jest zbiorem funkcji biblioteki C, które umożliwiają dostęp do internetowego systemu serwerów nazw (DNS). Plik konfiguracyjny zawiera informacje, odczytywane przez procedury obsługi nazw podczas ich pierwszego wywołania przez proces, i jest czytelny zarówno dla maszyny, jak i dla człowieka. Zawiera listę słów kluczowych z wartościami, które udostępniają różne informacje dotyczące obsługi nazw. Plik konfiguracyjny jest uważany za zaufane źródło informacji DNS; więcej informacji w opisie opcji trust-ad.

Jeśli ten plik nie istnieje, to jedynym odpytywanym serwerem nazw jest wtedy ten z maszyny lokalnej, a lista przeszukiwań zawierająca nazwę lokalnej domeny jest konstruowana z nazwy komputera.

Opcje konfiguracji są następujące:

Adres internetowy serwera nazw, który powinien być odpytywany przez funkcje obsługi nazw albo jako adres IPv4 (w notacji kropkowej) lub jako adres IPv6 w notacji dwukropkowej (i być może kropkowej) zgodnie z RFC 2373. W pliku można podać maksymalnie MAXNS (obecnie 3, patrz <resolv.h>) serwery nazw, po jednym przy słowie kluczowym. Jeśli jest kilka serwerów, biblioteka obsługi nazw odpytuje je w kolejności, w jakiej zostały wymienione. Jeśli nie ma żadnego wpisu nameserver, domyślnym zachowaniem jest korzystanie z serwera nazw na maszynie lokalnej. (Stosowany algorytm polega na próbie odpytania serwera nazw, a jeśli przekroczy ona czas oczekiwania, następuje próba odpytania następnego, aż zabraknie serwerów nazw. Następnie występuje ściśle określona liczba ponownych odpytań wszystkich serwerów nazw).
Domyślnie, lista przeszukiwań zawiera jeden wpis - nazwę lokalnej domeny. Jest ona określana na podstawie nazwy lokalnego komputera, zwróconej przez gethostname(2) - za domenę uważa się wszystko po pierwszej ".". Ostatecznie, jeśli nazwa komputera nie zawiera "." za domenę główną przyjmowana jest nazwa lokalnej domeny.
Można to zmienić, przez podanie żądanej ścieżki poszukiwania domeny po słowie kluczowym search, używając spacji lub tabulacji do oddzielenia nazw. Funkcje obsługi nazw dla zapytań zawierających w sobie mniej niż ndots kropek (domyślnie - 1) będą próbowały kolejnych składników ścieżki poszukiwania, aż do znalezienia. Dla środowisk z wieloma poddomenami, proszę przeczytać poniżej options ndots:n, aby uniknąć ataków typu man-in-the-middle oraz niepotrzebnego odpytywania głównych serwerów nazw. Należy zauważyć, że proces ten może być powolny i powodować duże obciążenie sieci, jeśli serwery dla podanych domen nie są lokalne, a czas oczekiwania na odpowiedź po zapytaniu przekracza czas oczekiwania, gdy dla którejś z domen wszystkie serwery są niedostępne.
Jeśli występuje wiele wpisów search, użyta będzie wyłącznie lista przeszukiwań z ostatniego wpisu.
W glibc 2.25 i wcześniejszych, lista przeszukiwania jest ograniczona do sześciu domen z maksymalną liczbą 256 znaków. Od glibc 2.26 brak limitów listy przeszukiwania.
Opcja domain jest przestarzałym odpowiednikiem listy przeszukiwania search, która obsługuje tylko pojedynczy wpis.
Umożliwia sortowanie adresów zwracanych przez gethostbyname(3). Lista sortowania jest podawana przez pary adresów IP i masek sieci. Maska sieci jest opcjonalna i domyślnie ma wartość naturalnej maski dla danej sieci. Adres IP jest oddzielany od maski sieci ukośnikiem. W polu tym można podawać do 10 par. Przykład:

sortlist 130.155.160.0/255.255.240.0 130.155.0.0
Pole to umożliwia modyfikację pewnych wewnętrznych zmiennych funkcji obsługi nazw. Jego składnia to:
options opcja ...

gdzie opcja jest jedną z następujących:

Ustawia RES_DEBUG w _res.options (działa tylko gdy glibc został zbudowany z obsługą debugowania; zobacz resolver(3)).
Ustawia próg liczby kropek, które muszą pojawić się w nazwie podanej do res_query (zobacz resolver(3)) przed wykonaniem początkowego absolutnego zapytania. Domyślną wartością jest "1", co oznacza, że jeśli w nazwie znajdują się jakieś kropki, to powinna być najpierw sprawdzona jako nazwa absolutna, bez dokonywania żadnych podstawień listy poszukiwania. Maksymalną wartością jest 15, większe wartości zostaną zmniejszone, bez wypisywania żadnych ostrzeżeń.
Ustawia czas, przez który funkcja obsługi nazw będzie czekać na odpowiedź ze zdalnego serwera nazw przed wysłaniem zapytania do innego serwera nazw. Może to nie być całkowity czas, jaki jaki zajmie wywołanie interfejsu obsługi nazw i brak gwarancji, że pojedyncze wywołanie odpowiada jednemu limitowi czasu. Wyrażony w sekundach, domyślnie - RES_TIMEOUT (obecnie 5, patrz <resolv.h>). Maksymalną wartością jest 30, większe wartości zostaną zmniejszone, bez wypisywania żadnych ostrzeżeń.
Ustawia liczbę prób wysyłania przez funkcję obsługi nazw zapytań do serwerów nazw przed poddaniem się i zwróceniem błędu. Domyślnie - RES_DFLRETRY (obecnie 2, patrz <resolv.h>). Maksymalną wartością jest 5, większe wartości zostaną zmniejszone, bez wypisywania żadnych ostrzeżeń.
Ustawia RES_ROTATE w _res.options, powodując wybór serwera nazw spośród wymienionych serwerów za pomocą algorytmu round-robin. Efektem tej opcji jest rozłożenie obciążenia zapytaniami wszystkich wymienionych serwerów nazw, zamiast odpytywania za każdym razem pierwszego z nich.
Ustawia RES_NOCHECKNAME w _res.options, co wyłącza sprawdzanie przez nowoczesne serwery BIND przychodzących nazw komputerów i nazw pocztowych pod kątem niepoprawnych znaków, takich jak podkreślenie (_), znaki nie-ASCII lub znaki sterujące.
Ustawia RES_USE_INET6 w _res.options. Efektem tego jest próbowanie zapytań AAAA przed zapytaniami A wewnątrz funkcji gethostbyname(3) i mapowanie odpowiedzi IPv4 na "tunelowaną formę" IPv6, jeżeli znaleziono tylko rekordy A, bez rekordów AAAA. Od glibc 2.25 opcja ta jest przestarzała, aplikacje powinny korzystać z getaddrinfo(3), zamiast z gethostbyname(3).
Ustawia RES_USE_BSTRING w _res.options. Powoduje to, że odwrotne wyszukiwania IPv6 będą używać formatu etykiet bitowych ("bit-label") opisanego w RFC 2673. Jeśli ta opcja nie jest ustawiona (tak jest domyślnie), to będzie używany format półbajtowy. Opcja usunięta w glibc 2.25, ponieważ korzystała z niekompatybilnego wstecznie rozszerzenia DNS, które nigdy nie zostało zaimplementowane w Internecie.
Clear/set RES_NOIP6DOTINT in _res.options. When this option is clear (ip6-dotint), reverse IPv6 lookups are made in the (deprecated) ip6.int zone; when this option is set (no-ip6-dotint), reverse IPv6 lookups are made in the ip6.arpa zone by default. These options are available up to glibc 2.24, where no-ip6-dotint is the default. Since ip6-dotint support long ago ceased to be available on the Internet, these options were removed in glibc 2.25.
Ustawia RES_USE_EDNS0 w _res.options. Włącza to obsługę rozszerzeń DNS opisanych w RFC 2671.
Sets RES_SNGLKUP in _res.options. By default, glibc performs IPv4 and IPv6 lookups in parallel since glibc 2.9. Some appliance DNS servers cannot handle these queries properly and make the requests time out. This option disables the behavior and makes glibc perform the IPv6 and IPv4 requests sequentially (at the cost of some slowdown of the resolving process).
Ustawia RES_SNGLKUPREOP w _res.options. Mechanizm rozwiązujący używa tych samych gniazd do żądań A i AAAA. Część rozwiązań sprzętowych nieprawidłowo odsyła pojedynczą odpowiedź. Gdy tak się stanie, klient systemowy poczeka na drugą odpowiedź. Włączenie tej opcji zmienia to zachowanie, dzięki czemu jeśli dwa żądania z tego samego portu nie są poprawnie obsługiwane, to nastąpi zamknięcie oraz otworzenie nowego gniazda przed wysłaniem drugiego żądania.
Ustawia RES_NOTLDQUERY w _res.options. Ta opcja powoduje, że res_nsearch() nie próbuje rozwiązywać niejednoznacznej nazwy w sposób, jak gdyby była ona domeną najwyższego poziomu (ang. top level domain - TLD). Ta opcja może powodować problemy, gdy strona jako TLD ma "localhost", zamiast umieścić "localhost" jako jeden z elementów listy wyszukiwania. Opcja nie działa, jeśli nie ustawiono ani RES_DEFNAMES, ani RES_DNSRCH.
Ustawia RES_USEVC w _res.options. Wymusza użycie TCP do rozwiązywania nazw DNS.
Ustawia RES_NORELOAD w _res.options. Opcja wyłącza automatyczne przeładowanie zmienionego pliku konfiguracyjnego.
Ustawia RES_TRUSTAD w _res.options. Opcja kontroluje zachowanie bitu AD w minimalnym mechanizmie rozwiązującym nazwy (ang. stub resolver). Jeśli walidująca funkcja obsługi nazw ustawi bit AD w odpowiedzi, oznacza to że dane zawarte w odpowiedzi zostały zweryfikowane zgodnie z protokołem DNSSEC. Aby móc polegać na bicie AD, lokalny system musi ufać zarówno walidującej funkcji, jak i ścieżce sieciowej prowadzającej do niej - co jest powodem konieczności jawnego włączenia tego ustawienia. Jeśli opcja trust-ad jest aktywna, minimalny mechanizm rozwiązujący nazwy ustawia bit AD w wychodzących zapytaniach DNS (aby włączyć obsługę bitu AD) i zachowuje go w odpowiedziach. Bez tej opcji, bit AD nie jest ustawiany w zapytaniach oraz jest zawsze usuwany z odpowiedzi, przed ich przekazaniem aplikacjom. Oznacza to, że aplikacje mogą zaufać bitowi AD w odpowiedziach, jeśli opcja trust-ad została prawidłowo ustawiona.
In glibc 2.30 and earlier, the AD is not set automatically in queries, and is passed through unchanged to applications in responses.

Słowo kluczowe search systemowego resolv.conf można nadpisać dla danego procesu nadając zmiennej środowiskowej LOCALDOMAIN wartość będącą rozdzieloną spacjami listą domen poszukiwania.

Słowo kluczowe options systemowego resolv.conf można poprawić dla danego procesu nadając zmiennej środowiskowej RES_OPTIONS wartość będącą rozdzieloną spacjami listą opcji obsługi nazw (opcje opisano powyżej, pod hasłem options).

Słowo kluczowe i wartość muszą pojawiać się w tej samej linii oraz słowo kluczowe (np. nameserver) musi rozpoczynać linię. Wartość jest elementem następującym po słowie kluczowym i jest od niego oddzielona znakiem spacji lub tabulacji.

Linie zaczynające się od znaku średnika (";") lub hasha ("#") są traktowane jako komentarze.

/etc/resolv.conf, <resolv.h>

gethostbyname(3), resolver(3), host.conf(5), hosts(5), nsswitch.conf(5), hostname(7), named(8)

Name Server Operations Guide for BIND

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.

4 grudnia 2022 r. 4th Berkeley Distribution