Anda di halaman 1dari 10

Konsep dan Gambaran DNS/BIND

Ketika kita menggunakan komputer yang terhubung ke Internet dan ingin mengakses suatu domain
secara tidak langsung kita telah menggunakan fasilitas DNS. Apakah DNS itu? Apa hubungan DNS
dan BIND? Artikel ini akan memperkenalkan anda pada DNS dan salah satu implementasinya yaitu
BIND.

Domain Name System (DNS)


Sebelum berkenalan dengan BIND, kita harus tahu mengenai DNS. DNS merupakan
sistem berbentuk database terdistribusi yang akan memetakan/mengkonversikan
nama host/mesin/domain ke alamat IP (Internet Protocol) dan sebaliknya dari
alamat IP ke nama host yang disebut dengan reverse-mapping. DNS sangat
berguna sekali dalam jaringan terutama Internet, sistem ini akan memetakan nama
mesin misal pikachu.indolinux.com ke alamat IP misal 202.123.45.6 selain itu juga
penggunaannya sangat luas misal, untuk routing e-mail, telnet, ftp, web, dan lain-
lain.
Bagaimana jika tidak ada DNS, kepala kita bisa pecah jika harus mengingat ratusan,
ribuan, bahkan jutaan alamat IP di Internet. Kita manusia lebih mudah untuk
mengingat nama daripada alamat IP dengan panjang 32 bit itu. Komputer
menggunakan alamat IP untuk berkomunikasi dan berinteraksi. Bagaimana
menjembataninya? Disitulah gunanya Domain Name System (DNS).

Dengan adanya DNS, informasi host menjadi mungkin untuk diakses oleh komputer
di jaringan maupun Internet. Implementasi DNS pada sistem operasi Linux yang
sering digunakan adalah BIND meskipun ada juga salah satu implementasi yang
cukup baru dan juga banyak dipakai yaitu djbdns.

Walaupun banyak sejarah mengenai isu keamanan dan vulnerability-nya, banyak


server DNS di dunia masih menggunakan BIND. Alasan yang mungkin adalah
kebanyakkan para administrator server DNS tersebut lebih familiar dengan BIND
daripada server DNS lain. Seperti halnya dengan penggunaan sendmail yang
notabene merupakan server-mail yang punya konfigurasi cryptic daripada server-
mail lain tetapi masih tetap digunakan dengan alasan familiar dan kebiasaan
administratornya. Pandangan mengenai hal ini saya kembalikan pada administrator
masing-masing lembaga atau perusahaan.

Sejarah DNS
Sebelum adanya DNS, pertama kali tepatnya tahun 1970-an dalam jaringan
ARPAnet (cikal bakal jaringan Internet yang ada sekarang) digunakan pemetaan
dengan bentuk tabel host pada berkas HOSTS.TXT.

Jaringan dengan HOSTS.TXT pada tiap host-nya

Berkas ini berisi nama host dan alamat IP serta pemetaannya dari seluruh
mesin/komputer yang terhubung dalam jaringan. Ketika ada komputer lain yang
terhubung ke jaringan ARPAnet maka masing-masing komputer dalam jaringan
tersebut harus memperbaharui berkas HOSTS.TXT-nya. Pada saat itu cara meng-
update berkas HOSTS.TXT dengan menggunakan ftp setiap satu atau dua minggu
sekali. Masalah muncul ketika jaringan ARPAnet yang tadinya kecil tersebut
kemudian menjadi Internet yang semakin hari semakin besar. Kesulitan meng-
update isi berkas HOSTS.TXT karena jumlah nama mesin/komputer yang harus
dituliskan ke berkas tersebut sudah terlalu besar dan tidak efisien.

Lalu muncul ide untuk membuat sistem database terdistribusi yang mempunyai
data mengenai pemetaan nama host ke alamat IP dan sebaliknya. Dengan adanya
pendistribusian database nama host dan alamat IP, maka tiap organisasi yang
memiliki jaringan di dalam domain tertentu hanya bertanggung jawab terhadap
database informasi pemetaan nama host dan alamat IP pada jaringannya saja yang
biasa disebut zone. Administrasi domain tersebut dilakukan secara lokal tetapi
informasi itu dapat diakses oleh semua komputer di Internet.

Karena sifat database yang terdistribusi ini, maka dibutuhkan suatu mekanisme
pengaksesan informasi bagi host lain pada database yang terdistribusi untuk
menemukan informasi host atau jaringan yang dipunyai oleh suatu organisasi.Dan
pada tahun 1984, Paul Mockapetris mengusulkan sistem database terdistribusi ini
dengan Domain Name System (DNS) yang dideskripsikan dalam RFC 882 dan 883.
Sistem ini digunakan sampai sekarang pada jaringan khususnya Internet.

