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:
-
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>
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 <
[email protected]>, Robert Luberda
<
[email protected]> i Michał Kułach
<
[email protected]>
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
[email protected]