Nasil Archlinux Pdnsd Kullanımı

From Lapis Wiki

Jump to: navigation, search
Bu makale NASIL bölümü serisinin bir parçasıdır
MasaÜstü Donanım Dağıtımlar
Tarayıcılar Programlama Linux ve Oyunlar

Konu başlıkları

Giriş

Hepimizin başında geçmiştir; İnternette gezerken çogu zaman sayfaların açılması uzun sürebilir. Bu yüzden yerel bir DNS sunucu kurmak çok işimize yarar ve hızlı şekilde internette tarayıcımız ile gezebiliriz.

Mesela Konqueror ile bir sayfaya girmek istediğimizi farz edelim:

12 11/27 21:33:04|      qc=IN (1), qt=A (1), query="www.gmx.de."
13 11/27 21:33:04|      qc=IN (1), qt=A (1), query="www.gmx.net."
14 11/27 21:33:05|      qc=IN (1), qt=A (1), query="gmx.ivwbox.de."
15 11/27 21:33:05|      qc=IN (1), qt=A (1), query="www.gmx.net."
16 11/27 21:33:05|      qc=IN (1), qt=A (1), query="www.gmx.net."
18 11/27 21:33:05|      qc=IN (1), qt=A (1), query="service.gmx.net."
19 11/27 21:33:05|      qc=IN (1), qt=A (1), query="gmx.ivwbox.de."
20 11/27 21:33:05|      qc=IN (1), qt=A (1), query="images.gmx.net."

DNS sorgulamasının Roundrip'i ortalama 70ms kadar sürüyor. Ayrıca konqueror da intern bir DNS Cache olmadığı için, gezmek istediğiniz sayfada 100 lerce resim ile dolu olduğunu düşünün... Sayfayı açıncaya kadar oldukça uzun bir zamana ihtiyacınız olacak :-) Özellikle modem ile veya yavaş bir bağlantı ile internete bağlanıyorsanız, bu işin sizin sinirlerinizi bozacağı muhakkak...

pdnsd Nedir?

Pdnsd bir çeşit DNS sorgulamaları için Proxy görevi gören bir demon dur. Gerçek bir DNS olmadığı için çok az bir yer tutar ve oldukça da az RAM harcaması yapar.

Archlinux depolarında pdnsd şu an yok, Aur'daki PKGBUILD ile paket oluşturup kurmanız lazım.


Dosya: PKGBUILD
 

# Contributor: Artem Sorokin <mail.dextor@gmail.com> 
pkgname=pdnsd
pkgver=1.2.3
pkgrel=1
pkgdesc="Is a proxy DNS server with permanent caching"
url="http://www.phys.uu.nl/~rombouts/pdnsd/"
depends=('glibc')
backup=('/etc/pdnsd.conf')
source=(http://www.phys.uu.nl/~rombouts/pdnsd/releases/$pkgname-$pkgver-par.tar.gz pdnsd)
md5sums=('76f8be89e8fd0c8f08ba0d919216e475' '3670bd47c9303fbb655d9216715512de')

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr --sysconfdir=/etc
  make || return 1
  make DESTDIR=$startdir/pkg install
  mkdir -p $startdir/pkg/etc/rc.d
  cp $startdir/src/pdnsd $startdir/pkg/etc/rc.d/
}


Dosya: pdnsd
 
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID=`pidof -o %PPID /usr/sbin/pdnsd`
case "$1" in
  start)
    stat_busy "Starting pdnsd Daemon"
    if [ -z "$PID" ]; then 
       /usr/sbin/pdnsd -d
    fi
    if [ ! -z "$PID" -o $? -gt 0 ]; then
      stat_fail
    else
      add_daemon pdnsd
      stat_done
    fi
    ;;
  stop)
    stat_busy "Stopping pdnsd Daemon"
    [ ! -z "$PID" ]  && kill -TERM $PID &> /dev/null
    if [ $? -gt 0 ]; then
      stat_fail
    else
      rm_daemon pdnsd
      stat_done
    fi
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"  
esac

