Friday, July 13, 2007

DNS (Domain Name Service)

DNS (Domain Name Service)


DNS bertugas meresolusi IP ke nama alamat dan sebaliknya dari nama alamat ke nomor IP. Beberapa cara untuk meresolusi alamat Internet antara lain :
1.Dengan membaca file lokal /etc/hosts
2.Dengan memanfaatkan pelayanan DNS Server
3.Dengan memanfaatkan pelayanan NIS (Network Information System) Server


File /etc/hosts

File ini berisi pengalamatan name-to-ip yang bisa digunakan juga untuk resolusi ip-to-name. Dengan memiliki file ini, mesin Linux dapat menggunakan nama yang lebih mudah diingat untuk memanggil atau mengakses mesin lain dalam jaringan, daripada harus menggunakan nomor IP. File ini amat sederhana isinya seperti dalam contoh berikut :
[root@digital modul]# cat /etc/hosts
192.168.0.6 digital.adhyaksa.net digital
127.0.0.1 localhost.localdomain localhost
Keterangan :
Kolom 1 adalah nomor IP
Kolom 2 adalah FQDN (Fully Qualified Domain Name)
Kolom 3 adalah nama host

File /etc/hosts diatas menunjukkan bahwa nama digital.adhyaksa.net dan digital dipetakan ke nomor IP 192.168.0.6, nama localhost.localdomain dan localhost dipetakan ke nomor IP 127.0.0.1.

Kelemahan menggunakan file /etc/hosts :
Semua mesin atau host dalam jaringan harus memiliki file ini identik isinya satu sama lain
Setiap kali ada perubahan nama host atau nomor IP, maka seluruh file di seluruh host harus di-update isinya
Sangat tidak praktis untuk jaringan dengan host banyak


DNS Server

Menggunakan DNS tidak seperti menggunakan file /etc/hosts. DNS bersifat client-server sehingga administrasi cukup dilakukan di sisi server saja, sedangkan pada client cukup dikonfigurasi 1 kali yaitu memberi cara agar mesin client dapat menghubungi DNS server.
Dalam jaringan Internet, DNS server diseluruh dunia saling bekerjasama dalam rangka meresolusi alamat Internet. Network yang lebih besar memiliki DNS server yang menjadi sumber data bagi DNS server pada network dibawahnya. Kerjasama yang dijalin ini dapat digambarkan pada contoh kasus berikut :
"Proses penampilan gambar atau isi sebuah situs pada browser Netscape yang digunakan seorang pengguna Linux dengan akses dial-up ke sebuah ISP di Indonesia misalnya comnet.net.id. Saat itu DNS client mengarah pada DNS server dengan IP 202.150.128.64 dan IP 202.150.128.65."
Perjalanan yang ditempuh untuk meresolusi IP secara umum dapat dijelaskan seperti berikut :
1.Browser diarahkan ke situs http://mail.ngoprek.org
2.DNS client menghubungi DNS server agar mendapatkan IP domain mail.ngoprek.org
3.DNS server mencari data mengenai mail.ngoprek.org dengan cara menghubungi DNS server tertinggi yaitu . (dot) atau root server
4.DNS root server menghubungi DNS server org
5.DNS server org menghubungi DNS server ngoprek.org
6.DNS server ngoprek.org mengenali subdomain mail.ngoprek.org dan berhasil meresolusi mail.ngoprek.org ke IP 202.135.0.9
7.IP tersebut dikirimkan kembali ke DNS client kemudian diberikan ke browser
8.Browser mengarahkan langsung langsung ke IP 202.135.0.9 untuk menghubungi web server pada IP tersebut

DNS server terdiri dari 2 jenis server, yaitu :
Primary Name Server (PNS) adalah DNS server yang bertanggung jawab atas resolusi domain dan subdomain yang dikelolanya
Secondary Name Server (SNS) adalah DNS server yang secara hirarki setara dengan PNS namun data-data domain dan subdomain diperoleh dengan cara menyalin dari PNS


DNS Client

DNS client bertugas untuk menentukan DNS server yang digunakan untuk meresolusi alamat Internet yang perlu dihubungi oleh program dalam mesin client. Dalam sistem Linux, DNS client merupakan file biasa seperti /etc/hosts bernama /etc/resolv.conf, namun dengan isi berbeda seperti contoh berikut :
[root@digital /root]# ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 66 Dec 3 10:23 /etc/resolv.conf
[root@digital /root]# cat /etc/resolv.conf
search adhyaksa.net
nameserver 192.168.0.4
nameserver 192.168.0.1

Pada contoh diatas PNS yang dihubungi adalah IP 192.168.0.4 dan SNS yang dihubungi adalah IP 192.168.0.1. Tag search berisi sebuah nama yang digunakan sebagai default domain bila resolusi sebuah nama gagal.


Paket BIND 8.2.2

Program DNS yang digunakan oleh Linux RedHat 6.2 adalah BIND 8.2.2 yang terdiri dari file-file rpm sebagai berikut :
bind-8.2.2_P5-9.i386.rpm
bind-utils-8.2.2_P5-9.i386.rpm
bind-devel-8.2.2_P5-9.i386.rpm
caching-nameserver-6.2-2.noarch.rpm

Gunakan rpm -ivh untuk menginstal bind pada mesin server Linux.


Konfigurasi Name Server

PNS membaca data-data resolusi pada sekumpulan file konfigurasi yang terdapat pada komputer lokal. File-file tersebut antara lain :
/etc/named.conf
Berisi konfigurasi DNS server BIND 8.x.x.
[root@digital /root]# cat /etc/named.conf
// generated by named-bootconf.pl
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 "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};

