DNS Server

Dari IgosCenter

Langsung ke: Navigasi, Cari

Daftar isi

Apa itu DNS ?

DNS yang merupakan kepanjangan dari Domain Name System merupakan suatu hireraki dari database yang terdistribusikan. Database tersebut berisi pemetaan dari nama suatu host ke alamat IP dan sebaliknya. Agar client dapat mengakses suatu service, yang dapat dilakukan adalah memanggil alamat IP nya namun hal yang sangat merepotkan jika kita harus memasukkan alamat IP untuk mengakses suatu komputer. Oleh karena itu, untuk memudahkan manusia yang lebih terbiasa dengan kata atau nama dibanding serentetan angka maka digunakanlah DNS ini. [tutorial.ini.bikinan.si.cica.untuk.pelatihan.comlabs]

Struktur Hirarki DNS

Struktur database DNS menyerupai struktur tree (pohon) dan terbagi-bagi ke dalam kelompok dan hirarki tersebut disebut sebagai Domain Name Space. Pada puncaknya disebut root node, pada setiap node dalam tree tersebut mempunyai keterangan berupa label misalnya .org , .com, .edu, .net, dsb yang relative terhadap puncaknya (parent). Kemudian di kenal sebuah istilah Domain Name Space. Domain name space dapat digambarkan :

Root-Level Domains : merupakan hirarki level paling atas, merupakan zone terbesar atau merupakan sistem DNS global yang di buat untuk internet. Zone ini di manage oleh IANA (Internet Assigned Numbers Authority) dan IANA berada di bawah ICAAN (Internet Corporation for Assigned Names and Numbers).

Top-Level Domains : digunakan untuk pengelompokan tertentu, misalnya .org untuk organisasi non profit, .edu untuk pendidikan atau universitas, .com untukorganisasi komersial, dan dua huruf untuk negara, misalnya id (Indonesia) , il (israel), .sg (singapura) , dsb. Second-Level Domains : dapat berisi host ataupun subdomain lain, dan ilustrasi seperti pada gambar.

Host : domain name yang digunakan dengan host name akan menciptakan Fully Qualified Domain Name (FQDN) untuk setiap komputer. Misalnya, jika terdapat www.itb.ac.id maka www adalah hostname dan itb.ac.id adalah domain name.

Cara Kerja DNS Server

Ketika query dilakukan (bisa berupa ping, dig, host, nslookup, dsb) ke suatu host, misalnya www.itb.ac.id maka name server akan memeriksa apakah ada record host tersebut di cache name server lokal, jika ada maka akan langsung di peroleh jawaban yang diminta namun jika tidak, name server lokal akan melakukan query kepada name server “.id” root server dan mereferensikan name server untuk Top-Level Domains “.id”, kemudian name server lokal melakukan query yang sama dengan mereferensikan “.ac.id” dan name server lokal kembali mengirimkan query “www.itb.ac.id” dengan mengirimkan “www.itb.ac.id” ke name server lokal dan akhirnya mendapatkan jawaban yang diminta.

Jenis DNS Server

  • Primary NS : disebut juga Master NS, merupakan NS yang menyimpan database hostname dan IP suatu zone. Primary NS merupakan acuan bagi secondary NS. Primary NS bersifat authorative.
  • Secondary NS : disebut juga Slave NS, merupakan NS cadangan atau backup yang memperoleh informasi dari primary NS. Setiap ada informasi yang di update dari Primary NS, dan ini di lihat dari serial number dari Primary NS yang menandakan adanya perubahan di Primary NS, jika serial number tersebut berbeda maka akan di lakukan transfer ulang dari Primary NS. Jika Primary NS mengalami down, Secondary NS lah yang akan menggatikan Primary Ns. Secondary NS bersifat authorative.
  • Caching NS : Ns ini hanya melakukan caching data dari zona lain. Data yang dipertahankan biasanya hanya 8 jam dan jika client memerlukan informasi suatu IP address maka akan dicari terlebih dahulu dari data caching yang ada. Caching NS tidak bersifat authorative.

Instalasi DNS Server

Syarat : si server harus pakai IP address yang static

Misalnya, yang akan kita install adalah primary NS dan asumsikan souces.list telah tertuju pada alamat yang benar, untuk menginstall DNS daemon dapat menggunakan paket yang ada di repository : bind9 BIND (Berkeley Internet Name Domain) merupakan daemon dari DNS server.

# apt-get install bind9

Konfigurasi DNS Server

Konfigurasi ini dibuat untuk DNS Server sevagai Primary Master Name Server.

Konfigurasi named.conf

Konfigurasi named.conf merupakan konfigurasi utama yang dibaca saat bind dijalankan. Konfigurasi ini berisi tentang letak database dan letak file-file yang dibutuhkan. Script yang dijalankan merupakan script yang terlingkupi kurung kurawal “{ … }” dan diakhiri dengan semicolon “;” . Script yang dijalankan memiliki sifat case sensitive. Format umum dari named.conf yang biasanya digunakan :

options { … };
zone “nama_zona1” [kelas] { … };
zone “nama_zona2” [kelas]{ … };
zone “nama_zona3” [kelas]{ … }; …. dst 

Untuk server ubuntu, file konfigurasi named.conf terletak default di /etc/bind/ . Edit file named.conf :

# mcedit /etc/bind/named.conf

options : berisi statement mengenai pengaturan umum dan sifat global dari sebuah scope untuk semua zona

options {
           directory “/etc/bind” ; 
};
  • directory : merupakan direktori kerja, yaitu letak database
  • forwarders : menyatakan list dari nameserver yang akan diteruskan paketnya, dalam hal ini forwarders dapat host sendiri, asumsi IP komputer saya 167.205.45.155.
  • zone : mendefinisikan zona tertentu yang disupport oleh name server kita misalnya akan dibuat zone yang bernama “rangers.id” serta database dari zone di letakkan di “/var/named/db.rangers.id”

Pengelolaan Konfigurasi DNS Server

Masih dilakukan di named.conf, mengkonfigurasikan file penujuk forward dan file penunjuk reverse.

Konfigurasi File Penunjuk Forward

Menunjukkan letak database forward, yaitu database yang memetakan dari nama host ke alamat IP. Jika file database forward “db.rangers.id” terletak di “/etc/bind/db.rangers.id” , maka konfigurasi menjadi :

zone “rangers.id” IN {
                         type master;
                         file “db.rangers.id”;                   
           };

Konfigurasi File Penunjuk Reverse

Menunjukkan letak database reverse, yaitu database yang memetakan dari alamat IP ke nama host. Jika file database reverse “arpa.id.rangers” terletak di “/etc/bind/arpa.rangers.id”, maka konfigurasi menjadi :

zone “45.205.167.in-addr.arpa” IN{
                         type master;
                         file “arpa.rangers.id”;                   
           };

Penamaan zona reverse di tulis terbalik (45.205.167.in-addr.arpa) , ini merupakan kebalikan dari network IP dan hal ini dikarenakan sistem akan membaca suatu IP dengan terbalik untuk memetakan ke dalam hostname.

Kelas yang digunakan pada umumnya adalah “IN” (for Internet) karena pada umumnya yang DNS record adalah hostname, servers, atau alamat IP. Ada juga kelas lain, yaitu : CH (Chaos) and HS (Hesoid).

Pengelolaan Konfigurasi Penamaan

Pengelolaan konfigurasi penamaan dapat di buat dalam suatu database, yang berisi kumpulan Host name dan alamat IP dari domain yang dikelola. Penamaan dilakukan untuk Forwarding DNS Server dan Reverse DNS Server.

Letak file konfigurasi database terletak default di “/etc/bind”. Di database, tanda titik koma ( ; ) merupakan komentar, karakter yang diikutinya, selama masih dalam satu baris tidak termasuk ke sintak atau argumen program. Untuk seiap perubahan, jagan lupa untuk merubah serial number, agar perubahan segera terdeteksi.

Penamaan Forwarding DNS Server

Buat file “db.rangers.id”

Konfigurasi file database forward.

Contoh konfigurasi forward ada secara default di /etc/bind/db.local , agar lebih cepat dapat di copy dan di edit .

# cp /etc/bind/db.local /etc/bind/db.rangers.id

Edit db.rangers.id, konfigurasinya akan seperti ini :

$TTL    3600
@       IN      SOA     ns.rangers.id. admin.rangers.id. (
                          2009281101      ; Serial
                          28800           ; Refresh
                          86400           ; Retry
                          2419200         ; Expire
                          86400  )        ; Minimum TTL
;

;untuk NS Record
@                IN      NS      ns.rangers.id.

; letak database mulai dari sini

ns               IN      A       167.205.45.17

Penamaan Reverse DNS Server

Buat file “arpa.rangers.id”

Konfigurasi file database reverse.

Copy format file dari db.local

# cp /etc/bind/db.local /etc/bind/arpa.rangers.id

Edit arpa.rangers.id, onfigurasinya akan seperti ini :

$TTL    3600
@       IN      SOA     ns.rangers.id. admin.rangers.id. (
                     2009281101        ; Serial
                     28800             ; Refresh
                     14400             ; Retry
                     2419200           ; Expire
                     86400 )           ; Minimun TTL
;

;untuk NS Records ;;;
@            IN       NS      ns.rangers.id.

;;address point ke PTR

17           IN       PTR     ns.rangers.id.

Keterangan :

Argumen Keterangan
@ Zone bagian yang identik dengan zona yang telah di definisikan di file named.conf
IN Class dari For Internet, kelas yang biasanya digunakan untuk protokol TCP/IP
2009281101 Serial Number menunjukkan serial number dari DNS server. Setiap ada perubahan, nilai ini harus berubah. Format umumnya adalah yyyymmddnn yaitu (yyyy)tahun , mm(bulan), (dd) hari, (nn) perubahan ke-n di hari itu. Jika seial number tidak di rubah saat ada perubahan maka data di cache tidak akan berubah pula
28800 Refresh menunjukkan waktu slave server merefresh zona. Satuan dalam detik. Pada umumnya rentang waktu antara 1200-43200.
14400 Retry merupakan lama dari waktu jeda antara percobaan slave server mengontak master-server jika mengalami kegagalan ketika slave master merefresh cache dari master server. Satuan dalam detik.
2419200 Expire akan mengontak master server untuk untuk membaca SOA record pada zona dan merequest AXFR/IFXR jika serial number telah berubah. Jika slave gagal mengontak master maka slave akan terus mencoba mengontak master hingga waktu SOA EXPIRE habis dan masih melayani query hingga kontak ke master server berhasil. Rekomendasi RFC.1912 adalah 1209600-2419200
860400 Minumum TTL merupakan nilai default TTL (Time to Live) untuk semua record pada zone file. Satuan dalam detik. Implementasi bind9 merekomendasikan field ini dalam satuan detik.
A A record Merupakan catatan alamat yang memetakan sebuah nama host ke alamat IP 32-bit untuk Ipv4
PTR PTR record Merupakan catatan penunjuk yang memetakan sebuah nama host ke nama kanonik untuk host tersebut.
NS NS record Merupakan catatan name server yang memetakan sebuah nama domain ke suatu daftar dari server DNS untuk domain tersebut.
CNAME CNAME, Canonical Name for Alias Merupakan record yang menjelaskan primary ame untuk owner. Nama ownernya disebutkan dalam alias.
MX MX record Merupakan catatan menjelaskan tentang domain mail exchange.
AAAA AAAA record Merupakan catatan yang menjelaskan alamat class IPv6, sama halnya dengan A record namun alamat class berbeda.
TXT TXT record Merupakan record yang menunjukkan text strings, digunakan untuk menangani text yang berisi dekripsi suatu domain. Semantiknya tergantung dengan domain name dimana teks ditemukan.

Cek Konfigurasi

Bind9 memiliki fasilitas untuk mengecek konfigurasi yang telah di lakukan.

Cek Konfigurasi “named.conf”

Format yang digunakan :

# named-checkconf /etc/bind/named.conf

Pasikan tidak ada pesan error disana, jika tidak ada berarti konfigurasi benar.

Cek Pengelolaan Konfigurasi Zona

Format yang digunakan :

# named-checkzone nama_zona file_zona

Check zona forward :

# named-checkzone rangers.id /etc/bind/db.rangers.id

Check zona reverse :

# named-checkzone id.rangers /etc/bind/arpa.rangers.id

Pastikan tidak ada pesan error mucul dan mentriger statement “OK” .

Konfigurasi resolv.conf

Isi file ini dapat digenerate oleh DHCP server ataupun di setting secara manual di komputer client. Menunjukkan domain dan alamat DNS Server. Nameserver merupakan IP yang kita gunakan dan domain benar. Jadi konfigurasikan atau pastikan seperti ini :

nameserver 167.205.45.17
search rangers.id

Restart Daemon name server :

# /etc/init.d/bind9 restart

Pastikan pesan tertulis “OK” .

Test DNS Server

menggunakan fasilitas “dig”

dig, atau domain information groper merupakan tools untuk menanyai mengenai domain.

# dig any rangers.id

Pastikan jawaban dari respon benar OK, tidak SERVFAIL dan tidak NXDOMAIN

Menggunakan “nslookup”

nslookup, merupakan tools untuk mengirimkan query ke name server contoh 1,

# nslookup server

Jawaban :

Default server: 167.205.45.17
Address: 167.205.45.17#53

contoh 2,

#nslookup rangers.id

Jawaban :

Server:         167.205.45.17
Address:        167.205.45.17#53

Name:   ns.rangers.id
Address: 167.205.45.17

contoh 3

#nslookup 167.205.45.17

Jawaban :

Server:         167.205.45.17
Address:        167.205.45.17#53

17.45.205.167.in-addr.arpa      name = ns.rangers.id.

Kontributor: Estiyand

(c) Igos Center Bandung, 2009