Split DNS Menggunakan Bind9

Kamas Muhammad <kamas@lc.vlsm.org>


Tidak ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak, maupun memodifikasi. Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas. Terima Kasih.

Pendahuluan

Split DNS merupakan suatu metode yang memungkinkan DNS server untuk memberikan jawaban yang berbeda pada client yang berbeda untuk sebuah pertanyaan yang sama. Alasan yang banyak mendasari metode ini adalah memungkinkannya pemberian nama DNS untuk komputer-komputer yang berada pada jaringan lokal pada satu DNS server tanpa harus terresolve dari dunia luar.

Cara membedakannya adalah dengan membuat beberapa view dan mendaftarkan alamat network yang bersesuaian dengan view tersebut. Masing-masing view mempunyai definisi DNS zone sendiri, dan data dari zone itulah yang digunakan untuk menjawab query client.

Versi bind yang digunakan adalah 9.2.4(debian package) dan Debian 3.1 Sarge.

Skenario Kasus

KUD "Suka Maju" mempunyai beberapa komputer dengan IP publik, dan beberapa komputer lain dalam jaringan lokal. Domain yang harus bisa diresolve dari jaringan internet adalah www.kud-sukamaju.com, mail.kud-sukamaju.com, dan ns.kud-sukamaju.com. Kemudian beberapa domain yang digunakan untuk keperluan internal adalah kepala.kud-sukamaju.com, sekretaris.kud-sukamaju.com, dan db.kud-sukamaju.com.

Instalasi BIND

Instalasi bind9 pada debian mudah saja, yaitu dengan menggunakan apt-get.

Bila anda menggunakan distro lain install saja dari CD installernya, atau mungkin dengan mendownload source code dari ftp://ftp.isc.org/isc/bind9/.

root:~# apt-get install bind9

Konfigurasi named.conf

Konfigurasi zone file sama dengan konfigurasi pada umumnya, tanpa ada perbedaan sedikit pun. Implementasi split DNS ini hanya membutuhkan sedikit konfigurasi pada named.conf. Perlu kembali diingat bahwa masing-masing view tidak dapat berbagi zone. Walaupun semuah zone mempunyai data yang sama untuk kedua view, kita tetap harus menyebutkan definisi zone tersebut dalam semua view yang ada.

Pertama kita harus memisahkan network mana saja yang boleh meresolve domain internal, kemudian kita kelompokkan pada view yang bersesuaian. Kita akan membuat dua buah view, yakni eksternal dan internal. View eksternal memuat data yang bisa dilihat oleh seluruh dunia, dan view internal memuat data yang dapat dilihat dari jaringan internal KUD Suka Maju.

Daftar alamat IP dan domain yang dimiliki oleh KUD:

Alamat-alamat di atas kita kelompokkan menjadi dua view:

  1. view eksternal: www, mail, ns - dapat diresolve oleh semua client internet(0.0.0.0/0).
  2. view Internal: semua yang ada di eksternal ditambah kepala, sekretaris, dan db - hanya dapat diresolve oleh jaringan milik KUD Suka Maju(192.168.1.0/24, 12.2.1.0/29).

Contoh konfigurasi pada file named.conf:

view "internal" {
	match-clients {
		192.168.1.0/24;
		12.2.1.0/29;
	};
	
	zone "." {
		type hint;
		file "/etc/bind/db.root";
	};
	
	zone "kud-sukamaju.com" {
		type master;
		file "/etc/bind/kud-sukamaju.com.int";
	};
};

view "eksternal" {
	match-clients {
		0.0.0.0/0;
	};

	zone "." {
		type hint;
		file "/etc/bind/db.root";
	};

	zone "kud-sukamaju.com" {
		type master;
		file "/etc/bind/kud-sukamaju.com.eks";
	};
};

Satu hal yang perlu diingat adalah saat ada query dari client, maka bind akan mencoba mencocokkan IP penanya dengan view(s) yang ada di dalamnya secara berurutan dari atas ke bawah. Oleh karena itu view yang mengandung network 0.0.0.0 harus dituliskan setelah view yang lainnya.

Konfigurasi zone file

Zone file yang kita buat pertama kali adalah yang digunakan untuk view "eksternal". Kemudian setelah itu kita dapat membuat sebuah file lagi untuk view "internal" yang isinya juga menyertakan file eksternal dengan menggunakan $INCLUDE.

File /etc/bind/kud-sukamaju.com.eks:

@	IN	SOA	ns.kud-sukamaju.com. admin.kud-sukamaju.com. (
			23 7200 3600 604800 86400
		)
		IN	NS		ns.kud-sukamaju.com.
		IN	MX	1	mail.kud-sukamaju.com.
		IN	A		12.2.1.10

$ORIGIN kud-sukamaju.com.
www		IN	A	12.2.1.10
mail		IN	A	12.2.1.11
ns		IN	A	12.2.1.12

Kemudian file /etc/bind/kud-sukamaju.com.int:

$INCLUDE "/etc/bind/kud-sukamaju.com.eks"
kepala		IN	A	192.168.1.5
sekretaris	IN	A	192.168.1.6
db		IN	A	192.168.1.7

Dengan cara itu maka semua definisi yang berlaku untuk view eksternal berlaku juga untuk view internal. Selain dengan cara itu pembuatan file zone secara total juga bisa dilakukan. Dengan konsep yang sama kita juga bisa membuat sebuah domain yang berIP a.b.c.d bila dilihat dari jaringan x, namun berIP q.w.e.r bila dilihat dari jaringan y.

Selamat mencoba, semoga sukses!

Referensi

  1. Bind 9 Advanced Reference Manual
  2. Google