Sunday, February 17, 2013

Install DNS using BIND in CentOS 6.2

OK… saatnya nyontek dan simpan lagi, biar ga lupa ^^, kali ini kita bermain-main dengan DNS.. apa itu DNS..??

berikut adalah kutipan dari om Wikipedia

“The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities.
A Domain Name Service translates queries for domain names (which are easier to understand and utilize when accessing the internet) into IP addresses for the purpose of locating computer services and devices worldwide.”

OK, pertama kali saya baca ini, rada lieur bin puyeng.. INTInya, DNS ini berfungsi untuk mentranslatekan HOSTNAME ke IP maupun sebaliknya. bila dianalogikan seperti phonebook di HP anda, anda bisa saja menghafalkan semua nomor HP orang-orang yang anda kenal, tapi alangkah mudahnya bila tinggal scroll dan cari nama yang anda ingin telepon. begitupun dengan sistem DNS ini, saya bisa saja menghafal ip 119.235.xxx.xxx adalah IP dari http://www.mimizu.or.id , tetapi alangkah mudahnya bila saya langsung ketik di browser saya http://www.mimizu.or.id. simple as that :D
==========================================================
Ini penting untuk konsep mengoperasikan DNS, saya kutip dari wikipedia
Beberapa kelompok penting dari data yang disimpan di dalam DNS adalah sebagai berikut:

  • A record atau catatan alamat memetakan sebuah nama host ke alamat IP 32-bit (untuk IPv4).
  • AAAA record atau catatan alamat IPv6 memetakan sebuah nama host ke alamat IP 128-bit (untuk IPv6).
  • CNAME record atau catatan nama kanonik membuat alias untuk nama domain. Domain yang di-alias-kan memiliki seluruh subdomain dan rekod DNS seperti aslinya.
  • [MX record]]’ atau catatan pertukaran surat memetakan sebuah nama domain ke dalam daftar mail exchange server untuk domain tersebut.
  • PTR record atau catatan penunjuk memetakan sebuah nama host ke nama kanonik untuk host tersebut. Pembuatan rekod PTR untuk sebuah nama host di dalam domain in-addr.arpa yang mewakili sebuah alamat IP menerapkan pencarian balik DNS (reverse DNS lookup) untuk alamat tersebut. Contohnya (saat penulisan / penerjemahan artikel ini), http://www.icann.net memiliki alamat IP 192.0.34.164, tetapi sebuah rekod PTR memetakan ,,164.34.0.192.in-addr.arpa ke nama kanoniknya: referrals.icann.org.
  • NS record atau catatan server nama memetakan sebuah nama domain ke dalam satu daftar dari server DNS untuk domain tersebut. Pewakilan bergantung kepada rekod NS.
  • SOA record atau catatan otoritas awal (Start of Authority) mengacu server DNS yang mengediakan otorisasi informasi tentang sebuah domain Internet.
  • SRV record adalah catatan lokasi secara umum.
  • Catatan TXT mengijinkan administrator untuk memasukan data acak ke dalam catatan DNS; catatan ini juga digunakan di spesifikasi Sender Policy Framework.