Sistem DNS yang terdistribusi

Struktur dan Cara Kerja DNS


Struktur database DNS sangat mirip dengan sistem-berkas/filesystem UNIX yaitu
berbentuk hierarki atau pohon. Tingkat teratas pada DNS adalah root yang
disimbolkan dengan titik/dot (.) sedangkan pada system berkas UNIX,root disimbol
kandengan slash(/).Setiap titik cabang mempunyai label yang
mengidentifikasikannya relatif terhadap root (.). Tiap titik cabang merupakan root
bagi sub-tree/tingkat bawahnya. Tiap sub-tree merupakan domain dan dibawah
domain terdapat sub-tree lagi bernama subdomain. Setiap domain mempunyai
nama yang unik dan menunjukkan posisinya pada pohon DNS,
pengurutan/penyebutan nama domain secara penuh dimulai dari domain paling
bawah menuju ke root (.). Masing-masing nama yang membentuk suatu domain
dipisahkan dengan titik/dot (.) dan diakhiri dengan titik yang merupakan nama
absolut relatif terhadap root (.).

o Contoh : raichu.cs.mit.edu.

• "." merupakan root domain

• "edu" merupakan Top Level Domain

• "mit" merupakan Second Level Domain

• "cs" merupakan Third Level Domain

raichu merupakan nama komputer/mesin yang bersangkutan Sistem penulisan nama secara
absolut dan lengkap ini disebut FQDN (Fully Qualified Domain Name).

Hierarki/pohon DNS dan sistem berkas UNIX

Tiap organisasi yang telah mendaftar ke Network Information Center(NIC) akan


mendapatkan nama domain sesuai dengan organisasi tersebut. Nama domain
tersebut bisa dibagi lagi menjadi subdomain sesuai dengan kebutuhan organisasi
tersebut sesuai dengan otorisasi domain. Contoh: InterNIC mempunyai semua Top
Level Domain termasuk com, perusahaan indolinux akan mendaftarkan nama
domain indolinux.com (komersial), maka indolinux diberikan/didelegasikan oleh
InterNIC untuk mengelola domain indolinux.com yang merupakan sub domain dari
com. Indolinux dapat membagi lagi domain indolinux.com ke beberapa sub domain
misal pikachu.indolinux.com, raichu.indolinux.com.
Setiap server DNS pada suatu jaringan mempunyai informasi tentang host-host
dalam jaringan tersebut yaitu alamat IP, routing email, server ftp, server web, dsb.

Selain itu tiap host dalam otorisasi suatu domain juga bisa mendapatkan alias dari
nama host-nya dalam domain di atasnya. misal: iwan.indolinux.com bisa saja
mempunyai alias (canonical name) pikachu.indolinux.com, dimana kedua domain
tersebut mengacu ke mesin/host yang sama.

Dengan adanya sistem berbentuk hierarki/pohon ini maka tidak ada nama host
yang sama pada domain/subdomain yang sama, karena masing-masing dari
node/titik-cabang mempunyai nama unik dan tidak boleh ada yang menyamainya
kecuali berbeda sub-tree/sub pohon. Tidak akan ada konflik antar organisasi karena
masing-masing organisasi mempunyai domain yang berbeda-beda dan ini diatur
oleh InterNIC untuk TLD.

Misal: indolinux menginginkan nama mesin/host di bawah domain indolinux.com


dengan nama pikachu (pikachu.indolinux.com), sedang 5leaps Software juga
menginginkan nama yang sama untuk salah satu host-nya dengan domain
5leaps.org. Disini tidak akan terjadi konflik karena masing-masing mempunyai
domain sendiri-sendiri. Indolinux mempunyai pikachu.indolinux.com dan 5leaps
Software mempunyai pikachu.5leaps.org.

Seperti dijelaskan di atas, tidak boleh suatu nama/label sama yang berada dalam
domain sama atau mempunyai parent atau sub-tree atas yang sama karena ini
akan membuat konflik pada penamaan domain. Coba bayangkan jika orang tua
yang sama mempunyai dua orang anak dengan nama yang sama. Bagaimana
mereka memanggil satu dari dua anak tersebut? anda pasti tahu jawabannya. Ini
sangat menyulitkan.

Konflik domain

Kedalaman pohon dibatasi sampai level 127, akankah anda menembus batas ini
untuk domain anda? Sepertinya tidak.