Bu iki dosya aynı dizin altında olması lazım. Ardından dizin içinde

makepkg -c 

yapıp paketi oluşturuyoruz. Oluşturduktan sonra

pacman -A pdnsd-1.2.3-1.pkg.tar.gz

ile kuruyoruz.

pdnsd Ayarları

Kurulumu yaptıktan sonra yapmanız gereken fazla birşey yok. Öntanımlı olarak pdnsd.conf.sample dosyasını kullanabilirsiniz. Bunun için

cd /etc
cp pdnsd.conf.sample pdnsd.conf
nano -w pdnsd.conf

komutlarını verin ve dosyayı birlikte biraz düzenleyelim.

Aslında dosya içinde de fazla birşey değiştirmenize gerek yok. DNS sunucunun IP adresini ve CACHE limitini belirlemeniz yeterli. Ayarlama ile ilgili detaylı bilgileri man pdnsd.conf komutunu vererek inceleyebilirsiniz.

Benim şuanda kullandığım ayar dosyası aynen şu şekilde:

global {
       perm_cache=2048;   # Cache limiti -> 2MB olarak ayarlayın.
       cache_dir="/var/cache/pdnsd";
       run_as="pdnsd";
       server_ip = 127.0.0.1;   #Aynen böyle bırakın
       status_ctl = on;
       paranoid=on;
       min_ttl=900;       # Cache i her 15 dk içinde tazele.
       max_ttl=604800;    # Cache verilerini enaz 1 hafta saklasın.
       timeout=10;
}

server {
       label= "belkin";
       ip = 192.168.2.1;  # Türk Telekomun Dns'lerinden birini yazın,aksi takdirde bazı siteler açılmaz
       proxy_only=on;
       timeout=10;    
       uptest=if;
       interface=eth0;
       interval=600;
       purge_cache=off;
}


Dosya içindeki diğer satırları silebilirsiniz..

Yukardaki ayarlamayı yaptıktan sonra /etc/resolv.conf dosyasını açın ve DNS sorgulamalarnın PDNSD demonu üzerinden yapılması için gerekli ayarlamları yapın. Yani sadece localhost ilavesi yapıyoruz:

#/etc/resolv.conf
nameserver 127.0.0.1

Başlatma ve Test

Şimdi sadece test etmek için pdnsd demonumuzu başlatıyoruz:

pdnsd -d 

Artık Pdnsd hizmet vermeye hazır. Eğer bir hata alırsanız ayar dosyanızı tekrardan gözden geçirin veya man pdnsd.conf komutunu vererek ayarlamaya çalışın.

Test etmek için

 ping -c3 www.google.com

komutunu verdiğinizde size bir cevap vermesi gerekli. Eğer cevap gelirse, pdnsd rc.conf eklememiz lazım. Böylece Her açlışta çalışır

nano -w /etc/rc.conf

yazıp Daeomın kısmına, network'dan sonra pdnsd ekliyeyim, son hali şöyle:

DAEMONS=(syslog-ng !hotplug hwd !pcmcia network pdnsd netfs crond alsa dbus hal)

Pdns paketi resmi depolarda olmadığı için , paket hatalı yapılmış. Başlangıcta gerekli olan yetki alımıyor .Bu hatayı gidermek için ufar bir komut yeterli.Yoka açılışta Daemon çalışmaz.

chmod +x /etc/rc.d/pdnsd

Artık interneti hızlı bir şekilde gezmeye hazırsınız. Sayfalar sizin dns sunucunuzdan yükleneceği için arada çok büyük fark olduğunu göreceksiniz.

Dahili Bağlantılar

Lapis Wiki Başlığı

Konu Ile Ilgili Fikirlerinizi paylaşmak için

Harici Bağlantılar

http://www.phys.uu.nl/%7Erombouts/pdnsd.html

http://www.phys.uu.nl/~rombouts/pdnsd.html