DNS dziaИanie i konfiguracja usИugi

background image

Strona 1

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

DNS - działanie i konfiguracja usługi

Autor: Krzysztof Sahal

DNS - działanie i konfiguracja usługi

Autor: Krzysztof Sahal sahal@linux.pl

Kopiowanie i rozpowszechnianie w cało

ś

ci lub w cz

ęś

ciach tylko za zgod

ą

autora.

Historia - Dlaczego powstał DNS

Korzenie Internetu si

ę

gaj

ą

eksperymentalnej sieci komputerowej ł

ą

cz

ą

cej organizacje badawcze, zwanej

ARPAnet. W latach siedemdziesi

ą

tych minionego stulecia siec ARPAnet liczyła zaledwie kilkaset hostów.

Wraz z momentem kiedy opracowany na Uniwersytecie Kalifornijskim w Berkeley zestaw protokołów TCP/IP
stal si

ę

standardowym protokołem w ARPAnecie oraz gdy doł

ą

czono go do systemu Unix BSD ł

ą

czno

ść

z

ARPAnetem stała si

ę

dost

ę

pna dla wielu organizacji. Sie

ć

rozrosła si

ę

do tysi

ę

cy hostów. Człowiek nie jest

maszyn

ą

dlatego te

ż

w przeciwie

ń

stwie do nich łatwiej mu zapami

ę

tywa

ć

nazwy ni

ż

cyfry. Tak oto powstał

plik HOSTS.TXT przechowuj

ą

cy odwzorowania nazw komputerów ARPAnetu na adresy IP. Plik ten

redagowało Centrum Informacji Sieciowej (NIC) w Instytucie Badawczym Stanforda, a rozpowszechniany był
z hosta SRI-NIC. Jak łatwo si

ę

domy

ś

li

ć

takie rozwi

ą

zanie spowodowało i

ż

wraz ze wzrostem liczby hostów

rosła wielko

ść

pliku, a co wa

ż

niejsze zwi

ę

kszył si

ę

ruch w sieci powodowany ci

ą

głym uaktualnianiem tego

pliku. Obci

ąż

enie hosta SRI-NIC zbli

ż

ało si

ę

do warto

ś

ci krytycznej tego było zbyt wiele... W 1984 roku Paul

Mockapetris wydaje dokumenty RFC 882 i 883 opisuj

ą

ce domenowy system nazw (DNS).

DNS Działanie
- Struktura DNS i RevDNS, resolwer, zapytania DNS, schemat zapytania DNS, buforowanie -

Struktura DNS

DNS to rozproszona baza danych. Dzi

ę

ki takiemu rozwi

ą

zaniu mo

ż

liwe jest lokalne zarz

ą

dzanie

fragmentami całej bazy, udost

ę

pnianie danych realizowane jest za po

ś

rednictwem mechanizmu klient-

serwer. Resolwer (klient) tworzy zapytanie DNS i wysyła je do serwera DNS. (Wi

ę

cej na ten temat w

nast

ę

pnych rozdziałach). Struktura DNS jest struktur

ą

drzewiast

ą

na szczycie tej struktury znajduje si

ę

w

ę

zeł

główny (root domain - domena główna) oznaczany etykiet

ą

pust

ą

"" (zapisywany jako kropka). Kolejnym

elementem tego drzewa s

ą

tzw. TLD (Top Level Domains) czyli domeny najwy

ż

szego rz

ę

du np.: com, pl,

edu, gov, mil, de itp. Za przyporz

ą

dkowanie nazw hostów na ni

ż

szych szczeblach hierarchii (poni

ż

ej TLD)

odpowiada organizacja NIC ka

ż

dego kraju. Dlatego spotykamy np. domeny typu edu.pl, com.pl, org.pl.

Jednak

ż

e taka organizacja nie jest reguł

ą

ani obowi

ą

zkiem czego przykład stanowi organizacja domen

ni

ż

szych poziomów w Niemczech, gdzie nazwy domenowe odnosz

ą

si

ę

bezpo

ś

rednio do firm. Struktura

drzewiasta uniemo

ż

liwia dublowanie si

ę

nazw hostów czy poddomen. Nie mo

ż

na utworzy

ć

w jednej domenie

dwóch poddomen o takich samych nazwach tak samo jak niemo

ż

liwo

ś

ci

ą

jest stworzenie w tym samym

katalogu dwóch podkatalogów identycznie si

ę

nazywaj

ą

cych.

Struktura RevDNS

RevDNS to odwzorowywanie adresów IP na nazwy. W przestrzeni nazw domenowych istnieje domena in-
addr.arpa, w

ę

zły w tej domenie s

ą

etykietowane wg. liczb w kropkowej notacji adresu IP. Wynika z tego

prosty wniosek,

ż

e domena in-addr.arpa posiada 256 w

ę

złów, których etykiet

ą

jest pierwszy oktet adresu IP.

Ka

ż

dy z tych w

ę

złów rozgał

ę

zia si

ę

na kolejne 256 w

ę

złów których etykiet

ą

jest ju

ż

drugi oktet adresu IP.

Tworzy si

ę

w ten sposób drzewo posiadaj

ą

ce cztery poziomy (tyle ile jest oktetów w adresie IP). Pełna

struktura została pokazana na rysunku poni

ż

ej. W ten sposób domena in-addr.arpa w rzeczywisto

ś

ci mo

ż

e

pomie

ś

ci

ć

wszystkie adresy IP Internetu. Nale

ż

y jeszcze doda

ć

,

ż

e adresy w nazwie domenowej zapisywane

s

ą

od tylu - adresowi IP 213.25.234.82 odpowiada w

ę

zeł w domenie in-addr.arpa 82.234.25.213.in-

addr.arpa (jak

pokazano

na

rysunku).

Taka

struktura

umo

ż

liwia delegowanie

domen

w

strefie

odwzorowywanie odwrotnego.

background image

Strona 2

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

Klient czyli Resolwer

Programy potrzebuj

ą

ce nazw z przestrzeni nazw domenowych (np. ftp) posługuj

ą

si

ę

resolwerami. Resolwer

odpytuje serwer nazw, nast

ę

pnie interpretuje otrzyman

ą

odpowied

ź

i ostatecznie zwraca informacje do

programu, który ich za

żą

dał. Wi

ę

kszo

ść

pracy zwi

ą

zanej ze znalezieniem odpowiedzi wykonuje serwer DNS.

Wi

ę

kszo

ść

resolwerów jest okre

ś

lanych przez specyfikacje DNS jako resolwery szcz

ą

tkowe gdy

ż

nie potrafi

ą

nawet buforowa

ć

otrzymanych odpowiedzi (robi to serwer DNS).

Konfiguracja resolwera jest bardzo prosta, przechowuje j

ą

plik resolv.conf w katalogu /etc. Przykładowa

zawarto

ść

tego pliku:

nameserver 194.204.159.1
nameserver 194.204.152.34

Dyrektywa nameserver informuje resolwer o tym, z jakich serwerów DNS ma korzysta

ć

, host, który

ś

wiadczy

usługi nazewnicze nie musi mie

ć

dyrektywy nameserver, poniewa

ż

resolwer domy

ś

lnie szuka serwera nazw

na ho

ś

cie, w którym działa.

Rodzaje zapyta

ń

DNS

Rekurencyjne

to zapytanie wysyłane jest głównie przez resolwery (blokuje si

ę

obsług

ę

zapyta

ń

rekurencyjnych od

innych

serwerów

DNS).

Gdy

serwer

otrzymuje

zapytanie

rekurencyjne

zostaje

obarczony

odpowiedzialno

ś

ci

ą

za dostarczenie odpowiedzi. Serwer powtarza t

ę

sam

ą

procedur

ę

tzn. wysyła

zapytanie do innego serwera, który udziela mu wskazania, pytaj

ą

cy pod

ąż

a za wskazaniami a

ż

do

otrzymania ostatecznej odpowiedzi, któr

ą

mo

ż

e by

ć

komunikat o bł

ę

dzie.

Iteracyjne

to zapytanie jakie wysyłaj

ą

sobie serwery DNS. Serwer DNS zwraca pytaj

ą

cemu najlepsz

ą

odpowied

ź

jak

ą

posiada czyli wskazanie (adresy serwerów DNS bli

ż

szych domenie, o któr

ą

otrzymał zapytanie) -

pytaj

ą

cy sam wybiera jedno ze wskaza

ń

.

Schemat zapytanie DNS

W tym rozdziale dowiesz si

ę

jak przebiega proces odnalezienia adresu IP w przestrzeni nazw. Powiedzmy,

ż

e chciałby

ś

znale

źć

adres IP hosta antifa.zoltan.eu.org. Twój resolwer wysyła do serwera dns zapytanie

rekurencyjne. Serwer nic nie wie o tej strefie, wi

ę

c odpytuje serwery główne czy wiedz

ą

co

ś

na temat tej

domeny. Serwery główne oczywi

ś

cie bezpo

ś

rednio te

ż

o niej nic nie wiedz

ą

, ale za to zwracaj

ą

mu

wskazanie do serwerów przechowuj

ą

cych dane o domenie org. (jak ju

ż

powiniene

ś

zauwa

ż

y

ć

, nasz serwer

wysłał zapytanie iteracyjne) Nasz serwer DNS wybiera spo

ś

ród tych wskaza

ń

i odpytuje jaki

ś

serwer domeny

org. Ten z kolei zwraca mu list

ę

serwerów odpowiedzialnych za domen

ę

eu.org. Serwery eu.org ponownie

zwracaj

ą

wskazanie informuj

ą

ce o tym, kto odpowiada za domen

ę

zoltan.eu.org. I tym razem nasz serwer

pod

ąż

a za wskazówk

ą

i odpytuje serwer domeny zoltan.eu.org, ten serwer przegl

ą

da swoj

ą

baz

ę

danych i

stwierdza,

ż

e taki host ma adres 212.160.112.227.

Buforowanie

Mo

ż

e wydawa

ć

si

ę

,

ż

e cały ten proces jest do

ść

skomplikowany i długotrwały, w rzeczywisto

ś

ci odbywa si

ę

to zupełnie szybko dzi

ę

