BIND 8 czyli serwer nazw (DNS)

Instalujemy:

cd /usr/ports/net/bind8
make install && make clean

Po zainstalowaniu naszego nameda zerknijmy na pliki konfiguracyjne, standardowo znajdują się w /etc/namedb/.

named.conf :
options {
        directory "/etc/namedb";   

Informuje demona w jakim katalogu znajdują się pliki konfiguracyjne.

};
zone "domena.pl" {
        type master;
        file "domena.hosts";
        allow-update { none; };
        allow-transfer { 111.111.111.111; };
        notify yes;
};

zone "druga-domena.pl" {
        type master;
        file "druga.hosts";
        allow-update { none; };
        allow-transfer { 111.111.111.111; };
        notify yes;
};

Tak wygląda mniej więcej plik konfiguracyjny domen, jakie mamy do naszej dyspozycji.

  • type master - określa czy serwer jest primary dla danej domeny
  • type slave - określa czy serwer jest secondary dla danej domeny
  • allow-transwer - określa serwer secondary i tam będą kierowane nasze pliki konfiguracyjne domen (domena.hosts oraz druga.hosts)
  • W przypadku, gdy named.conf znajduje się na serwerze secondary dla naszej domeny, plik ten będzie wyglądał następująco:

    options {
            directory "/etc/namedb";
    };
    
    zone "domena..pl"  {
            type slave;
            file "domena.hosts";
            masters { 111.111.111.112; };
    };
    
    zone "druga_domena.pl"  {
            type slave;
            file "druga.hosts";
            masters { 111.111.111.112; };
    };
    

    I to wystarcza by teraz zabrać się za pliki konfiguracyjne naszych domen domena.pl oraz druga-domena.pl - jeżeli taką posiadamy. Pliki te należy stworzyć w katalogu takim jak zdefiniowaliśmy w pliku named.conf czyli /etc/namedb/ i będą ona wyglądały następująco: /etc/namedb/domena.hosts

    $TTL 3600
    @       IN      SOA     domena.pl. root.domena.pl. (
                            2002100501; numer seryjny,
    				  ; należy pamiętac o 32 bitowym rozmiarze.
                            10800	  ; odświerzanie
                            3600	  ; powtórna próba odświeżenia
                            3600000   ; ważność
                            86400 )   ; minimalnie
    
    $ORIGIN                 		domena.pl.
    				IN      NS      ns1.domena.pl.    
    				IN      NS      ns2.domena.pl.
    
    IN	NS 	określa serwery nazw dla naszej domeny
    
    				IN      MX     0 mail.domena.pl.
    
    IN	MX	określa host gdzie znajduje się serwer poczty dla naszej domeny
    
    @                     		IN       A         111.111.111.110
    
    Lokalizujemy nasz serwer aby pracował jako domena.pl
    
    alfa		                IN	A	111.111.111.112
    bravo				IN	A	111.111.111.113
    ns2				IN	A	111.111.111.111
    
    Przypisujemy adresy ip dla naszych komputerów w sieci
    
    ns1				IN	A	111.111.111.110
    mail				IN	A	111.111.111.110
    pop3				IN	A	111.111.111.110
    smtp				IN	A	111.111.111.110
    www				IN	A	111.111.111.110
    

    Jak widać powyżej, przypisaliśmy kilka hostów do jednego adresu IP - w tym przypadku jest to nasz serwer, który jest serwerem primary dla naszej domeny oraz obsługuje www oraz pocztę.

    www.falochron 	      		IN	A	111.111.111.110
    falochron			IN	A	111.111.111.110
    

    W ten sposób stworzyliśmy użytkownikowi falochron adres www.falochron.domena.pl Tak ale to nie wszystko, teraz skoro poruszyłem temat WWW zerknijmy na chwilkę do pliku /usr/local/etc/apache/httpd.conf:

    <VirtualHost 111.111.111.110:80>
            ServerAdmin admin@domena.pl
            DocumentRoot /www/domena
            ServerName www.falochron.domena.pl
            ServerAlias falochron.domena.pl
    </VirtualHost>
    

    Powróćmy do naszego nameda i zajmijmy się teraz domeną odwrotną, czyli popularny REV DNS. W tym celu naszym ulubionym vi edytujemy plik /etc/namedb/named.conf i dodajemy tam następujący wpis:

    zone "111.111.111.in.addr.arpa"
            type master;
            file "111.111.111.reverse"
            allow-update { none; };
            allow-transfer { 111.111.111.111;};
            notify yes;
    

    Teraz zobaczmy co mamy w pliku konfiguracyjnym domeny odwrotnej /etc/namedb/111.111.111.reverse:

    @       IN      SOA     domena.pl. root.domena.pl. (
               		2002100501 	; numer seryjny, należy pamiętac 
    					; o 32 bitowym rozmiarze.
                            10800	        ; odświeżanie
                            3600		; powtórna próba odświeżenia
                            3600000         ; ważność
                            86400 )         ; minimalnie
    				IN	NS	ns1.domena.pl.
    				IN	NS	ns2.domena.pl.
    110				IN	PTR	mail.domena.pl. 
    
    Tutaj przypisaliśmy główny host, którym jest nasz 
    serwer (/etc/rc.conf , /etc/hosts).
    
    111				IN	PTR	ns2.domena.pl.
    112				IN	PTR	alfa.domena.pl.
    113				IN	PTR	bravo.domena.pl.
    
    Powyżej umieściliśmy odpowiednie wpisy dla naszych hostów w domenie domena.pl .
    
    114				IN	PTR	delta.druga-domena.pl.
    115				IN	PTR	echo.druga-domena.pl.
    

    Jak widać adresy IP 111.111.111.114 oraz 111.111.111.115 przypisane są do domeny domena-druga.pl, a plik konfiguracyjny dla tej domeny będzie wyglądać następująco:

    $TTL 3600
    @       IN      SOA     druga-domena.pl. root.druga-domena.pl. (
    
    ---cięcie---
    
    $ORIGIN                 		druga-domena.pl.
    
    				IN      NS       ns1.domena.pl.    
                           		IN      NS       ns2.domena.pl.
    delta				IN	A	111.111.111.114
    echo				IN	A	111.111.111.115
    www				IN	A	111.111.111.110
    

    Przypisaliśmy www.druga-domena.pl do adresu IP który jest obsługiwany przez nasz demon HTTPD.

    Jak to jest z tymi VHOSTAMI? (virtual hosts)

    Zakładamy , że poproszono nas o "wydelegowanie" irc.vhost.domena.pl na adres IP 222.222.222.64 , zatem do pliku /etc/namedb/domena.hosts wstawiamy odpowiednią linię:

    irc.vhost			IN	A	222.222.222.64
    

    I z naszej strony to wszystko. Właściciel adresu IP 222.222.222.64 w swoim pliku konfiguracyjnym domeny odwrotnej, załóżmy, że /etc/namedb/222.222.222.reverse, powinien umieścić następujący wpis:

    64				IN	PTR	irc.vhost.domena.pl.
    

    Oczywiście należy jeszcze w pliku /etc/rc.conf dodać odpowiedni wpis:

    ifconfig_fxp0_alias0="inet 222.222.222.64 netmask 255.255.255.255"
    

    W przypadku wydelegowania domeny IN NS sprawa wygląda bardzo podobnie lecz zamiast:

    irc.vhost		IN  	A  	222.222.222.64 
    

    wpiszemy:

    irc.vhost	    	IN	NS 	ns1.tpsa.pl.
    

    Do automatycznego startu nameda podczas uruchomiania systemu konieczny jest wpis w /etc/rc.conf:

    named_enable="YES"
    

    Można również dodać linę:

    named_flags="-u bind -g bind"
    

    Wiąże się z tym dodanie użytkownika bind i grupy bind. Dla porządku, jeżeli w /etc/login.conf mamy stworzoną klasę daemon, przypisujemy go tam (pw usermod -L daemon -n bind.

    Restartujemy naszego nameda. Jak widać nie używałem w tym opisie IN CNAME lecz IN A w przypadku aliasów www. Nadmienię również ze artykuł ten zawiera niezbędne minimum by mógł sprawnie pracować nasz serwer nazw.

    Adam Domański Falochron

© BSDGuru.org TeAm 2002-2003