Sebuah nama domain adalah nama sub-tree dari domain name-space. Suatu host
diwakili dengan nama domain yang full/penuh termasuk nama mesin/komputer
tersebut, dan host mengacu pada suatu host/komputer secara individu. Sedangkan
domain berisi semua host yang berada dibawahnya. Individual host yang berada
pada suatu domain menunjukkan informasi mengenai alamat jaringan, perangkat
keras, routing mail, dsb.

Untuk membedakan nama domain dan subdomain kita ambil contoh:

• pikachu.indolinux.com adalah subdomain dari indolinux.com.


• stwn.raichu.domain.net adalah subdomain dari raichu.domain.net.
• dst.

Top Level Domain (TLD)


Top Level Domain adalah domain pada level teratas di bawah root (.).
Ada tiga pengelompokkan Top Level Domain:

1. Domain Generik
Terdiri atas 7 domain yaitu
1. com
Untuk organisasi komersial. contoh: ibm.com, sun.com.
2. net
Untuk organisasi/perusahaan penyedia layanan jaringan/Internet. contoh:
internic.net, nsf.net.
3. gov
Untuk lembaga/organisasi pemerintahan. contoh: whitehouse.gov, nasa.gov.
4. mil
Untuk badan/organisasi militer. contoh: army.mil.
5. org
Untuk organisasi non-komersial. contoh: linux.org.
6. edu
Untuk lembaga pendidikan. contoh: mit.edu, berkeley.edu.
7. int
Untuk organisasi Internasional. contoh: nato.int.

Selain 7 domain di atas ada lagi 7 domain baru dari ICANN (www.icann.org) yaitu:

8. aero
Untuk industri atau perusahaan udara.
9. biz
Untuk perusahaan atau lembaga bisnis.
10. coop
Untuk perusahaan atau lembaga kooperatif
11. info
Untuk penggunaan umum.
12. museum
Untuk museum.
13. name
Untuk registrasi bagi penggunaan individual/personal.
14. pro
Untuk para profesional seperti: akuntan, dan lain-lain.
2. Domain Negara
Merupakan standar pembagian geografis berdasarkan kode negara. Contoh: id untuk
Indonesia, au untuk Australia, uk untuk Inggris, dan lain-lain.
Domain negara ini dapat dan umumnya diturunkan lagi ke level-level di bawahnya yang
diatur oleh NIC dari masing-masing negara, untuk Indonesia yaitu IDNIC. Contoh level
bawah dari id yaitu net.id, co.id, web.id.
3. Domain Arpa
Merupakan domain untuk jaringan ARPAnet. Tiap domain yang tergabung ke Internet
berhak memiliki name-space .in-addr.arpa sesuai dengan alamat IP-nya.

Name-Server dan Zone

Name-server adalah program server yang memiliki informasi mengenai host di


bawah domain tertentu. Name-server mempunyai bagian-bagian informasi
mengenai domain name-space yang dikenal dengan zone. Zone ini akan dimuat dari
berkas yang disimpannya atau dari server DNS lain. Sebagai contoh domain id bisa
dibagi menjadi beberapa zone yaitu ac.id, net.id dan dari zone tersebut bisa dibagi
lagi menjadi zone-zone yang lebih kecil misal undip.ac.id, dst. Disini yang
bertanggung jawab ialah organisasi/lembaga yang memiliki domain tersebut.

Pembagian zone

Ada dua tipe dari name-server yaitu:

1. Primary Master
Primary Master name-server bertanggung jawab terhadap suatu zone dengan memuat
informasi dari berkas database pada dirinya sendiri.
2. Secondary Master (Slave)
Secondary Master name-server memuat informasi zone dari server lain yang otoritatif
pada suatu zone yang disebut Master Server. Secondary Master akan melakukan zone-
transfer dari Master Server untuk mendapatkan data/informasi pada suatu zone yang
dikelolanya.

Primary Master dan Secondary Master server DNS

Untuk dapat bekerja name-server membutuhkan resource-record untuk domain


yang dikelola. Resource-record adalah data yang mengacu/menunjukkan pada
informasi mengenai host pada jaringan atau domain tertentu.

Komponen DNS
DNS sebenarnya merupakan suatu sistem server-client, jadi ada suatu mekanisme
dari client untuk meminta informasi dari server yang akan memberikan informasi
yang diminta sang client. Seperti yang disebutkan di atas program pada server
tersebut sering disebut dengan name-server. Pada client sering disebut dengan
resolver.

DNS mempunyai beberapa komponen yaitu:

