Szybki dns z użyciem binda.

Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 3812
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Szybki dns z użyciem binda.

Post autor: jacekalex » 28 lut 2010, 08:04

Witam

Jednym ze sposobów na przyspieszenie działania dns jest program Dnsmasq, często polecany na tym forum.
Tutaj opisuję inny sposób - wykorzystujący serwer Bind.

Instalacja:

Kod: Zaznacz cały

sudo apt-get install bind9
Następnie inforumujemy naszego binda, gdzie ma szukać adresów - których nie ma w pamięci:

Kod: Zaznacz cały

sudo gedit /etc/bind/named.conf.options
Szukamy sekcji forwarders, jeśli nie ma - tworzymy, aby plik wyglądał tak:

Kod: Zaznacz cały

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable 
    // nameservers, you probably want to use them as forwarders.  
    // Uncomment the following block, and insert the addresses replacing 
    // the all-0's placeholder.

    forwarders {
        208.67.222.222; 208.67.220.220; 8.8.8.8; 8.8.4.4; 195.187.245.44;
     };

    auth-nxdomain yes;    # conform to RFC1035
    listen-on-v6 { any; };
};
gdzie:
208.67.222.222; 208.67.220.220; - to serwery Opendns,
8.8.8.8; 8.8.4.4; - to serwery Google - bardzo szybkie,
195.187.245.44; - to serwer Nask - Polski.

Potem restart binda:

Kod: Zaznacz cały

sudo /etc/init.d/bind9 restart
Jeszcze trzeba poinformować system - żeby z naszego binda korzystał:

Kod: Zaznacz cały

sudo gedit /etc/resolv.conf
dodajemy jako pierwszą linię:

Kod: Zaznacz cały

nameserver 127.0.0.1
a jeśli mamy dhcp, to również:

Kod: Zaznacz cały

sudo gedit /etc/dhcp3/dhclient.conf
linię zawierającą prepend domain-name-servers zmieniamy, aby wyglądała tak:

Kod: Zaznacz cały

prepend domain-name-servers 127.0.0.1;
Potem sprawdzamy, czy działa:

Kod: Zaznacz cały

for x in $(seq 1 5); do sleep 1 && dig onet.pl | egrep -i '(server:|msec)'; done;
Jedna uwaga:
nie powinno się tych samych adresów IP serwerów DNS dawać w pliku konfiguracyjnym binda (named.conf.options) i plikach konfiguracyjnych resolv.conf lub dhclient.conf.
Dublowanie tych samych adresów w konfiguracji systemu i binda spowoduje wysyłanie do jednego serwera dwóch identycznych zapytań na raz. :evil:

W bindzie (który jest prawdziwym serwerem DNS) możemy ustawiać i konfigurować własne domeny.
Jednak , jeśli ktoś chciałby sprawić, że taki serwer byłby widoczny z internetu, radziłbym poszukać informacji (i zastosować się do nich :grin:) - uruchomić binda w chroocie, i ustawić mu limity w /etc/security/limits.conf

Bind, jak chyba wszystkie serwery dns - ma niemałą historię problemów z bezpieczeństwem.
Jednak póki jest schowany za firewallem, nie ma się czego obawiać.

To by było na tyle.

Pozdrawiam :craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
ODPOWIEDZ

Wróć do „Software-Sieć”