resolv.conf - plik konfiguracyjny mechanizmu obsługi nazw
(ang. resolver)
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:
- nameserver
Adres IP serwera nazw.
- 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).
- search Lista
przeszukiwania nazw komputerów.
- By default, the search list contains one entry, the local domain name. It
is determined from the local hostname returned by gethostname(2);
the local domain name is taken to be everything after the first '.'.
Finally, if the hostname does not contain a '.', the root domain is
assumed as the local domain name.
- 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.
- sortlist
- 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
- options
- 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:
- debug
- Ustawia RES_DEBUG w _res.options (działa tylko gdy
glibc został zbudowany z obsługą debugowania; zobacz
resolver(3)).
- ndots:n
- 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ń.
- timeout:n
- 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ń.
- attempts:n
- 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ń.
- rotate
- 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.
- no-check-names
- 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.
- inet6
- 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).
Niektóre programy zachowują się
dziwacznie, jeśli ta opcja jest włączona.
- ip6-bytestring (since
glibc 2.3.4 to glibc 2.24)
- 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.
- ip6-dotint/no-ip6-dotint
(glibc 2.3.4 to glibc 2.24)
- 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.
- edns0 (od wersji 2.6
biblioteki glibc)
- Ustawia RES_USE_EDNS0 w _res.options. Włącza
to obsługę rozszerzeń DNS opisanych w
RFC 2671.
- single-request (od
wersji 2.10 biblioteki glibc)
- 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).
- single-request-reopen
(od wersji 2.9 biblioteki glibc)
- 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.
- no-tld-query (od wersji
2.14 biblioteki glibc)
- 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.
- use-vc (od wersji 2.14
biblioteki glibc)
- Ustawia RES_USEVC w _res.options. Wymusza użycie TCP
do rozwiązywania nazw DNS.
- no-reload (od wersji
2.26 biblioteki glibc)
- Ustawia RES_NORELOAD w _res.options. Opcja
wyłącza automatyczne przeładowanie 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 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>
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.