Dari IgosCenter
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