<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d3417119785294949608\x26blogName\x3dMy+Special+Blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dTAN\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://yudymardianto.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://yudymardianto.blogspot.com/\x26vt\x3d995569220600001438', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

My Special Blog

Uang adalah Hamba yang sangat baik tapi merupakan Tuan yang sangat buruk.

Instalasi DNS Server di Slackware Dengan BIND

Setiap kali anda menggunakan internet dalam kegiatan sehari-hari, maka setiap kali itu pula secara tidak langsung anda menggunakan DNS (Domain Name System). Penggunaan DNS meliputi aplikasi email (electronic-mail), browsing, ssh/telnet,ftp, maupun aplikasi yang ada kaitannya dengan internet. Fungsi utama DNS adalah menerjemahkan nama-nama host (hostnames) menjadi nomor IP (IP address) ataupun sebaliknya, sehingga nama tersebut mudah diingat oleh pengguna intenet. Fungsi lainnya adalah untuk memberikan suatu informasi tentang sesuatu host keseluruh jaringan internet.

Instalasi Bind.
Sebelumnya ada harus mendownload software bind-nya terlebih dahulu di:
# cd /home
# wget http://ftp.isc.org/isc/bind/9.4.1/bind-9.4.1.tar.gz
# userdel -r named
# rm -rf /var/named
# tar -xzvf bind-9.4.1.tar.gz
# cd bind-9.4.1
# ./configure --prefix=/usr/local/named --disable-openssl-version-check
# make
# make install
# adduser -d /var/named -s /bin/false named
# cd /var/named
# wget http://www.internic.net/zones/named.root
# vi db.127.0.0
isi dari file db.127.0.0 adalah:
$TTL 86400
@ IN SOA localhost. root.localhost. (
2007092900 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
1 IN PTR localhost.

# cp db.127.0.0 db.10.126.24
# vi db.localhost
isi dari file bd.localhost adalah:
$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2007092900 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum
IN NS localhost.
IN A 127.0.0.1

# mkdir /usr/local/named/etc
# vi /usr/local/named/etc/named.conf
isi dari file named.conf adalah
options {
directory "/var/named";
allow-transfer { 10.126.24.2/32; };
pid-file "/var/named/named.pid";
};

logging {
category lame-servers { null; };
};

zone "." IN {
type hint;
file "named.root";
};

zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
}:

zone "24.126.10.in-addr.arpa" IN {
type master;
file "db.10.126.24";
}:

# /usr/local/named/sbin/rndc-confgen

muncul file sebagai berikut:
key "rndc-key" {
algorithm hmac-md5;
secret "PqXBOkT48mkWQ+4TgUsYYg==";
};

options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "PqXBOkT48mkWQ+4TgUsYYg==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

# vi /usr/local/named/etc/rndc.conf
isi dari file rndc.conf adalah:
key "rndc-key" {
algorithm hmac-md5;
secret "PqXBOkT48mkWQ+4TgUsYYg==";
};

options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};

# vi /usr/local/named/etc/rndc.key
isi dari file rndc.key adalah:
key "rndc-key" {
algorithm hmac-md5;
secret "PqXBOkT48mkWQ+4TgUsYYg==";
};

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

# /usr/local/named/sbin/rndc-confgen > confgen.tmp
# grep -v "^#" confgen.tmp > /usr/local/named/etc/rndc.conf
# grep "^#" confgen.tmp | sed 1,3d | sed -e "s/\# //g" | sed -e "s/End of named.conf//g" >> /usr/local/named/etc/named.conf
# rm -rf confgen.tmp
# chown -R named.named /var/named
# /usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf
Supaya bisa jalan saat booting script dibawah ini aka menambahkan pada rc.local
# echo "/usr/local/named/sbin/named -u named -c /usr/local/named/etc/named.conf" >> /etc/rc.local
Ganti pada resolv.conf
# echo "nameserver 127.0.0.1" > /etc/resolv.conf

Jika anda terhubung ke sebuah ISP dan ingin membagi beban querydari client anda yang menuju ke server anda dengan server DNS ISP anda, maka anda bisa menggunakan opsi forwarder. Misalkan DNS server ISP anda mempunyai IP 10.11.12.1 dan 10.11.12.2 maka di file named.confpada seksi options, bisa anda tambahkan :

 forward first;
forwarders {
10.11.12.1;
10.11.12.2;
};
Menambahkan Sebuah Domain.
# cd /var/named
# vi db.kurowo.edu
isi dari file db.kurowo.edu adalah:
$TTL 86400
@ IN SOA ns1.kurowo.edu. asfik.kurowo.edu. (
2007092900 ; serial
28800
14400
3600000
86400
)
IN NS ns1.kurowo.edu.
IN NS ns2.kurowo.edu.
IN MX 10 dursosono.kurowo.edu.
IN MX 20 duryudono.kurowo.edu.
IN A 10.126.24.3

ns1 IN A 10.126.24.1
ns2 IN A 10.126.24.2
www IN A 10.126.24.3
dursosono IN A 10.126.24.4
duryudono IN A 10.126.24.5
gateway IN A 10.126.24.6
ftp IN CNAME www

Kemudian tambahkan pada named.conf
# /usr/local/named/etc/named.conf
zone "kurowo.edu" {
type master;
file "db.kurowo.edu";
};

Restart bind dengan perintah
# /usr/local/named/sbin/rndc reload

