Jumat, 11 November 2011

Domain Name Service


Bab ini memberikan pengetahuan dasar mengenai domain name service yang menjadi tulang pungung sistem penamaan host di Internet. Pembaca belajar bagaimana membuat server name master, reverse lookup dan slave.
Pembaca juga diajak menggunakan tool grafis domain name service (redhat-config-bind) yang dapat digunakan untuk membuat domain dengan mudah dan cepat.
Sekilas DNS
Sekarang ini, Internet dan hampir semua jaringan lokal tergantung pada kerja dan ketangguhan Domain Name Service (DNS) yang digunakan untuk meresolve nama-nama sistem ke dalam IP address atau sebaliknya (reverse lookup). Agar fasilitas DNS tersedia di dalam jaringan, diperlukan sebuah nameserver.
DNS memungkinkan para pengguna jaringan komputer menggunakan nama seperti FileKontrol.sitc.com sebagai pengganti untuk mengingat IP address 192.168.0.253.
Pada saat suatu host di dalam suatu jaringan terhubung ke jaringan lain melalui nama host, disebut juga Fully Qualified Doamain Name (FQDN), DNS digunakan untuk mengetahui IP address dari host tersebut.
Penggunaan DNS juga memberikan keuntungan kepada administrator sistem berupa fleksibilitas untuk mengubah IP address suatu host tantpa mempengaruhi query-query berbasis nama terhadap mesin.
DNS normalnya diimplementasikan menggunakan sebuah server sentral yang mempunyai hak atas beberapa domain dan mengacu ke server DNS lain jika koneksi dilakukan ke domain yang berada diluar tanggungjawabnya.
Suatu aplikasi client akan meminta informasi dari name server yang biasanya berjalan pada port 53. nameserver akan mencoba meresolve FQDN berdasarkan libary resolver yang berisi informasi authoritative tentang data host yang diminta atau nama yang dicache oleh suatu query sebelumnya. Jika name server belum mempunyai jawaban di dalam library resolver  , name server memeriksa root name server, untuk memastikan name server mana yang bertanggungjawab atas FQDN yang diminta.
Kemudian, dengan informasi tersebut, ia akan meminta nama server yang mempunyai otoritas atas nama tersebut untuk menentukan IP address. Pada proses reverse lookup, digunakan prosedur yang sama, hanya saja query dibuat melalui suatu address, bukan nama.


Jenis Name Server
Dalam duania jaringan komputer, terdapat empat jenis konfigurasi name server yang banyak digunakan :
  1. master : menyimpan record-record zona original dan authoritative untuk name space tertentu, menjawab pertanyaan dari name server lain yang mencari jawaban name space tersebut.
  2. slave : menjawab permintaan dari name server lain. Server slave merupakan backup dari server master. Server ini mendapatkan informasi name space dari name server master. Server master akan mengirim perubahan tersebut ke slavenya setiap periode tertentu.
  3. caching-only : menawarkan layanan resolusi nama ke IP tetapi sama sekali tidak mengelola zona. Jawaban atas semua resolusi dicache di dalam memory selama periode waktu tertentu, yang ditentukan oleh record zona yang diterima.
  4. forwarding : memforward pemintaan ke suatu name server untuk resolusi nama. Jika name server yang diminta tidak ditemukan, maka resolusi gagal.
