[#] Własny lokalny serwer DNS - przyspieszamy połaczenia internetowe

( Ostatnio zmieniony sob., 14/06/2008 - 09:54 )
 

Wpisujemy www.wp.pl i się zaczyna. Pakiety śmigają do naszego operatora w celu sprawdzenia gdzie jest tak naprawdę ten wp.pl na co nasz operator (w zależności od humoru i czasu oraz chęci) odpowiada nam ospale: Twóóóóój szuuuukaaaanyyyy adreeees jeeeeest tuuuuuutaj: 212.77.100.101

Wszystko gra, odpowiedział – tylko szkoda że zajęło mu to tyle czasu. My jednak mamy na to radę: własny serwer DNS.

PDNSD

Instalujemy potrzebne pakiety

sudo apt-get install pdnsd resolvconf

Konfigurujemy

sudo gedit /etc/pdnsd.conf

a wewnątrz:

global {
        perm_cache=2048;
        cache_dir="/var/cache/pdnsd";
        max_ttl=604800;
        run_as="pdnsd";
        paranoid=on;
#       next setting allows ppp/ip-up update the name servers -- ABa / 20040213
        status_ctl=on;
        server_port=53;
        server_ip="127.0.0.1";
}


server {
        ip="217.97.216.18";
        timeout=60;
        interval=900;
        uptest=ping;
        ping_timeout=500;
        purge_cache=off;
        caching=on;
}
server {
        ip="217.97.216.19";
        timeout=60;
        interval=900;
        uptest=none;
        ping_timeout=500;
        purge_cache=off;
        caching=on;
}
server {
        ip="194.204.159.1";
        timeout=60;
        interval=900;
        uptest=none;
        ping_timeout=500;
        purge_cache=off;
        caching=on;
}

server {
    label="resolvconf";
}

source {
        ttl=86400;
        owner="localhost.";
        serve_aliases=on;
        file="/etc/hosts";
}

Serwery: 217.97.216.18, 217.97.216.19, 194.204.159.1 to DNS tpsa dla DSL (zmień według włanych upodobań)

oraz plik /etc/dhcp3/dhcl­ient3.conf (jeśli korzystamy z DHCP) dodając

...
prepend domain-name-servers 127.0.0.1;
...

Lub jeśli nie korzystasz z dhcp dopisz do /etc/resolv.conf

# Lokalny DNS
nameserver 127.0.0.1
#OpenDNS DNS:
nameserver 208.67.222.222
nameserver 208.67.220.220
# tpsa
nameserver 217.97.216.18
nameserver 217.97.216.19
nameserver 194.204.159.1

Testujemy

zatrzymajmy teraz demona pdnsd

sudo /etc/init.d/pdnsd stop
Stopping proxy DNS server: pdnsd.

sprawdźmy dla przykładu ip serwera wp.pl

nslookup
> wp.pl
Server:         217.97.216.18
Address:        217.97.216.18#53

Non-authoritative answer:
Name:   wp.pl
Address: 212.77.100.101

Jak widać aby uzyskać ip serwera wp.pl musieliśmy zapytać jeden z serwerów dns tpsa o jego adres ip.

uruchomimy teraz demona pdnsd

sudo /etc/init.d/pdnsd start
Starting proxy DNS server: pdnsd.

sprawdźmy ponownie ip serwera wp.pl

nslookup
>wp.pl
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   wp.pl
Address: 212.77.100.101

Możemy zauważyć że tym razem o adres ip dla wp.pl został zapytany nasz lokalny dns czyli pdnsd.

Uwagi końcowe

Pdsnd różni się od popularnego bind9 tym, że po wyłączeniu komputera cache zostaje zapisany na dysku w pliku (bind tego nie robi). Dodatkowo warto zauważyć, że możemy regulować rozmiar pliku cache.

Dnsmasq

Instalacja paczki:

sudo apt-get install dnsmasq

Edycja ustawień:

sudo gedit /etc/dnsmasq.conf

Zmieniamy, żeby było:

....
listen-address=127.0.0.1
cache-size=256
no-negcache
...

Edycja resolv.conf

sudo gedit /etc/resolv.conf

i dodanie:

# Lokalny DNS
nameserver 127.0.0.1
#OpenDNS DNS:
nameserver 208.67.222.222
nameserver 208.67.220.220
# tpsa
nameserver 217.97.216.18
nameserver 217.97.216.19
nameserver 194.204.159.1

oraz edytujemy plik /etc/dhcp3/dhcl­ient3.conf (jeśli korzystamy z DHCP) dodając

...
prepend domain-name-servers 127.0.0.1;
...

Start

sudo /etc/init.d/dnsmasq restart

Testujemy

dig interia.pl

Wynik:

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu May 15 15:08:27 2008
;; MSG SIZE  rcvd: 150

gdzie:
Query time – to czas odpowiedzi
SERVER  – to serwer DNS który najszybciej odpowiedział albo miał ten adres w pamięci (lokalny DNS dopiero za drugim razem zadziała)

ponawiamy:

dig interia.pl

Query time nie powinien przekraczać: 0–5 ms

Zobacz także:
pdnsd.txt
pdnsd-bind-caching-server-to-boost-browsing-speed
boost-your-internet-browsing-polipo-personal-proxy
dnsmasq
Wikipedia : Dnsmasq

5
Twoja ocena: Brak Średnio: 5 (2 głosy)