Welcome to Kelompok Linux Arek Suroboyo
Search  
Just Reminder....
Sudahkah anda ngoprek hari ini ? Sudahlah anda mengecek system anda ? Sudahkah anda menerima update informasi hari ini ?

Menu Utama
· Home
· Pustaka
· FAQ
· Berita
· Kirim Artikel
· Daftar Anggota
· Pencarian
· Statistik Site
· Top List
· Web Links
· Account Anda
· Logout

User On Line Saat Ini
We have 2 guests and 0 members online

You are an anonymous user. You can register for free by clicking here


  
DNS Server dengan djbdns
Posted by: Admin on Oct 29, 2002 - 11:10 PM
Manual 
DNS Server dengan djbdns
Kenapa dipilih djbdns? karena djbdns mudah :-), keamanan baik, resource kecil, dan stabil (reliability baik), dan saya "muak" dengan BIND hihihihi.. :-)
karena saya juga sudah jatuh cinta dari dulu sama semua program buatan DJB
Links dokumentasi di
  • author of djbdns
  • people contribution atau
  • BIND2djbdns howto(?)
  • UNIX manual dari djbdns (adajuga manual ucspi-tcp dan daemontools) di sini
  • Lihat grafik ns record http://www.foobar.tm/dns/dnsbajaj.cgi


  • I. DNS Internal & Eksternal Cache Server
    Permintaan resolving DNS dari localhost yang diminta oleh berbagai program
    seperti MTA (Mail Tranfer Agent) ataupun browser dll, dikirimkan ke host
    lain yang tertera pada baris nameserver pada file /etc/resolv.conf
    yang kemudian server tsb mencari di cache-nya tau meminta pada server DNS.

    Nah sekarang kita ingin query DNS dari localhost ini ditangani oleh server
    kita sendiri (internal cache). Dan karena kita punya jaringan lain, kita
    juga ingin cache DNS ini bisa digunakan oleh komputer di jaringan kita
    (eksternal cache).

    Cara nginstal djbdns buat internal/eksternal chache di Linux/FreeBSD
    gampang koq, gini:

    Ambil paket2 semua program dari DJB yang diperlukan yaitu: djbdns,
    daemontools.Jika menginginkan menggunakan axfrdns atau axfr-get perlu juga
    paket ucspi-tcp. Untuk kasus sebagai eksternal/internal cache paket ucspi-tcp
    gak perlu.

    TIPS :
    Daemontools juga sebenarnya tidak wajib, anda bisa juga menjalankan
    djbdns tanpa daemontool langsung saja kasih perintah `/service/tinydns/run &

    Paket-paket bisa didapatkan di:

    http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
    http://cr.yp.to/daemontools/daemontools-0.70.tar.gz
    http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

    Lalu ekstrak paket dan install semuanya:

    tar zxvf daemontools-0.70.tar.gz
    ( cd daemontools-0.70; make setup check )
    tar zxvf djbdns-1.05.tar.gz
    ( cd djbdns-1.05; make setup check )
    tar zxvf ucspi-tcp-0.88.tar.gz
    ( cd ucspi-tcp-0.88; make setup check )

    abis itu buat account user untuk program ini yaitu dnslog dan dnscache

    useradd -g nogroup -s /bin/false dnscache
    useradd -g nogroup -s /bin/false tinydns
    useradd -g nogroup -s /bin/false axfrdns
    useradd -g nogroup -s /bin/false dnslog

    atau untuk FreeBSD

    pw useradd dnslog -g nofiles -s /nonexistent
    pw useradd dnscache -g nofiles -s /nonexistent
    pw useradd tinydns -g nofiles -s /nonexistent
    pw useradd axfrdns -g nofiles -s /nonexistent

    buat direktori /service untuk daemontools

    mkdir /service

    untuk internal cache buat file2 konfirusasi dan startup dengan perintah:

    dnscache-conf dnscache dnslog /etc/dnscache 127.0.0.1

    setelah itu untuk eksternal cache file2 di etc/dnscachex dengan perintah:


    dnscache-conf dnscache dnslog /etc/dnscachex 167.205.26.30

    dengan 167.205.26.30 adalah IP komputer yang akan dijadikan DNS cache
    yaitu IP komputer yang sedang diinstall.

    Lalu buat file /service/dnscache yang me-link ke /etc/dnscache dan file
    /service/dnscachex yang me-link ke /etc/dnscachex

    ln -s /etc/dnscache /service
    ln -s /etc/dnscachex /service

    File2 di /etc/dnscache atau /etc/dnscachex terdiri dari file2 startup
    bernama "run" yang akan dijalankan oleh supervise (yaitu terdiri dari
    file2 startup untuk program dnscache dan program logging), file2
    konfigurasi, file2 status dan file2 hasil proses logging.

    File log disimpan di direktori /etc/dnscache/log/main, jika ingin merubah
    letak direktori log misalnya menjadi di /var/log/dnscache maka buat
    direktori tsb lalu ubah tulisan "./main" menjadi "/var/log" di file
    /etc/dnscache/log/run. begitu pula untuk konfigurasi eksternal cache bisa
    diubah file /etc/dnscachex/log/run

    Agar cache bisa diakses dari remote misalnya untuk seluruh IP 172.16.*
    maka tambahkan:

    touch /etc/dnscachex/root/ip/172.16

    TIPS:
    misalkan kita ingin DNS cache kita bisa diakses oleh range IP 167.205.26.65-125
    gunakan perintah

    touch 167.205.26.65
    for X in `awk 'BEGIN { for( i=65; i<=125; i++ ) print i }'`
    do
    ln 10.2.3.64 10.2.3.$X
    done

    dengan script tersebut kita mempercepat membuat file, dan mengirit inode
    yang digunakan karena kita menggunakan file link instead of file kosong
    hasil buatan dari perintah `touch`

    Maaf saya selalu menggunakan "instead of" karena saya kira bhs. indonesia
    tidak punya kata yang seperti itu hehehe... :-)
    --

    Jadi semua konfigurasi IP yang boleh menggunakan server ini sebagai cache
    ada di /etc/dnscachex/root/ip/

    Jika diinginkan eksternal DNS cache ini digunakan oleh siapa saja
    (public) maka diperlukan patch yang bisa diambil di:

    http://www.ohse.de/uwe/patches/dnscache-0.61.okclient.patch

    SELESAI installasi kita.

    Nah untuk menjalankan sebelumnya matiin dulu BIND/named-nya (kalo
    ada) lalu beri perintah `svscan /service &`
    Sekarang coba ubah IP nameserver pada file /etc/resolv.conf dengan
    172.0.0.1 (internal cache) atau 167.205.26.30 (eksternal cache), lalu
    coba test dengan `nslookup` suatu domain dan coba sekali lagi (nslookup
    yang kedua seharusnya lebih cepat karena server tinggal mengambil dari
    cache saja tidak memforward query ke DNS server).

    Agar jalan setiap saat server booting tambahkan ke file /etc/inittab
    seperti ini:

    echo "SV:123456:respawn:env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin svscan /service /dev/console 2>/dev/console" >> /etc/inittab

    atau pada FreeBSD bisa ditambahkan pada file /etc/rc.local

    echo "env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin csh -cf 'svscan /service &'" >> /etc/rc.local

    Catatan:
    Dalam djbdns file root zone beradi di /etc/dnscachex/root/servers/@
    Untuk root zone terbaru bisa diambil di sini Silahakan ambil
    IP-IP nya untuk dimasukan ke file @ tersebut.

    -- Jika resolving domain misalnya bego.com (*.bego.com) ingin di set ke DNS
    server 1.2.3.5 atau dengan kata lain server kita bertindak sebagai forwarder
    zone untuk domain bego.com ke NS dengan IP 1.2.3.5, tinggal kasih perintah

    `echo 1.2.3.5 > /etc/dnscachex/root/servers/bego.com`

    lalu restart dnscache dengan `svc -t /etc/dnscachex`.

    -- Jika diinginkan server hanya sebagai DNS forwarder tanpa meng-cache
    berikan perintah:

    echo 1 > /service/dnscache/env/FORWARDONLY

    GAMPANG TERNYATA..

    ..dan djbns ini lebih mudah maintainance-nya dibanding BIND karena gak
    perlu edit2 file :-) terbukti pada saat istallasi pun kita tidak perlu
    membuka file untuk mengeditnya.

    Pusing ah terlalu banyak penjelasan

    Baiklah untuk melihat betapa mudahnya menginstal djbdn untuk DNS cache server
    dibawah ini adalah script yang mendownload dan menginstal langsung djbdns
    dibuat oleh: Doobe R. Tzeck


    #!/bin/sh
    # Time-stamp: <>

    # Quick and dirty dnscache setup for people which don't really care.
    # it downloads and installs djbdns and daemontools and sets up
    # dnscache to run under supervise on 127.0.0.1. Hacked by
    # drt@un.bewaff.net.

    # Location of your local startup-script. You probably have to change
    # this.

    # BSD
    RCLOCAL=/etc/rc.local

    # RedHat
    #RCLOCAL=/etc/rc.d/rc.local

    # UID to runn the server
    SVRUID=daemon
    LOGUID=daemon

    cd /tmp
    wget http://cr.yp.to/djbdns/djbdns-1.02.tar.gz
    tar xzvf djbdns-1.02.tar.gz
    cd djbdns-1.02
    make setup
    cd ..
    wget http://cr.yp.to/daemontools/daemontools-0.70.tar.gz
    tar xzvf daemontools-0.70.tar.gz
    cd daemontools-0.70
    make setup
    rm -Rf daemontools-0.70* djbdns-1.02*
    mkdir /var/service
    /usr/local/bin/dnscache-conf $LOGUID $SVRUID /var/service/dnscache
    mkdir /service
    chmod 755 /service
    echo "2>&1 env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin csh -cf 'svscan /service &'" >> $RCLOCAL
    ln -sv /var/service/dnscache /service
    echo "nameserver 127.0.0.1" > /tmp/r.c
    cat /etc/resolv.conf >> tmp/r.c
    mv /tmp/r.c /etc/resolv.conf




    II. Men-setup NS atau Authoritative DNS Server

    1. Setup primary NS

    misal kita ingin membuat Authoritative DNS Server, dengan

    ns1.tf.itb.ac.id (167.205.26.30) sebagai primary NS
    ns2.tf.itb.ac.id (167.205.26.1) sebagai secondary NS

    Pertama jangan lupa menginstal uscpi-tcp dan buat user dengan nama tinydns dan axfrdns
    seperti sudah dijelaskan diatas, lalu buat direktori konfigurasi /etc/tinydns
    dengan perintah:

    tinydns-conf tinydns dnslog /etc/tinydns 167.205.26.30

    dengan 167.205.26.30 adalah IP adalah primary IP yang terdaftar sebagai NS
    Sekarang kita akan mengeset tinydns agar menjawab semua permintaan host
    pada domain tf.itb.ac.id dan domain 26.205.167.in-addr.arpa (reverse domain 167.205.26.*)

    cd /service/tinydns/root
    ./add-ns tf.itb.ac.id 167.205.26.30
    ./add-ns 26.205.167.in-addr.arpa 167.205.26.30
    make

    Setelah itu buatlah direktori service untuk axfr dengan perintah berikut:

    axfrdns-conf axfrdns dnslog /etc/axfrdns /etc/tinydns 167.205.26.30

    Lalu ubah file konfigurasi yang membolehkan server lain (secondary NS server)
    untuk melakukan zone transfer yaitu file /etc/axfrdns/tcp

    INFO:
    tranfer zone adalah "peng-copy-an" informasi sebuah host secara remote dari
    suatu primary/server NS ke secondary/slave NS.
    ---

    167.205.26.1:allow
    167.205.22.123:allow
    167.205.26.:allow
    202.27.34.159:allow,AXFR="beleguk.com/3.2.1.in-addr.arpa"
    :allow,AXFR=""

    [1] baris pertama adalah untuk membolehkan secondary NS (ns2.itb.ac.id)
    melakukan zone tranfer

    [2] baris kedua adalah untuk membolehkan NS lain (secondary NS kedua)
    dalam hal ini server dengan IP 167.205.22.123,

    [3] baris ketiga adalah untuk meng-allow dari semua host dengan IP 167.205.26.*

    [4] baris kelima adalah membolehkan DNS server dengan IP 202.27.34.159
    untuk zone tranfer domain beleguk.com dan reverse DNS IP 1.2.3.*
    atau dengan kata lain zone tranfer domain 3.2.1.in-addr.arpa

    [5] yang terakhir adalah untuk meng-allow koneksi TCP yang non-zone-transfer
    dari mana pun.

    jika menginkan pembolehan koneksi tsb menggunakan nama host instead of IP
    gunakan sepeti contoh ini:

    =ns2.tf.itb.ac.id:allow

    Kompile konfigurasi tcp tersebut menjadi file dalam format binary

    make

    SELESAI..instalasi kita.
    Jalankan NS server kita dengan membuat link berikut:

    ln -s /etc/tinydns /service
    ln -s /etc/axfrdns /service

    asumsi svscan sudah jalan jika belum jalankan dengan perintah `svscan /service &`

    --Menambah Host Baru--
    untuk menambah host baru pada domain tf.itb.ac.id, misalnya kita ingin mengeset
    host bernama indi dengan IP 167.205.26.12 dan project dengan IP 167.205.26.27
    gunakan perintah

    cd /service/tinydns/root
    ./add-host indi.tf.itb.ac.id 167.205.26.12
    ./add-host project.tf.itb.ac.id 167.205.25.27
    make

    atau bisa juga dengan mengedit langsung file /service/tinydns/root/data
    dan menambahkan baris ini:

    =indi.tf.itb.ac.id:167.205.26.12
    =project.tf.itb.ac.id:167.205.25.27

    tapi jelas lebih aman jika menggunakan perintah `add-host`

    --Menambahkan suatu host domain lain--
    Misalkan kita akan meng-setup domain keripik.org yang mempunya nameserver2
    sebagai berikut

    ns1.keripik.org (167.205.26.30)
    ns2.keripik.org (167.205.26.1)
    ns3.keripik.org (202.12.63.101)

    Disini IP 167.205.26.30 masih sebagai ns1.tf.itb.ac.id dan 167.205.26.1
    sebagai ns2.tf.itb.ac.id jadi ns1.keripik.org dan ns2.keripik.org adalah
    virtual domain dari IP-IP tersebut.
    Kita akan setup di 167.205.26.30 sbb:

    cd /etc/tinydns
    ./add-host ns1.keripik.org 167.205.26.30
    ./add-host ns2.keripik.org 167.205.26.1
    ./add-ns keripik.org 167.205.26.30
    ./add-ns keripik.org 167.205.26.1
    ./add-ns keripik.org 202.12.63.101
    ./add-ns 3.2.1.in-addr.arpa 167.205.26.30

    ./add-host satu.keripik.org 1.2.3.100
    ./add-host dua.keripik.org 1.2.3.200
    ./add-alias www.keripik.org 1.2.3.100
    ./add-alias mail.keripik.org 1.2.3.200
    ./add-mx keripik.org 1.2.3.100
    make

    Tinydns akan menamakan mailserver a.mx.example.com secara default.
    perintah add-alias adalah untuk menambahkan alias domain dari suatu host
    sedangkan add-mx adalah untuk menambahkan MX server dari domain tsb.

    Hmm.. jangan mengharapkan ada perintah `add-cname` ya. record CNAME masih
    bisa dihandle di djbns tapi sangat dihindarkan oleh pembuatnya, tau kenapa?
    Hasil pengalaman saya sih tuh record suka malah bikin kesalahan.
    Wah BIND emang nyebelin deeehh... kurang satu titik aja bikin mampus hehehe..
    Kalo mau bikin cname edit langsung aja file /service/tinydns/root/data

    UNTUK contoh ini nanti diterusin lagi ya, laper banet nih gua.. sehari gak makan :-)

    2. Setup Secondary NS

    Hampir sama dengan setup primary NS, cuma ...

    3. Setup NS untuk jaringan LAN

    Jika kita ingin memberi nama domain pada jaringan local kita, dan tentu saja
    hanya dikenali oleh jaringan kita itu, maka kita bisa mengeset DNS server
    untuk itu

    Misalkan domain pada LAN kita akan kita set jadi dodol.net yang membawahi
    IP 172.*
    Pertama set dulu server kita sebagai eksternal cache dari network 172.*

    touch /etc/dnscachex/root/ip/172

    setelah itu set agar setiap pencarian domain dodol.net dilakukan hanya ke
    komputer local (127.0.0.1) begitu juga untuk revers domain 172.* atau
    172.in-addr.arpa

    echo 127.0.0.1 > /etc/dnscachex/root/servers/dodol.net
    echo 127.0.0.1 > /etc/dnscachex/root/servers/172.in-addr.arpa

    sekarang setup name server untuk local/internal domain kita, kita akan simpan
    konfigurasi dan log file di direktori /etc/dnscachex/tinydns-mylan

    tinydns-conf tinydns dnslog /etc/dnscachex/tinydns-mylan 127.0.0.1
    ln -sf /etc/dnscachex/tinydns-mylan /service/tinydns-mylan

    set internal name server kita:

    cd /etc/dnscachex/tinydns-mylan/root
    ./add-ns dodol.net 127.0.0.1
    ./add-ns 172.in-addr.arpa 127.0.0.1
    ./add-host bego.dodol.net 172.16.0.30
    ./add-host bloon.dodol.net 172.16.0.31
    make
    svc -t /service/*

    III. Peraawatan / Maintenance Server
    Update root zone (minimal sebulan sekali)

    tcpclient 199.166.24.1 53 axfr-get . /etc/rootdns/root/root.orsc /etc/rootdns/root/root.orsc.tmp

    Kita bisa menggunakan local root server untuk dipergunakan oleh dnscache, dengan cara:

    cp /etc/dnscache/root/@ /etc/dnscache/root/@.original
    echo 167.205.26.30 > /etc/dnscache/root/@
    svc -du /service/dnscache

    Jika anda pusing dengan zone file tinydns (tinydns-data) yang memang simpel tapi mungkin
    susah diingat daripada daripada zone file-nya BIND, nah tabel ini bisa dipergunakan:

    djbdns Artinya
    -------------------------------------------------------------------------------
    . SOA, NS, A
    & NS, A
    @ MX, A
    = PTR, A
    + A
    ' TXT
    ^ PTR
    C CNAME
    Z SOA
    % (client location conditional expression, does not create any records)
    # (comment, does not create any records)
    - (used to temporarily disable A records, does not create any records)
    : User-defined
    6 AAAA, PTR
    3 AAAA



    udah dulu ahh..capek ;-)
    btw, kalau ada kesalahan dalam tulisan ini, jangan segan2 untuk
    ngasih tau ke ..



    eryan12@yahoo.com
    http://eryan.dhs.org



    Note: versi asli artikel ini dapat di lihat pada http://paucits.itb.ac.id/~eryan/eryandhsorg/Linux/InstallDJBDNS.html

     
    Login
     Username
     Password
     Remember me


    Don't have an account yet? You can create one. As a registered user you have some advantages like a theme manager, comments configuration and posting comments with your name.

    Related links
    · More about Manual, Dokumentasi, dan Tips Linux
    · News by Admin


    Most read story in Manual, Dokumentasi, dan Tips Linux:
    Instalasi Webmail Server Sederhana Dengan Qmail + Sqwebmail


    DNS Server dengan djbdns | Login/Create an account | 0 Comments
    Threshold
    Comments are owned by the poster. We aren't responsible for their content.
    Bergabung dalam Milis KLAS ? Kirimkan email kosong ke alamat : klas-talk-subscribe@regex.com
    Resiko ditanggung penumpang. Webmaster tidak bertanggung jawab atas kerusakan-kerusakan apapun yang mungkin timbul yang disebabkan oleh informasi-informasi yang anda dapatkan dari homepage ini. Homepage ini akan berkembang sejalan dengan waktu. Jika anda punya saran, kritik, sumbangan, flame - silahkan kirim email ke milis info@klas.regex.com
    Masyarakat Digital Gotong Royong Surabaya
    Kelompok Linux Arek Suroboyo
    'Ngene' Ae Koq Repot