Name server dapat berupa satu atau lebih jenis-jenis di atas. Sebagai contoh, sebuah name server dapat berupa master untuk beberapa zona, slave untuk zona lainnya, dan hanya menawarkan resolusi forwarding untuk zona tertentu.
BIND sebagai Name Server
Linux Redhat menyertakan BIND bersama dengan distribusinya, software name server yang sangat popular, tangguh, dan open source. BIND menggunakan daemon named untuk menyediakan layanan resolusi nama.
BIND versi 9 juga menyertakan suatu utilitas yang disebut /usr/sbin/rndc yang memperbolehkan administrasi daemon named yang berjalan.
File-file Konfigurasi BIND
Name server BIND (named) menyimpan konfigurasi utama server di dalam file /etc/named.conf. semua file zona diletakkan di dalam direktori /var/named/.
File /etc/named.conf  harus bebas dari error agar named dapat berjalan. Sedikit error (kesalahan) kecil saja membuat name server ini berhenti dan tidak berfungsi.
Berikut ini adalah contoh file file /etc/named.conf yang digunakan untuk membuat satu zona resolve dan satu zona reverse lookup :
// generated by named-bootconf.pl
options {
        directory “/var/named”;
        // port by default.
        // query-source address * port 53;
};
//
// a caching only nameserver config
//
control {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone “.” IN {
        type hint;
        file “named.ca”;
};

zone “localhost” IN {
        type master;
        file “localhost.zone”;
        allow-update { none; };
};

zone “0.168.192.in-addr.arpa” IN {
        type master;
        file “named.local”;
        allow-update { none; };
};

include “/etc/rndc.key”;

File konfigurasi tersebut otomatis ada setelah anda menginstal BIND. File ini dibuat oleh program script named-bootconf.pl. Dalam kondisi seperti di atas, dapat dikatakan bahwa DNS server belum berjalan. Hanya zona localhost dan loopback 127.0.0.1 yang dikelola dan hal ini bukan yang diharapkan. Tetapi ada beberapa baris yang harus diberi perhatian.
options {
        directory “/var/named”;
        // port by default.
        // query-source address * port 53;
};
Pernyataan di atas menunjukkan penggunaan direktif options. Permulaan direktif ditandai dengan tanda kurung kurawal buka ( { ) dan diakhiri oleh kurung kurawal tutup ( } ). Anda dapat memasukan pernyataan-pernyataan untuk mengatur kerja server BIND di antara kurung kurawal tersebut. Setiap pernyataan harus diakhiri oleh titik koma (semi colon).
Salah satu pernyataan yang dapat digunakan di dalam options adalah directory yang memberitahu server BIND lokasi file-file zona disimpan. Pernyataan di atas memperlihatkan bahwa file-file zona yang dikelola disimpan di dalam direktori /var/named.
Selanjutnya terdapat pernyataan
query-source address * port 53;
yang memberitahu named bahwa server akan mendengan melalui semua interface jaringan hanya pada port 53. ini merupakan nilai default sehingga tidak perlu ditulis. Itu sebabnya pernyataan tersebut diawali oleh tanda // dan berlaku sebagai sebuah komentar.
Membuat Server Utama
Server utama dipasang di server Proxy untuk mengelola domain name sitc.com server ini mengelola dua zona, yaitu sitc.com yang digunakan untuk menerjemahkan nama ke IP address dan 0.168.192.in-addr.arpa yang digunakan untuk reverse lookup, mengubah IP address ke nama hostnya.
Berikut ini adalah contoh pernyataan zona sitc.com :
zone “sitc.com” {
     type master;
     file “sitc.com.zone”;
};
Sebuah zona bernama sitc.com, bertipe master dan file yang menyimpan informasi zona adalah /var/named/sitc.com.zone.
Sedangkan pernyataan zona reverse lookupnya adalah :
zona “0.168.192.in-addr.arpa” {
     type master;
     file “0.168.192.in-addr.arpa”;
};
Penamaan zona reverse lookup berbeda dengan penamaan zona name ke IP address. Pada reverse lookup anda harus menulis 192.168.0. secara terbalik menjadi 0.168.192 kemudian sertelah tanda titik diikuti oleh teks penentu reverse in-addr.arpa. zona “0.168.192.in-addr.arpa” menunjukkan bahwa reverse lookup yang ditangani hanya dapat berjalan pada jaringan 192.168.0,  yaitu jaringan 192.168.0.0/24.
Kedua definisi zona harus berada di dalam file /etc/named.conf. masukkan di bawah daftar zona yang telah ada sehingga menjadi seperti berikut ini :
 Selanjutnya, anda harus membuat dua file zona di dalam direktori /var/named, yaitu sitc.com.zone dan 0.168.192.in-addr.arpa.zone. Anda dapat menggunakan program mcedit atau vi untuk membuat file tersebut.
[root@Proxy /]# mcedit /var/named/sitc.com.zone
tulis baris-baris berikut di dalamnya :
 Pada baris pertama anda menulis $TTL 86400. $TTL adalah variabel time to life, berapa lama (dalam satuan detik) record-record zona yang disediakan oleh name server dalam keadaan valid. Penamabahan nilai $TTL memungkinkan name server lain mencache informasi zona untuk jangka waktu yang lama.
Pernyataan $TTL 86400 menujukkan bahwa informasi zona ini hana valid untuk jangka waktu 24 jam. Sehingga jika ada server lain yang ingin mencache informasi zona sitc.com maka hanya bertahan selama 24 jam, setelah itu server jauh tersebut akan melakukan pengecekan nama domain pada server ini.
Berikutnya terdapat penyataan :
@    IN    SOA     Proxy.sitc.com. root.localhost (
                     123 ; serial
                     28800 ; refresh
                     7200 ; retry
                     604800 ; expire
                     86400 ; ttl
                     )
Setiap file zona utama harus didahului oleh tanda @ kemudian diikuti oleh record SOA, record utama di dalam file zona.
Record SOA (Start of Authority) mengatur dimana zona ini dikelola serta alamat email administratornya. Perlu diperhatikan bahwa anda harus memberikan tanda titik setelah nama lengkap server tempat zona dikelola, pada contoh di atas adalah Proxy.sitc.com.
Bentuk dasar record SOA adalah
@    IN    SOA     <primary-name-server>.<hostmaster-email> (
                  <serial-number>
                  <time-to-refresh>
                  <time-to-retry>
                  <time-to-expire>
                  <minimum-TTL> )
Record ini juga menyimpan parameter-parameter lain, yaitu :
  1. <serial-number>, nomor seri file zona. Biasanya menggunakan dahulu banyak orang menggunakan satuan jam sebagai nomor seri tapi menjadi kurang nyaman karena satuan jam biasanya cukup panjang, misalnya 123045 (jam12 lebih 45menit 30detik), lebih baik menulis 1 kemudian saat terjadi perubahan diganti menjadi 2.
  2. <time-to-refresh>, memberitahu server name slave berapa lama harus mnunggu sebelum menanyakan server name master jika tela dilakukan perubahan informasi zona. Nilai <serial-number> digunakan oleh erver slave untuk menentukan apakah informasi zona yang digunakannya telah out of date atau belum, jika telah kadaluarsa maka segera dilakukan update.
  3. <time to retry>, memberitahu server name slave berapa lama waktu tunggu sebelum melakukan refresh jika server master tidak memberikan jawaban.
  4. jika server master menjawab permintaan refresh dari slave dan <time-to-expire> sebelum tercapai, slave menghentikan tanggungjawabnya sebagai penyedia layanan name space kepada clientnya.
  5. <minimum-TTL>, mengatur agar name server lain men-cahce informasi zona sekurang-kurangnya sejumlah waktu (dalam satuan detik) yang disebutkan
Di dalam BIND, semua waktu diacu dalam satuan detik. Namun anda dapat melakukan konversi ke satuan waktu lain, seperti diperlihatkan tebel berikut:


Detik
Waktu Lain
Keterangan
60
1M
1 Menit
1800
30M
30 Menit
3600
1H
1 Jam
10800
3H
3 Jam
21600
6H
6 Jam
43200
12H
12 Jam
86400
1D
1 Hari
259200
3D
3 Hari
604800
1W
1 Minggu
31536000
365D
365 Hari
Berikutnya anda menjumpai 2 baris berikut :
            IN    NS      192.168.0.254
     IN    MX      10 WebMail.sitc.com.
Baris pertama menyatakan bahwa Name server  (NS) berjalan pada komputer yang mempunyai IP address 192.168.0.254. pernyataan tersebut harus diletakan di bawah recoed SOA. Baris di bawahnya menyatakan Mail  Excharger (MX), setiap email yang ditunjukan ke zona ini (sitc.com) akan dikirim ke server WebMail.sitc.com. jika anda mempunyai 2 atau lebih server email maka anda dapat menulis seperti :
            IN    MX      10 WebMail.sitc.com.
     IN    MX      20 WebMail.sitc.com.
Artinya jika ada email yang ditunjukan ke server ini akan dikirim terlebih dahulu ke server     WebMail.sitc.com. jika server tersebut tidak bisa menanganinya maka akan dikirim ke server mx1.sitc.com. mengapa dikirim ke server WebMail terlebih dahulu? Karena mempunyai prioritas lebih tinggi, semakin kecil nilainya semakin besar prioritasnya ( 10 lebih kecil dari pada 20 ).
Pada baris-baris selanjutnya and ahanya menulis nama-nama host beserta IP addressnya, sama seperti isi file/etc/hosts.
WebMail        IN      A        64.110.100.132
Proxy          IN      A        192.168.0.254
DVB            IN      A        64.110.100.130
Router         IN      A        64.110.100.129
FileKontrol    IN      A        192.168.0.253
Diskless       IN      A        192.168.0.252
Gate           IN      A        64.110.100.131
Baris pertama menyatakan bahwa server WebMail adalah komputer yang mempunyai IP address 64.110.100.132. diberi nama DVB, Address (A). Bentuk dasar record address adalah jika nilai host tidak di tulis maka DNS akan mengarahkan permintaan ke semua permintaan yang tidak menggunakan FQDN ke alamat tersebut. Jika anda memiliki dua baris berikut di dalam file zona sitc.com.zone                                                              
                                    IN           A             192.198.0.253
Diskless      IN           A             192.168.0.252
Maka jika terdapat permintaan ke sitc.com. (tanpa FQDN, tidak menyertakan nama host, hanya nama domain) maka akan diarahkan ke server yang mempunyai IP address 192.168.0.253, sedangkan permintaan ke Diskless.sitc.com akan diarahkan ke 192.168.0.252.
Sekarang perhatikan 4 baris terakhir file zona tersebut 
mail    IN    CNAME       WebMail
ftp     IN    CNAME       WebMail
www     IN    CNAME       WebMail
ssh     IN    CNAME       WebMail
anda tidak menggunakan IN A, tetapi menggantinya dengan IN CNAME yang digunakan untuk membuat record  Canonial name atau dapat disebut sebagai sebuah alias. Bentuk dasar record CNAME adalah
<alias-name>     IN    CNAME    <real–name >
sehingga baris kedua dari akhir file zona menyatakan bahwa host atau mesin www hanya sebuah nama lain dari server WebMail sehingga pada saat terjadi permintaan ke alamat www.sitc.com maka name server mengarahkannya ke server WebMail.
Sebenarnya anda tidak perlu membuat zona reverse lookup. Penerjemahan IP address ke nama host juga dapat dimasukan ke dalam file zona sitc.com. tetapi jika diperlukan entri yang banyk, lebih baik membuat file terpisah untuk tujuan ini.
Berikut ini adalah isifile /var/named/0.168.192.in-addr.arpa.zone
 
Tidak ada yang istimewa pada file tersebut, hampir seluruh isinya sama dengan file sic.com.zone. satu-satunya perbedaan hanya pada pemakaian record Pointer (PTR). Record ini dagunakan untuk menerjemahkan IP address pada jaringan yang melakukan reverse ke nama hostnya. Sehingga baris terakhir dapat diartinya sebagai

“terjemahkan IP address 192.168.0.254 ke namaya Proxy.sitc.com”
Sekarang, uji konfigurasi Anda. Jalankan perintah:
[root@Proxy /]# service named restart
Untuk restart server DNS BIND. Jika tidak ditemukan error,jalankan perintah nslookup seperti berikut ini:
[root@Proxy /]# nslookup mail

Tidak ada komentar:

Posting Komentar