Jenis catatan lainnya semata-mata untuk penyediaan informasi (contohnya, catatan LOC memberikan letak lokasi fisik dari sebuah host, atau data ujicoba (misalkan, catatan WKS memberikan sebuah daftar dari server yang memberikan servis yang dikenal (well-known service) seperti HTTP atau POP3 untuk sebuah domain.
=============================================================
Ada banyak aplikasi untuk menjalankan servis DNS ini, di Windows bisa create dari server configuration dan pilih DNS Server, akan tetapi untuk menjalankan DNS dengan platform windows, dibutuhkan Hardware Requirement yang cukup besa ( jangankan untuk running as NameServer, wong untuk jalankan OS nya saja minimal 2GB untuk W2k8 ) dan saya tidak punya Hardware sebagus itu :( .
Terima kasih saya haturkan kepada platform berlambang pinguin yang “ramah” akan requirement. akhirnya saya menggunakan CentOS sebagai OS nya dan BIND sebagai Aplikasi NameServernya. Sebenernya bukan hanya BIND yang merupakan aplikasi untuk membangun NameServer, adalagi tinydns etc, tapi yang umumnya digunakan ya BIND ini.. langsung aja kita mulai ( Saya asumsikan CentOS sudah terinstall di Komputer kita.. )

1. Ambil paket dari repo-nya dengan menggunakan paket manager yum
# yum -y install bind bind-utils

2. Lalu Edit named.conf nya… disinilah konfigurasi  untuk menjalankan BIND
# nano /etc/named.conf
edit seperti di bawah ini
===================================================================================
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
    listen-on port 53 { 127.0.0.1; 192.168.0.151;  };
#    listen-on-v6 port 53 { ::1; };
# —- Mendisable IPv6 —- #
    listen-on-v6 port 53 { none; };
    directory     ”/var/named”;
    dump-file     ”/var/named/data/cache_dump.db”;
       statistics-file “/var/named/data/named_stats.txt”;
       memstatistics-file “/var/named/data/named_mem_stats.txt”;
# —- IP Address yang diperbolehkan untuk melakukan query dns — #
    allow-query     { localhost; 192.168.0.0/16; };
    allow-transfer {localhost; 192.168.0.0/16; };
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    /* Path to ISC DLV key */
    bindkeys-file “/etc/named.iscdlv.key”;
};
logging {
        channel default_debug {
                file “data/named.run”;
                severity dynamic;
        };
};
# — Buat view untuk LAN dan zone nya juga — #
view “internal” {
match-clients   {
        localhost;
        192.168.0.0/16;
        };
zone “.” IN     {
    type hint;
    file “named.ca”;
        };
# — buat domain nya terserah saja, soalnya local.. dan .ari sampe saat ini belum lahir — #
zone “server.ari” IN {
    type master;
    file “/etc/named/server.ari.lan”;
    allow-update {none;};
            };
# — Ini untuk reverse DNS, query dari ip address ke hostname — #
zone “0.168.192.in-addr.arpa” IN {
    type master;
    file “/etc/named/0.168.192.db”;
    allow-update {none;};
    };
include “/etc/named.rfc1912.zones”;
    };
# — Buat Bagian untuk ke arah WAN nya — #
view “external” {
    match-clients { any; };
    allow-query { any; };
    recursion no;
zone “server.ari” IN{
    type master;
    file “/etc/named/server.ari.wan”;
    allow-update { none; };
    };
zone “0.73.128.202.in-addr.arpa” IN {
    type master;
    file “/etc/named/0.73.128.202.db”;
    allow-update { none; };
    };
};
=======================================================================================================

3. Setelah selesai di bagian named.conf, kita sekarang buat Zone-zone yang telah kita definisikan di file named.conf
a. # Nano server.ari.lan
isikan dengan ini
$TTL 86400
@        IN     SOA     ns01.server.ari. root.server.ari. (
                2011071001  ; Serial
                3600        ; Refresh
                1800        ; Retry
                604800      ; Expire
                86400       ; Minimum TTL
)
                NS              ns01.server.ari.
                A               192.168.0.151
                MX 10           ns01.server.ari
localhost       A               127.0.0.1
ns01            A               192.168.0.151
wiki            A               192.168.0.10
ipcop           A               192.168.0.21
b. # Nano server.ari.wan
$TTL 86400
@   IN  SOA     ns01.server.ari. root.server.ari. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        NS      ns01.server.ari.
        A       192.168.0.151
        MX 10   ns01.server.ari.
ns01    A       192.168.0.151

c. Setelah membuat zone untuk dns forwarders, kita buat untuk reverse query nya
# Nano 0.168.192.db
$TTL 86400
@       IN      SOA     ns01.server.ari. root.server.ari. (
                2011071001  ;Serial
                3600        ;Refresh
                1800        ;Retry
                604800      ;Expire
                86400       ;Minimum TTL
)
@       IN       NS     ns01.server.ari.
151     IN       PTR    ns01.server.ari.
10      IN       PTR    wiki.server.ari.
21      IN       PTR    ipcop.server.ari.

4. Setelah semuanya selesai, kita start daemon bind nya, yakni di :
[root@test /]# /etc/init.d/named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]

5. Beberapa cara untuk testing apakah dns telah berjalan dengan baik atau tidak, bisa dengan mengunakan ping host, nslookup atau dig

[root@test /]# ping wiki
PING wiki.server.ari (192.168.0.10) 56(84) bytes of data.
64 bytes from wiki.server.ari (192.168.0.10): icmp_seq=1 ttl=64 time=0.704 ms
64 bytes from wiki.server.ari (192.168.0.10): icmp_seq=2 ttl=64 time=0.160 ms
64 bytes from wiki.server.ari (192.168.0.10): icmp_seq=3 ttl=64 time=0.163 ms

[root@test /]# nslookup wiki
Server:         192.168.0.151
Address:        192.168.0.151#53
Name:   wiki.server.ari
Address: 192.168.0.10

[root@test /]# ping facebook.com
PING facebook.com (69.171.229.11) 56(84) bytes of data.
64 bytes from www-10-06-prn1.facebook.com (69.171.229.11): icmp_seq=1 ttl=244 time=211 ms
64 bytes from www-10-06-prn1.facebook.com (69.171.229.11): icmp_seq=2 ttl=244 time=206 ms
64 bytes from www-10-06-prn1.facebook.com (69.171.229.11): icmp_seq=3 ttl=244 time=202 ms
64 bytes from www-10-06-prn1.facebook.com (69.171.229.11): icmp_seq=4 ttl=244 time=204 ms
^C

[root@test /]# dig facebook.com
; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 <<>> facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34789
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 3, ADDITIONAL: 0
;; QUESTION SECTION:
;facebook.com.                  IN      A
;; ANSWER SECTION:
facebook.com.           7178    IN      A       66.220.158.11
facebook.com.           7178    IN      A       69.171.229.11
facebook.com.           7178    IN      A       69.171.242.11
facebook.com.           7178    IN      A       66.220.149.11
;; AUTHORITY SECTION:
facebook.com.           172776  IN      NS      ns3.facebook.com.
facebook.com.           172776  IN      NS      ns5.facebook.com.
facebook.com.           172776  IN      NS      ns4.facebook.com.
;; Query time: 1 msec
;; SERVER: 192.168.0.151#53(192.168.0.151)
;; WHEN: Tue May  1 17:19:04 2012
;; MSG SIZE  rcvd: 148

6. OK… selesai bermain dengan Host to IP nya, sekarang kita testing untuk reverse DNS nya apakah berjalan sesuai atau tidak..

[root@test /]# nslookup 192.168.0.10
Server:         192.168.0.151
Address:        192.168.0.151#53
10.0.168.192.in-addr.arpa       name = wiki.server.ari.

[root@test /]# nslookup 192.168.0.21
Server:         192.168.0.151
Address:        192.168.0.151#53
21.0.168.192.in-addr.arpa       name = ipcop.server.ari.

Fiuh.... selesai juga.. yang demikian di atas adalah cara instalasi DNS, yang lebih penting lagi adalah konsep dasarnya DNS itu sendiri, belum lagi bila melibat network yang sudah bertaraf enterprise dengan menggunakan subdomain, pendelegasian, update antar DNS dsb. tapi tenang saja, selama masih ada google, forum dan orang-orang baik di dunia maya yang dengan tanpa pamrihnya ngeshare ilmunya.. kita InsyaAllah bisa mempelajari dan mempraktekkannya.

Regards
@Blog MimiZu Or Id
Sumber
http://www.server-world.info/en/note?os=CentOS_6&p=dns&f=1
http://en.wikipedia.org/wiki/Domain_Name_System

0 comments: