resolv.conf(5) File Formats Manual resolv.conf(5) NAZWA resolv.conf - plik konfiguracyjny mechanizmu obslugi nazw (ang. resolver) SKLADNIA /etc/resolv.conf OPIS Obsluga nazw (resolver) jest zbiorem funkcji biblioteki C, ktore umozliwiaja dostep do internetowego systemu serwerow nazw (DNS). Plik konfiguracyjny zawiera informacje, odczytywane przez procedury obslugi nazw podczas ich pierwszego wywolania przez proces, i jest czytelny zarowno dla maszyny, jak i dla czlowieka. Zawiera liste slow kluczowych z wartosciami, ktore udostepniaja rozne informacje dotyczace obslugi nazw. Plik konfiguracyjny jest uwazany za zaufane zrodlo informacji DNS; wiecej informacji w opisie opcji trust-ad. Jesli ten plik nie istnieje, to jedynym odpytywanym serwerem nazw jest wtedy ten z maszyny lokalnej, a lista przeszukiwan zawierajaca nazwe lokalnej domeny jest konstruowana z nazwy komputera. Opcje konfiguracji sa nastepujace: nameserver Adres IP serwera nazw. Adres internetowy serwera nazw, ktory powinien byc odpytywany przez funkcje obslugi nazw albo jako adres IPv4 (w notacji kropkowej) lub jako adres IPv6 w notacji dwukropkowej (i byc moze kropkowej) zgodnie z RFC 2373. W pliku mozna podac maksymalnie MAXNS (obecnie 3, patrz ) serwery nazw, po jednym przy slowie kluczowym. Jesli jest kilka serwerow, biblioteka obslugi nazw odpytuje je w kolejnosci, w jakiej zostaly wymienione. Jesli nie ma zadnego wpisu nameserver, domyslnym zachowaniem jest korzystanie z serwera nazw na maszynie lokalnej. (Stosowany algorytm polega na probie odpytania serwera nazw, a jesli przekroczy ona czas oczekiwania, nastepuje proba odpytania nastepnego, az zabraknie serwerow nazw. Nastepnie wystepuje scisle okreslona liczba ponownych odpytan wszystkich serwerow nazw). search Lista przeszukiwania nazw komputerow. Domyslnie, lista przeszukiwan zawiera jeden wpis - nazwe lokalnej domeny. Jest ona okreslana na podstawie nazwy lokalnego komputera, zwroconej przez gethostname(2) - za domene uwaza sie wszystko po pierwszej ,,.". Ostatecznie, jesli nazwa komputera nie zawiera ,,." za domene glowna przyjmowana jest nazwa lokalnej domeny. Mozna to zmienic, przez podanie zadanej sciezki poszukiwania domeny po slowie kluczowym search, uzywajac spacji lub tabulacji do oddzielenia nazw. Funkcje obslugi nazw dla zapytan zawierajacych w sobie mniej niz ndots kropek (domyslnie - 1) beda probowaly kolejnych skladnikow sciezki poszukiwania, az do znalezienia. Dla srodowisk z wieloma poddomenami, prosze przeczytac ponizej options ndots:n, aby uniknac atakow typu man-in-the-middle oraz niepotrzebnego odpytywania glownych serwerow nazw. Nalezy zauwazyc, ze proces ten moze byc powolny i powodowac duze obciazenie sieci, jesli serwery dla podanych domen nie sa lokalne, a czas oczekiwania na odpowiedz po zapytaniu przekracza czas oczekiwania, gdy dla ktorejs z domen wszystkie serwery sa niedostepne. Jesli wystepuje wiele wpisow search, uzyta bedzie wylacznie lista przeszukiwan z ostatniego wpisu. W glibc 2.25 i wczesniejszych, lista przeszukiwania jest ograniczona do szesciu domen z maksymalna liczba 256 znakow. Od glibc 2.26 brak limitow listy przeszukiwania. Opcja domain jest przestarzalym odpowiednikiem listy przeszukiwania search, ktora obsluguje tylko pojedynczy wpis. sortlist Umozliwia sortowanie adresow zwracanych przez gethostbyname(3). Lista sortowania jest podawana przez pary adresow IP i masek sieci. Maska sieci jest opcjonalna i domyslnie ma wartosc naturalnej maski dla danej sieci. Adres IP jest oddzielany od maski sieci ukosnikiem. W polu tym mozna podawac do 10 par. Przyklad: sortlist 130.155.160.0/255.255.240.0 130.155.0.0 options Pole to umozliwia modyfikacje pewnych wewnetrznych zmiennych funkcji obslugi nazw. Jego skladnia to: options opcja ... gdzie opcja jest jedna z nastepujacych: debug Ustawia RES_DEBUG w _res.options (dziala tylko gdy glibc zostal zbudowany z obsluga debugowania; zobacz resolver(3)). ndots:n Ustawia prog liczby kropek, ktore musza pojawic sie w nazwie podanej do res_query (zobacz resolver(3)) przed wykonaniem poczatkowego absolutnego zapytania. Domyslna wartoscia jest "1", co oznacza, ze jesli w nazwie znajduja sie jakies kropki, to powinna byc najpierw sprawdzona jako nazwa absolutna, bez dokonywania zadnych podstawien listy poszukiwania. Maksymalna wartoscia jest 15, wieksze wartosci zostana zmniejszone, bez wypisywania zadnych ostrzezen. timeout:n Ustawia czas, przez ktory funkcja obslugi nazw bedzie czekac na odpowiedz ze zdalnego serwera nazw przed wyslaniem zapytania do innego serwera nazw. Moze to nie byc calkowity czas, jaki jaki zajmie wywolanie interfejsu obslugi nazw i brak gwarancji, ze pojedyncze wywolanie odpowiada jednemu limitowi czasu. Wyrazony w sekundach, domyslnie - RES_TIMEOUT (obecnie 5, patrz ). Maksymalna wartoscia jest 30, wieksze wartosci zostana zmniejszone, bez wypisywania zadnych ostrzezen. attempts:n Ustawia liczbe prob wysylania przez funkcje obslugi nazw zapytan do serwerow nazw przed poddaniem sie i zwroceniem bledu. Domyslnie - RES_DFLRETRY (obecnie 2, patrz ). Maksymalna wartoscia jest 5, wieksze wartosci zostana zmniejszone, bez wypisywania zadnych ostrzezen. rotate Ustawia RES_ROTATE w _res.options, powodujac wybor serwera nazw sposrod wymienionych serwerow za pomoca algorytmu round-robin. Efektem tej opcji jest rozlozenie obciazenia zapytaniami wszystkich wymienionych serwerow nazw, zamiast odpytywania za kazdym razem pierwszego z nich. no-aaaa (od glibc 2.26) Ustawia RES_NOAAAA w _res.options, co powstrzymuje zapytania AAAA wykonywane przez minimalny mechanizm rozwiazujacy nazwy (ang. stub resolver), w tym wyszukiwania AAAA wyzwolone przez interfejsy oparte o NSS, takie jak getaddrinfo(3). Dotyczy to wylacznie zapytania DNS: dane IPv6 w hosts(5) sa wciaz uzywane, getaddrinfo(3) z AI_PASSIVE wciaz utworzy adresy IPv6, a skonfigurowane serwery nazw IPv6 sa wciaz uzywane. Aby utworzyc prawidlowe wyniki Name Error (NXDOMAIN), zapytania AAAA sa tlumaczone na zapytania A. Opcja ta sluzy glownie do zastosowan diagnostycznych, aby wykluczyc negatywny wplyw, lezacy po stronie zapytan AAAA DNS. Jest niekompatybilna z uzywaniem EDNS0 oraz walidacja DNSSEC przez aplikacje. no-check-names Ustawia RES_NOCHECKNAME w _res.options, co wylacza sprawdzanie przez nowoczesne serwery BIND przychodzacych nazw komputerow i nazw pocztowych pod katem niepoprawnych znakow, takich jak podkreslenie (_), znaki nie-ASCII lub znaki sterujace. inet6 Ustawia RES_USE_INET6 w _res.options. Efektem tego jest probowanie zapytan AAAA przed zapytaniami A wewnatrz funkcji gethostbyname(3) i mapowanie odpowiedzi IPv4 na "tunelowana forme" IPv6, jezeli znaleziono tylko rekordy A, bez rekordow AAAA. Od glibc 2.25 opcja ta jest przestarzala, aplikacje powinny korzystac z getaddrinfo(3), zamiast z gethostbyname(3). ip6-bytestring (od glibc 2.3.4 do glibc 2.24) Ustawia RES_USE_BSTRING w _res.options. Powoduje to, ze odwrotne wyszukiwania IPv6 beda uzywac formatu etykiet bitowych ("bit-label") opisanego w RFC 2673. Jesli ta opcja nie jest ustawiona (tak jest domyslnie), to bedzie uzywany format polbajtowy. Opcja usunieta w glibc 2.25, poniewaz korzystala z niekompatybilnego wstecznie rozszerzenia DNS, ktore nigdy nie zostalo zaimplementowane w Internecie. ip6-dotint/no-ip6-dotint (od glibc 2.3.4 do glibc 2.24) Czysci lub ustawia RES_NOIP6DOTINT w _res.options. Jesli opcja ta jest wyczyszczona (ip6-dotint), wyszukiwania odwrotne IPv6 sa przeprowadzane w (niezalecanej) strefie ip6.int. Gdy opcja ta jest wlaczona (no-ip6-dotint), odwrotne wyszukiwania IPv6 sa przeprowadzane w strefie ip6.arpa. Opcje te sa dostepne do glibc 2.24, gdzie no-ip6-ditint jest domyslnie wlaczona. Poniewaz obsluga ip6-dotint dawno temu zaniknela w Internecie, opcje usunieto w glibc 2.25. edns0 (od wersji 2.6 biblioteki glibc) Ustawia RES_USE_EDNS0 w _res.options. Wlacza to obsluge rozszerzen DNS opisanych w RFC 2671. single-request (od wersji 2.10 biblioteki glibc) Ustawia RES_SNGLKUP w _res.options. Domyslnie glibc rownolegle odpytuje IPv4 i IPv6 od glibc 2.9. Niektore urzadzenia serwerow DNS nie obsluguja poprawnie takich zapytan i powoduja blad przekroczenia czasu oczekiwania na odpowiedz. Opcja ta wylacza takie zachowanie i sprawia, ze glibc odpytuje o IPv6 i IPv4 sekwencyjnie (kosztem pewnego spowolnienia procesu translacji nazw). single-request-reopen (od wersji 2.9 biblioteki glibc) Ustawia RES_SNGLKUPREOP w _res.options. Mechanizm rozwiazujacy uzywa tych samych gniazd do zadan A i AAAA. Czesc rozwiazan sprzetowych nieprawidlowo odsyla pojedyncza odpowiedz. Gdy tak sie stanie, klient systemowy poczeka na druga odpowiedz. Wlaczenie tej opcji zmienia to zachowanie, dzieki czemu jesli dwa zadania z tego samego portu nie sa poprawnie obslugiwane, to nastapi zamkniecie oraz otworzenie nowego gniazda przed wyslaniem drugiego zadania. no-tld-query (od wersji 2.14 biblioteki glibc) Ustawia RES_NOTLDQUERY w _res.options. Ta opcja powoduje, ze res_nsearch() nie probuje rozwiazywac niejednoznacznej nazwy w sposob, jak gdyby byla ona domena najwyzszego poziomu (ang. top level domain - TLD). Ta opcja moze powodowac problemy, gdy strona jako TLD ma "localhost", zamiast umiescic "localhost" jako jeden z elementow listy wyszukiwania. Opcja nie dziala, jesli nie ustawiono ani RES_DEFNAMES, ani RES_DNSRCH. use-vc (od wersji 2.14 biblioteki glibc) Ustawia RES_USEVC w _res.options. Wymusza uzycie TCP do rozwiazywania nazw DNS. no-reload (od wersji 2.26 biblioteki glibc) Ustawia RES_NORELOAD w _res.options. Opcja wylacza automatyczne przeladowanie zmienionego pliku konfiguracyjnego. trust-ad (od wersji 2.31 biblioteki glibc) Ustawia RES_TRUSTAD w _res.options. Opcja kontroluje zachowanie bitu AD w minimalnym mechanizmie rozwiazujacym nazwy (ang. stub resolver). Jesli walidujaca funkcja obslugi nazw ustawi bit AD w odpowiedzi, oznacza to ze dane zawarte w odpowiedzi zostaly zweryfikowane zgodnie z protokolem DNSSEC. Aby moc polegac na bicie AD, lokalny system musi ufac zarowno walidujacej funkcji, jak i sciezce sieciowej prowadzajacej do niej - co jest powodem koniecznosci jawnego wlaczenia tego ustawienia. Jesli opcja trust-ad jest aktywna, minimalny mechanizm rozwiazujacy nazwy ustawia bit AD w wychodzacych zapytaniach DNS (aby wlaczyc obsluge 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, ze aplikacje moga zaufac bitowi AD w odpowiedziach, jesli opcja trust-ad zostala prawidlowo ustawiona. W glibc 2.30 i starszych, AD nie jest ustawiany automatycznie w zapytaniach, a w odpowiedziach jest przekazywany aplikacjom bez zadnych zmian. Slowo kluczowe search systemowego resolv.conf mozna nadpisac dla danego procesu nadajac zmiennej srodowiskowej LOCALDOMAIN wartosc bedaca rozdzielona spacjami lista domen poszukiwania. Slowo kluczowe options systemowego resolv.conf mozna poprawic dla danego procesu nadajac zmiennej srodowiskowej RES_OPTIONS wartosc bedaca rozdzielona spacjami lista opcji obslugi nazw (opcje opisano powyzej, pod haslem options). Slowo kluczowe i wartosc musza pojawiac sie w tej samej linii oraz slowo kluczowe (np. nameserver) musi rozpoczynac linie. Wartosc jest elementem nastepujacym po slowie kluczowym i jest od niego oddzielona znakiem spacji lub tabulacji. Linie zaczynajace sie od znaku srednika (";") lub hasha ("#") sa traktowane jako komentarze. PLIKI /etc/resolv.conf, ZOBACZ TAKZE gethostbyname(3), resolver(3), host.conf(5), hosts(5), nsswitch.conf(5), hostname(7), named(8) Name Server Operations Guide for BIND TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . 4th Berkeley Distribution 2 maja 2024 r. resolv.conf(5)