ki mechanizmowi zwanemu buforowaniem. W poprzednim paragrafie dowiedziałe

ś

si

ę

,

ż

e serwer otrzymuje wiele wskaza

ń

do innych serwerów nazw, serwer nie zapomina o nich, a wr

ę

cz

przeciwnie gromadzi je, by przyspieszy

ć

odwzorowanie. Nast

ę

pnym razem kiedy chciałby

ś

znowu

dowiedzie

ć

si

ę

, jaki adres ma host antfa.zoltan.eu.org serwer najpierw przeszukałby swoj

ą

pami

ęć

podr

ę

czn

ą

, w której natrafiłby na t

ę

nazw

ę

i natychmiastowo udzieliłby odpowiedzi. Co wi

ę

cej, gdyby

ś

my

zapytali teraz o IP hosta tychy.eu.org, to serwer DNS przeszukuj

ą

c pami

ęć

podr

ę

czn

ą

natrafiłby na

informacj

ę

,

ż

e dane o tej domenie posiada ns.eu.org (zbuforował t

ą

informacj

ę

wykonuj

ą

c poprzednie

wyszukiwanie) i bezpo

ś

rednio jego zapytałby o IP hosta tychy.eu.org. Oczywi

ś

cie, serwer DNS nie buforuje

danych w niesko

ń

czono

ść

- czas, jaki serwer ma przechowywa

ć

dan

ą

informacje jest okre

ś

lany w pliku

konfiguracyjnym dla danej strefy i nazywany jest ttl (time to live). Po upływie tego czasu dane s

ą

kasowane z

pami

ę

ci podr

ę

cznej.

Bind
- Info, konfiguracja (named.conf, rekord SOA, pliki stref dla RevDNS i DNS) -

Bind - Info

Paul Mockapetris był pierwsz

ą

osob

ą

, która napisała realizacj

ę

systemu nazw domenowych nosiła ona

nazw

ę

JEEVES. Pó

ź

niejsza implementacj

ą

był program BIND (Berkeley Internet Name Domain) autorstwa

Kevina Dunlapa dla systemu Unix BSD. Program BIND jest najpopularniejsz

ą

implementacj

ą

DNS i został

przeniesiony do praktycznie wszystkich odmian Uniksa i Linuksa. Jego popularno

ść

jest tak ogromna,

ż

e

został nawet przeniesiony na platform

ę

Windows NT firmy Microsoft.

Konfiguracja serwera DNS (Bind wersja powy

ż

ej 8.2)

Aby system nazw domenowych był bardziej niezawodny przyj

ę

to,

ż

e powinno uruchamia

ć

si

ę

co najmniej

dwa serwery nazw. Jeden z tych serwerów to tzw. Primary DNS (master), natomiast drugi to Secondary
DNS (slave). Ró

ż

nica mi

ę

dzy nimi jest taka,

ż

e pierwszy wszystkie dane o strefach posiada zapisane na

dysku i ka

ż

da zmiana strefy dokonywana jest na tym serwerze. Serwer zapasowy (slave) w regularnych

odst

ę

pach czasu pobiera pliki stref od swojego mastera (proces ten nazywa si

ę

transferem stref). Istnieje

jeszcze mo

ż

liwo

ść

skonfigurowania serwera nazw, który nie posiada

ż

adnych plików stref (nie posiada

zwierzchno

ś

ci nad

ż

adn

ą

domen

ą

). Taka konfiguracja jest bardzo przydatna, gdy

ż

potrafi wykonywa

ć

zapytania DNS dla aplikacji działaj

ą

cych w sieci lokalnej i co najwa

ż

niejsze przechowywa

ć

je w pami

ę

ci

podr

ę

cznej. Konfiguracja ta nosi nazw

ę

serwera pami

ę

ci podr

ę

cznej (caching-only server) i jest najprostsza

do zrealizowania z punktu widzenia administratora. Konfiguracja wspomnianych wy

ż

ej serwerów nazw

zostanie omówiona poni

ż

ej.

Plik named.conf

Rozdział ten, w którym omawia

ć

b

ę

dziemy tworzenie pliku named.conf jest dobrym miejscem, aby omówi

ć

wspomniane wy

ż

ej konfiguracje Binda, gdy

ż

wła

ś

nie w tym pliku zapada decyzja o funkcjach, jakie b

ę

dzie

spełniał ten program. Chciałbym zaznaczy

ć

,

ż

e program Bind mo

ż

e równocze

ś

nie spełnia

ć

wszystkie

funkcje, o których wspomniałem w poprzednim paragrafie tzn. mo

ż

e by

ć

podstawowym serwerem dla jednej

domeny, zapasowym dla drugiej i oczywi

ś

cie buforowa

ć

wszystkie zapytania. W tej chwili mo

ż

e si

ę

to

wydawa

ć

troch

ę

niezrozumiałe, ale w miar

ę

jak b

ę

dziemy budowa

ć

plik konfiguracyjny powinno sta

ć

si

ę

jasne.

Przejd

ź

my wi

ę

c do konfiguracji. Dozwolone s

ą

trzy rodzaje komentarzy:

background image

Strona 3

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

# w stylu powłoki systemu
// jak w C++
/* jak w C */

Rozpoczniemy od okre

ś

lenia kilku opcji globalnych:

// Ka

ż

da instrukcja musi ko

ń

czy

ć

si

ę

ś

rednikiem

options {
directory "/var/named" ; //Ustawia katalog roboczy serwera
auth-nxdomain yes; //Dzi

ę

ki tej opcji wszystkie negatywne odpowiedzi jakie

//zbuforował serwer b

ę

d

ą

traktowane jako autorytatywne

//tzn. je

ż

eli serwer udzieli innemu informacji

//o tym,

ż

e dany host nie istnieje w domenie, nad któr

ą

nie mamy

//zwierzchnictwa to pytaj

ą

cy uzna nasza odpowied

ź

za autorytatywn

ą

listen-on {any;}; // Opcja, dzi

ę

ki której serwer DNS b

ę

dzie nasłuchiwał

// na wszystkich interfejsach
pid-file "named.pid"; //

Ś

cie

ż

ka do pliku przechowuj

ą

cego numer procesu named,

// wzgl

ę

dem tej ustawionej w dyrektywie directory

};

Jak wynika z poprzednich paragrafów, serwer, aby mógł działa

ć

musi posiada

ć

wskazania do serwerów

głównych. Wskazania te znajduj

ą

si

ę

w pliku named.root lub named.cache, który dost

ę

pny jest z serwera

ftp.rs.internic.net. W obecnej chwili na całym

ś

wiecie jest trzyna

ś

cie serwerów głównych. Teraz musimy

poinformowa

ć

nasz serwer DNS za pomoc

ą

nast

ę

puj

ą

cej dyrektywy o tym, gdzie znajduje si

ę

informacja o

serwerach głównych:

zone "." IN {
type hint;
file "named.root";
};

Opcja file jest lokacja pliku wzgl

ę

dem

ś

cie

ż

ki ustawionej w directory. Podobnie musimy doda

ć

pliki dla p

ę

tli

zwrotnej, której ka

ż

dy host u

ż

ywa do komunikacji z samym sob

ą

. Serwer mógłby działa

ć

poprawnie i bez

konfiguracji p

ę

tli zwrotnej, ale je

ś

li główny serwer nazw nie byłby skonfigurowany do odwzorowywania tego

adresu, to jego wyszukiwanie mogłoby zako

ń

czy

ć

si

ę

niepowodzeniem, najlepiej jest zapewni

ć

to

odwzorowywanie samemu, co uczynimy za pomoc

ą

znanej ju

ż

dyrektywy.

//odwzorowanie normalne
zone "localhost" IN {
type master;
file "db.localhost";
};

//odwzorowanie odwrotne
zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
};

Zawarto

ść

plików db.localhost oraz db.127.0.0 zostanie pokazana w rozdziale dotycz

ą

cym tworzenia stref,

aby nie wprowadza

ć

zamieszania. Do tego momentu zawarto

ść

pliku named.conf wspomnianych w

poprzednich rozdziałach konfiguracji serwera DNS jest wspólna. Nale

ż

y doda

ć

,

ż

e tak skonfigurowany

serwer DNS jest ju

ż

w pełni działaj

ą

cym serwerem pami

ę

ci podr

ę

cznej.

My jednak nie chcemy, aby nasz serwer DNS spełniał tylko tak

ą

rol

ę

. Mamy przecie

ż

domen

ę

, któr

ą

chcemy

zarz

ą

dza

ć

. Dodajmy wi

ę

c wpisy informuj

ą

ce nad jak

ą

domen

ą

mamy zwierzchno

ść

.

Je

ż

eli konfigurujemy podstawowy serwer DNS

//odwzorowanie normalne
zone "zoom.pol" IN {
type master;
file "db.zoom.pol";
};

//odwzorowanie odwrotne
zone "0.168.192.in-addr.arpa" IN {
type master;
file "db.192.168.0";
};

Je

ż

eli konfigurujemy zapasowy serwer DNS

//odwzorowanie normalne
zone "zoom.pol" IN {
type slave;
masters { 192.168.0.1; };
file "bak.zoom.pol";
};

//odwzorowanie odwrotne
zone "0.168.192.in-addr.arpa" IN {
type slave;

masters { 192.168.0.1; };
file "bak.0.168.192";

};

Kilka słów komentarza - opcja masters to lista serwerów podstawowych, od których mo

ż

na pobra

ć

informacje

o strefie; opcja type informuje o rodzaju serwera nazw (podstawowy lub zapasowy); opcja file (dla master) to

ś

cie

ż

ka do pliku, w którym zawarte s

ą

informacje o domenie; opcja file (dla slave) pokazuje

ś

cie

ż

k

ę

do pliku,

w którym serwer zapasowy zapisze

ś

ci

ą

gni

ę

te informacje. Serwer zapasowy podczas pracy przechowuje te

informacje w pami

ę

ci. Opcja ta nie jest niezb

ę

dna, lecz zalecam jej stosowanie. Dlaczego? Oto prosty

przykład: przypu

ść

my nasz serwer zapasowy działa, pobrał ju

ż

dane o jakiej

ś

strefie i zapisał je do pliku.

Nagle przestaje działa

