Rabu, 28 Maret 2012

Konsep & Cara Kerja DNS


DNS (Domain Name System) adalah suatu system yang mengubah nama host (seperti linux.or.id) menjadi alamat IP (seperti 64.29.24.175) atas semua komputer yang terhubung langsung ke Internet. DNS juga dapat mengubah alamat IP menjadi nama host.
DNS bekerja secara hirarki dan berbentuk seperti pohon (tree). Bagian atas adalah Top Level Domain (TLD) seperti COM, ORG, EDU, MIL dsb. Seperti pohon DNS mempunyai cabang-cabang yang dicari dari pangkal sampai ke ujung. Pada waktu kita mencari alamat misalnya linux.or.id pertama-tama DNS bertanya pada TLD server tentang DNS Server yang melayani domain .id misalnya dijawab ns1.id, setelah itu dia bertanya pada ns1.id tentang DNS Server yang bertanggung jawab atas .or.id misalnya ns.or.id kemudian dia bertanya pada ns.or.id tentang linux.or.id dan dijawab 64.29.24.175
Sedangkan untuk mengubah IP menjadi nama host melibatkan domain in-addr.arpa. Seperti domain lainnya domain in-addr.arpa pun bercabang-cabang. Yang penting diingat adalah alamat IP-nya ditulis dalam urutan terbalik di bawah in-addr.arpa. Misalnya untuk alamat IP 64.29.24.275 prosesnya seperti contoh linux.or.id: cari server untuk arpa, cari server untuk in-addr.arpa, cari server untuk 64.in-addr.arpa, cari server 29.64.in-addr.arpa, cari server untuk 24.29.64.in-addr.arpa. Dan cari informasi untuk 275.24.29.64.in-addr.arpa. Pembalikan urutan angkanya memang bisa membingungkan.

DNS Server di linux biasanya dijalankan oleh program yang bernama named. Program ini merupakan bagian dari paket bind yang dikoordinasikan oleh Paul Vixie dari The Internet Software Consortium. Biasanya program ini terletak di /usr/sbin/named dan dijalankan pada waktu booting dari /etc/rc.d/init.d/named start. Agar named dijalankan pada setiap booting masukkan named ke daftar server yang harus distart dengan menggunakan ntsysv.

File konfigurasi untuk named adalah /etc/named.conf yang seperti biasa adalah text file. Format file ini seperti format program C atau Pascal yakni tiap perintah diakhiri dengan ';' dan blok perintah di kurung dengan '{' dan '}'. Ada beberapa blok yang sering digunakan yaitu:
options
untuk mengatur konfigurasi server secara global dan menentukan default
zone
untuk mengatur konfigurasi zona DNS

Caching Only DNS Server akan mencari jawaban dari pertanyaan DNS dan mengingat jawabannya ketika anda bertanya lagi. Ini akan mempersingkat waktu tunggu pada pertanyaan DNS berikutnya terutama jika anda menggunakan koneksi yang lambat seperti modem.

File konfigurasi Caching Only DNS sudah disediakan oleh RedHat dalam paket caching-nameserver anda tinggal menginstal paketnya dan mengedit file /etc/named.conf dan menambahkan baris berikut pada blok options:
        forward first;
        forwarders {
          202.158.3.6;
          202.158.3.7;
        };

Kedua alamat IP diatas adalah alamat IP untuk DNS Server ISP saya yaitu CBN jika ISP anda berbeda anda harus menggantinya.

Pada bagian ini kita akan membuat domain untuk jaringan lokal (LAN) misalnya intra.aki. Ada baiknya menggunakan domain yang benar-benar tidak ada di Internet sehingga kita tidak mengganggu domain siapa pun. Perlu diingat bahwa tidak semua karakter diperbolehkan untuk menjadi nama host yang dibolehkan hanya A-Z, a-z, 0-9 dan karakter '-'. Selain itu nama host itu tidak bergantung pada huruf besar atau huruf kecil, jadi linux.intra.aki dan LINUX.Intra.AKI adalah sama. Kita masih mengedit file yang berasal dari paket caching-nameserver.

Pertama kita mengedit file /etc/named.conf untuk menambahkan baris berikut:
zone "intra.aki" {
        type master;
        notify no;
        file "intra.aki";
}

Yang berarti bahwa kita membuat zona domain intra.aki dimana kita adalah penguasa domain tersebut (type master) tetapi kita tidak ingin domain ini tersebar ke internet (notify no) dan informasi tentang anggota domainnya itu sendiri disimpan di file intra.aki di direktori yang ditentukan oleh keyword direktory dari blok options yang berisi /var/named

Kemudian kita membuat file zona intra.aki yang berisi informasi tentang anggota domain
; Zone file for intra.aki
@               IN      SOA     ns.intra.aki.   root.intra.aki. (
                        2000091401 ; serial
                        8H ; refresh
                        3H ; retry
                        1W ; expire
                        1D ; default_ttl
                        )
                        NS      ns
                        A       192.168.1.100
                        MX      10 linux.intra.aki.
                        MX      20 other.extra.aki.
localhost               A       127.0.0.1
linux                   A       192.168.1.100
ns                      A       192.168.1.100
ftp                     CNAME   linux
pop                     CNAME   linux
www                     CNAME   linux.intra.aki
cctv                    A       192.168.1.3

Perhatikan tanda '.' pada akhir dari nama domain di file ini. File zona ini mengandung 9 Resource Record (RR): satu SOA RR, satu NS RR, tiga CNAME RR dan empat AA RR. SOA merupakan singkatan dari Start Of Authority. Karakter “@” berarti nama domain dari zona yaitu intra.aki jadi baris kedua diatas berarti
intra.aki.    IN     SOA ....

NS adalah Name Server RR. Tidak ada “@” pada awal baris karena baris diatasnya dimulai dengan '@'. Menghemat waktu mengetiknya. Jadi baris NS bisa juga di tulis
intra.aki.    IN     NS     ns

Ini memberitahu DNS host mana yang menjadi name server bagi domain intra.aki yakni ns.intra.aki. 'ns' adalah nama yang biasa dipakai untuk name server, tetapi seperti web server yang biasa dinamakan www.anu namanya bisa diubah menjadi apapun.
Baris SOA adalah pembuka bagi semua file zona dan harus ada satu dalam setiap file zona. Baris tersebut menjelaskan zona, darimana dia datang (host bernama ns.intra.aki), siapa yang bertanggung jawab atas isinya (root@intra.aki), versi zona file (serial: 2000091401) dan parameter lainnya yang berhubungan dengan caching dan secondary DNS Server. Perlu diperhatikan bahwa ns.intra.aki haruslah nama host dengan A RR. Tidak diperbolehkan membuat CNAME RR untuk nama yang disebutkan di SOA.
RR A mendefinisikan alamat IP dari suatu nama host sedangkan CNAME mendefinisikan nama alias dari suatu host yang harus merujuk ke RR lainnya.
Ada satu lagi tipe RR pada file ini yaitu MX atau Mail eXchanger. RR ini berfungsi untuk memberitahukan sistem mail kemana harus mengirim e-mail yang di alamatkan keseseorang@intra.aki dalam hal ini linux.intra.aki atau other.extra.aki. Angka sebelum nama host adalah prioritas MX. RR dengan angka terendah (10) adalah host yang harus dikirimkan email pertama kali. Jika tidak berhasil maka e-mail bisa dikirim ke host lain dengan angka yang lebih besar misalnya other.extra.aki yang mempunyai prioritas 20.

Zona Reverse diperlukan untuk mengubah dari alamat IP menjadi nama. Nama ini digunakan oleh berbagai macam server (FTP, IRC, WWW dsb) untuk menentukan apakah anda diperbolehkan mengakses layanan tersebut atau sejauh mana prioritas yang diberikan kepada anda. Untuk mendapatkan akses yang penuh pada semua layanan di Internet diperlukan zona reverse.

Tambahkan baris berikut di /etc/named.conf
zone "1.168.192.in-addr.arpa" {
        notify no;
        type master;
        file "192.168.1";
}

Seperti sebelumnya artinya kita membuat zona domain 1.168.192.in-addr.arpa yang tidak disebar ke internet dan disimpan di file /var/named/192.168.1

Sekarang kita membuat file zona 192.168.1 untuk domain 1.168.192.in-addr.arpa seperti berikut:
; Zone file for reverse zone 1.168.192.in-addr.arpa (192.168.1.x)
@               IN      SOA     ns.intra.aki.   root.intra.aki. (
                        2000072801 ; serial
                        28800 ; refresh
                        7200 ; retry
                        604800 ; expire
                        86400 ; default_ttl
                        )
@               IN      NS      ns.intra.aki.
100             IN      PTR     linux.intra.aki.
3               IN      PTR     cctv.intra.aki.

Ada RR baru disini yakni PTR yang berfungsi untuk memetakan IP ke nama host

Jika anda memasang DNS server pada komputer yang berfungsi sebagai gateway antara jaringan internal anda dengan jaringan Internet serta DNS Server anda tidak melayani request dari luar (caching only DNS atau DNS untuk jaringan lokal saja) maka anda bisa membuat named untuk melayani hanya jaringan lokal saja dengan menambah baris berikut di dalam blok options:
listen-on { 127.0.0.1; 192.168.1.100; };
Sehingga named hanya membuka port pada interface loopback (127.0.0.1) dan eth0 (192.168.1.100).

Tidak ada komentar:

Posting Komentar