/var/named/*
Direktori /var/named berisi file-file zona yang namanya bersesuaian dengan tag file pada bracket zone dalam /etc/named.conf
[root@digital /root]# ls -l /var/named
total 4
-rw-r--r-- 1 root root 2769 Feb 4 2000 named.ca
-rw-r--r-- 1 root root 422 Feb 4 2000 named.local

[root@digital /root]# cat /var/named/named.local
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.

1 IN PTR localhost.

[root@digital /root]# cat /var/named/named.ca
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . "
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File

Sedangkan SNS membaca data copy dari PNS melalui sebuah mekanisme transfer data melalui protokol DNS. Data yang dicopy disimpan dalam bentuk file zona yang diletakkan di direktori /var/named pada mesin SNS.

Format /etc/named.conf dapat dijelaskan sebagai berikut :
Terdiri dari 2 bracket dasar yaitu :
Blok Options
Berisi kompulan opsi-opsi global untuk bind 8.x.x, gunakan man named.conf untuk mendapatkan informasi lebih detil mengenai opsi-opsi yang tersedia.
Blok Zone
Berisi tag-tag yang digunakan untuk menentukan tipe server untuk 1 domain atau subdomain tertentu dan file zona yang berisi konfigurasi 1 domain atau subdomain tertentu.
Bila kita bertujuan membuat zona file untuk pemetaan NAME-TO-IP gunakan nama domain sebagai nama zona.
Bila kita bertujuan membuat zona file untuk pemetaan IP-TO-NAME gunakan nama domain dengan format sebagai berikut :
Contoh :
IP-TO-NAME untuk network 192.168.0, nama zona file ditulis 0.168.192.in-addr.arpa
IP-TO-NAME untuk network 202.150.128, nama zona file ditulis 128.150.202..in-addr.arpa

Format file zona dapat dijelaskan sebagai berikut :
Terdiri dari kumpulan record yang berisikan keterangan yang detil tentang sebuah domain atau subdomain. Record-record tersebut antara lain :
SOA
Start Of Authority mengawali file zona, berisi data-data waktu sebuah domain atau subdomain. Lebih jelasnya seperti berikut :
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
Keterangan :
@ Merupakan shortcut yang menyatakan nama domain yang bersesuaian dengan zona ini
IN Merupakan kata kunci protokol INTERNET
SOA Menyatakan nama record SOA
localhost. Name Server yang menangani domain ini
root.localhost Menyatakan kontak administratif berupa email administrator, dalam hal ini root@localhost
( dan ) Bila ditulis lebih dari 1 baris
Serial Nomor urut yang dibangkitkan setiap kali ada perubahan konfigurasi
Refresh Interval yang digunakan SNS untuk mengontak PNS
Retry Waktu tunggu yang digunakan oleh SNS bila PNS down atau crash
Expire Masa berlaku zona untuk SNS tanpa harus melakukan refresh pada PNS jika PNS down
Minimum Nilai default untuk masa berlaku data yang disimpan dalam cache

NS
Menyatakan Name Server yang berlaku.
@ IN NS localhost.

A
Menyatakan Address Internet atau nomor IP
@ IN A 192.168.0.1
digital IN A 192.168.0.4

CNAME
Menyatakan nama Alias (Canonical Name)
mail IN CNAME digital.
Berarti : mail adalah nama alias dari digital

PTR
Menyatakan pointer, yaitu reversed-address
digital IN A 192.168.0.4
4.0.168.192.in-addr.arpa. IN PTR digital.
Berarti : IP 192.168.0.4 dipetakan ke nama domain atau subdomain digital.

MX
Menyatakan Mail Exchanger, digunakan untuk menunjuk mail server yang menangani email domain atau subdomain ini
digital IN MX 0 super.adhyaksa.net.
IN MX 10 drutz.adhyaksa.net.
Berarti : email untuk digital.adhyaksa.net akan diterima oleh mail server dengan prioritas lebih tinggi (super.adhyaksa.net) dimana angka yang lebih kecil merupakan prioritas yang lebih tinggi. Angka yang dimaksud adalah kolom ke-3 pada MX. Mail server pada prioritas selanjutnya akan dihubungi apabila mail server sebelumnya down atau crash.

HINFO
Menyatakan Hardware Information
digital IN HINFO "Intel PIII 550 - Linux Redhat 6.2"

TXT
Menyatakan infomasi umum
digital IN TXT "Server location : Sukapura - Bandung"

Contoh kasus :
"Konfigurasikan sebuah host menjadi PNS dengan nama domain adhyaksa.net mempunyai range IP 192.168.0.1 - 192.168.0.15."
Penentuan IP untuk host-host tertentu, misalnya :
ns1.adhyaksa.net -> IP 192.168.0.1
ns2.adhyaksa.net -> IP 192.168.0.2
www.adhyaksa.net -> IP 192.168.0.3
mail.adhyaksa.net -> IP 192.168.0.3
ftp.adhyaksa.net -> IP 192.168.0.3
mp3.adhyaksa.net -> IP 192.168.0.9
vhost.adhyaksa.net -> IP 192.168.0.13
Untuk IP yang lainnya disimpan untuk keperluan mendatang.

1.Membuat /etc/named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "adhyaksa.net" {
type master;
file "db.adhyaksa.net";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "db.192.168.0";
};

Membuat file zona untuk domain adhyaksa.net diberi nama db.adhyaksa.net
@ IN SOA ns1.adhyaksa.net. admin.adhyaksa.net. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS ns1.adhyaksa.net.
@ IN NS ns2.adhyaksa.net.
IN MX 10 mail.adhyaksa.net.
ns1 IN A 192.168.0.1
ns2 IN A 192.168.0.2
www IN A 192.168.0.3
mail IN A 192.168.0.3
mp3 IN A 192.168.0.9
vhost IN A 192.168.0.13
ftp IN CNAME 192.168.0.3

Membuat file zona reverse-lookup untuk network 192.168.0 diberi nama db.192.168.0
@ IN SOA ns1.adhyaksa.net. root.localhost. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.adhyaksa.net.
IN NS ns2.adhyaksa.net.
1 IN PTR ns1.adhyaksa.net.
2 IN PTR ns2.adhyaksa.net.
13 IN PTR vhost.adhyaksa.net.

Tes hasil konfigurasi
1.Aktifkan bind dengan perintah berikut :
[root@digital /root]# /etc/rc.d/init.d/named start
2.Lakukan pemeriksaan pada /var/log/messages
[root@digital /root]# cat /var/log/messages
3.Cek dengan tool nslookup dan dig