I.
PENDAHULUAN
DNS
(Domain Name System) adalah sebuah sistem yang menjaga informasi
tentang nama host (hostname) dan juga nama domain (domain name) dalam
bentuk database tersebar (distributed database) pada jaringan
komputer. Dengan DNS, sebuah alamat IP dapat dipetakan ke dalam
hostname dan domain name yang lebih mudah diingat oleh manusia.
Adalah lebih mudah bagi kita untuk mengingat nama www.google.com
dibandingkan dengan 66.249.89.99. DNS ditemukan oleh Paul Mockapertis
pada tahun 1983.Ada beberapa metode untuk membuat server DNS, namun
dalam tutorial ini akan dijelaskan cara membuat server DNS
menggunakan BIND karena aplikasi BIND merupakan aplikasi terpopuler
dalam membuat server pada saat ini dan dengan asumsi bahwa paket BIND
sudah ada di dalam sistem.
II.
Istilah-istilah Pada DNS
• RR
atau Resource Records adalah kumpulan sumber informasi yang
berhubungan dengan nama-nama domain.
• Namespace
adalah struktur dari seluruh DNS yang berbentuk pohon terbalik.
• Nameserver
adalah program-program yang menyimpan informasi tentang namespace
domain.
• TLD
or Top-Level Domain adalah level domain paling atas dibawah root
(“.”). Contoh dari TLD adalah .com, .net, .org, dan sebagainya.
• Delegation
atau delegasi adalah memberikan sbuah tanggung jawab kepada sebuah
subdomain untuk mengatur dirinya sendiri.
• Registry
adalah sebuah organisasi yang bertanggung jawab untuk menjaga
file-file data di TLD dan mendelegasikannya ke setiap subdomain dari
TLD itu. Contoh Verisign untuk mengelola TLD .co
dan
.net.
• Registrar
adalah sebuah organisasi yang bertindak sebagai antar muka
(interface) antara pelanggan dan registry atau lebih dikenal dengan
nama ISP. Contohnya idwebhost.
• Registration
adalah proses dimana pelanggan memberitahukan ke sebuah registrar
untuk mendelegasikan sebuah subdomain kepadanya.
• Zone
atau zona adalah sebuah daerah yang mencakup sebuah domain utuh atau
hanya sebagian saja.
III.
BIND
BIND
singkatan dari Berkeley Internet Name Domain yang ditulis oleh Kevin
Dunlap untuk BSD UNIX 4.3 Berkeley. Pada umumnya, setiap distro linux
mempunyai paket BIND, tetapi jika kita tidak menemukan paket BIND
dalam distro linux, kita bisa mendapatkan BIND versi terakhir di
sini. Di Centos 5, versi terakhir dari BIND adalah versi 9. Pada
paket ini, BIND menyertakan paket chroot untuk meningkatkan keamanan
server DNS. Ada beberapa file penting di dalam BIND yang harus
diperhatikan, yaitu:
a.
named.conf --> File konfigurasi utama untuk membuat DNS dan
digunakan sebagai referensi untuk menentukan prosedur server DNS
b.
named.ca --> Digunakan untuk menangani informasi server DNS root
yang diperlukan untuk menginisialisasi cache dari domain server DNS
internet yang disediakan oleh layanan registrasi interNIC.
c.
resolv.conf --> Berisi alamat domain atau alamat IP dari
nameserver (biasanya IP ISP)
d.
Zona forward --> Memetakan domain name ke alamat IP
e.
Zona Reverse --> Memetakan alalamt IP ke domain name
IV.
CARA KERJA DNS
Untuk
memahami bagaimana DNS itu bekerja, lihat gambar berikut ini:
• Misal
kita mau mengecek email kita di warnet dan dibrowser kita ketikkan
http://mail.yahoo.com.
• Setelah
itu PC kita akan mengontak server DNS lokal (Jaringan ISP yang
terhubung ke warnet itu) untuk menanyakan alamat IP dari
http://mail.yahoo.com. (Panah 1)
• Server
DNS lokal akan melihat ke dalam memori cachenya (Panah 2)
• Jika
data itu ada di cachenya, server tersebut akan memberikan alamat IP
ke browser PC kita (Panah 5). Jika tidak, maka server tersebut
mengontak server DNS di atasnya untuk mengetahui alamat IP tersebut.
• Jika
domain itu benar-benar ada, maka root DNS akan mendapatkan alamat IP
tersebut, kemudian akan dikirimkan ke server DNS lokal kita (Panah
3).
• Server
DNS lokal akan mengontak server DNS mail.yahoo.com untuk menanyakan
alamat IP-nya, dan server mail.yahoo.com akan mengirimkannya ke
server DNS lokal kita (Panah 4).
• Server
DNS lokal kita akan memberitahukan alamat IP untuk mail.yahoo.com
kepada browser PC kita.
• Kemudian
PC kita akan menggunakan alamat IP tersebut untuk mengontak
mail.yahoo.com
V.
Persiapan Nama Domain
Kita
akan membuat domain baru untuk server DNS, mail server dan webserver.
Domain
name: example.com
DNS
server name: ns1.example.com
IP
DNS server: 192.168.1.2
Mail
server name:mail.example.com
HTTP
server: www.example.com
VI.
Konfigurasi BIND
1.
Cek paket BIND
Cek
paket BIND di sistem kita, apakah sudah ada atau belum dengan cara:
#
rpm -qa | grep bind
Jika
paket bind tersebut tidak ada, instal paket tersebut dengan cara
#
yum install bind-*
2.
Konfigurasi rndc key
rndc
key digunakan untuk mengendalikan operasi dari server DNS. Asalnya,
rndc key sudah tersedia di dalam paket BIND. Kita bisa menggunakan
apakah menggunakan yang sudah tersedia atau membuat yang baru. Jika
kita ingin membuat RNDC key yang baru, maka berikan perintah:
#
cd /var/named/chroot/etc/
#
rndc-confgen > rndc.key
Setelah
itu lihat file rndc.key dan kemudian hapus atau beri tanda pagar dari
baris options sampai selesai kemudian salin bagian yang tidak dihapus
atau yang tidak diberi tanda pagar.
3.
Konfigurasi named.conf
Sesudah
mengkonfigurasi rndc.key, kita harus memasukkan file rndc.key dan
menyalin bagian
Key
“rndc.key” {
………………… };
Sesudah
itu kita harus membuat file named.conf di direktory yang sama dengan
cara:
#
vi named.conf
dan
menambahkan script berikut:
#
mulai named.conf
#kita
masukkan rndc.key (copy-paste dari rndc.key yang baru dibuat)
key
"rndckey" {
…………………………………………
};
//
kita asumsikan server kita mempunyai IP 192.168.1.2 yang melayani
192.168.1.0/24
controls
{
inet
192.168.1.2 allow { 192.168.1.0/24; } keys { "rndckey"; };
};
options
{
directory
"/var/named";
pid-file
"/var/run/named/named.pid";
/*
*
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;
//
so people can't try to guess what version you're running
version
"REFUSED";
allow-query
{
any;
};
};
server
192.168.1.2 {
keys
{ rndckey; };
};
zone
"." IN {
type
hint;
file
"data/named.ca";
};
//
Kita asumsikan dns server kita adalah example.com
zone
"example.com" IN {
type
master;
file
"data/example.com.zone";
allow-update
{ none; };
};
//
Kita asumsikan bahwa zona reverse kita adalah 1.168.192
zone
"1.168.192.in-addr.arpa" IN {
type
master;
file
"data/1.168.192.zone";
};
//
end of named.conf
4.
Konfigurasi zona forward
Sesudah
kita mengkonfigurasi named.conf kita harus membuat forward zone di
dengan cara:
#
vi /var/named/chroot/var/named/data/example.com.zone
dan
mengkonfigurasinya seperti ini:
$TTL
38400 ; 10 hours 40 minutes
@
IN SOA ns1.example.com. admin.example.com.
(
2007020400
; serial
180
; refresh (3 minutes)
360
; retry (6 minutes)
604800
; expire (1 week)
86400
; minimum (1 day)
)
NS
ns1.example.com.
A
192.168.1.2
MX
10 mail.example.com.
ns1
IN A 192.168.1.2
ftp
IN CNAME ns1
mail
IN CNAME ns1
www
IN CNAME ns1
Penjelasan
singkat:
5.
Konfigurasi zona reverse
Sesudah
mengkonfigurasi zona forward, kita harus membuat zona reverse di
dalam direktori yang sama dan mengkonfigurasinya seperti ini:
#
vi /var/named/chroot/var/named/data/1.168.192.zone
dan
mengkonfigurasinya seperti ini:
$TTL
38400 ; 10 hours 40 minutes
@
IN SOA ns1.example.com. admin.example.com.
(
2007020404
; serial
180
; refresh (3 minutes)
360
; retry (6 minutes)
604800
; expire (1 week)
86400
; minimum (1 day)
)
NS
ns1.example.com.
2
IN PTR arfie.example.com
Penjelasan
singkat:
2
IN PTR arfie.example.com --> mengecek bahwa hostname
arief.example.com mempunyai alamat IP di 192.168.1.2
sisanya
sama dengan zona forward
6.
Konfigurasi resolve.conf
Kita
harus mengkonfigurasi file resolve.conf di /etc/resolv.conf dan
mengkonfigurasinya seperti ini:
nameserver
192.168.1.2
7.
Menambahkan named.ca
Setelah
mendownload file named di sini, maka ubahlah namanya menjadi named.ca
dengan cara:
#
mv named.root named.ca
lalu
pindahkan file ini ke /var/named/chroot/var/named/data
#
mv named.ca /var/named/chroot/var/named/data
8.
Menyalakan Server DNS
Sesudah
mengkonfigurasi server DNS, kita harus mengecek apakah server DNS
kita sudah bekerja atau belum. Gunakan perintah ini:
#
service named start
9.
Mengecek server DNS
Gunakan
nslookup atau dig untuk mengecek server DNS
#
nslookup example.com
VII.
Troubleshooting
Mungkin
apabila kita pertama kali membuat server DNS, akan banyak error yang
terjadi. Biasanya, error akan langsung muncul setelah kita mencoba
menyalakan DNS. Tapi, terkadang error itu tidak muncul dan DNS kita
tidak bekerja. Untuk itu, lihatlah di file /var/log/messages sehingga
kita bisa mengidentifikasi error apa dan bagaimana cara menghilangkan
error itu. Di bawah ini ada beberapa solusi untuk menghilangkan
error-error yang terjadi ketika membuat server DNS:
1.
File tidak ada
Error:
xxxxxxxxxx:
file not found
Solusi:
Kita
memasukkan zona forward atau reverse ke direktory yang salah yang
tidak sama dengan parameter yang ada di file named.conf atau bisa
juga kita salah dalam membuat nama zona forward atau reverse yang
tidak sama dengan parameter yang ada di file named.conf. Maka dari
itu, pastikan bahwa nama file baik itu zona forward maupun zona
reverse sesuai dengan yang ada di file named.conf. Dan juga pastikan
bahwa, file-file tersebut sesuai dengan apa yang ada di file
named.conf.
2.
Non existent Domain
Error:
***
xxx can't find xxx: Non-existent domain
Solusi:
Cek
di zona reverse apakah kita sudah memberi pointer kepada file itu.
Jika belum, buatlah pointer seperti pada bagian diatas (Konfigurasi
Zona Reverse).
3.
Refused
Error:
**
server can't find ****: REFUSED
Solusi:
Ganti
IP DNS di /etc/resolv.conf
Referensi:
http://www.wains.be
Wagito,
Jaringan Komputer Teori dan Implementasi Berbasis Linux, Penerbit
Gava Media