Kemudian edit pada file db.10.126.24
# cd /var/named/
# vi db.10.126.24
isi file dari db.10.126.24 adalah:
$TTL 86400
@ IN SOA ns1.kurowo.edu. asfik.kurowo.edu. (
2007092900 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS ns1.kurowo.edu.
IN NS ns2.kurowo.edu.

1 IN PTR ns1.kurowo.edu.
2 IN PTR ns2.kurowo.edu.
3 IN PTR www.kurowo.edu.
4 IN PTR dursosono.kurowo.edu.
5 IN PTR duryudono.kurowo.edu.
6 IN PTR gateway.kurowo.edu.

Kemudian restart bind dengan script dibawaha ini:
# /usr/local/named/sbin/rndc reload

Membuat Secondary Name Server.
Setelah anda selesai membuat primary name server (ns1), langkah selanjutnya adalah membuat secondary name server (ns2). tujuannya adalah untuk menerima query dns jika pada primary name server (ns1) seagai server dns yang utama mengalami gangguan teknis ataupun terlalu sibuk. Oleh karena idealnya secondary name server (ns2) biasanya diletakkan pada network yang berbeda dengan primary name server (ns1), tentu secondary name server (ns2) ini membutuhkan komputer/mesin yang lain (terpisah dari primary). Langkah instalasi secondary name server sama ketika anda mengkonfigurasi primary name server. Namun, file yang digunakan hanya db.127.0.0.1, db.localhost, dan named.root.

Untuk memastikan hnya host dengan IP 10.126.24.2/32 (ns2) yang bisa mentranfer zone dari ns1, maka pastikan pada file named.conf di ns1 pada bagian options terdapat:

allow-transfer { 10.126.24.2/32; };

Kemudian anda bisa login (ssh) ke ns2, dan kemudian buat file named.conf yang isinya adalah sebagai berikut :
options {
directory "/var/named";
pid-file "/var/named/named.pid"; };

logging {
category lame-servers { null; };
};

zone "." IN {
type hint;
file "named.root";
};

zone "localhost" IN {
type master;
file "db.localhost";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "db.127.0.0";
allow-update { none; };
};

zone "kurowo.edu" {
type slave;
file "dbs.kurowo.edu";
masters { 10.126.24.1; };
};

zone "24.126.10.in-addr.arpa" {
file "dbs.10.126.24";
masters { 202.145.6.99; };
};

Kemudian restart daemon DNS di ns2 dengan perinta rndc (killall -HUP named) , jika sukses maka zone kurowo.edu dan zone 24.126.10.in-addr.arpa segera ditransfer dari ns1, dan pada file /var/log/messages terdapat pesan sebagai berikut :
Feb 15 14:31:47 kadal named[630]: transfer of 'kurowo.edu' from 10.126.24.1#53: end of transfer
Feb 15 14:31:47 kadal named[630]: transfer of '24.126.10.in-addr.arpa' from 10.126.24.1#53: end of transfer

Jika anda perhatikan juga file /var/log/messages pada ns1 maka akan menghasilkan pesan berikut :
Feb 15 14:42:43 wedus named[25232]: client 10.126.24.2#3918: transfer of 'kurowo.edu/IN': AXFR started
Feb 15 14:42:43 wedus named[25232]: client 10.126.24.2#1527: transfer of '24.126.10.in-addr.arpa/IN': AXFR started

Jika sukses, berarti primary name server (ns1) dan secondary name server (ns2) sudah beroperasi dengan benar. Ketika anda ingin menambahkan domain baru lagi yang lain, misalnya ayodyo.co.id, anda tinggal mengulangi langkah-langkah dalam seksi "Menambah sebuah domain" . Ketika domain yang anda kelola telah mencapai jumlah ribuan nama domain misalnya, dan anda ingin memisahkan data tersebut dari file konfigurasi named.conf, anda bisa menggunakan include di named.conf, misalnya :

include "/usr/local/named/etc/my.big.hosts.conf";

Mendelegasikan Subdomain ke name server yang lain.
Misalkan anda mempunyai domain kurowo.edu dan ada suatu bagian/departemen yang menginginkan pengelolaan database sendiri terhadap suatu subdomain, maka anda bisa mendelegasikan subdomain tersebut. Diumpamakan subdomain cs.kurowo.edu akan dikelola oleh Departemen Computer Science denganname server yaitu citraksa.cs.kurowo.edu (10.126.25.1) dan citraksi.cs.kurowo.edu (10.126.25.2) maka pada file named.conf di database zone kurowo.edu anda tambahkan :

; cs.kurowo.edu dikelola oleh name server ini
cs IN NS citraksa.cs.kurowo.edu.
IN NS citraksi.cs.kurowo.edu.
citraksa.cs IN A 10.126.25.1
citraksi.cs IN A 10.126.25.2

Restart daemon named, dan selanjutnya subdomain tersebut telah didelegasikan.

Beberapa istilah/singkatan yang digunakan dalam database pada sebuah zone :
TTL : Time To Live
SOA : Start of Authority
NS : Name Server
MX : Mail Exchanger
TXT : Text
A : Adrress (name-to-address mapping)
PTR : Pointer (address-to-name mapping)
CNAME : Canonical name

Referensi
DNS and BIND 3rd Edition ditulis oleh Paul Albitz dan Cricket Liu, penerbit O'Reilly tahun 1998, anda bisa mendapatkan edisi yang paling baru (edisi ke 4) di http://www.oreilly.com/catalog/dns4

http://www.isc.org/products/BIND/bind-history.html
http://www.tldp.org/HOWTO/DNS-HOWTO.html
http://www.layangan.com/asfik/writings/dns-bind.html