Coba Anda perhatikan alamat-alamat dibawah ini:
216.239.61.104
209.131.36.158
Apakah Anda mengenali alamat-alamat yang tertera di atas itu dan ketika Anda menuliskan alamat berupa angka itu di URL Browser apakah yang akan terjadi, pastinya Anda akan diarahkan ke suatu situs. Jika suatu saat Anda diminta kembali untuk membuka situs tersebut apakah Anda masih mengingat alamatnya?
Jika saya menuliskan alamat-alamat di atas dalam bentuk seperti:
216.239.61.104 = www.google.com
209.131.36.158 = www.yahoo.com
Tentunya Anda akan lebih mudah mengingat situs-situs tersebut dibandingkan harus menghafal alamat berdasarkan IP. Kita tidak perlu mengetahui penamaan asli berbasis angka (alamat IP) tetapi cukup dengan nama atau istilah yang dipahami oleh kita. Anda bisa bayangkan betapa rumitnya jika harus menghafal nama-nama mesin dalam jaringan dalam bentuk angka.
Pada jaringan internet, sebagaimana Anda pahami sampai saat ini, sebetulnya pengalamatan sebuah komputer menggunakan angka yang dikenal sebagai Internet Protocol (IP) Address yang terdiri dari 32 bit bilangan biner. Tentunya akan sukar bagi kita / user untuk mengingat sekian juta komputer di seluruh Internet dengan pengalamatan angka sebagaimana dijelaskan di atas. Untuk itu dikembangkan penamaan mesin yang lebih manusiawi menggunakan konsep Domain Name System (DNS).
DNS adalah salah satu jenis sistem yang melayani permintaan pemetaan IP Address ke FQDN (Fully Qualified Domain Name) dan FQDN ke IP Address. FQDN lebih mudah untuk diingat oleh manusia daripada IP Address. Tidak semua orang bisa menghafalkan 216.239.61.104, dan akan lebih mudah jika menghafalkan www.google.com.
DNS ditemukan oleh Paul Mocapetris pada tahun 1983. Spesifikasi asli muncul di RFC 882 dan 883. Tahun 1987 penerbitan RFC 1034 dan RFC 1035 membuat update terhadap spesifikasi DNS. Tentunya RFC 882 dan RFC 883 tidak berlaku lagi.
Jadi siapa yang memerlukan DNS? Tentunya Anda sebagai pengakses internet, tetapi sebagai pengakses internet tidak perlu membuat DNS Server, karena bisa menggunakan DNS server yang disediakan oleh ISP. Pengguna DNS selanjutnya tentu saja adalah ISP, dan mereka yang mengelola domain dan webserver.
Sebagai contoh, ketika Anda memasukkan alamat http://www.google.com, sebenarnya ada beberapa proses yang dilalui hingga halaman web ditampilkan di Web Browser Anda. Pada saat Anda memasukkan alamat tersebut, terlebih dahulu nama alamat akan dikirimkan ke DNS Server yang menangani host dan domain alamat tersebut untuk mencari berapa sebenarnya alat IP yang digunakan (Anda ingat, semua komputer di internet menggunakan IP Address untuk berkomunikasi dan bukan nama). Setelah menemukan alamat IP barulah kemudian halaman website yang diminta dikirim ke Web Browser.
Pada sistem operasi Linux, DNS diimplementasikan dengan menggunakan software Berkeley Internet Name Domain (BIND), BIND ini memiliki dua sisi, yaitu sisi client dan sisi server. Sisi client disebut resolver. Resolver ini bertugas membangkitkan pertanyaan mengenai informasi domain name yang dikirimkan kepada sisi server. Sisi server BIND ini adalah sebuah daemon yang disebut named (baca: name di). Ia yang akan menjawab query-query dari resolver yang diberikan kepadanya.
Bagaimana dengan Linux Slackware 12.2 sendiri? Secara default BIND sudah terinstall di mesin Slackware Anda, yakni bind9.
root@server-smkn3tkj:/# ls /var/log/packages/ |grep bind
bind-9.4.2_P2-i486-1
kdebindings-3.5.10-i486-2
Anda lihat bahwa di mesin kita telah terinstal paket bind-9.4.2_P2-i486-1. Ada beberapa file-file instalasi default yang berkaitan dengan ini, yakni:
var/named/caching-example/named.ca
var/named/caching-example/named.local
var/named/caching-example/localhost.zone
etc/rc.d/rc.bind
etc/named.conf
Tiga file awal adalah contoh dari konfigurasi bind9, file selanjutnya adalah init script (rc.bind) dan konfigurasi dari bind (named.conf). Untuk setting BIND ini, file-file yang harus Anda perhatikan adalah:
-
/etc/resolv.conf
Berisi alamat Domain atau alamat IP dari name server.
-
/etc/named.conf
Berisi keterangan letak dan jenis databases yang dibutuhkan oleh BIND
-
/var/named/named.ca
Berisi informasi data yang berada dalam domain root, yang akan dipergunakan name server jika ada resolver yang akan meminta nama domain diluar nama domain lokal.
-
/var/named/named.local
Berisi alamat loopback untuk alamat ke diri sendiri dengan alamat 127.0.0.1
Persiapan Setting Domain Baru
Untuk memudahkan pemahaman setting DNS Server, Anda akan diajak membuat domain baru untuk DNS server, mail server, FTP Server, HTTP Server sekaligus dengan data sebagai berikut:
- Hostname : ns1
- Nama Domain : tkj-smk3bgr.net
- Nama DNS Server : ns1.tkj-smk3bgr.net
- IP DNS : 192.168.1.21
- Nama Mail Server : mail.tkj-smk3bgr.net
- Nama HTTP Server : www.tkj-smk3bgr.net
- Nama FTP Server : ftp.tkj-smk3bgr.net
Perhatikan! Karena kita menggunakan IP Address yang sama untuk DNS, Mail, HTTP, FTP Server, maka kita akan menggunakan record CNAME (nama alias) dengan mendefinisikan ns1.tkj-smk3bgr.net mempunyai nama alias mail.tkj-smk3bgr.net, ftp.tkj-smk3bgr.net, www.tkj-smk3bgr.net.
Mengedit File /etc/named.conf
File ini merupakan konfigurasi utama untuk bind. File ini merupakan kumpulan statemen-statemen yang nilainya kita tentukan sesuai dengan DNS seperti apa yang kita inginkan. Berikut ini adalah isi file /etc/named.conf bawaan di slackware 12.2:
options {
directory “/var/named”;
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
zone “.” IN {
type hint;
file “caching-example/named.root”;
};
zone “localhost” IN {
type master;
file “caching-example/localhost.zone”;
allow-update { none; };
};
zone “0.0.127.in-addr.arpa” IN {
type master;
file “caching-example/named.local”;
allow-update { none; };
};
1. Blok Pertama
options {
directory “/var/named”;
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
Blok ini merupakan global seting dari bind, direktory “/var/named” adalah direktori kerja dari bind, di direktori tersebut ditempatkan file-file konfigurasi domain yang biasa disebut zone (Perintah zone digunakan untuk menunjukkan domain yang dilayani oleh name server). Tidak disarankan untuk mengutak-atik blok ini kecuali Anda tahu apa yang Anda kerjakan. Baris ini memberitahukan kepada Server BIND dimana file-file zona disimpan.
2. Blok Kedua
zone “.” IN {
type hint;
file “caching-example/named.root”;
};
Blok ini merupakan blok root zone atau kasarnya alamat-alamat dari domain-domain international. Kita membutuhkan blok root zone ini.
3. Blok Ketiga
zone “localhost” IN {
type master;
file “caching-example/localhost.zone”;
allow-update { none; };
};
Blok ini adalah forward localhost, dalam artian jika dns server mendapatkan perintah untuk mengetahui alamat ip dari localhost maka bagian blok ini yang mengurusnya. Dengan kata lain yang berhak mengontrol server named adalah localhost.
4. Blok Keempat adalah Blok Tambahan
zone “0.0.127.in-addr.arpa” IN {
type master;
file “caching-example/named.local”;
allow-update { none; };
};
Baris-baris dibawah ini menyatakan bahwa kita akan mendefinisikan DNS server sebagai Primary Name Server untuk domain tkj-smk3bgr.net dan file-file forward adalah nama file yang merupakan zona file dari domain tkj-smk3bgr.net. Ini nama domain Anda yang di daftarkan di /etc/named.conf.
#Baris diatas untuk menterjemahkan FQDN ke IP Address (Forward Zone) dengan domain tkj-smk3bgr.net.
zone “tkj-smk3bgr.net” IN {
type master;
file “caching-example/db.tkj.smk3bgr”;
allow-update { none; };
};
Baris-baris dibawah ini adalah berisi reverse DNS Zone. Ini diperlukan agar DNS Server Anda dapat menterjemahkan dari nomor IP Address ke mana host pemilik IP Address dalam jaringan.
#Baris untuk menterjemahkan IP Address ke FQDN
#reverse Zone
zone “1.168.192.in-addr.arpa” IN {
type master;
file “caching-example/db.192.168.1″;
allow-update { none; };
};
#Setelah konfigurasi file named.conf jangan lupa untuk melakukan konfigurasi file zone.
Seting zone-file tkj-smk3bgr.net
Berikutnya adalah mengkonfigurasi Primary Name Server untuk Domain tkj-smk3bgr.net pada host ns1.tkj-smk3bgr.net dengan IP Address 192.168.1.21. Berdasarkan pada file /etc/named.conf kita akan membuat file sebagaimana yang didefinisikan pada file /etc/named.conf kita akan membuat file sebagaimana yang didefinisikan pada file /etc/named.conf file tersebut bernama “db.tkj.smk3bgr” dan reversenya “db.192.168.1”.
root@server-smkn3tkj:/var/named/caching-example# ls
localhost.zone named.ca named.local named.root
Anda tinggal merename localhost.zone dengan db.tkj.smk3bgr dan named.local dengan db.192.168.1 Caranya seperti ini:
root@server-smkn3tkj:/var/named/caching-example# cp localhost.zone db.tkj.smk3bgr
root@server-smkn3tkj:/var/named/caching-example# cp named.local db.192.168.1
root@server-smkn3tkj:/var/named/caching-example# ls
db.192.168.1 db.tkj.smk3bgr localhost.zone named.ca named.local named.root
Setting zona file db.tkj.smk3bgr
Setelah Anda mempunyai zona file dengan nama db.192.168.1 dan db.tkj.smk3bgr yang pada /var/named/caching-example. Langkah berikut adalah mengkonfigurasikan name server untuk domain tkj-smk3bgr.net pada host ns1.tkj-smk3bgr.net pada IP Address 192.168.1.21 sebagai berikutt
root@server-smkn3tkj:/var/named/caching-example# mcedit db.tkj.smk3bgr
$TTL 86400
$ORIGIN tkj-smk3bgr.net.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
1D IN NS ns1.tkj-smk3bgr.net.
1D IN A 192.168.1.21
IN MX 10 mail.tkj-smk3bgr.net
ns1 IN A 192.168.1.21
www IN CNAME ns1
ftp IN CNAME ns1
mail IN CNAME ns1
Penjelasan:
-
TTL (Time To Live) yang mendefinisikan waktu lamanya data berada dalam database.
-
SOA (Start of Authority) mendefinisikan hostname yang merupakan awal dari suatu zone.
-
42;serial: merupakan nomor serial dari zone file yang akan bertambah jika ada perubahan data.
-
3H;refresh: merupakan selang waktu yang diperlukan secondary name server untuk memeriksa perubahan pada Primary Name Server.
-
15M;retry: merupakan selang waktu secondary name server untuk mengulang pengecekan pada primary name server.
-
IN NS ns1.tkj-smk3bgr.net: mendefinisikan bahwan hostname ns1.tkj-smk3bgr.net yang memegang tanggung jawab terhadap domain tkj-smk3bgr.net.
-
IN MX 10 mail.tkj-smk3bgr.net mendefinisikan bahwa hostname mail.tkj-smk3bgr.net sebagai mail server pada domain tkj-smk3bgr.net.
-
IN A 192.168.1.21: mendefinisikan bahwa hostname ns1.tkj-smk3bgr.net mempunyai IP Address 192.168.1.21.
-
www NS CNAME ns1 mendefinisikan bahwa hostname ns1.tkj-smk3bgr.net mempunyai nama alias www.tkj-smk3bgr.net.
-
ftp NS CNAME ns1 mendefinisikan bahwa hostname ns1.tkj-smk3bgr.net mempunyai nama alias ftp.tkj-smk3bgr.net.
-
mail NS CNAME ns1 mendefinisikan bahwa hostname ns1.tkj-smk3bgr.net mempunyai nama alias mail.tkj-smk3bgr.net.
root@server-smkn3tkj:/var/named/caching-example# mcedit db.192.168.1
$TTL 86400
@ IN SOA tkj-smk3bgr.net. root.tkj-smk3bgr.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS tkj-tkj-smk3bgr.net.
21 IN PTR tkj-tkj-smk3bgr.net.
Penjelasan:
-
Penjelasan yang lain sama dengan penjelasan pada bagian tkj-smk3bgr.net
-
IN PTR tkj-smk3bgr.net mendefinisikan bahwa hostname ns1.tkj-smk3bgr.net mempunyai IP Address 192.168.1.21
Menjalankan dan test Domain
Mengubah hak akses file rc.bind agar service bind bisa di eksekusi
root@server-smkn3tkj:/# chmod 755 /etc/rc.d/rc.bind
Anda juga bisa menggunaka perintah chmod +x /etc/rc.d/rc.bind
Perintah untuk menjalan service bind
root@server-smkn3tkj:/# etc/rc.d/rc.bind start
Perintah untuk mematikan service bind
root@server-smkn3tkj:/# /etc/rc.d/rc.bind stop
Perintah untuk merestart service bind
root@server-smkn3tkj:/# /etc/rc.d/rc.bind stop
Setelah perintah service bind dijalankan jangan lupa untuk melakukan pengecekan terhadap konfigurasi DNS yang kita bangun dengan perintah nslookup [DNS_server]. Jika terjadi pesan kesalahan seperti ini.
root@server-smkn3tkj:/# nslookup tkj-smk3bgr.net
Server: 202.134.0.155
Address: 202.134.0.155#53
** server can’t find tkj-smk3bgr.net: NXDOMAIN
Berarti nama DNSnya masih menggunakan DNS yang diberikan oleh speedy, jika komputer yang kita gunakan pernah dikoneksikan dengan internet. Untuk menyelesaikan masalah ini kita harus mengedit file resolv.conf pada direktori:
root@server-smkn3tkj:/# mcedit /etc/resolv.conf
nameserver 192.168.1.21
Maksud dari perintah di atas adalah memasukkan IP komputer kita menjadi nama server, karena DNS yang kita gunakan menggunakan IP 192.168.1.21. Setelah itu jika BIND berjalan baik Anda dapat melihat port 53 BIND dengan perintah dibawah ini:
root@server-smkn3tkj:/# nmap 192.168.1.21
Starting Nmap 4.76 ( http://nmap.org ) at 2009-03-03 15:03 WIT
Interesting ports on tkj-smk3bgr.net (192.168.1.21):
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
37/tcp open time
53/tcp open domain
113/tcp open auth
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
root@server-smkn3tkj:/#
root@server-smkn3tkj:/# host 192.168.1.21
21.1.168.192.in-addr.arpa domain name pointer tkj-smk3bgr.net.
root@server-smkn3tkj:/# host ns1.tkj-smk3bgr.net
ns1.tkj-smk3bgr.net has address 192.168.1.21
root@server-smkn3tkj:/# host -t ns tkj-smk3bgr.net
tkj-smk3bgr.net name server ns1.tkj-smk3bgr.net.tkj-smk3bgr.net.
root@server-smkn3tkj:/# host -t mx tkj-smk3bgr.net
tkj-smk3bgr.net mail is handled by 10 mail.tkj-smk3bgr.net.tkj-smk3bgr.net.
root@server-smkn3tkj:/# host -t cname www.tkj-smk3bgr.net
www.tkj-smk3bgr.net is an alias for ns1.tkj-smk3bgr.net.
root@server-smkn3tkj:/# host -t cname ftp.tkj-smk3bgr.net
ftp.tkj-smk3bgr.net is an alias for ns1.tkj-smk3bgr.net.
root@server-smkn3tkj:/# host -t cname mail.tkj-smk3bgr.net
mail.tkj-smk3bgr.net is an alias for ns1.tkj-smk3bgr.net.
root@server-smkn3tkj:/# dig ns1.tkj-smk3bgr.net
; <<>> DiG 9.4.2-P2 <<>> ns1.tkj-smk3bgr.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31865
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;ns1.tkj-smk3bgr.net. IN A
;; ANSWER SECTION:
ns1.tkj-smk3bgr.net. 86400 IN A 192.168.1.21
;; AUTHORITY SECTION:
tkj-smk3bgr.net. 86400 IN NS ns1.tkj-smk3bgr.net.tkj-smk3bgr.net.
;; Query time: 0 msec
;; SERVER: 192.168.1.21#53(192.168.1.21)
;; WHEN: Tue Mar 3 15:08:26 2009
;; MSG SIZE rcvd: 87
root@server-smkn3tkj:/#
root@server-smkn3tkj:/# nslookup -sil
> 192.168.1.21
Server: 192.168.1.21
Address: 192.168.1.21#53
21.1.168.192.in-addr.arpa name = tkj-smk3bgr.net.
>
root@server-smkn3tkj:/# dig -t MX tkj-smk3bgr.net
; <<>> DiG 9.4.2-P2 <<>> -t MX tkj-smk3bgr.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33530
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;tkj-smk3bgr.net. IN MX
;; ANSWER SECTION:
tkj-smk3bgr.net. 86400 IN MX 10 mail.tkj-smk3bgr.net.tkj-smk3bgr.net.
;; AUTHORITY SECTION:
tkj-smk3bgr.net. 86400 IN NS ns1.tkj-smk3bgr.net.tkj-smk3bgr.net.
;; Query time: 1 msec
;; SERVER: 192.168.1.21#53(192.168.1.21)
;; WHEN: Tue Mar 3 15:09:57 2009
;; MSG SIZE rcvd: 88
root@server-smkn3tkj:/#
oot@server-smkn3tkj:/# ping tkj-smk3bgr.net
PING tkj-smk3bgr.net (192.168.1.21) 56(84) bytes of data.
64 bytes from tkj-smk3bgr.net (192.168.1.21): icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from tkj-smk3bgr.net (192.168.1.21): icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from tkj-smk3bgr.net (192.168.1.21): icmp_seq=3 ttl=64 time=0.028 ms