ć

serwer podstawowy tej strefy, a my musimy zrestartowa

ć

nasz serwer zapasowy.

Jak wiadomo, przy starcie serwery zapasowe ł

ą

cz

ą

si

ę

z podstawowymi by pobra

ć

dane, ale w tym

przypadku byłoby to niemo

ż

liwe, bo serwer podstawowy nie działa. My nie mamy si

ę

czym martwi

ć

- w tej

sytuacji nasz serwer zapasowy przeczyta dane z pliku, b

ę

dzie próbował si

ę

dalej ł

ą

czy

ć

z serwerem

głównym i dalej b

ę

dzie w pełni spełniał rol

ę

serwera zapasowego. Gdyby

ś

my nie posiadali tego pliku, serwer

zapasowy nie miałby

ź

ródła danych, a co za tym idzie, nie odpowiadałby na zapytania dotycz

ą

ce tej

background image

Strona 4

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

domeny. Prosz

ę

sobie wyobrazi

ć

, jakie to ma skutki je

ż

eli posiadamy tylko jeden serwer podstawowy i jeden

zapasowy.

I to w zasadzie koniec podstawowej konfiguracji pliku named.conf. O kolejnych opcjach zwi

ą

zanych z

rejestracj

ą

zdarze

ń

, bezpiecze

ń

stwem i narz

ę

dziami usprawniaj

ą

cymi prace z serwerem DNS dowiesz si

ę

w

nast

ę

pnych rozdziałach. Teraz pora by w ko

ń

cu pozna

ć

budow

ę

plików stref, tych plików, które

umieszczałe

ś

w dyrektywie zone w opcji file dla Twojej domeny...

Rekord SOA (Start Of Authorihy)

...nauk

ę

t

ę

rozpoczniemy od rekordu SOA, który znajduje si

ę

w ka

ż

dym pliku strefy. Komentarze w pliku

strefy poprzedza si

ę

znakiem

ś

rednika.

Posta

ć

rekordu SOA

domain.pl. IN SOA dns1.domain.pl. hostmaster.domain.pl. (

2002081401 ;SERIAL
3h ;REFRESH
1h ;RETRY
1w ;EXPIRE
1h ) ;MINIMUM

A teraz czas na wyja

ś

nienie wszystkich warto

ś

ci w tym rekordzie.

domain.pl. - nazwa domeny, dla której jeste

ś

my serwerem

IN - klasa rekordu (podana warto

ść

dla sieci TCP/IP)

SOA - typ rekordu

dns1.domain.pl. - nazwa podstawowego serwera DNS dla naszej domeny

hostmaster.domain.pl. - adres kontaktowy email do osoby odpowiedzialnej za stref

ę

(pierwsza kropk

ę

nale

ż

y traktowa

ć

jako znak @ (at))

SERIAL - warto

ść

dla zapasowego serwera DNS. Przy ka

ż

dej zmianie w strefie w serwerze podstawowym

nale

ż

y zwi

ę

ksza

ć

t

ę

warto

ść

, gdy

ż

sprawdzaj

ą

c aktualno

ść

swoich danych serwer podstawowy porównuje

numer, którym obecnie dysponuje z numerem, który wła

ś

nie pobrał. W momencie, gdy pobrany numer jest

wi

ę

kszy zostaje rozpocz

ę

ty transfer całej strefy. Wg mnie najlepszy format numeru seryjnego to taki, jaki

podano w przykładzie YYYYMMDDNN, gdzie YYYY - rok, MM - miesi

ą

c, DD - dzie

ń

, NN - numer modyfikacji

danego dnia.

REFRESH - informacja dla serwera zapasowego co jaki czas ma sprawdza

ć

aktualno

ść

swoich danych

strefowych

RETRY - je

ż

eli nie udało si

ę

poł

ą

czy

ć

z serwerem podstawowym po upływie czasu od

ś

wie

ż

ania (np. awaria

ł

ą

cza w sieci, w której pracuje serwer podstawowy), to w tym polu znajduje si

ę

informacja dla serwera

zapasowego co ile ma ponawia

ć

prób

ę

nawi

ą

zania poł

ą

czenia

EXPIRE - czas, po jakim serwer zapasowy uzna dane w strefie za nie aktualne, je

ż

eli nie zdoła si

ę

poł

ą

czy

ć

z serwerem podstawowym po okresie czasu zdefiniowanym w polu RETRY

MINIMUM - jest to czas, przez jaki serwery b

ę

d

ą

przechowywały wszelkie negatywne odpowiedzi

Uwaga: Nale

ż

y pami

ę

ta

ć

, aby wszystkie nazwy domenowe w rekordzie SOA zako

ń

czy

ć

kropk

ą

.

Uwaga: Wszystkie warto

ś

ci ttl oraz czasy w poszczególnych polach rekordu SOA domy

ś

lnie s

ą

podawane w

sekundach. Aby upro

ś

ci

ć

zapis dost

ę

pne s

ą

nast

ę

puj

ą

ce skróty:

h - godzina
d - dzie

ń

w - tydzie

ń

Plik strefy odwzorowywania normalnego

Do ka

ż

dego pliku strefy musi zosta

ć

ustawiony jako pierwszy domy

ś

lny ttl, nast

ę

pnie dodaje si

ę

rekord SOA

opisany powy

ż

ej. Po nich musz

ą

zosta

ć

wymienione serwery DNS dla danej domeny. Kolejna czynno

ść

to

uzupełnienie pliku strefy o konkretne rekordy zasobów (resource records) dla hostów w naszej domenie.

Ogólna posta

ć

rekordu zasobów: nazwa_domenowa [ttl] klasa typ_rekordu dane_rekordu

Pole klasa powinno zawiera

ć

dla sieci TCP/IP warto

ść

IN, pole ttl oznacza czas wa

ż

no

ś

ci informacji

(domy

ś

lnie w sekundach); je

ś

li je pomini

ę

to zostanie wykorzystana warto

ść

$ttl z pliku strefy.

Na tym etapie nale

ż

y wyja

ś

ni

ć

znaczenie poszczególnych najcz

ęś

ciej u

ż

ywanych typów rekordów. S

ą

to:

A

Ten rekord wi

ąż

e adres IP z nazwa hosta. Mo

ż

e istnie

ć

tylko jeden rekord dla danego hosta,

poniewa

ż

nazwa ta jest uznawana za kanoniczn

ą

(oficjaln

ą

). Reszta nazw tego hosta musi zosta

ć

zdefiniowana jako alias za pomoc

ą

rekordu CNAME. Pole dane_rekordu powinno zawiera

ć

adres IP w

notacji kropkowej.

CNAME

Ten rekord odwzorowuje alias na kanoniczn

ą

nazw

ę

hosta. Dzi

ę

ki temu rekordowi mo

ż

liwe jest

utworzenie wielu nazw tego samego hosta. Pole dane_rekordu powinno zawiera

ć

kanoniczna nazw

ę

hosta.

NS

Rekordy te okre

ś

laj

ą

wszystkie serwery (master i slave) dla danej domeny. Pole dane_rekordu

powinno zawiera

ć

kanoniczn

ą

nazw

ę

hosta, który jest serwerem strefy.

Przykładowy plik (fragment strefy mojej sieci lokalnej)

$ttl 3h ; domy

ś

lny ttl dla strefy

;pocz

ą

tek rekordu SOA

zoom.pol. IN SOA holly.zoom.pol. out.holly.zoom.pol. (
2002081001
3H
15M
1W
1D ); koniec rekordu SOA

background image

Strona 5

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

;Serwery nazw dla domeny zoom.pol
zoom.pol. IN NS holly.zoom.pol.

;Rekordy zasobów strefy zoom.pol
holly.zoom.pol. IN A 192.168.0.1
antifa.zoom.pol. IN A 192.168.0.3
apacz.zoom.pol. IN A 192.168.0.6

;Definicje aliasów
mail.zoom.pol. IN CNAME holly.zoom.pol.
dns.zoom.pol. IN CNAME holly.zoom.pol.

A teraz obiecany plik dla p

ę

tli zwrotnej.

localhost. IN SOA localhost. hostmaster.localhost. (
42
3H
15M
1W
1D )

localhost. IN NS localhost.

localhost. IN A 127.0.0.1

Plik strefy odwzorowywania odwrotnego

Podobnie jak dla strefy odwzorowywania normalnego pierwszy wpis stanowi domy

ś

lny ttl, potem rekord

SOA, nast

ę

pnie rekordy zasobów dotycz

ą

ce serwerów strefy odwzorowywania odwrotnego i na ko

ń

cu

rekordy zasobów dla konkretnej strefy. Jednak

ż

e w pliku tym wykorzystuje si

ę

do tego celu jeden rekord.

PTR

Rekord ten słu

ż

y do powi

ą

zania nazw w domenie in-addr.arpa z nazwami hostów (jak wspomniano w

poprzednich rozdziałach nazwy w tej domenie to odpowiednie oktety adresu IP w notacji kropkowej).
Pole dane_rekordu musi zawiera

ć

kanoniczn

ą

nazw

ę

hosta.

Przykładowy plik (fragment strefy mojej sieci lokalnej)

$ttl 3h ;domy

ś

lny ttl dla strefy

;rekord SOA
0.168.192.in-addr.arpa. IN SOA holly.zoom.pol. out.holly.zoom.pol. (
02030202
3h
1h
1w
1h );koniec rekordu SOA

;Serwer dla strefy 0.168.192.in-addr.arpa
0.168.192.in-addr.arpa. IN NS holly.zoom.pol.

;Rekordy zasobów
1.0.168.192.in-addr.arpa. IN PTR holly.zoom.pol.
3.0.168.192.in-addr.arpa. IN PTR antifa.zoom.pol.
6.0.168.192.in-addr.arpa. IN PTR apacz.zoom.pol.

Odwzorowanie odwrotne p

ę

tli zwrotnej

0.0.127.in-addr.arpa. 1D IN SOA localhost. hostmaster.localhost. (
42
3H
15M
1W

1D )

0.0.127.in-addr.arpa. IN NS localhost.

1.0.0.127.in-addr.arpa. IN PTR localhost.

Powiniene

ś

umie

ć

ju

ż

