Dynamic DNS dengan BIND dan DHCP





Dynamic DNS dengan BIND dan DHCP

Andi Mappesona <ona[at]its.ac.id>


Pendahuluan

Dynamic DNS merupakan sebuah sistem dalam jaringan yang memungkinkan untuk memberikan alamat IP dan nama domain pada
client secara otomatis. Konfigurasi sistem seperti ini banyak dilakukan oleh pihak-pihak yang memberikan layanan
hosting-hosting domain, sehingga administrator tidak perlu repot-repot mengupdate DNS-server setiap kali ada permintaan
domain baru.

Untuk implementasi sistem Dynamic DNS dibutuhkan paket BIND, DHCP-Server dan DHCP-Client. Versi paket yang
digunakan :

  • bind-9.3.4
  • dhcp3-server
  • dhcp3-client

Sistem operasi yang digunakan Debian 4.0 Etch.

Skenario Percobaan

Pada sebuah jaringan yang ingin mengimplementasikan Dynamic DNS, terdapat sebuah server dhcp dengan IP 167.200.17.65,
sebuah DNS server dengan IP 167.200.17.66 dan beberapa komputer client. Domain yang digunakan adalah gerhana.edu.
Host client yang akan dikonfigurasi sebagai contoh memiliki hostname eclipse.

Instalasi Paket

Intalasi paket pada debian cukup mudah dengan menggunakan apt-get.

root@ns:~$ apt-get install bind9

root@dhcp:~$ apt-get install dhcp3-server

root@eclipse:~$ apt-get install dhcp3-client

Konfigurasi DNS-Server

Konfigurasi yang dibutuhkan pada DNS-server dilakukan pada file named.conf dan file db yang menangani
zone domain gerhana.edu.

Konfigurasi named.conf
Konfigurasi untuk zone file tidak ada perbedaan dari konfigurasi DNS-server yang biasa. Contoh konfigurasi named.conf :

 
zone "gerhana.edu" {			//deklarasi zone domain.
	type master;			//tipe dari zone ini adalah master.
	file "/etc/bind/db.gernaha";	//file konfigurasi db dari zone ini.
	allow-update { key wind-key; }; //Mengijinkan update dengan menggunakan key yang sudah ada.
};

//Key yang digunakan untuk update, key ini harus sama dengan key yang ada pada dhcp server
key "wind-key" {
	algorithm hmac-md5;
	secret "J5A3SaVGipZNa0LPT8BWHQ==";
};

controls {
	inet 127.0.0.1 port 953
	allow { 127.0.0.1; 167.200.17.65;} keys { "wind-key"; };
};

Generate key dapat dilakukan dengan dnssec-keygen atau rndc-confgen.

Konfigurasi Zone File
Zone file yang akan dibuat adalah file db.gerhana yang contoh isinya seperti berikut :


$TTL 15m
@	IN	SOA	ns.gerhana.edu.  root.ns.gerhana.edu (
			2007042401
		    2h
			15m
			2h
			2h)
	IN  NS  ns.gerhana.edu.
	IN  A   167.200.17.66

$ORIGIN gerhana.edu.
ns	IN	A	167.200.17.66
dhcp	IN	A	167.200.17.65

Kita hanya menentukan nama untuk komputer-komputer server yang memiliki static IP, sedangkan untuk client-client akan
diupdate sesuai dengan kondisi. Setelah selesai restartlah service bind dengan perintah :

root@ns:~# /etc/init.d/bind9 restart

Note : Jangan lupa untuk memberikan hak write user dan group bind pada direktori /etc/bind agar
daemon bind dapat melakukan update.

Konfigurasi DHCP-Server

DHCP-Server hanya butuh melakukan konfigurasi pada file dhcp.conf. Konfigurasi yang akan dilakukan adalah :

  • Nama Domain : gerhana.edu.
  • IP DNS sever : 167.200.17.66.
  • IP Gateway : 167.200.17.65.
  • Range IP yang ditangani DHCP : 167.200.17.67-167.200.17.78

Contoh konfigurasi file dhcpd.conf :


//Key yang digunakan untuk update ke dns server, sama dengan key yang ada di dns server.
key wind-key {
	algorithm hmac-md5;
	secret "J5A3SaVGipZNa0LPT8BWHQ==";
};

server-identifier	dhcp.gerhana.edu;
authoritative;
ddns-update-style	interim;
ddns-updates		on;

subnet 167.200.17.64 netmask 255.255.255.240 {

	//Deklarasi zone yang dipakai, sama dengan zone yang ada pada dns server
	zone gerhana.edu. {
		primary 167.200.17.66;
		key wind-key;
	}

	option domain-name      	"gerhana.edu";			//Domain yang akan diberikan kepada client.
	option domain-name-servers	167.200.17.66;			//IP dns server
	range               		167.200.17.67 167.200.17.78;	//Range IP yang digunakan untuk DHCP
	option subnet-mask      	255.255.255.240;		//Subnet mask domain yang akan diberikan ke client
	option broadcast-address	167.200.17.79;			//Alamat broadcast yang akan diberikan kepada client
	option routers          	167.200.17.65;			//Alamat gateway yang diberikan kepada client
	option ip-forwarding		off;
	one-lease-per-client		on;
	default-lease-time     		14400;
	max-lease-time         		14401;
}

Setelah itu restartlah service dhcp dengan perintah :

root@dhcp:~# /etc/init.d/dhcp3-server restart

Konfigurasi Client

Pada client kita hanya butuh manambahkan konfigurasi ini pada file dhclient.conf :

 
send host-name "eclipse"; //hostname yang dikirimkan client dan yang akan di tambahkan ke dns-server.
send dhcp-client-identifier MAC-address; //Mengirimkan identifier MAC Address dari lan card

Dengan tambahan konfigurasi diatas maka client akan mengirimkan request IP DHCP-Server, sekaligus mengirimkan
hostname-nya agar DHCP-Server melakukan update ke DNS server dengan informasi kalau di subnet ini ada tambahan
client baru dengan nama eclipse.gerhana.edu dan IP yang sesuai dengan alokasi DHCP-Server

Setelah melakukan konfigurasi client, konfigurasilah client tersebut untuk mendapatkan IP dari DHCP. Konfigurasinya
dilakukan pada file /etc/network/interfaces. Contoh konfigurasinya :

 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Setelah itu restartlah konfigurasi network client dengan perintah :

root@eclipse~$ /etc/init.d/networking restart

Untuk mengetahui ada error atau tidak dapat diamati melalui pesan syslog dengan perintah tail -f /var/log/syslog
pada masing-masing server.

Selamat Mencoba


Referensi :

  1. O’ Reilly - DNS and BIND 4th Edition
  2. O’ Reilly - DNS & BIND Cookbook
  3. Mbah Google