Mengkonfigurasi DNS Server:
Membuat Primary dan Secondary DNS Server
Joko Yuliantoro & Onno W. Purbo
Computer Network Research Group (CNRG)
Institut Teknologi Bandung (ITB)

	Untuk beroperasinya sebuah jaringan komputer Internet, sebetulnya pengalamatan sebuah komputer dilakukan menggunakan angka yang dikenal sebagai Internet Protocol (IP) Address yang terdiri dari 32 bit. Tentunya akan sukar bagi manusia / user untuk mengingat sekian juta komputer di seluruh Internet. Untuk itu dikembangkan penamaan mesin yang lebih manusiawi menggunakan konsep Domain Name System (DNS). Pada tulisan ini kami akan mencoba menjelaskan cara mensetup DNS Server di mesin dengan OS UNIX. Kemampuan ini akan sangat dibutuhkan bila sebuah institusi /perusahaan ingin mempunyai nama hostname sendiri di Internet.	
	Domain Name System adalah salah satu jenis sistem yang melayani permintaan pemetaan IP Address ke FQDN ( Fully Qualified Domain Name ) dan dari FQDN ke IP Address. FQDN lebih mudah untuk diingat oleh manusia daripada IP Address. Sebagai contoh, sebuah komputer memiliki IP Address 167.205.22.114 dan memiliki FQDN “nic.itb.ac.id”. Nama “nic.itb.ac.id” tentunya lebih mudah diingat daripada nomor IP Address di atas. Apalagi setelah lahirnya konsep IP Version 6 yang memiliki 6 segment untuk setiap komputer sehingga nomor IP Address menjadi semakin panjang dan lebih sulit untuk diingat. Selain itu, DNS juga menyediakan layanan mail routing, informasi mengenai hardware, sistem operasi yang dijalankan, dan aplikasi jaringan yang ditangani oleh host tersebut.
	Pada sistem operasi UNIX, 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. Ia yang akan menjawab query-query dari resolver yang diberikan kepadanya. 
	Pada saat BIND dijalankan, ia memiliki 4 modus operasi, yaitu :
•	Resolver-only
Komputer hanya membangkitkan query informasi domain name kepada sebuah DNS server dan tidak menjalankan fungsi DNS server.
•	Caching-only
Komputer menjalankan fungsi name server tetapi tidak memiliki database DNS server. Ia hanya mempelajari jawaban-jawaban query yang diberikan oleh remote DNS server dan menyimpannya dalam memory. Data-data dalam memory tersebut akan digunakan untuk menjawab query selanjutnya yang diberikan kepadanya.
•	Primary server
Komputer menjalankan fungsi name server berdasarkan database yang dimilikinya. Database ini dibangun oleh administrator DNS. Server ini menjadi authoritative source bagi domain tertentu.
•	Secondary server
Komputer menjalankan fungsi name server berdasarkan database yang diambil dari primary server. Proses pengambilan file database ini sering disebut zone file transfer. Ia juga menjadi authoritative source bagi domain tersebut.

Resolver-only
	Saat berada dalam modus resolver-only, BIND akan mencari file /etc/resolv.conf  (pada UNIX umum) dan membaca konfigurasi yang tertera dalam file tersebut. Jika BIND tidak menemukan file tersebut maka ia akan menggunakan konfigurasi standar yang dimilikinya.
	Bentuk dasar sintaks pada file /etc/resolv.conf adalah sebagai berikut :
		 domain	name
		 nameserver	address
		[nameserver	address]
domain menyatakan default domain seperti yang didefinisikan oleh entry name. Jika ada penulisan nama host yang tidak mengandung tanda baca titik maka resolver akan menambahkan entry name di belakang nama host tersebut. Sebagai contoh, jika Anda menuliskan host name mail saja dan entry name berisi ptn.co.id maka resolver akan menggunakan nama  mail.ptn.co.id. 
nameserver menyatakan server mana yang harus dihubungi jika ada query dari resolver mengenai domain di atas. Apabila server tersebut tidak bisa dihubungi, server selanjutnya menjadi sasaran lemparan query.
	
Contoh listing file /etc/resolv.conf :

# Resolver configuration file 
domain ptn.co.id
# Server terdekat adalah mumet.ptn.co.id, IP 169.98.3.1
nameserver	169.98.3.2
# Gagal ??? Coba server kedua : nggliyeng.ptn.co.id, IP 169.98.2.15
nameserver	169.98.2.15
# Gagal lagi ??? Server ketiga : ngeh.ptn.co.id, IP 169.98.1.2
nameserver	169.98.1.2

Ketiga modus selanjutnya dapat dijalankan secara bersamaan atau berdiri sendiri pada sebuah komputer yang menjadi DNS server. Pengaturan modus ini dilakukan pada konfigurasi daemon named. File-file penting yang menjadi acuan bagi named untuk beroperasi adalah named.boot, data_cache, data_domain, dan data_reverse. named.boot adalah file yang berisi boot script bagi DNS server. data_cache adalah file yang berisi DNS root server. data_domain adalah file yang berisi pemetaan dari FQDN ke IP Address dan data terlengkap dari domain yang bersangkutan. data_reverse adalah file yang berisi data mengenai pemetaan IP Address ke FQDN. Pada sistem operasi UNIX, file-file tersebut terletak di direktori /etc/namedb. Direktori tersebut menjadi default bagi named.
	File konfigurasi yang paling penting bagi named adalah file /etc/namedb/named.boot. File ini berisikan perintah-perintah yang mendefinisikan fungsi named sebagai caching-only server, primary server, atau secondary server.

Caching-only
	Jika kita ingin mengatur agar named hanya beroperasi pada modus caching-only maka file named.boot hanya berisi perintah cache diikuti nama file yang berisi server-server utama yang menjadi tempat melemparkan query.
	Berikut ini contoh file named.boot dimana kita mengatur named agar beroperasi pada modus caching-only :

;  file named.boot
;
;  mendefinisikan default directory
directory			/etc/namedb
;
;  menjadi caching-only server
cache			data_cache
;

Primary Server
	Jika kita menghendaki named pada komputer kita menjadi primary server, kita tambahkan kata primary diikuti domain yang dipegang oleh named tersebut dan diakhiri dengan nama file yang berisi database domain tersebut..
Sebagai contoh, komputer kita menjadi primary server untuk domain ptn.co.id dengan file data_domain berjudul ptn. Sebaiknya, sebuah primary server juga menjalankan fungsi caching-only. Hal ini untuk menambah kehandalan server dalam menjawab query-query yang cukup rumit. File named.boot akan berisi sebagai berikut :

;  file named.boot
;
;  mendefinisikan default directory
directory							/etc/namedb
;
;  menjadi caching-only server
cache							data_cache
;
;  menjadi primary server atas domain ptn.co.id
primary	ptn.co.id					ptn
;
;  menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary	1.98.169.IN-ADDR.ARPA			rev_169.98.1.x
;

Jika komputer kita juga menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN maka kita tambahkan entry yang terakhir.

Secondary Server
	Secondary server adalah DNS server yang menggunakan database domain yang ditransfer dari primary server. Untuk mengatur server agar menjadi secondary bagi domain tertentu, kita tambahkan kata secondary diikuti dengan domain yang dipegang, kemudian diikuti oleh IP Address primary server dan diakhiri dengan nama file databasenya. 
Sebagai contoh, komputer kita akan bertindak sebagai secondary server untuk domain pts.ac.id. Primary server domain dipegang oleh server dns.pts.ac.id dengan nomor IP Address 190.21.85.2. Kita edit file named.boot sehingga menjadi seperti berikut :

;  file named.boot
;
;  mendefinisikan default directory
directory			/etc/namedb
;
;  menjadi caching-only server
cache			data_cache
;
;  menjadi primary server atas domain ptn.co.id
primary	ptn.co.id	ptn
;
;  menjadi secondary server atas domain pts.ac.id dari dns.pts.ac.id
secondary  pts.ac.id	190.21.85.2			sec_pts
;
;  menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary	1.98.169.IN-ADDR.ARPA			rev/rev_169.98.1.x
;
;  menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN
secondary  85.21.190.IN-ADDR.ARPA	190.21.85.2	rev/sec_190.21.85.x

	Jika kita juga menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN dari server dns.pts.ac.id kita tambahkan entry yang terakhir. 

	Langkah selanjutnya adalah membuat file data_domain dan data_reverse (seperti file ptn dan rev/rev_169.98.1.x) yang akan dibahas pada artikel mendatang.

Daftar Pustaka	
•	RFC 1034, “Domain Names - Concepts and Facilities”
•	RFC 1035, “Domain Names - Implementation and Spesification”