FreeBSD Logo               

Skąd pobrać FreeBSD? Wybierz serwer ftp:
 

 


Dokumentacja
 
manuale  
  faq 
 
handbook

Jak to zrobić?
  Instalacja
  Komendy
  Usługi
  Upgrade
  NFS
  Jądro
  SDI-PPP
  Identyfikacja
  Quota
  OpenSSH
  TelnetSSL 
  Agenci MTA
  POP3 i SMTP
  Autoryzacja
  Serwer WWW
  Serwer NEWS
  Serwer Nazw
  ProFTPD
  IPv6
  Squid
  Samba
  DHCP
  Dummynet
  Ipfilter
  PF
  Polonizacja
  VMvare
  Udostępnianie
  Mały Router
 
Terminal
  Linux2FreeBSD

Niusy
  pl.comp.os.bsd

Po polsku
  bsdzine.org
  freebsd.pl
  www.bsd4u.org
  www.bsdguru.org
  bofh.vt.pl

Po innemu
  bsdvault.net
  freebsdhowtos.com
  freebsd-howto.com

Linkownia



Studio reklamowe

Usługi informatyczne MAC



 

Serwer nazw - named-bind

DNS

 

Czym jest DNS? DNS to nic innego jak usługa polegająca na przełożeniu nazwy na jej numeryczny odpowiednik. Jak wiemy ruch w sieciach komputerowych jest zdefiniowany jako przepływ danych pomiędzy maszynami o konkretnych adresach IP. Nie będę się zagłębiał w szczegóły dotyczące drogi pakietu od urządzenia o adresie xxx.xxx.xxx.xxx do innego o adresie yyy.yyy.yyy.yyy (wg protokołu IPv4). Brak usługi DNS byłby wręcz sadystycznym potraktowaniem użytkowników, gdyż spamiętanie nawet kilku adresów IP dla kilku wybranych urządzeń jest dość trudny a w dobie zbliżającego się protokołu IPv6 (gdzie numeryczny adres internetowy ma długość 128 bitów a nie 32 jak w przypadku powszechnego IPv4) praktycznie niemożliwy. W bardzo prostym ujęciu DNS pozwala uprościć pracę użytkownika z siecią pozwalając mu na posługiwanie się dość prostymi nazwami zamiast adresacją numeryczną. I tak zamiast w przeglądarce stron WWW wpisywać http://62.244.141.150 możemy wpisać http://www.freebsd.org.pl. Ważną rolę usługi DNS może podkreślić fakt: w przypadku zmiany adresów IP danej maszyny dla większości użytkowników taka zmiana nie jest uciążliwa, gdyż posługują się nazwą a nie adresem IP. Zmiana IP nie zmusza do stosowania innej adresacji dla chcących np. obejrzeć daną stronę WWW (tak było w przypadku serwisu www.freebsd.org.pl). System DNS jest właściwie nieodłączną już częścią Internetu. Da się bez niego żyć ale jest to dość uciążliwe.

 

Jak to wygląda?

 

DNS można porównać do piramidy. Na samym jej szczycie znajdują się serwery główne (tzw. root-servers), które są statycznie zdefiniowane i są tworami nadrzędnymi. To w nich jest zdefiniowane jakie kolejne serwery nazw są odpowiedzialne za poszczególne domeny główne danych państw.

 

Przykład:

* domena .pl

pl name server sunic.sunet.se

pl name server ns.ripe.net

pl name server ns3.ikp.pl

pl name server dns3.atman.pl

pl name server bilbo.nask.org.pl

pl name server dns.fuw.edu.pl

pl name server dns2.tpsa.pl

pl name server dns2.man.lodz.pl

pl name server nms.cyf-kr.edu.pl

 

domena .de

de name server auth03.ns.de.uu.net

de name server sunic.sunet.se

de name server sss-us1.de.net

de name server dns.denic.de

de name server dns2.de.net

de name server sss-at.denic.de

de name server sss-de1.de.net

de name server sss-jp.denic.de

de name server sss-nl.denic.de

de name server sss-uk.de.net

 

Wskazane przez serwery główne serwery nazw utrzymują informacje dla poszczególnych domen i one z kolei stają się serwerami nadrzędnymi dla serwerów odpowiadających za poddomeny (np. ent.freebsd.org.pl i lackowa.pap.com.pl dla domeny freebsd.org.pl). Jest to swoista pętla, gdyż każdy serwer nazw delegując jakąś domenę staję serwerem nadrzędnym dla serwerów utrzymujących wydelegowaną domenę i jednocześnie jest tworem podrzędnym względem serwera delegującego jego domenę (z pominięciem root-servers).

 

Praktyczna trasa zapytania DNS

 

Postaram się w praktyce pokazać jak wygląda procedura uzyskania numerycznego odpowiednika dla nazwy www.wp.pl.

Pierwszym krokiem jest uzyskanie od serwerów głównych odpowiedzi jakie serwery nazw są odpowiedzialne za domenę "pl". Jak już wyżej zostało napisane są to serwery: sunic.sunet.se,  ns.ripe.net,  ns3.ikp.pl,  dns3.atman.pl,  bilbo.nask.org.pl,  dns.fuw.edu.pl, dns2.tpsa.pl,  dns2.man.lodz.pl,  nms.cyf-kr.edu.pl.

Kolejnym krokiem jest więc uzyskanie od ww. serwerów odpowiedzi jakie serwery nazw obsługują domenę wp.pl. Zapytania są kierowane do wspomnianych serwerów. Uzyskujemy odpowiedz: ns1.wp.pl ns2.wp.pl dns.task.gda.pl (od serwera np. bilbo.nask.org.pl otrzymujemy także informację o adresie IP dla ns1.wp.pl i ns2.wp.pl. Kolejnym krokiem jest więc odpytanie wymienionych serwerów o wpis www w domenie wp.pl. Serwery powinny odpowiedzieć iż jest to 212.77.100.101. Poniżej zamieszczam krótki schemat.

Root-servers

|

serwery nazw dla .pl (sunic.sunet.se,  ns.ripe.net,  ns3.ikp.pl,  dns3.atman.pl,  bilbo.nask.org.pl,  dns.fuw.edu.pl, dns2.tpsa.pl,  dns2.man.lodz.pl,  nms.cyf-kr.edu.pl)

|

serwery nazw dla wp.pl (ns1.wp.pl, ns2.wp.pl, dns.task.gda.pl)

|

www = 212.77.100.101

 

Drugim przykładem już uproszczonym będzie uzyskanie adresu IP dla www.freebsd.org.pl

Droga przebiega identycznie od serwerów głównych poprzez serwery dla każdej z domen. Ostatnie czyli lackowa.pap.com.pl i ent.freebsd.org.pl dają odpowiedź iż wpis www jest "nicknamem" (nazwa zamienna) dla www.freebsd.kie.pl (a ta z kolei nazwa zamienna dla freebsd.kie.pl). Kolejnym krokiem jest wiec uzyskanie odpowiedzi na pytanie jakie IP posiada freebsd.kie.pl. Znów droga zapytań (root-servers -> pl-servers-> kie.pl-servers-> freebsd.kie.pl-servers= 62.244.141.150).

 

RevDNS

 

RevDNS (Reverse DNS) jest to system nazw domen odwrotnych ;] w dosłownym tłumaczeniu. Jest to nic innego jak przełożenie adresu IP na jego odpowiednik "słowny". Jedyną różnicą jest konwersja w składni zapytania. Jak wiadomo zapytania domen idą jakby od prawej do lewej strony (.pl -> wp.pl -> www.wp.pl) a w przypadku adresów musiałoby to iść odwrotnie (62 -> 62.244 -> 62.244.141 -> 62.244.141.150) więc wprowadzono odpowiednik i tak więc jest to (arpa -> in-addr.arpa -> 62.in-addr.arpa -> 244.62.in-addr.arpa -> 141.244.62.in-addr.arpa -> 150.141.244.62.in-addr.arpa) i schemat "od prawej do lewej" został zachowany. Cała procedura zapytania przebiega dokładnie tak samo.

 

Praktyka

 

Postaram się pokazać jak to wszystko co wyżej napisałem zawrzeć w serwerze obsługi nazw BIND. Bardzo prosta sprawa. Wykupiliśmy domenę w NASKu testowa.pl. We wniosku, który musieliśmy wypełnić musieliśmy podać serwery nazw. Niech to hipotetycznie będą:

dns.freebsd.org.pl, dns.testowa.pl, dns2.testowa.pl (w przypadku dns.testowa.pl i dns2.testowa.pl musieliśmy także podać adresy IP maszyn, które będą obsługiwały domenę).

Oczywiście w pliku /etc/namedb/named.conf (defaultowa ścieżka) musimy dokonać odpowiednich wpisów:

Dla primary DNS (głównego):

zone "testowa.pl" {

type masters;

file "sciezka/do/pliku-strefy";

allow-query { any };

allow-transfer { ipek-slave'a, ipek-slave'a-2 };

};

 

Dla secondary (slave):

zone "testowa.pl" {

type slave;

allow-transfer { none; };

allow-query { any; };

masters { ip-glownego-serwera};

file "sciezka/do/pliku-strefy";

}; 

Przykładowa zawartość pliku strefy:

$ttl 3600

@                       42m40s IN SOA   root.testowa.pl. hostmaster (

                                        2002091500      ; serial

                                        4h33m4s         ; refresh

                                        34m8s           ; retry

                                        1w5d3h16m16s    ; expiry

                                        42m40s )                ; minimum

 

@                        IN NS        dns.freebsd.org.pl.

                            IN NS        dns.testowa.pl.

                            IN NS        dns2.testowa.pl.

                            IN A         199.77.33.12

                            IN MX      0 mx1.testowa.pl.

                            IN MX     10 mx2.testowa.pl.

                            IN MX     www.freebsd.org.pl.

 www                   IN      CNAME   @

ftp                        IN       A        199.77.33.13

poddomena         IN NS dns.ktos.pl.

                            IN NS dns2.tpsa.pl.

mx1                     IN A                199.77.33.13

mx2                     IN A                199.77.33.12

ipv6                     IN AAAA     3ffe:8010:7::1

 

Małe objaśnienie:

Pierwsza część czyli blok:

@                       42m40s IN SOA   root.testowa.pl. hostmaster (

                                        2002091500      ; serial

                                        4h33m4s         ; refresh

                                        34m8s           ; retry

                                        1w5d3h16m16s    ; expiry

                                        42m40s )                ; minimum

SOA - start of authority (sekcja definiujaca parametry "strefy");

Pierwsza pozycja to numer seryjny, druga jest wartością czasu odświeżania, trzecia jak zawsze bliżej mi nie znana ;) , czas ważności strefy oraz minimalny czas jej ważności ;]

 

@                     IN NS        dns.freebsd.org.pl.

                        IN NS        dns.testowa.pl.

                        IN NS        dns2.testowa.pl.

                        IN A         199.77.33.12

                        IN MX      0 mx1.testowa.pl.

                        IN MX     10 mx2.testowa.pl

                        IN MX    20  www.freebsd.org.pl.

Zdefiniowanie serwerów nazw dla domeny testowa.pl (@ - oznacza testowa.pl)

Zdefiniowanie, że nazwa testowa.pl będzie wskazywała na adres IP 199.77.33.12

Zdefiniowanie mail exchangerów (maszyn obsługujących pocztę dla testowa.pl) na:

mx1.testowa.pl, mx2.testowa.pl i www.freebsd.org.pl

 

www             IN      CNAME   @

przypisanie dla www.testowa.pl nazwy zamiennej jako testowa.pl (czyli 199.77.33.12)

 

ftp                IN       A        199.77.33.13

host ftp.testowa.pl = 199.77.33.13

 

poddomena IN NS dns.ktos.pl.

                   IN NS dns2.tpsa.pl.

 delegacja domeny poddomena.testowa.pl na serwery: dns.ktos.pl i dns2.tpsa.pl ;]

 

mx1                 IN A                199.77.33.13

mx2                 IN A                199.77.33.12

 przypisanie nazwom mx1.testowa.pl i mx2.testowa.pl odpowiednich IP (uzupełnia to wpis IN MX 0 mx1.testowa.pl. i IN MX 10 mx2.testowa.pl.)

 

ipv6               IN AAAA     3ffe:8010:7::1

przypisanie adresu IP w protokole IPv6 3ffe:8010:7::1

 

 W przypadku rDNSu wszystko wygląda identycznie, jedyna różnica to nie korzystanie ze składni IN A ale IN PTR (CNAME i NS pozostaje tak samo, nie korzystamy natomiast z MX ;)

 


Autor: Łukasz Pawlik

Oficjalne strony projektu: http://www.isc.org/products/BIND/


paździenik 2002





Kontakt  

© 2001-2009 FreeBSD Projekt
Wszelkie Prawa Zastrzeżone.