skonfigurowa

ć

serwer DNS, pora by

ś

dowiedział si

ę

, w jaki sposób DNS radzi sobie z

trasowaniem poczty elektronicznej.

DNS i MAIL
- Rekord MX, trasowanie poczty -

Kiedy nie było usługi DNS i serwery pocztowe dysponowały tylko plikiem HOST.TXT (lub /etc/hosts) mogły
tylko dostarczy

ć

poczt

ę

pod znany adres IP. Je

ś

li si

ę

to nie udawało, przewa

ż

nie odwlekały wysłanie lub te

ż

odsyłały wiadomo

ść

do nadawcy. Mechanizm DNS pozwala na definiowanie zapasowych hostów

odbieraj

ą

cych poczt

ę

, a ponadto umo

ż

liwia dodanie do pliku strefy nazw domenowych, które s

ą

tylko

miejscem przeznaczenia poczty i nie reprezentuje

ż

adnego hosta. Do konfiguracji trasowania poczty

wykorzystuje si

ę

rekord MX. Przykładowy rekord zasobów dla domeny zoom.pol wygl

ą

da nast

ę

puj

ą

co.

zoom.pol IN MX 1 holly.zoom.pol.

Nale

ż

y go przeczyta

ć

nast

ę

puj

ą

co: host holly.zoom.pol jest wymiennikiem poczty dla domeny zoom.pol.

Liczba 1 jest to parametr rekordu MX nazywany warto

ś

ci

ą

preferencji i jest on liczb

ą

całkowit

ą

z przedziału

0-65535. Parametr ten odgrywa olbrzymia rol

ę

przy trasowaniu poczty. Zauwa

ż

,

ż

e nazwa zoom.pol jest

tylko miejscem przeznaczenia poczty, nie reprezentuje ona

ż

adnego hosta (przypomnij sobie stref

ę

dla tej

domeny). Przykład:

Nasze wymienniki poczty

zoltan.eu.org. IN MX 10 zoltan.eu.org.
zoltan.eu.org. IN MX 15 antifa.zoltan.eu.org.
zoltan.eu.org. IN MX 20 linux.slupsk.net.

Hostem, do którego ma trafia

ć

docelowo poczta jest zoltan.eu.org, poniewa

ż

ma najmniejsz

ą

warto

ść

preferencji. Pozostałe dwa hosty s

ą

zapasowymi wymiennikami poczty. Oto jak to działa. Kiedy serwer

background image

Strona 6

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

poczty wysyła maila do domeny zoltan.eu.orgi, a host zoltan.eu.org nie działa wysyła poczt

ę

do jednego z

wymienników o najmniejszej mo

ż

liwej warto

ś

ci preferencji. W tym przypadku do antifa.zoltan.eu.org (gdyby i

ten host nie działał, poczta trafiłaby do hosta linux.slupsk.net). Aby zapobiec zap

ę

tlaniu si

ę

tego

mechanizmu, tzn. aby przypadkiem host antifa nie słał poczty do hosta linux.slupsk.net, lub co jest jeszcze
bardziej nonsensowne, do samego siebie odrzuca wszystkie rekordy MX o warto

ś

ci preferencji mniejszej lub

równej swojej. W ten sposób host antifa wie,

ż

e poczt

ę

mo

ż

e przekaza

ć

ju

ż

tylko do hosta zoltan.eu.org, co

uczyni, gdy tylko ten b

ę

dzie znowu dost

ę

pny. Oczywi

ś

cie serwer poczty na ho

ś

cie zoltan.eu.org musi by

ć

skonfigurowany tak,

ż

eby wiedział,

ż

e poczta, któr

ą

otrzymuje jest przeznaczona dla niego, a serwery poczty

na hostach antifa.zoltan.eu.org oraz linux.slupsk.net musz

ą

by

ć

skonfigurowane jako przeka

ź

niki.

Uwaga: nazwa hosta, który jest wymiennikiem poczty powinna by

ć

jego nazw

ą

kanoniczn

ą

.

Tworzenie i delegacja poddomen
- Delegacje stref odwzorowywania normalnego i odwrotnego -

W rozdziale tym zajmiemy si

ę

delegowaniem poddomen. O ile je

ś

li chodzi o stref

ę

odwzorowywania

normalnego sprawa jest prosta, to przy delegacji strefy in-addr.arpa pojawia si

ę

kilka kłopotów, a je

ś

li tak, to

i kilka sposobów ich rozwi

ą

zania.

Delegacje poddomen

Jeste

ś

my posiadaczami domeny linux.pl. Powiedzmy,

ż

e jaka

ś

organizacja poprosiła nas o to, aby

ś

my

oddelegowali jej domen

ę

firma.linux.pl (oczywi

ś

cie za darmo nic nie ma :>). Firma ta podała nam adresy IP i/

lub nazwy domenowe ich serwerów DNS, do których mamy domen

ę

oddelegowa

ć

. Oto jakie rekordy nale

ż

y

doda

ć

do strefy linux.pl, aby to zrobi

ć

:

firma.linux.pl. IN NS dns.organizacja.pl.
firma.linux.pl. IN NS dns2.organizacja.pl.

Je

ż

eli jednak organizacja chce, aby serwery DNS posiadały nazwy w poddomenie, jak

ą

im delegujemy,

wówczas nale

ż

y doda

ć

nast

ę

puj

ą

ce rekordy:

firma.linux.pl. IN NS dns.firma.linux.pl.
firma.linux.pl. IN NS dns2.firma.linux.pl.
dns.firma.linux.pl. IN A 212.160.112.227 ;adresy IP serwerów
dns2.firma.linux.pl. IN A 213.25.234.82 ;nazw organizacji

Dwa rekordy A nosz

ą

nazw

ę

rekordów spajaj

ą

cych (glue records). Dlaczego s

ą

konieczne? Otó

ż

odpowied

ź

jest nast

ę

puj

ą

ca: serwer szukaj

ą

cy nazwy w domenie firma.linux.pl najpierw odpytałby nasz serwer o

rekordy NS dla tej strefy. Nasz serwer oczywi

ś

cie udzieliłby odpowiedzi podaj

ą

c dns.firma.linux.pl oraz

dns2.firma.linux.pl. No tak, tylko

ż

e nazwy te znajduj

ą

si

ę

w strefie, o któr

ą

zdalny serwer pytał, co oznacza,

ż

e nie ma mo

ż

liwo

ś

ci poznania ich adresów IP - bł

ę

dne koło. Gdyby nie rekordy klej

ą

ce, tak wła

ś

nie by było,

dzi

ę

ki nim nasz serwer DNS zna adresy IP serwerów, do których oddelegowano poddomen

ę

i to wła

ś

nie je

zwraca pytaj

ą

cemu.

Delegacje strefy in-addr.arpa

Je

ż

eli oddelegowujemy stref

ę

in-addr.arpa dziel

ą

c j

ą

na granicy oktetu, nie ma problemu, post

ę

pujemy

identycznie jak przy oddelegowywaniu strefy odwzorowywania normalnego. Przykładowo delegujemy z sieci
klasy B podsie

ć

klasy C (stref

ą

macierzyst

ą

niech dla przykładu b

ę

dzie 2.15.in-addr.arpa):

1.2.15.in-addr.arpa. IN NS dns.linux.pl.
1.2.15.in-addr.arpa. IN NS dns2.linux.pl.

Problem pojawiłby si

ę

gdyby

ś

my z tej przykładowo stworzonej poddomeny chcieli wydelegowa

ć

siec

15.2.1.0/25 czyli siec rozci

ą

gaj

ą

c

ą

si

ę

od adresu 15.2.1.0 do 15.2.1.127. Jest kilka rozwi

ą

za

ń

tego

problemu, lecz my omówimy tutaj to zdefiniowane przez dokumentacje RFC (RFC2317). Polega ono na
utworzeniu w pliku strefy 15.2.1 odpowiedniej liczby rekordów CNAME (w tym przypadku 128) wskazuj

ą

cych

na nazwy w nowych poddomenach, które s

ą

oddelegowywane do odpowiednich serwerów nazw. Oto

przykład:

0.1.2.15.in-addr.arpa. IN CNAME 0.0-127.1.2.15.in-addr.arpa.
1.1.2.15.in-addr.arpa. IN CNAME 1.0-127.1.2.15.in-addr.arpa.
.
.
.
127.1.2.15.in-addr.arpa. IN CNAME 127.0-127.1.2.15.in-addr.arpa.
;oddelegowujemy now

ą

domen

ę

0-127 do odpowiedzialnych za ni

ą

serwerów

0-127.1.2.15.in-addr.arpa. IN NS dns.sub.linux.pl.
0-127.1.2.15.in-addr.arpa. IN NS dns2.sub.linux.pl.

Na szcz

ęś

cie nie trzeba samemu wpisywa

ć

tych wszystkich aliasów. Ułatwia nam to instrukcja kontrolna $

GENERATE. Oto jej zastosowanie dla naszej delegacji:

$GENERATE 0-127 $.1.2.15.in-addr.arpa. IN CNAME $.0-127.1.2.15.in-addr.arpa.
0-127.1.2.15.in-addr.arpa. IN NS dns.sub.linux.pl.
0-127.1.2.15.in-addr.arpa. IN NS dns2.sub.linux.pl.

Trzy instrukcje zamiast stu trzydziestu! My

ś

l

ę

,

ż

e jest to oszcz

ę

dno

ść

pracy. Działanie tej instrukcji jest tak

oczywiste,

ż

e nie ma sensu go opisywa

ć

. Ten, do którego delegujemy t

ę

stref

ę

powinien umie

ś

ci

ć

odpowiednie instrukcje zone w pliku named.conf swoich serwerów DNS.

Jak to działa? Kiedy wysłane zostaje zapytanie o adres 15.2.1.12 trafia ono do naszego serwera, który
rozpoznaje rekord 12.1.2.15.in-addr.arpa jako alias dla nazwy 12.0-127.1.2.15.in-addr.arpa i odsyła
pytaj

ą

cego do serwerów nazw strefy 0-127.1.2.15.in-addr.arpa. Serwery nazw tej strefy udzielaj

ą

pytaj

ą

cemu

ostatecznej odpowiedzi w postaci nazwy domenowej przypisanej danemu adresowi (oczywi

ś

cie je

ś

li takowa

istnieje).

Co jednak gdyby

ś

my naszej przykładowej klasy B nie chcieli podzieli

ć

wzdłu

ż

oktetu? Jak wtedy

wygl

ą

dałaby delegacja? Oto przykład: przyjmijmy,

ż

e nasza sie

ć

podzielimy wg maski 255.255.252.0 co

daje nam 64 sieci po 1024 hosty ka

ż

da (jedna siec jest wielko

ś

ci czterech sieci klasy C). Chcemy jedn

ą

z

tych podsieci wydelegowa

ć

, powiedzmy,

ż

e b

ę

dzie to podsie

ć

rozci

ą

gaj

ą

c

ą

si

ę

od adresu 15.2.4.0 do

adresu 15.2.7.255. Aby to uczyni

ć

dodajemy nast

ę

puj

ą

ce rekordy do strefy 2.15.in-addr.arpa:

4.2.15.in-addr.arpa. IN NS dns.linux.pl.
4.2.15.in-addr.arpa. IN NS dns2.linux.pl.
.
.
.

background image

Strona 7

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

7.2.15.in-addr.arpa. IN NS dns.linux.pl.
7.2.15.in-addr.arpa. IN NS dns2.linux.pl.

Korzystaj

ą

c instrukcji $GENERATE

$GENERATE 4-7 $.2.15.in-addr.arpa. IN NS dns.linux.pl.
$GENERATE 4-7 $.2.15.in-addr.arpa. IN NS dns2.linux.pl.

Serwery, do których wydelegowali

ś

my t

ą

stref

ę

musz

ą

posiada

ć

po jednej instrukcji zone w pliku

named.conf dla ka

ż

dego rekordu NS (czyli w tym wypadku cztery).

Narz

ę

dzia- nslookup, dig, host, rndc -

W rozdziale tym zostan

ą

opisane czynno

ś

ci zwi

ą

zane z diagnozowaniem oraz testowaniem serwera nazw za

pomoc

ą

ż

nych narz

ę

dzi, zostanie omówiony tak

ż

e program rndc, ułatwiaj

ą

cy i usprawniaj

ą

cy prace z

demonem named.

nslookup

Nslookup jest bardzo rozpowszechnionym programem, lecz nie zajmiemy si

ę

nim zbyt wiele, poniewa

ż

posiada wiele wad i został oficjalnie uznany za prze

ż

ytek w dystrybucji BIND 9. Program ten mo

ż

e

przyjmowa

ć

argumenty w wierszu polece

ń

lub pracowa

ć

w trybie interaktywnym. Wiersz polece

ń

u

ż

ywany

jest przewa

ż

nie gdy mamy zamiar zada

ć

jakiemu

ś

serwerowi pojedyncze zapytanie, tryb interaktywny

najlepiej wykorzystywa

ć

kiedy b

ę

dziemy musieli zadawa

ć

zapytania do kilku serwerów. Nslookup naraz

pracuje z jednym serwerem DNS. Oto przykładowe zapytania w wierszu polece

ń

.

nslookup ne.eu.org

wysyła zapytanie o adres IP hosta ns.eu.org

nslookup zoltan.eu.org ns.eu.org

wysyła zapytanie o adres IP hosta zoltan.eu.org do serwera nazw ns.eu.org

nslookup -query=mx linux.net

wysyła zapytanie o rekordy mx w strefie linux.net

nslookup -query=cname slupsk.net

wysyła zapytanie o rekordy mx w strefie linux.net

nslookup -query=mx linux.net

wysyła zapytanie o rekordy mx w strefie linux.net

nslookup 213.25.234.34

wysyła zapytanie odwrotne

Tryb interaktywny wł

ą

cza si

ę

wywołuj

ą

c nslookup bez parametrów, komendy wpisujemy po znaku zach

ę

ty

'>'. Aby zmieni

ć

odpytywany serwer u

ż

ywamy dyrektywy:

server [nazwa.domenowa.serwera lub jego IP]

Aby wybra

ć

typ rekordów u

ż

ywamy wyra

ż

enia

set q=typ_rekordu

Aby pozna

ć

nazw

ę

domenow

ą

hosta o danym IP po prostu w wierszu polece

ń

nslookup wpisujemy to IP.

Tak samo post

ę

pujemy, gdy chcemy pozna

ć

adres IP hosta, którego nazw

ę

domenow

ą

znamy.

Przykładowa sesja nslookup:

> set q=mx
> server dns.tpsa.pl
> zoltan.eu.org
Server:

dns.tpsa.pl

Address:

194.204.159.1#53

zoltan.eu.org

mail exchanger = 1 zoltan.eu.org.

> set q=ns
> linux.pl
Server:

192.168.0.1

Address:

192.168.0.1#53

linux.pl nameserver = dns4.linux.pl.
linux.pl nameserver = dns1.linux.pl.
linux.pl nameserver = dns2.linux.pl.
linux.pl nameserver = dns3.linux.pl.
> server localhost
Default server: localhost
Address: 127.0.0.1#53
> set q=a
> dns.tpsa.pl
Server:

localhost

Address:

127.0.0.1#53

Non-authoritative answer:
Name: dns.tpsa.pl
Address: 194.204.159.1
>exit

My

ś

l

ę

,

ż

e nie wymaga to komentarza.

dig

Program dig (Domain Information Groper) nie jest tak popularny jak opisany wy

ż

ej nslookup, nie posiada

trybu interaktywnego, wszystkie jego opcje podawane s

ą

w wierszu polece

ń

. Dig inteligentnie interpretuje

argumenty, tzn. mo

ż

na poda

ć

je w dowolnej kolejno

ś

ci - program b

ę

dzie wiedział,

ż

e 'a', 'mx' czy te

ż

'ns' to

typy rekordów a nie nazwy domenowe. Serwer nazw, który chcemy odpyta

ć

nale

ż

y poprzedzi

ć

znakiem '@'.

Mo

ż

na poda

ć

jego nazwe jako adres IP lub jako nazw

ę

domenow

ą

. Domy

ś

lnie odpytywane s

ą

serwery nazw

z pliku resolv.conf. Ciekaw

ą

cech

ą

tego narz

ę

dzia jest to,

ż

e wyniki odpytywania s

ą

podane taki, jakby

przegl

ą

dało si

ę

plik strefy dla domeny, a dodatkowe komentarze sprawiaj

ą

,

ż

e cało

ść

przyjmuje bardzo

czyteln

ą

form

ę

. Na przykład, oto wynik odpytania o rekordy NS dla domeny wp.pl:

; [CDATA[ <<>> DiG 9.2.1 <<>> ns wp.pl]]
;; global options: printcmd
;; Got answer:
;;[CDATA[ ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40401]]
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3

background image

Strona 8

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

;; QUESTION SECTION:
;wp.pl.

IN

NS

;; ANSWER SECTION:
wp.pl.

86400 IN

NS

ns1.wp.pl.

wp.pl.

86400 IN

NS

ns2.wp.pl.

wp.pl.

86400 IN

NS

dns.task.gda.pl.

;; ADDITIONAL SECTION:
dns.task.gda.pl.

86400 IN

A

153.19.250.100

ns1.wp.pl.

86400 IN

A

212.77.102.200

ns2.wp.pl.

86400 IN

A

153.19.102.182

;; Query time: 387 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Aug 23 03:02:20 2002
;; MSG SIZE rcvd: 134

Pierwszy wiersz to wersja programu oraz powtórzenie zapytania. Skróty nast

ę

puj

ą

ce po słowie flags

oznaczaj

ą

:

qr

wskazuje,

ż

e komunikat jest odpowiedzi

ą

aa

wskazuje,

ż

e odpowied

ź

jest autorytatywna (w tym przypadku nie jest, bo udzielił jej serwer, który nie

jest autorytatywny dla domeny wp.pl)

rd

wskazuje,

ż

e w zapytaniu ustawiony był bit rekurencji

ra

wskazuje,

ż

e odpytany serwer obsługuje rekurencyjne zapytania; gdyby nie obsługiwał flaga ta nie

zostałaby ustawiona, a serwer potraktowałby zapytanie jako iteracyjne

Pozostałe dane w tym wierszu to liczba zapyta

ń

wysłanych, ilo

ść

otrzymanych w odpowiedzi rekordów w

sekcji odpowiedzi (ANSWER), zwierzchno

ś

ci (AUTHORITY) oraz dodatkowej (ADDITIONAL). Jak wida

ć

w

odpowiedzi, otrzymali

ś

my trzy serwery nazw odpowiedzialne za domen

ę

wp.pl, a w sekcji dodatkowej

odpowiadaj

ą

ce im rekordy A. Ostatnie cztery linie informuj

ą

o tym, ile czasu trwało zapytanie, jaki serwer

został odpytany i kiedy, oraz rozmiar (w bajtach) zapytania i odpowiedzi.

Na koniec kilka przykładowych zapyta

ń

:

dig @zoltan.eu.org zoltan.eu.org axfr

przeprowadza transfer strefy zoltan.eu.org od serwera zoltan.eu.org

dig ns wp.pl

odpytuje jeden z serwerów w pliku resolv.conf o rekordy NS domeny wp.pl

dig -x 213.25.234.82 @dns.tpsa.pl

wykonuje zapytanie odwrotne do serwer dns.tpsa.pl

host

Program host posiada podobne mo

ż

liwo

ś

ci jak wspomniani wy

ż

ej jego poprzednicy. Jest to do

ść

proste w

u

ż

yciu narz

ę

dzie, dlatego te

ż

nie b

ę

d

ę

si

ę

zbytnio na jego temat rozpisywał. Na szczególn

ą

uwag

ę

zasługuje w nim opcja umo

ż

liwiaj

ą

ca sprawdzenie poprawno

ś

ci delegacji strefy. Oto przykład:

$ host -t ns zoltan.eu.org ns.eu.org

Using domain server:
Name: ns.eu.org
Address: 137.194.2.218#53
Aliases:

zoltan.eu.org name server ATECOM.SKI.SLUPSK.PL.
zoltan.eu.org name server PB82.SLUPSK.SDI.TPNET.PL.

$ host -t ns zoltan.eu.org atecom.ski.slupsk.pl

Using domain server:
Name: ATECOM.SKI.SLUPSK.PL.
Address: 212.160.112.222#53
Aliases:

zoltan.eu.org name server pb82.slupsk.sdi.tpnet.pl.
zoltan.eu.org name server atecom.ski.slupsk.pl.

$ host -C zoltan.eu.org.

Nameserver atecom.ski.slupsk.pl:
zoltan.eu.org SOA pb82.slupsk.sdi.tpnet.pl. out.holly.linux.slupsk.net.
2002081801 10800 900 604800 86400
Nameserver pb82.slupsk.sdi.tpnet.pl:
zoltan.eu.org SOA pb82.slupsk.sdi.tpnet.pl. out.holly.linux.slupsk.net.
2002081801 10800 900 604800 86400

Najpierw od autorytatywnego serwera nazw strefy zwierzchniej pobrali

ś

my rekordy NS dla interesuj

ą

cej nas

strefy. Prosz

ę

zauwa

ż

y

ć

,

ż

e program host pokazał jakiego serwera u

ż

ył do wykonania zapytania. Nast

ę

pnie

od dowolnego z serwerów tej strefy pobieramy rekordy NS, któr

ą

on przechowuje. Je

ż

eli rekordy s

ą

takie

same, to połowa sukcesu, oznacza to,

ż

e dane w strefie nadrz

ę

dnej i podrz

ę

dnej s

ą

spójne. Je

ś

li liczba

rekordów uzyskana od jednego serwera jest ró

ż

na od tych uzyskanych od drugiego lub gdy rekordy s

ą

ż

ne, to wła

ś

nie zobaczyli

ś

my powód np. takiego komunikatu w logach:

named[11312]:
lame server resolving 'pepe.nsb.pl' (in 'nsb.pl'?): 158.75.61.4#53

Kolejnym krokiem jest wywołanie programu host z parametrem 'C'. Sprawdzi on ka

ż

dy serwer wymieniony

przy rekordzie NS pod k

ą

tem zwierzchno

ś

ci nad badan

ą

stref

ą

. Je

ż

eli serwer jest autorytatywny to program

host zwróci odpowiedni rekord SOA. Liczba zwróconych rekordów SOA musi by

ć

taka sama jak liczba

rekordów NS danej strefy.

Po wi

ę

cej informacji na temat programu host odsyłam do pomocy lub podr

ę

cznika systemowego.

rndc

background image

Strona 9

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

Aby umo

ż

liwi

ć

korzystanie z narz

ę

dzia rndc konieczne jest dodanie do pliku named.conf nast

ę

puj

ą

cych linii.

controls {
inet * allow {any;} keys { "rndc-key"; };
};

key "rndc-key" {
algorithm hmac-md5;
secret "xV20v+w5rYs="
};

Obja

ś

nienie opcji:

inet

serwer nasłuchuje na komunikaty kontrolne domy

ś

lnie na porcie 953

secret

przechowuje zakodowane hasło. Aby wygenerowa

ć

to hasło nale

ż

y u

ż

y

ć

polecenia dnssec-keygen

np.:

dnssec-keygen -a hmac-md5 -b 64 -n host jakies_haslo

Wynikiem tego polecenia b

ę

d

ą

dwa pliki, w ka

ż

dym z nich b

ę

dzie znajdowało si

ę

zakodowane hasło.

Po wi

ę

cej informacji o tym programie odsyłam do podr

ę

cznika systemowego.

allow

jest to lista hostów, od których serwer mo

ż

e przyjmowa

ć

komunikaty kontrolne

algorithm

algorytm kodowania hasła, hmac-md5 jest jedyny obecnie obsługiwanym algorytmem

keys

lista kluczy rozpoznawana przez serwer nazw, ka

ż

dy z kluczy wymieniony na tej li

ś

cie musi zosta

ć

zdefiniowany jak przykładowy klucz rndc-key za pomoc

ą

dyrektywy key.

oraz stworzenie pliku /etc/rndc.conf o zawarto

ś

ci:

options {
default-server localhost;
default-key "rndc-key";
};

key "rndc-key" {
algorithm hmac-md5;
secret "xV20v+w5rYs=";
};

Wyja

ś

nienie opcji:

default-server

do jakiego serwera domy

ś

lnie wysła

ć

komunikaty kontrolne w przypadku nie zdefiniowania serwera w

wierszu polece

ń

default-key

jakiej nazwy klucza u

ż

y

ć

domy

ś

lnie je

ż

eli nie została zdefiniowana w wierszu polece

ń

algorithm

patrz opis dla pliku named.conf

secret

przechowuje zakodowane hasło, wpis musi by

ć

identyczny jak ten w pliku named.conf serwera, do

którego wysyłamy komunikaty kontrolne

Je

ż

eli zarz

ą

dzamy wi

ę

ksz

ą

ilo

ś

ci

ą

serwerów, mo

ż

emy w pliku rndc.conf u

ż

y

ć

takiej instrukcji dla ka

ż

dego

serwera.

server zoltan.eu.org {
key "zoltan-key";
};

Oczywi

ś

cie, musimy zdefiniowa

ć

ten klucz w pliku rndc.conf hosta, z którego b

ę

dziemy wysyła

ć

komunikaty,

a tak

ż

e w pliku named.conf serwera do którego te komunikaty b

ę

dziemy wysyła

ć

(i doda

ć

go do listy kluczy

obsługiwanych przez serwer).

Uwaga: Nale

ż

y zadba

ć

, aby pliki named.conf oraz rndc.conf były dost

ę

pne tylko i wył

ą

cznie dla obsługi

serwera nazw.

Wa

ż

niejsze funkcje programu rndc:

reload

ponownie wczytuje pliki stref oraz plik named.conf

reconfig

przeładowuje plik named.conf oraz tylko nowe strefy

dumpdb

zrzuca do katalogu domowego serwera zawarto

ść

cache

flush

czy

ś

ci cache (pami

ęć

podr

ę

czn

ą

)

Przykładowe wywołania:

rndc reload

wykona reload dla domy

ś

lnego serwera u

ż

ywaj

ą

c domy

ś

lnego klucza

rndc -s zoltan.eu.org reload

wykona reload serwera zoltan.eu.org u

ż

ywaj

ą

c klucza z dyrektywy server, je

ż

eli taka istnieje dla tego

serwera, je

ż

eli nie - u

ż

yje klucza domy

ś

lnego

rndc -s ns.eu.org -y eu-key reload

wykona reload serwera ns.eu.org u

ż

ywaj

ą

c klucza o nazwie eu-key

Rejestracja zdarze

ń

- Opis sposobów rejestracji zdarze

ń

w pakiecie BIND -

BIND posiada bardzo rozbudowany mechanizm rejestracji zdarze

ń

, który mo

ż

na skonfigurowa

ć

na wiele

sposobów dostosowuj

ą

c go tym samym nawet do najbardziej wymy

ś

lnych potrzeb administratora. Jednak

odpowiednia konfiguracja rejestrowania wymaga od administratora przede wszystkim eksperymentów.
Ogranicz

ę

si

ę

w tym artykule do podania pewnych przykładów, które sam sprawdziłem i informacji jakie

background image

Strona 10

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

rejestrowałem, gdy

ż

uznałem je za istotne. Oczywi

ś

cie, potrzeby s

ą

ż

ne w zale

ż

no

ś

ci od osoby, dlatego

rozdział ten prosz

ę

traktowa

ć

jako mał

ą

prezentacj

ę

mo

ż

liwo

ś

ci jakie oferuje pakiet BIND w tej dziedzinie.

Istnieje wiele kategorii komunikatów, oto niektóre z nich (* oznacza,

ż

e kategoria ta istnieje tylko w BIND 9,

** w BIND 8):

default

je

ś

li nie okre

ś

lisz kanałów dla innych kategorii, to serwer wysyła wszystkie komunikaty ich dotycz

ą

ce

do kanału przypisanego kategorii default, (BIND 8 i 9). Dla BIND 8 trafiaj

ą

tu jeszcze wszystkie inne

komunikaty, które nie zostały sklasyfikowane (tzn. nie posiadaj

ą

własnej kategorii)

general*

Jest to specjalnie wydzielona kategoria obejmuj

ą

ca wszystkie niesklasyfikowane komunikaty serwera

(tzn. te, które nie maja własnej kategorii)

eventlib**

informacje o zdarzeniach systemowych

panic**

informacje o problemach powoduj

ą

cych zamkniecie serwera

packet**

informacje o dekodowaniu odebranych i wysłanych pakietów

lame-servers

informacje o bł

ę

dnych delegacjach

update

informacje o dynamicznych uaktualnieniach

statistics**

raport o działaniu serwera

security

informacje dotycz

ą

ce zezwole

ń

lub ich braku na dane operacje

queries

informacje o otrzymywanych przez serwer zapytaniach

xfer-in

informacje o transferach stref do lokalnego serwera

xfer-out

informacje o transferach stref z lokalnego serwera

Pozostałe nie opisane kategorie to: cname**, client*, config, database*, db**, dnssec*, insist**, load**,
maintenance**, ncache**, network*, notify, os**, parser**, resolver*, response-checks**.

Ka

ż

dy komunikat posiada typ wa

ż

no

ś

ci, jest ich (typów) w sumie siedem, Oto one od najwa

ż

niejszego

poczynaj

ą

c, a na najmniej wa

ż

nym ko

ń

cz

ą

c: critical, error, warning, notice, info, debug [level], dynamic.

Je

ż

eli pominiemy parametr level przy typie debug, zostanie domy

ś

lnie u

ż

yta warto

ść

1. Aby wł

ą

czy

ć

tryb

diagnostyczny nale

ż

y u

ż

y

ć

narz

ę

dzia rndc (rndc trace). Typ wa

ż

no

ś

ci debug ustala na sztywno

szczegółowo

ść

komunikatów diagnostycznych, tzn. je

ż

eli ustawili

ś

my go np. na 2, to, niezale

ż

nie ile razy

wy

ś

lemy do serwera polecenie

ś

ledzenia, szczegółowo

ść

zawsze pozostanie 2. Inaczej jest je

ś

li wybierzemy

typ dynamic - wtedy szczegółowo

ść

b

ę

dzie zale

ż

ała od tego, ile wy

ś

lemy polece

ń ś

ledzenia. Tryb

diagnostyczny wył

ą

cza si

ę

poleceniem rndc notrace.

Ka

ż

da kategoria musi trafi

ć

do jakiego

ś

kanału. Kanał okre

ś

la gdzie konkretnie maja trafi

ć

komunikaty danej

kategorii i wa

ż

no

ś

ci. Mo

ż

e to by

ć

plik, demon syslog, czy te

ż

kanał null (mam nadziej

ę

,

ż

e nie musz

ę

wyja

ś

nia

ć

losu informacji trafiaj

ą

cych do tego kanału). BIND domy

ś

lnie definiuje cztery rodzaje kanałów,

których nie mo

ż

na usun

ąć

lub zmieni

ć

, a s

ą

to: default_syslog, default_debug, default_stderr, null.

Pierwszy z nich wysyła informacje do demona syslog, drugi zapisuje je w pliku named.run, trzeci wysyła na
standardowe wyj

ś

cie bł

ę

dów nameda, czwarty nie wymaga komentarza.

Tak samo jak kanały, domy

ś

lnie zdefiniowane s

ą

kategorie wiadomo

ś

ci, które maj

ą

do nich trafi

ć

i tak w

BIND 9:

category default { default_syslog; default_debug; };

BIND 8

category default { default_syslog; default debug; };
category panic { default_syslog; default_stderr; };
category packet { default_debug; };
category eventlib { default_debug; };

Wiemy ju

ż

jak definiowa

ć

inne kategorie i ustala

ć

dla nich kanały na podstawie przytoczonych domy

ś

lnych

ustawie

ń

BINDa, pora, aby nauczy

ć

si

ę

definiowa

ć

wła

ś

nie kanały. Wa

ż

na uwaga mo

ż

emy przedefiniowa

ć

,

to do jakich kanałów trafiaj

ą

domy

ś

lne kategorie, zostanie to pokazane w przykładzie ni

ż

ej.

channel zapytania {
file "query.log" versions 3 size 20k;
severity dynamic;
print-time yes;
print-severity yes;
print-category yes;
};

channel zap_syslog {
syslog deamon;
severity info;
};

Zdefiniowali

ś

my dwa nowe kanały. Pierwszy z nich to plik o nazwie query.log, który maksymalnie mo

ż

e

osi

ą

gn

ąć

rozmiar 20 kB (po osi

ą

gni

ę

ciu tego rozmiaru BIND zaprzestanie uzupełnia

ć

plik). Ustalili

ś

my,

ż

e

maksymalnie mog

ą

istnie

ć

trzy dodatkowe kopie tego pliku powstaj

ą

ce przy restartowaniu serwera.

Dodatkowo okre

ś

lili

ś

my,

ż

e do ka

ż

dego zapisaneego komunikatu ma zosta

ć

dodany tzw. timestamp oraz

informacja jakiej kategorii jest to komunikat oraz poziom jego wa

ż

no

ś

ci. Oczywi

ś

cie, w pliku query.log nie

zobaczymy niczego, dopóki nie wł

ą

czymy trybu diagnostycznego, co zostało opisane wy

ż

ej przy omawianiu

tego

ż

trybu. Drugi kanał b

ę

dzie wysyłał wszystkie komunikaty do demona syslog (poziom wa

ż

no

ś

ci w tym

wypadku mo

ż

e by

ć

maksymalnie info z tego prostego powodu,

ż

e nie mo

ż

na wysyła

ć

komunikatów

diagnostycznych serwera DNS do demona syslog).

Wszystkie zdefiniowane kanały oraz to, do jakich kanałów maj

ą

trafia

ć

informacje z danych kategorii

umieszczamy wewn

ą

trz pliku named.conf w dyrektywie logging.

logging {
channel zapytania {
file "query.log" versions 3 size 20k;

background image

Strona 11

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

severity dynamic;
print-time yes;
print-severity yes;
print-category yes;
};

channel zap_syslog {
syslog deamon;
severity info;
};

channel transfer {
file "xfer.log" versions 2 size 10k;
severity info;
print-time yes;
print-category yes;
};

category default { default_syslog; };
category queries { zapytania; zap_syslog; };
category xfer-in { transfer; };
category xfer-out { transfer; };
category lame-servers { null; };
};

Oto co wynika z powy

ż

szej konfiguracji. Poniewa

ż

denerwowały mnie wszystkie informacje na temat

ę

dnych delegacji w innych strefach, postanowiłem je wyrzuci

ć

. Interesowało mnie kto stara si

ę

pobra

ć

moje

strefy, wiec postanowiłem zarejestrowa

ć

wszystkie transfery stref do osobnego pliku, chciałem zna

ć

szczegóły dotycz

ą

ce zapyta

ń

, jakie obsługuje mój serwer wi

ę

c, nakazałem rejestrowanie ich w pliku

query.log (oczywi

ś

cie je

ś

li wł

ą

cz

ę

debugowanie), informacje na poziomie info dotycz

ą

ce zapyta

ń

wysyłane

s

ą

do demona syslog (mogłem oczywi

ś

cie u

ż

y

ć

kanału default_syslog, ale chciałem pokaza

ć

jak zbudowa

ć

kanał wysyłaj

ą

cy informacje do tego

ż

demona). Nie chc

ą

c, aby wszystkie pozostałe komunikaty BIND

zapisywał w pliku named.run przedefiniowałem kategori

ę

default, aby wysyłała je tylko do syslog.

Zagadnienia ró

ż

ne

- SOA - uwagi, bezpiecze

ń

stwo, skróty, dystrybucja obci

ąż

enia, RevDNS i TP SA. -

Uwagi do pola MINIMUM w rekordzie SOA

RFC2308 definiuje nowe u

ż

ycie tego pola, a mianowicie, jako domy

ś

lnego ttl-a dla buforowania odpowiedzi

negatywnych, dotychczas pole to było u

ż

ywane do ustawiania domy

ś

lnego czasu ttl dla rekordów, które nie

miały go zdefiniowanego. Nowe RFC zaleca definiowanie tego czasu za pomoc

ą

nast

ę

puj

ą

cego wyra

ż

enia

na pocz

ą

tku pliku strefy.

$TTL warto

ść

_liczbowa

Dla ciekawostki dodam,

ż

e pole to było przedefiniowywane ju

ż

kilkakrotnie, a pierwotnie jego warto

ść

oznaczała minimalny czas, przez jaki maj

ą

by

ć

buforowane rekordy zasobów danej strefy.

Bezpiecze

ń

stwo

Zagadnienie bezpiecze

ń

stwa DNS jest bardzo szerokie, rozpoczynaj

ą

c od odpowiedniej konfiguracji samego

serwera nazw, poprzez TSIG (zabezpieczenia kluczem transakcji tj. transferów stref itp.), DNSSEC (DNS
Security Extensions - wykorzystanie kryptografii z kluczem publicznym do podpisywania danych w strefach),
a ko

ń

cz

ą

c na zaawansowanych konfiguracjach sieci z hostami bastionowymi, wewn

ę

trznymi serwerami

nazw.

Istnieje wiele opcji konfiguracyjnych serwera DNS, które znacznie ograniczaj

ą

dost

ę

p osobom niepowołanym

przechowywanych przez niego danych. Wszystkie poni

ż

sze dyrektywy dodawane s

ą

do pliku named.conf.

Oto one:

version "string";

umieszczana wewn

ą

trz dyrektywy options, ustawia odpowied

ź

na zapytanie version.bind utrudniaj

ą

c

identyfikacj

ę

naszego

serwera

nazw

zło

ś

liwej

osobie,

która

np.

wła

ś

nie

przeszukuje

www.securityfocus.com w poszukiwaniu odpowiedniego exploita

allow-query { lista_adresów; };

opcja, dzi

ę

ki której zyskujemy kontrol

ę

nad tym kto mo

ż

e odpytywa

ć

nasz serwer nazw, lista_adresów

to adresy hostów lub sieci, którym na to pozwalamy np.: { 192.168.0/24; 127.0.0.1; }. Opcje te
mo

ż

emy umie

ś

ci

ć

wewn

ą

trz dyrektywy options (jest wtedy traktowana jako globalna) lub wewn

ą

trz

dyrektywy zone strefy, dla której chcemy wprowadzi

ć

ograniczenia.

allow-transfer { lista_adresów; };

opcja ta ogranicza liczb

ę

hostów, które mog

ą

przeprowadzi

ć

transfer strefy. Podobnie jak w

poprzednim przypadku lista_adresów to adresy hostów, którym zezwolimy na ewentualne transfery;
dla serwerów, które s

ą

podstawowymi powinna zawiera

ć

adresy serwerów podrz

ę

dnych, a serwery

podrz

ę

dne nie powinny zezwala

ć

nikomu na transfer strefy. Opcja ta mo

ż

e by

ć

u

ż

yta wewn

ą

trz

dyrektywy options lub wewn

ą

trz dyrektywy zone dla danej strefy.

recursion no;

opcja ta zakazuje naszemu serwerowi nazw przetwarzania zapyta

ń

rekurencyjnych

allow-recursion { lista_adresów; };

opcja ta informuje nasz serwer, aby przetwarzał zapytania rekurencyjne tylko i wył

ą

cznie od hostów,

które s

ą

na li

ś

cie adresów

Notacja skrótowa

Tworzenie plików stref mo

ż

e wydawa

ć

si

ę

czynno

ś

ci

ą

do

ść

m

ę

cz

ą

ca, szczególnie je

ż

eli nasza strefa

odwzorowania normalnego czy te

ż

odwrotnego posiada wiele rekordów zasobów. Na szcz

ęś

cie istnieje kilka

skrótów, które bardzo usprawniaj

ą

i przede wszystkim przyspieszaj

ą

tworzenie pliku strefy.

Pierwszy parametr instrukcji zone to nazwa domenowa strefy zwana

ź

ródłem (origin); nazwa ta jest

automatycznie dodawana do ka

ż

dej wyst

ę

puj

ą

