Monday, 6 lutego 2012 (fbsd)

Kontakt | Home | English

Wrażenia po weselu w Smolarni

Wesele Eli i Szymona

Notatki: Cisco

Notatki: Cisco 2

Notatki: Cisco 3 - RIP

Notatki: Cisco 4 - EIGRP

Notatki: Cisco - odzyskiwanie haseł

Notatki: Linux

Dostęp do komputera

RAID 5 w Linuksie

Konfiguracja serwera DNS

CCNA Certified
Valid XHTML 1.0 Transitional
Valid CSS!

Konfiguracja serwera DNS

Ostatnio postanowiłem zainstalować i skonfigurować domowy serwer DNS. Powodów miąłem kilka: chciałem się nauczyć jak to zrobić, chciałem aby przeglądanie stron internetowych umieszczonym na moim domowym serwerze odbywało się szybciej (bez konieczności wychodzenia z domowego LANu) a także chciałem polepszyć ogólne działanie mojego domowego LANu poprzez przyspieszenie translacji nazw domen na adresy IP.

Według podręcznika przygotowawczego do certyfikatu RHCE autorstwa Michaela Jang, najpopularniejszym serwerem DNS internetu jest program BIND. Dlatego nie zastanawiałem się długo, jaki serwer DNS zainstalować. Rozpocząłem od instalacji tego programu na moim domowym serwerze. Oto lista pakietów, które zainstalowałem:

  • bind
  • bind-chroot
  • bind-devel
  • bind-libbind-devel
  • bind-libs
  • bind-sdb
  • bind-utils
  • caching-nameserver
  • system-config-bind

Powyższa lista pakietów pochodzi z książki, o której przed chwilą wspomniałem. Nie wszystkie z powyższych pakietów są konieczne, ale nie zaszkodzi ich zainstalować.

Fedora

instalacja

Instalacja tych pakietów w Fedorze jest bardzo prosta:


# yum -y install bind bind-chroot bind-devel bind-libbind-devel bind-libs bind-sdb \
bind-utils caching-nameserver system-config-bind

konfiguracja

Ogólnie rzecz biorąc, istnieją cztery rodzaje serwerów DNS (nie tłumaczę nazw z angielskiego, bo nie wiem jak):

  • Forwarding only DNS server
  • Caching only DNS server
  • Slave DNS server
  • Master DNS server

Tutaj pokażę jak skonfigurować jeden z wyżej wymienionych rodzajów serwerów: Caching only DNS server. Jest to konfiguracja, którą zastosowałem w moim LANie (z wyjątkiem kilku domen, dla których mój serwer to Master DNS server). Oznacza ona, ze serwer wszystkie zapytania referuje do ważniejszych serwerów DNS internetu, a następnie zachowuje je w pamięci tak, aby przy kolejnych zapytaniach odpowiedz osiągalna była szybciej.

Pliki konfiguracyjne

Istnieje kilka plików konfiguracyjnych dla serwera DNS (BIND). Najważniejsze z nich to

/etc/named.conf
/etc/named.rfc1912.zones

Jeżeli zainstalowałeś pakiet bind-chroot, pliki te będą jedynie symbolicznymi linkami do następujących plików:

/var/named/chroot/etc/named.conf
/var/named/chroot/etc/named.rfc1912.zones

W takim przypadku, aby wyrobić sobie odpowiednie przyzwyczajenie, najlepiej edytować pliki umieszczone w folderze i podfolderach /var/named/chroot.

W Fedorze, po zainstalowaniu odpowiednich pakietów związanych z usługą BIND, w folderze /etc instalowane są domyślne pliki konfiguracyjne. Dla wygody, zamieszczam wzór takiego pliku konfiguracyjnego:

options {
        listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; };
        recursion yes;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

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

include "/etc/named.rfc1912.zones";

Plik ten zawiera instrukcję include, która włącza do konfiguracji plik /etc/named.rfc1912.zones. Oto jego pierwotna konfiguracja:

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

Konfiguracja na moim przykładzie

Podążając za wyżej wymienioną książką, oraz za wynikami moich poszukiwań w internecie, zmieniłem nieco powyższe pliki. Poniżej zamieszczam moją konfigurację kolejno named.conf oraz named.rfc1912.zones:

options {
        listen-on port 53 { 192.168.1.254; 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { 192.168.1.0/24; localhost; };
        recursion yes;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};


view localhost_resolver {
        match-clients   { any; };
        match-destinations { any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

include "/etc/rndc.key";

zone "kozieglowy" IN {
        type master;
        file "kozieglowy.zone";
        allow-update { none; };
};

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "kozieglowy.rr.zone";
};

zone "szymi.com" IN {
        type master;
        file "szymi.com.zone";
        allow-update { none; };
};

zone "szymi.blogsite.org" IN {
        type master;
        file "szymi.blogsite.org.zone";
        allow-update { none; };
};

zone "thebunker.pl" IN {
        type master;
        file "thebunker.pl.zone";
        allow-update { none; };
};
zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};

Na przykładzie mojego pliku konfiguracyjnego named.conf omówię teraz co oznaczają poszczególne dyrektywy.

  • Dyrektywa listen-on port 53 { 192.168.1.254; 127.0.0.1; }; ustala na jakim porcie komputer nasłuchuje w celu wyłapania zapytań o przetłumaczenie nazw domen na adresy IP (w tym wypadku standardowy port 53) oraz na jakich interfejsach sieciowych (192.168.1.254 oraz 127.0.0.1).
  • Dyrektywa allow-query { 192.168.1.0/24; localhost; }; definiuje to, z jakich sieci przyjmowane będą zapytania o przetłumaczenie nazw domen na adresy IP. Należy dodać adres domowego LANu oraz ewentualnie innych sieci, które miałyby mieć prawo używać naszego serwera DNS. Jeżeli nasz serwer DNS miałby przyjmować zapytania ze wszystkich sieci (także z internetu), należałoby wpisać adres 0.0.0.0/0 który oznacza wszystkie możliwe adresy IPv4.

Ilość komentarzy: 0

  1. Komentarze: