Instalasi BIND
Anda bisa mendapatkan softare BIND yang paling baru dari website resmi ISC dengan alamat http://www.isc.org/products/BIND. Ketika tulisan ini dibuat versi calon rils (release candidate/rc) yang paling baru adalah 9.2.2rc1 (dirilis pada tanggal 14 Agustus 2002) dan versi stable 9.2.1 (dirilis pada tanggal 1 Mei 2002). Kebetulan mesin yang digunakan untuk percobaan adalah menggunakan sistem operasi Linux dengan distro Redhat 7.2 (Enigma), tentu anda bisa menggunakan distro favorit anda yang lain :). Karena pada distro Redhat pada instalasi default sudah menyertakan BIND dalam format RPM, maka langkah pertama adalah menghapus software tersebut dari sistem. Jika anda tidak menggunakan Redhat ataupun tidak ada software BIND yang telah ada, anda bisa melewati langkah berikut ini (INGAT, jika ada BIND yang telah jalan dan anda ingin melakukan upgrade, silakan kreatif dengan membuat salinan atau backup terlebih dahulu) :
[root@wedus asfik]# for a in $(rpm -qa grep ^bind); do rpm -e --nodeps $a; done
[root@wedus asfik]# userdel -r named
[root@wedus asfik]# rm -rf /var/named
Diasumsikan anda terhubung ke internet dan terdapat utilitas wget untuk mendowload software dari ISC, jika anda telah mempunyai source BIND anda bisa melewati langkah berikut ini :
[root@wedus asfik]# wget ftp://ftp.isc.org/isc/bind9/9.2.2rc1/bind-9.2.2rc1.tar.gz
Kemudian kita mekarkan file source, melakukan kompilasi dan menambah user yang akan menjalakan BIND, pada proses make install akan terbentuk direktori /usr/local/named sebagai direktori utama dimana software ini disimpan :
[root@wedus asfik]# tar -xzvf bind-9.2.2rc1.tar.gz
[root@wedus asfik]# cd bind-9.2.2rc1
[root@wedus bind-9.2.2rc1]# ./configure --prefix=/usr/local/named
[root@wedus bind-9.2.2rc1]# make
[root@wedus bind-9.2.2rc1]# make install
[root@wedus bind-9.2.2rc1]# adduser -d /var/named -s /bin/false named
Ganti direktori ke home direktori user named serta mendownload file named.root yang berisi tentang informasi dari root-servers :
[root@wedus bind-9.2.2rc1]# cd /var/named
[root@wedus named]# wget ftp://internic.net/domain/named.root
Kemudian buat file untuk reverse PTR localhost (anda bisa menggunakan editor favorit anda, disini kita menggunakan vi) :
[root@wedus named]# vi db.127.0.0
Isi file db.127.0.0 adalah :
$TTL 86400
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
IN NS localhost.
1 IN PTR localhost.
Kemudian salin file db.127.0.0 ke alamat network IP anda (bisa IP intranet atau IP yang anda dapatkan dari ISP anda), disini dimisalkan network yang akan kita reverse adalah 10.126.24.0/24 dan IP 10.126.24.1 adalah IP dimana software BIND akan kita install :
[root@wedus named]# cp db.127.0.0 db.10.126.24
Kemudian buat file yang berisi tentang zone dari localhost :
[root@wedus named]# vi db.localhost
Isi dari file db.localhost adalah :
$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2003021500 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
Buat sebuah direktori untuk menyimpan file konfigurasi dari daemon program BIND :
[root@wedus named]# mkdir /usr/local/named/etc
Buat file /usr/local/named/etc/named.conf yang akan dijadikan sebagai file konfigurasi dari program BIND :
[root@wedus named]# vi /usr/local/named/etc/named.conf
Isi dari file /usr/local/named/etc/named.conf adalah :
options {
directory "/var/named";
allow-transfer { 10.126.24.2/32; };
pid-file "/var/named/named.pid";
};
logging {
category lame-servers { null; };
};
zone "." IN {
type hint;
file "named.root";
};
zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};
zone "24.126.10.in-addr.arpa" IN {
type master;
file "db.10.126.24";
};
Kemudian meng-generate file konfigurasi yang akan digunakan oleh program rndc, ingat hasil dari perintah rndc-confgen bisa jadi berbeda dengan apa yang ditampilkan disini :
[root@wedus named]# /usr/local/named/sbin/rndc-confgen
Kemudian copy-paste dari hasil perintah tersebut diatas mulai dari baris "# Start of rndc.conf" sampai dengan baris "# End of rndc.conf", simpan dengan nama file /usr/local/named/etc/rndc.conf . Kemudian copy-paste lagi dengan menghilangkan tanda "#", mulai dari baris "# key "rndc-key"..." sampai dengan baris yang hampir paling bawah diatas baris "# End of named.conf " yaitu sampai dengan baris "};" kemudian tambahkan pada file /usr/local/named/etc/named.conf . Sebagai contohnya adalah sebagai berikut ini, isi dari file /usr/local/named/etc/rndc.confmisalnya :
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
Sedangkan pada file /usr/local/named/etc/named.conf ditambahkan sebagai berikut :
key "rndc-key" {
algorithm hmac-md5;
secret "2LCJImnMimOwc1odWR6jfg==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Atau mungkin anda bisa menggunakan trik dibawah ini (tapi mungkin tidak selalu berhasil seperti yang anda harapkan, use it at your own risk :) ) :
[root@wedus named]# /usr/local/named/sbin/rndc-confgen > confgen.tmp
[root@wedus named]# grep -v "^#" confgen.tmp > /usr/local/named/etc/rndc.conf
[root@wedus named]# grep "^#" confgen.tmp sed 1,3d sed -e "s/\# //g" sed -e "s/End of named.conf//g" >> /usr/local/named/etc/named.conf
[root@wedus named]# rm -rf confgen.tmp
Kemudian langkah selanjutnya adalah mengubah kepemilikan home direktori dari user named, kemudian menjalankan daemon dari program BIND :
[root@wedus named]# chown -R named.named /var/named
[root@wedus named]# /usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf
Jika sukses anda bisa melihat pada file /var/log/messages pesan-pesan sebagai berikut :
[root@wedus named]# tail -f /var/log/messages
Feb 15 12:54:18 wedus named[25139]: starting BIND 9.2.2rc1 -u named -c /usr/local/named/etc/named.conf
Feb 15 12:54:18 wedus named[25139]: using 1 CPU
Feb 15 12:54:18 wedus named[25139]: loading configuration from '/usr/local/named/etc/named.conf'
Feb 15 12:54:18 wedus named[25139]: no IPv6 interfaces found
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface lo, 127.0.0.1#53
Feb 15 12:54:18 wedus named[25139]: listening on IPv4 interface eth0, 10.126.24.1#53
Feb 15 12:54:18 wedus named[25139]: command channel listening on 127.0.0.1#953
Feb 15 12:54:18 wedus named[25139]: zone 24.126.10.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: zone localhost/IN: loaded serial 2003021500
Feb 15 12:54:18 wedus named[25139]: running
Untuk mengaktifkan daemon BIND setiap kali komputer direstar, tambahkan perintah "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" pada file rc.local didistro kesayangan anda. Jika anda menggunakan Redhat file rc.local terdapat pada direktori /etc, misalnya :
[root@wedus named]# echo "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" >> /etc/rc.local
Kemudian kita set resolver agar menggunakan name server localhost:
[root@wedus named]# echo "nameserver 127.0.0.1" > /etc/resolv.conf
Testing query menggunakan name server localhost dengan perintah host :
[root@wedus named]# host 127.0.0.1
1.0.0.127.in-addr.arpa domain name pointer localhost.
[root@wedus named]# host localhost
localhost has address 127.0.0.1
Atau dengan menggunakan perintah dig :
[root@wedus named]# dig -x 127.0.0.1
; <<>> DiG 9.2.2rc1 <<>> -x 127.0.0.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64212
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 86400 IN PTR localhost.
;; AUTHORITY SECTION:
0.0.127.in-addr.arpa. 86400 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 86400 IN A 127.0.0.1
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Feb 15 13:58:48 2003
;; MSG SIZE rcvd: 93
Jika anda tersambung ke internet anda bisa mencoba untuk query ke suatu host misalnya :
[root@wedus named]# host www.its-sby.edu
www.its-sby.edu is an alias for ns2.its-sby.edu.
ns2.its-sby.edu has address 202.155.84.179
Anda juga bisa mengeset client anda untuk menggunakan name server yang baru saja anda konfigurasi untuk melayani query. Untuk sistem operasi Windows 2000 Server (tm) adalah sebagai berikut : klik kanan pada "My Network Places" pilih "Properties", klik kanan pada "Local Area Connection" pilih "Properties", pilih pada "Internet Protocol (TCP/IP)" klik "Properties", klik radio button pada "Use the following DNS server addresses", isikan pada "Preferred DNS server" alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan IPnya adalah 10.126.24.1 . Untuk sistem operasi Windows98 (tm) adalah : dari menu "Start" klik "Settings", klik pada "Control Panel", klik pada "Network" klik pada "TCP/IP" pilih "Properties", pilih pada tabulasi "DNS Configuration" pilih pada "Enable DNS", kemudian pada "DNS Server Search Order" isikan alamat IP dimana server DNS/BIND anda tersebut diinstall, disini diumpamakan 10.126.24.1
Sampai pada langkah ini anda telah mengkonfigurasi BIND sebagai "caching only name server" yang akan menjawab semua query DNS dan mengingat-ingat record tersebut ketika anda melakukan query pada suatu record DNS yang sama. Hal ini mungkin akan membantu anda memperpendek waktu yang anda butuhkan untuk mengqueri suatu record jika anda berada pada koneksi internet yang pas-pasan :) (misalnya dialup atau kabel modem).
Jika anda terhubung ke sebuah ISP dan ingin membagi beban querydari client anda yang menuju ke server anda dengan server DNS ISP anda, maka anda bisa menggunakan opsi forwarder. Misalkan DNS server ISP anda mempunyai IP 10.11.12.1 dan 10.11.12.2 maka di file named.confpada seksi options, bisa anda tambahkan :
forward first;
forwarders {
10.11.12.1;
10.11.12.2;
};