cej w pliku strefy nazwy domenowej nie zako

ń

czonej kropk

ą

.

Do zmiany

ź

ródła wewn

ą

trz pliku strefy stosuje si

ę

instrukcje $ORIGIN nowe_zrodlo.

Je

ż

eli nazwa domenowa jest taka sama jak

ź

ródło, mo

ż

na j

ą

zapisa

ć

u

ż

ywaj

ą

c znaku '@' (at). Taki zapis

wykorzystywany jest przewa

ż

nie w rekordach SOA.

background image

Strona 12

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

Je

ż

eli w polu nazwa_domenowa rekordu zasobów znajduje si

ę

znak spacji lub tabulacji, to serwer u

ż

yje

nazwy z ostatniego rekordu zasobu, który posiadał nazw

ę

inn

ą

ni

ż

spacja lub znak tabulacji. Ten zapis

wykorzystywany jest gdy konfigurujemy wiele typów rekordów dla jednego hosta.

Oto jak wygl

ą

daj

ą

przykładowe pliki stref po zastosowaniu skrótów:

strefa odwzorowania normalnego,

ź

ródło - zoom.pol.

$ttl 3h

;do wszystkich nazw nie zako

ń

czonych kropk

ą

zostaje dodane

ź

ródło

;

ź

ródło jest takie samo jak nazwa domenowa wiec stosuje si

ę

znak '@'

@ IN SOA holly out.holly (
2002081001
3H
15M
1W
1D )

IN NS holly
;nazwa jest spacj

ą

lub tabulatorem. Poprzedni rekord

;zawieraj

ą

cy nazw

ę

inn

ą

ni

ż

spacja czy tabulator to SOA

;wi

ę

c domy

ś

lnie wiadomo,

ż

e rekord ten dotyczy nazwy

ź

ródłowej

;Rekordy zasobów strefy zoom.pol
holly IN A 192.168.0.1
IN MX 1 holly ;nazw

ą

jest spacja lub tabulatorem wiec

;rekord dotyczy hosta holly
antifa IN A 192.168.0.3
apacz IN A 192.168.0.6

;Definicje aliasów
mail IN CNAME holly
dns IN CNAME holly

strefa odwzorowania odwrotnego,

ź

ródło - 0.168.192.in-addr.arpa.

$ttl 3h

@ IN SOA holly.zoom.pol. out.holly.zoom.pol. (
02030202
3h
1h
1w
1h )

IN NS holly.zoom.pol.

1 IN PTR holly.zoom.pol.
3 IN PTR antifa.zoom.pol.

;jak wspomniano wy

ż

ej,

ź

ródło mo

ż

na zmieni

ć

w

;dowolnym miejscu pliku strefy

$ORIGIN zoom.pol.
6.0.168.192.in-addr.arpa. IN PTR apacz

Dystrybucja obci

ąż

enia

Mechanizm rotowania rekordów jest szczególnie przydatny, gdy posiadamy kilka hostów pełni

ą

cych te same

funkcje (np. mirrorowane serwery ftp) i chcemy w miar

ę

równomiernie rozło

ż

y

ć

ruch pomi

ę

dzy nimi.

Dokonuje si

ę

tego umieszczaj

ą

c w pliku strefy nast

ę

puj

ą

ce rekordy:

ftp.linux.pl. 60 IN A 213.25.234.82 ;serwer ftp
ftp.linux.pl. 60 IN A 212.160.112.227 ;przykładowy mirror pierwszy
ftp.linux.pl. 60 IN A 213.25.234.170 ;przykładowy mirror drugi

Jak to działa?

Bardzo prosto: kiedy serwer otrzymuje zapytanie o nazw

ę

ftp.linux.pl zwraca adresy w kolejno

ś

ci:

213.25.234.82, 212.160.112.227, 213.25.234.170

otrzymuj

ą

c kolejne zmienia ich kolejno

ść

w nast

ę

puj

ą

cy sposób:

212.160.112.227, 213.25.234.170, 213.25.234.82

na trzecie zapytanie odpowie:

213.25.234.170, 213.25.234.82, 212.160.112.227

a na czwarte:

213.25.234.82, 212.160.112.227, 213.25.234.170

I tak w kółko. Mechanizm

ten jest domy

ś

lnie wł

ą

czony,

jednak, aby zapewni

ć

mu prawidłowe

funkcjonowanie, nale

ż

y dla rotowanych rekordów ustawi

ć

mały ttl, przykładowo na 60 sekund, jak uczyniono

to powy

ż

ej.

Gdy jednak posiadamy główny serwer ftp oraz np. jeden zapasowy i chcieliby

ś

my, aby zapasowy u

ż

ywany

był tylko wtedy, gdy główny nie działa, rotowanie rekordów tylko przeszkadza Aby je zmieni

ć

nale

ż

y posłu

ż

y

ć

si

ę

podinstrukcj

ą

dyrektywy options - rrset-order. Jej posta

ć

:

rrset-order {
class IN type ANY name "*.zoltan.eu.org" order fixed;
//specyfikacja kolejno

ś

ci

};

Słowo kluczowe order okre

ś

la kolejno

ść

w jakiej b

ę

d

ą

zwracane rekordy. Dost

ę

pne s

ą

nast

ę

puj

ą

ce opcje:

fixed

rekordy b

ę

d

ą

zawsze zwracane w tej samej kolejno

ś

ci

background image

Strona 13

DNS - działanie i konfiguracja usługi

2007-02-01 18:43:55

http://newbie.linux.pl/wydruk.php?wydruk=35&show=artykul

cyclic

rekordy b

ę

d

ą

rotowane

random

rekordy b

ę

d

ą

zwracane losowo

Parametr name okre

ś

la domen

ę

, jakiej dotyczy ta reguła (domy

ś

lnie wszystkie czyli "*"). Parametry class

oraz type, jak nie trudno si

ę

domy

ś

li

ć

, oznaczaj

ą

odpowiednio klas

ę

rekordów oraz ich typ (domy

ś

lnie jest to

klasa IN oraz wszystkie typy rekordów). Parametry domy

ś

lne, je

ś

li nam odpowiadaj

ą

, mo

ż

emy pomin

ąć

,

wiec specyfikacja kolejno

ś

ci dla wszystkich rekordów byłaby taka: order fixed;). Dozwolona jest tylko jedna

instrukcja rrset-order, ale mo

ż

e ona zawiera

ć

wiele zapisów okre

ś

laj

ą

cych kolejno

ść

. Wykorzystywany jest

pierwszy pasuj

ą

cy do danej grupy rekordów.

Chciałbym zaznaczy

ć

,

ż

e rozwi

ą

zanie tego problemu wykorzystuj

ą

ce instrukcje rrset-order jest zakłócane

przez buforowanie nazw przez serwery, jednak lepszy rydz ni

ż

nic. (Istnieje nowy typ rekordu SRV, który jest

doskonałym rozwi

ą

zaniem tego problemu, lecz nie jest on zbytnio rozpowszechniony, a na dodatek

delikatnie mówi

ą

c, istnieje bardzo mało aplikacji klienckich obsługuj

ą

cych ten typ rekordu.

RevDNS i TP SA

TP SA nie wykorzystuje sposobu delegacji strefy odwrotnej opisanego przeze mnie, a niestety zyskaliby

ś

my

wtedy czytelno

ść

i porz

ą

dek danych. Nie b

ę

d

ę

na łamach tego artykułu tłumaczył jak zarejestrowa

ć

własn

ą

stref

ę

w TP SA, odsyłam do strony http://www.tpnet.pl/rev.phphttp://www.tpnet.pl/rev.php gdzie proces

post

ę

powania rejestracyjnego został dokładnie wytłumaczony krok po kroku.

Od Autora
- Uwagi, wyja

ś

nienia -

W opisie tym całkowicie pomin

ą

łem zagadnienie IPv6 w DNS, poniewa

ż

jest to obszerny temat, a artykuł i

tak rozrósł si

ę

do do

ść

du

ż

ych rozmiarów. Przypuszczam,

ż

e temu tematowi po

ś

wi

ę

c

ę

osobny artykuł (który

w najbli

ż

szym czasie powinien zosta

ć

opublikowany na stronie).

W cz

ęś

ci "Bezpiecze

ń

stwo" nie omówiłem mechanizmów TSIG oraz DNSSEC. Je

ż

eli chodzi o ten pierwszy,

s

ą

dz

ę

,

ż

e powinienem w niedługim czasie uzupełni

ć

artykuł. Opis DNSSEC nie pojawi si

ę

w ogóle.

Powodem jest brak czasu, obszerno

ść

tematu, a co najwa

ż

niejsze, prace nad mechanizmem DNSSEC

ci

ą

gle trwaj

ą

i pewne aspekty jego działania mog

ą

si

ę

jeszcze zmieni

ć

. Obecna specyfikacja znajduje si

ę

w

RFC2535.

Uwagi, sugestie i zapytania do autora...

...prosze kierowa

ć

na adres sahal@linux.pl

Szczególnie prosz

ę

wytyka

ć

mi te fragmenty, które wydaj

ą

si

ę

by

ć

niezrozumiale.

Artykuł pochodzi ze strony: Newbie - http://newbie.linux.pl


Wyszukiwarka

Podobne podstrony:
DNS konfiguracja serwera
Konfiguracja DNS w OS Linux
Konfiguracja DNS 1
DNS konfiguracja serwera
Konfiguracja DNS w OS Linux
Konfiguracja serwera DNS w systemie operacyjnym linux
Instalacja i konfiguracja serwera DNS
Chemia wyklad I i II (konfiguracja wiÄ…zania Pauling hybrydyzacja wiazania pi i sigma)
TFTP i DNS(2)
07 Konfiguracja
DNS
Cwiczenie 12 Konfigurowanie i testowanie VPN (PPTP)
Konfiguracja pamięci mikrokontrolera 8051 dla programów napisanych w języku C
1.1.6 Opis i konfiguracja zestawu protokołów TCPIP, 1.1 Nawiązywanie połączenia z Internetem
SK-cw3 2h Konfigurowanie sieci WLAN, Sieci Komputerowe
KONFIGURACJA KROTNICY SDH SPRAWOZDANIE

więcej podobnych podstron