Pierwszy etap konfiguracji DNS, pożyteczny dla osób łączących się z Internetem przez modem.
Podręczny serwer DNS znajdzie odpowiedzi na pytania o nazwy komputerów i zapamięta je, tak aby mógł natychmiast odpowiedzieć, gdy będziesz ich potrzebował ponownie.
Po pierwsze potrzebny jest plik /etc/named/.boot. Jest
czytany podczas uruchamiania programu named. W naszym przypadku
powienien po prostu zawierać:
; Plik startowy podręcznego serwera DSN ; directory /var/named ; ; rodzaj domena plik lub komputer źródłowy cache . root.cache primary 0.0.127.in-addr.arpa pz/127.0.0
BARDZO WAŻNE: W niektórych formatach tego dokumentu, zawartość wspomnianego pliku będzie poprzedzona kilkoma spacjami lub znakami tabulacji. Znaki te nie mogą znależć się w prawdzimym pliku konfiguracyjnym. Usuń wszelkie wiodące spacje w plikach utworzonych na podstawie tego dokumnetu (np przez kopiowanie fragmentów).
Wiersz z poleceniem `directory' wskazuje, gdzie program named
powienien szukać plików. Wszystkie podawane póżniej nazwy plików będą
nazwami względem tego katalogu.
/var/named jest właściwym miejscem, zgodnym ze Standardem
systemów plików w systemie Linux (FSS).
Plik o nazwie /var/named/root.cache powienien zawierać:
. 518400 NS D.ROOT-SERVERS.NET. . 518400 NS E.ROOT-SERVERS.NET. . 518400 NS I.ROOT-SERVERS.NET. . 518400 NS F.ROOT-SERVERS.NET. . 518400 NS G.ROOT-SERVERS.NET. . 518400 NS A.ROOT-SERVERS.NET. . 518400 NS H.ROOT-SERVERS.NET. . 518400 NS B.ROOT-SERVERS.NET. . 518400 NS C.ROOT-SERVERS.NET. ; D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
Pamiętaj co mówiłem o wiodących odstępach!.
Plik określa główne serwery DNS na świecie. Ta informacja zmienia się z czasem i musi być poprawiana. Patrz Rozdziało utrzymaniu serwera, znajdziesz tam rady skąd uzyskiwać aktualne informacje. Jest to opisane na stronie podręcznika dotyczącej programu named, lecz IMHO nadaje się dla ludzi, którzy już rozumieją jak pracuje named.
Kolejny wiersz w named.boot zawiera słowo kłuczowe
primary. Później opiszę jego zadanie, teraz po prostu utwórz
w katalogu pz plik o nazwie 127.0.0 zawierający:
@ IN SOA linux.bogus. hostmaster.linux.bogus. (
1 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.
Do tego potrzebujesz jeszcze plik /etc/resolv.conf, który
by wyglądał mniej więcej tak:
search poddomena.twoja.domena. twoja.domena nameserver 127.0.0.1
Wiersz `search' określa, które domeny powinny być
przeglądane w poszukiwaniu komputera z którym chcemy nawiązać
połączenie. Wiersz `nameserver' zawiera adres IP komputera,
serwera DNS, z którego może korzystać twój komputer. W tym przypadku
jest to twój komputer ponieważ to właśnie na nim chcesz uruchomić
program named. (Uwaga: Ten plik jest czytany przez procedury resolwera
biblioteki libc, program named nie zagląda do tego pliku.)
Mała ilustracja do czego służy ten plik: jeśli program otrzyma za
zadanie znalezienie adresu komputera foo, najpierw jest
sprawdzane czy istnieje komputer foo.poddomena.twoja.domena, a w
przypadku niepowodzenia następnie sprawda się foo.twoja.domena, a
na końcu foo. Jeśli należy znaleźć sunsite.unc.edu wpierw
sprawdza się istnienie sunsite.unc.edu.poddomena.twoja.domena
(tak, jest to glupie, ale tak musi być),
następnie sunsite.unc.edu.twoja.domena, a na końcu
sunsite.unc.edu. Możesz nie chcieć umieszczać w tym pliku zbyt
wielu domen, każde wyszukanie zajmuje trochę czasu.
W kolejnym przykładzie zakładamy, że należysz do domeny
poddomena.twoja.domena, twój komputer nowsi nazwę
twój-komputer.poddomena.twoja.domena. Wiersz z poleceniem search
nie powinien zawierać domeny najwyższego poziomu (TLD -Top Level
Domain) (a w Polsce domeny drugiego poziomu np. edu.pl,
/com.pl/). Jeśli bardzo często łączysz się z komputerami należącymi do
innej domeny, możesz ją dodać do wiersza z poleceniem search:
search poddomena.twoja.domena. inna-domena.com.pl.
itd. Oczywiście należy wpisać istniejące domeny. Zwróć uwagę na brak kropki kończącej nazwę domeny.
Następnie, zależnie od wersji biblioteki libc, której używasz
musisz poprawić albo plik /etc/nsswitch.conf lub
/etc/host.conf. Jeśli w twoim systemie już jest plik
/etc/nsswitch.conf to znaczy, że należy poprawić ten właśnie
plik, jęsli go nie ma, będziemy poprawiwać /etc/hosts.conf.
/etc/nsswitch.conf
To spory plik okreśłający skąd system ma pobierać różnego rodzaju
informacje, z których plików, lub sieciowychs baz danych. Zwykle
zawiera pomocne komentarze. Znajdź wiersz zaczywnający się słowem
`hosts:', powinien wyglądać następująco:
hosts: files dns
Jeśli nie ma wiersza zaczynającego się od `hosts', to dodaj
przedstawiony powyżej. Deiniuje on, że programy wpierw powinny
zajżeć do pliku /etc/hosts i dopiero w następnej
kolejności sprawdzać w DNSie, w sposób zgodny z wytycznymi
znajdującymi się w pliku /etc/resolv.conf.
/etc/host.conf
Prawdopodowbie zawiera kilkanaście wierszym jeden z nich powinien wyglądać następująco:
order hosts,bind
Jeśli nie ma wiersza rozpoczynającego się słowem order powinno
się taki dodać. Określa on sposób działania procedur rozwiązujących
nazwy komputerów, które w podanej konfiguracji wpierw sprawdzają plik
/etc/hosts , a następnie pytają serwer DNS (który jest
zdefiniowany w pliku /etc/resolv.conf jako 127.0.0.1). Te
pliki są dokładniej opisane na stronach podręcznika, można je
przeczytać pisząc `man 8 resolv (w większości dystrybucji
Linuxa). IMHO jest to całkiem zrozumiały tekst i powinien się z nim
zapoznać każdy administrator DNSu. Zrób to teraz, jeśli odłożysz to na
później, nigdy tego nie zrobisz.
Cect1>Uruchamianie programu named.
Przyszedł nareszcie czas uruchomic program named. Jeśli korzystasz
z połączenia dzwonionego, przed uruchomieniem programu zestaw
połaczenie. Nastepnie uruchom `ndc start' i wciśnij ENTER. Gdyby
powloka nie mogła znaleźć progrmu ndc, spróbuj `/usr/sbin/ndc
start'. Jeśli tam też nie ma tego programu zajżyj do rozdziału
FAQ.
Teraz możesz przetestować swoją konfigurację. Jeśli
podczas uruchamiania programu named będziesz podglądał plik dziennika
(zwykle tail -f /var/log/messages ) powinieneś zobaczyć
komunikaty podobne do tych poniżej:
Jun 30 21:50:55 roke named[2258]: starting. named 4.9.4-REL Sun Jun 30 21:29:03 MET DST 1996 janl@roke.slip.ifi.uio.no:/var/tmp/bind/named
Jun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial 0)
Jun 30 21:50:55 roke named[2258]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1)
Jeśli zobaczysz jakiekolwiek komunikaty o błędach, named wskaże
plik zawierający błąd (mam nadzieję, że named.boot lub named.cache
:-). Zabij proces named (ndc stop) i sprawdź wskazany plik.
$ nslookup
Default Server: localhost
Address: 127.0.0.1
>
Jeśli wyświetlone komunikaty są zbliżone do tych powyżej, to
znaczy, że wszystko działa. Mamy taką nadzieję. W każdym innym
przypadku musisz wrócić i sprawdzić raz jeszcze pliki konfiguracyjne.
Po każdej modyfikacji pliku /etc/named.boot musisz
zrestartować program wydając polecenie ndc restart.
Teraz możesz wydawać zapytania. Spróbuj odnaleźć komputer blisko
ciebie. pat.uio.no jest blisko mnie, Uniwersytet w Oslo:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Name: pat.uio.no
Address: 129.240.2.50
nslookup poprosił nameda o wyszukanie komputera
pat.uio.no. Named skontaktował się z jednym z serwerów
nazw wymienionych w pliku root.cache i tam rozpoczął swą
drogę. Zanim zobaczysz rezultat zapytania, może upłynąć całkiem spora
chwila, ponieważ named przeszukuje wszystkie domeny wymienione w pliku
/etc/resolv.conf/
Jeśli spróbujesz raz jeszcze otrzymasz taką odpowiedź:
> pat.uio.no
Server: localhost
Address: 127.0.0.1
Non-authoritative answer:
Name: pat.uio.no
Address: 129.240.2.50
Zwróć uwagę na frazę `Non-authoritative answer:'. Oznacza, że
tym razem named skorzystał ze swojej pamięci podręcznej i nie
przeszukiwał sieci w poszukiwaniu odpowiedzi na twoje pytanie. Lecz
informacja z pamięci podręcznej może być nieaktualna. Dlatetgo
jesteś informowany o tym (pomijalnym) niebezpieczeństwie właśnie
frazą `Non-authoritative answer:' (Odpwowiedź z nieautoryzowanego
źródła). Jeśli nslookup w taki sposób odpowie na drugie zapytanie
o ten sam komputer, jest to znak, że zapamiętuje odpowiedzi
przychodzące z sieci, a to znaczy, że działa poprawnie. Aby zakończyć
pracę z programem nslookup należy wydać polecenie exit.
Jeśli korzystasz z protokołów ppp, slip, zapoznaj się z rozdziałem FAQ<@@ref>autpo połączeniach modemowych, znajdziesz tam dla siebie kilka porad.
Teraz już wiesz jak skonfigurować podręczny serwer nazw (DNS). Polecam piwo, mleko lub inny ulubiony napój aby uczcić to wydarzenie.