1. Resolver
Resolver yaitu suatu rutin pustaka yang akan membuat suatu permintaan/query dan
mengirimkannya lewat jaringan ke sebuah name-server. Program tersebut berjalan pada
host yang menginginkan informasi mengenai suatu host di Internet. Resolver juga
menginterpretasikan respon dari name-server apakah informasi yang diminta merupakan
record ataupun kesalahan.
2. Resolution
Resolution yaitu proses pencarian name-server yang mempunyai tanggung jawab
terhadap suatu domain yang akan diminta. Setelah name-server yang dicari ditemukan
maka server akan memberikan informasi name-server yang bersangkutan kepada
pemintanya.
3. Caching
Caching yaitu suatu rutin yang akan menyimpan hasil pencarian domain dalam database
dari name-server yang pernah diminta. Time To Live (TTL) merupakan batas waktu
dimana server DNS dapat menyimpan/caching infomasi yang pernah dicari.
Resolver, caching, dan resolution

BIND (Berkeley Internet Name Domain)


BIND merupakan salah satu implementasi dari DNS yang paling banyak digunakan
pada server di Internet. Implementasi DNS pertama adalah JEEVES buatan Paul
Mockapetris. BIND dibuat untuk sistem operasi BSD UNIX 4.3 oleh Kevin Dunlap, tapi
kemudian banyak di-porting ke banyak turunan UNIX termasuk Linux.

BIND sampai sekarang masih dikoordinasi oleh Internet Software Consortium.


Program utama dari BIND adalah bernama named yaitu sebuah daemon yang bila
dijalankan akan menunggu koneksi pada port 53 (default). Koneksi pada port 53 ini
adalah koneksi permintaan informasi pemetaan dari nama domain/mesin ke alamat
IP dan sebaliknya. Jika sebuah server DNS mempunyai otorisasi terhadap suatu
domain maka si server DNS tersebut akan memberikan informasi mengenai nama-
nama mesin/domain yang berada di bawah domain yang dipegangnya.

Misal: server DNS penulis mempunyai otorisasi terhadap domain indolinux.com,


maka ketika ada sebuah komputer dari Internet ingin mengakses
pikachu.indolinux.com, maka sang komputer itu akan menghubungi server DNS
penulis untuk mengetahui informasi alamat IP dari pikachu.indolinux.com. Sang
server DNS akan menjawab permintaan/query dari komputer peminta tersebut
dengan alamat IP yang sesuai kemudian komputer tersebut dapat mengakses
pikachu.indolinux.com melalui alamat IP yang diberikan oleh name-server tersebut.
Pencarian host pikachu.indolinux.com

Versi terakhir pada saat artikel ini dibuat adalah BIND versi 9.2.1. Sebagian besar distribusi
Linux menyertakan paket BIND. Jadi anda tinggal konfigurasi dan aktifkan saja jika sudah
terinstal.
BIND secara umum terdiri dari beberapa berkas yang mendukung yaitu:

1. /etc/resolv.conf
Berkas konfigurasi berisi domain atau alamat IP name-server yang pertama dicari oleh
resolver ketika sebuah domain/nama mesin diminta untuk dipetakan ke alamat IP.
2. /etc/nsswitch.conf
Berkas konfigurasi sistem untuk melakukan mekanisme switch sistem database dan
name-service. Switch dapat melalui berkas, name-server, atau NIS server.
3. /etc/named.conf
Berkas konfigurasi dari BIND yang utama, berisi informasi mengenai bagaimana klien
DNS mengakses port 53, letak dan jenis berkas database yang diperlukan. Umumnya
berisi letak berkas konfigurasi name-server root, domain, localhost/loopback, dan
reverse-mapping.
4. /var/named/named.ca
Berkas database name-server root yang bertanggung jawab terhadap Top Level Domain
di Internet. Digunakan untuk mencari domain di luar domain lokal. Nama berkas ini bisa
anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai berkas
konfigurasi utama dari BIND.
5. /var/named/named.local
Berkas database name-server untuk alamat loopback/host lokal/alamat diri sendiri. Nama
berkas ini bisa anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai
berkas konfigurasi utama dari BIND.
6. /var/named/db.domain-kita.com
Berkas database name-server untuk domain domain-kita.com yang berisi resource record,
informasi nama host dan alamat IP yang berada di bawah domain domain-kita.com.
Berkas ini bisa lebih dari satu tergantung jumlah domain yang kita kelola. Nama berkas
ini bisa anda definisikan sendiri tetapi tetap harus mengacu ke named.conf sebagai berkas
konfigurasi utama dari BIND.
7. /etc/rndc.conf
Berkas konfigurasi program rndc yaitu suatu program untuk administrasi dan kontrol
operasi name-server BIND.