Domain Name System

Embed Size (px)

Citation preview

BAB 18

Domain Name System (DNS)Protokol TCP/IP menggunakan alamat IP untuk mengidentifikasi koneksi suatu host dengan Internet. Akan tetapi, orang tentu lebih suka menggunakan nama yang lebih mudah dipahami dibandingkan alamat IP tersebut. Oleh karena itu, kita memerlukan suatu sistem yang dapat memetakan nama tertentu terhadap suatu alamat tertentu, atau sebaliknya.

Saat Internet belum seluas sekarang, pemetaan ini dilakukan dengan menggunakan sebuah host file yang berisi nama dan alamat. Setiap host dapat menyimpan host file ini secara lokal dan memperbaharuinya secara berkala berdasarkan informasi dari sebuah master host file. Jika suatu program atan user ingin memetakan nama tertentu terhadap suatu alamat, host akan merujuk pada host file dan menentukan pemetaannya.

Saat ini, penggunaan satu host file saja tidak mungkin dilakukan. Ukuran host file terlalu besar untuk disimpan pada setiap host. Selain itu, akan sangat merepotkan jika harus memperbaharui setiap host file yang ada di seluruh dunia setiap kali ada perubahan.

Salah satu solusinya adalah dengan menyimpan seluruh isi file host secara terpusat pada sebuah komputer sehingga setiap komputer yang membutuhkan pemetaan dapat mengaksesnya. Akan tetapi, hal ini dapat menyebabkan lalu lintas yang padat (huge traffic) di Internet.

Alternatif lainnya, yang saat ini digunakan, adalah membagi informasi yang besar tersebut menjadi bagian-bagian kecil dan menyimpan masing-masing bagian pada komputer-komputer yang berbeda. Host yang memerlukan pemetaan dapat menghubungi komputer terdekat yang menyimpan informasi yang dibutuhkan.

18.1 NAME SPACEAgar tidak membingungkan (to be unambiguous), nama yang diberikan kepada suatu mesin harus dipilih secara teliti dari suatu name space yang memiliki kendali penuh terhadap kaitan antara nama dan alamat IP. Nama yang dipilih harus unik karena alamatnya juga unik. Suatu name space dapat diatur dengan dua cara: secara mendatar (flat) dan secara hirarki (hierarchical).Flat Name Space

Pada flat name space, nama yang diberikan kepada suatu alamat merupakan serangkaian karakter tanpa struktur tertentu. Flat name space harus dikendalikan secara terpusat untuk menghindari ambiguitas dan duplikasi. Oleh karena itu, flate name space ini tidak dapat digunakan dalam sistem yang besar seperti Internet.Hierarchical Name Space

Pada hierarchical name space, nama terdiri atas beberapa bagian. Misalnya, bagian yang pertama menyatakan sifat suatu organisasi, bagian kedua menyatakan nama organisasi, bagian ketiga menyatakan departemen yang berada di bawah organisasi tersebut, dan seterusnya. Wewenang untuk memberi dan mengendalikan name space ini dapat didesentralisasikan. Misalnya, bagian nama yang menyatakan sifat dan nama organisasi ditentukan di tingkat pusat, sedangkan bagian nama berikutnya dapat ditentukan oleh organisasi itu sendiri. Untuk menyatakan host dan resource-nya, organisasi tersebut dapat menambahkan nama di belakang (disebut juga suffix (akhiran)) maupun di depan (disebut juga prefix (awalan)) nama yang telah ditentukan,. Organisasi tersebut tidak perlu mencemaskan apakah nama yang mereka pilih telah digunakan oleh organisasi lain. Meskipun ada bagian yang sama, alamatnya secara keseluruhan tetap berbeda. Contohnya, asumsikan dua perguruan tinggi dan sebuah perusahaan, masing-masing memberi nama salah satu komputernya dengan nama yang sama, challenger. Secara terpusat telah ditentukan bahwa kedua perguruan tinggi tersebut masing-masing diberi nama fhda.edu dan berkeley.edu, sedangkan perusahaan tersebut diberi nama smart.com. Jika masing-masing menambahkan nama challenger pada namanya, maka hasilnya adalah tiga nama yang berbeda: challenger.fhda.edu, challenger. berkeley.edu, dan challenger.smart.com.

18.2 DOMAIN NAME SPACEUntuk menyusun hierarchical name space, dirancang suatu domain name space. Pada domain name space, nama-nama disusun membentuk struktur pohon terbalik (inverted-tree structure), dengan bagian akar (root) berada di atas. Struktur pohon yang dibuat hanya terdiri atas 128 level: level 0 (root) sampai level 127. Root menyatukan struktur pohon secara keseluruhan; sedangkan masing-masing level menyatakan urutan hirarkinya (lihat gambar 18.1). Label

Tiap node pada struktur pohon di atas memiliki label, berupa sebuah string yang maksimum terdiri atas 63 karakter. Root label merupakan sebuah null string (string kosong). DNS menyaratkan agar anak-anak node (node yang merupakan percabangan dari suatu node yang sama) memiliki label yang berbeda untuk menjamin keunikan nama domain.Nama Domain Setiap node pada struktur pohon memiliki sebuah nama domain. Nama domain secara lengkap merupakan serangkaian label yang dipisahkan oleh tanda titik (.). Nama domain ini selalu dibaca dari node menuju ke root. Gambar 18.1 Domain name space

Label terakhir adalah root label. Seperti yang telah dijelaskan sebelumnya, root label adalah suatu null string (string kosong). Jadi, karakter terakhir pada sebuah nama domain yang lengkap adalah sebuah titik. Gambar 18.2 menampilkan beberapa contoh nama domain. Gambar 18.2 Label dan nama domain

Fully Qualified Domain Name (FQDN)Label yang diakhiri oleh sebuah null string disebut sebagai fully qualified domain name (FQDN). FQDN adalah nama domain yang merupakan nama lengkap suatu host. Contohnya, nama domainchallenger.atc.fhda.edu.adalah FQDN dari sebuah komputer bernama challenger pada Advanced Technology Center (ATC) di De Anza College. DNS server hanya dapat menjodohkan sebuah FQDN dengan sebuah alamat. Ingat bahwa sebuah FQDN diakhiri oleh null label, sehingga karakter terakhirnya adalah sebuah titik (.). Partially Qualified Domain Name (PQDN)

Label yang tidak diakhiri oleh null string disebut sebagai partially qualified domain name (PQDN). PQDN digunakan jika nama yang ingin dicari alamatnya berasal dari situs yang sama dengan client. Bagian nama yang kurang akan ditambahkan oleh resolver untuk membentuk FQDN. Contohnya, jika user pada fhda.edu ingin mendapatkan alamat IP suatu komputer bernama challenger, ia cukup menyebutkan PQDN-nyachallenger

client akan menambahkan akhiran atc.fhda.edu. sebelum mengirimkan alamat tersebut ke DNS server.

DNS client menyimpan sebuah daftar berisi suffix. Contoh di bawah ini menyajikan daftar suffix yang mungkin terdapat pada situs De Anza College. Akhiran null menyatakan kosong. atc.fhda.edu

fhda.edu

null

Gambar 18 3 menyajikan beberapa contoh FQDN dan PQDN.Gambar 18.3 FQDN dan PQDN

Domain Domain adalah sebuah subtree dari domain name space. Nama domain merupakan nama domain node pada bagian atas subtree. Gambar 18.4 menyajikan ilustrasi atas hal ini. Perhatikan bahwa suatu domain masih dapat dibagi menjadi domain-domain lain (subdomain) Gambar 18.4 Domain

18.3 DISTRIBUSI NAME SPACEInformasi yang terdapat di dalam domain name space harus disimpan. Akan tetapi, sangatlah tidak efisien dan tidak reliable jika informasi sebesar hanya disimpan dalam satu komputer. Tidak efisien karena beban sistem sangat berat jika harus merespon request yang datang dari seluruh wilayah dunia. Tidak reliable karena data tidak dapat diakses jika ada kegagalan.

Hirarki Server Nama

Masalah di atas dapat diatasi dengan mendistribusikan informasi tersebut kepada sekelompok komputer yang disebut DNS server. Salah satu cara untuk melakukannya adalah dengan membagi seluruh space menjadi beberapa domain sesuai jumlah node pada level pertama struktur pohon. Domain hasil pembagian ini masih berukuran sangat besar. Oleh karena itu, domain tersebut dapat dibagi lebih lanjut menjadi beberapa domain lagi. Hirarki server nama ini digambarkan pada Gambar 18.5.Gambar 18.5 Hirarki server nama

ZoneSesuatu yang berada di bawah wewenang (aothority) suatu server disebut zone. Jika suatu server tidak membagi lagi domain-nya menjadi domain-domain yang lebih kecil, maka yang dimaksud dengan zone adalah domain itu sendiri (domain=zone). Server akan membuat database yang disebut zone file. File ini berisi informasi bagi setiap node di bawah domain tersebut. Sebaliknya, jika server membagi domain-nya menjadi beberapa subdomain dan mendelegasikan sebagian wewenangnya kepada server lain, maka domain tidak sama dengan zone. Informasi tentang node pada subdomain akan disimpan pada server lain pada level yang lebih rendah. Server semula (the original server) akan menyimpan semacam referensi kepada server pada level yang lebih rendah ini. Server semula masih menjadi pemilik zone, tapi tidak menyimpan informasi terperinci mengenai zone tersebut. Gambar 18.6 Zone dan domain

Server juga masih dapat menguasai sebagian dari domain bagi dirinya. Dalam hal ini, zone-nya berisi informasi rinci mengenai bagian domain yang tidak didelegasikan dan referensi terhadap bagian-bagian yang didelegasikan tersebut.Root ServerZone pada root server adalah struktur pohon secara keseluruhan. Root server biasanya tidak menyimpan informasi tentang domain. Kewenangannya didelegasikan kepada server-server lain dan informasi yang disimpan hanya berupa referensi terhadap server-server tersebut. Saat ini, terdapat lebih dari 13 root server yang tersebar di seluruh wilayah dunia.Server Primer dan SekunderAda dua jenis DNS server: primer dan sekunder. Server primer adalah server yang menyimpan file mengenai zone yang berada di bawah wewenangnya. Server ini bertanggung jawab membuat, memelihara, dan memperbaharui zone file. Zone file ini disimpan secara local dalam disk.

Server sekunder adalah server yang mengambil informasi lengkap tentang suatu zone dari server lain (primer atau sekunder) dan menyimpan file-nya secara local dalam disk. Server sekunder ini tidak dapat membuat atau memperbaharui zone file. Perubahan hanya dapat dilakukan oleh server primer. Informasi yang telah diperbaharui akan dikirimkan oleh server primer kepada server sekunder.

Server primer dan sekunder memiliki wewenang atas zone yang mereka layani. Meskipun namanya server sekunder, tidak berarti bahwa server ini berada pada level yang lebih rendah dibandingkan server primer. Server sekunder dibuat untuk membuat redundancy bagi data sehingga jika salah satu server mengalami kegagalan, server lainnya masih dapat melayani client. Suatu server dapat bertindak sebagai server primer bagi suatu zone tertentu, sekaligus sebagai server sekunder bagi zone lainnya. Oleh karena itu, saat menyatakan jenis server, kita harus benar-benar memperhatikan zone mana yang kita maksud.Server primer berisi informasi dari file yang tersimpan secara lokal dalam disk; server sekunder berisi informasi dari server primer. Jika server primer men-download informasi dari server sekunder, prosesnya disebut zone transfer.

18.4 DNS DI INTERNETDNS adalah protokol yang dapat digunakan pada berbagai platform yang berbeda. Di Internet, struktur pohon domain name space dibagi menjadi tiga bagian: generic domain, country domain, dan inverse domain (lihat gambar 18.7).Gambar 18.7 DNS yang digunakan di Internet

Generic Domain (Domain Umum)Generic domain mendefinisikan host-host yang terdaftar, sesuai perilaku umumnya (generic behaviour). Setiap node pada struktur pohon menyatakan suatu domain, yang merupakan index terhadap domain name space database (lihat gambar 18.8).Gambar 18.8 Generic domain

Pada struktur pohon di atas, level pertama pada generic domain terdiri atas tujuh label yang masing-masing tersusun atas tiga karakter. Label-label ini menyatakan jenis organisasi. Deskripsi jenis organisasinya disajikan pada tabel 18.1. Tabel 18.1 Generic Domain LabelsLabelDeskripsi

comOrganisasi komersial

eduInstitusi pendidikan

govInstitusi pemerintah

intOrganisasi internasional

milKelompok militer

netPusat pendukung jaringan (network support center)

orgOrganisasi nirlaba

Baru-baru ini, ada beberapa label lagi yang disetujui penggunaannya; label-label ini disajikan pada Tabel 18.2.Tabel 18.2 Label Generic Domain yang BaruLabelDeskripsi

aeroPerusahaan penerbangan (airlines and aerospace companies)

bizBisnis atau firma (mirip dengan com)

coopOrganisasi bisnis kooperatif(cooperatif business organizations)

infoPenyedia layanan informasi(information service providers)

museumMuseum dan organisasi nirlaba lainnya

nameNama pribadi (individu)

proOrganisasi individu profesional(Professional individual organizations)

CountryDomain

Format Country domain sama dengan generic domain. Bedanya, country domain menyatakan nama negara dan tersusun atas dua karakter (misalnya: us untuk United States (Amerika Serikat)). Label level kedua pada country domain dapat mendefinisikan organisasi, atau wilayah secara lebih spesifik. Contohnya, negara bagian California, di Amerika Serika dinyatakan sebagai ca.us.

Alamat anza.cup.ca.us dapat diterjemahkan menjadi De Anza College di Cupertino, California, United States. Gambar 18.9 menyajikan contoh-contoh country domain.Inverse Domain

Inverse domain digunakan untuk memetakan alamat terhadap nama. Misalnya, pada saat suatu server ingin menentukan apakah client yang mengirim request merupakan client yang sah (authorized client).

Server hanya memiliki daftar alamat IP client yang diperoleh dari paket IP yang diterimanya. Untuk menentukan apakah client yang mengirim request tersebut merupakan authorized client, server dapat meminta resolver mengirimkan query kepada DNS server untuk memetakan alamat terhadap nama.

Jenis query ini disebut inverse query atau pointer (PTR) query. Query ini ditangani dengan menambahkan inverse domain kepada domain name space, dengan node tingkat-pertama berupa arpa (istilah ini digunakan karena alasan sejarah). Node tingkat kedua juga berupa node tunggal yang disebut in-addr (istilah ini diambil dari inverse address). Sisa domain merupakan alamat IP.Gambar 18.9 Country domain

Server yang menangani inverse domain juga disusun secara hirarki. Netid berada pada level yang lebih tinggi dibandingkan subnetid, dan subnetid lebih tinggi dibandingkan hostid. Jadi, server yang melayani situs secara keseluruhan berada pada level yang lebih tinggi dibandingkan server yang melayani subnet. Konfigurasi ini membuat struktur domain terlihat terbalik (inverted) jika dibandingkan dengan generic domain atau country domain. Untuk menyesuaikan dengan konvensi pembacaan label domain yang diurutkan dari bawah ke atas, sebuah alamat IP, misalnya 132.34.45.121 (kelas A, netid 132.34) dibaca sebagai 121.45.34.132.in-addr.arpa. Gambar 18.10 menyajikan ilustrasi konfigurasi inverse domain ini.

18.5 RESOLUTIONPemetaan sebuah nama terhadap suatu alamat atau sebaliknya disebut name-address resolution.ResolverDNS dirancang sebagai suatu aplikasi client-server. Host yang ingin memetakan alamat terhadap nama, atau sebaliknya, memanggil DNS client yang disebut resolver. Resolver mengakses DNS server yang terdekat melalui sebuah request pemetaan (mapping request). Jika server tidak memiliki informasi yang diinginkan, server akan mengalihkan resolver ke server lain, atau meminta server lain menyediakan informasi yang dibutuhkan.Gambar 18.10 Inverse domain

Setelah menerima informasi pemetaan, resolver akan menerjemahkan respon dari server untuk melihat apakah hasilnya berupa resolution atau pesan error. Setelah itu, hasilnya dikirimkan kepada proses yang mengirimkan request.Memetakan Nama terhadap AlamatYang sering terjadi, resolver meminta server mencari alamat berdasarkan sebuah nama domain. Jika ini terjadi, server akan memeriksa generic domain atau country domain-nya untuk menentukan pemetaan.

Contoh nama domain yang merupakan sebuah generic domain adalah chal.atc.fhda.edu.. Contoh nama domain yang merupakan sebuah country domain adalah ch.fhda.cu.ca.us..

Memetakan Alamat terhadap Nama Client dapat mengirimkan sebuah alamat IP kepada server untuk dipetakan terhadap suatu nama domain. Hal ini disebut PTR query. Untuk menjawab query jenis ini, DNS menggunakan inverse domain. Dalam request yang dikirimkan, alamat IP harus dibalik, serta ditambahkan: in-addr dan arpa agar domain tersebut dapat diterima. Contohnya, jika resolver menerima alamat IP 132.34.45.121, resolver mengubahnya sehingga nama domain yang dikirimkan menjadi 121.45.34.132.in-addr.arpa..Recursive Resolution

Jika client (resolver) meminta jawaban rekursif (resursive answer) dari suatu server nama, berarti resolver tersebut mengharapkan agar jawaban yang diinginkan datang dari atau melalui server tersebut. Jika server memegang wewenang atas nama domain tersebut, maka server akan memeriksa database-nya dan mengirim respon yang diinginkan. Jika tidak, server akan mengirim request kepada server lain (biasanya server induknya (parent server)) dan menunggu respon yang diberikan. Jika server induk ini memegang wewenang atas nama domain tersebut, maka server induk ini akan memberi respon; jika tidak, server ini akan mengirimkan query ke server lainnya lagi. Setelah query akhirnya diselesaikan, respon akan kembali sesuai jalurnya sehingga sampai pada client yang mengirimkan request. Proses ini ditunjukkan pada Gambar 18.11.Gambar 18.11 Recursive resolution

Iterative Resolution

Pemetaan dapat pula dilakukan secara iteratif. Jika suatu server ternyata tidak memegang wewenang atas nama domain yang diinginkan, ia akan mengirimkan (kepada client) alamat IP server kedua yang menurutnya dapat memecahkan query tersebut. Selanjutnya, client akan mengirim kembali query kepada server kedua ini. Jika server kedua ini juga tidak dapat memecahkan query yang dikirimkan, ia akan mengirimkan alamat IP server ketiga kepada client. Sekarang client harus mengulang mengirim query kepada server ketiga, dan seterusnya, sanpai query dipecahkan. Proses ini disebut iteratif karena client mengulang-ulang query yang sama kepada beberapa server yang berbeda. Pada gambar 18.12, client mengirimkan query yang sama kepada empat server yang berbeda sebelum akhirnya menemukan jawaban dari server mcgraw.com.Gambar 18.12 Iterative resolution

CachingSetiap kali suatu server menerima query atas sebuah nama yang tidak berada dalam domain-nya, server akan mencari alamat IP server lain di dalam database-nya. Waktu yang digunakan untuk mencari ini akan menurunkan efisiensi kerja server. DNS mengatasi masalah ini dengan suatu mekanisme yang disebut caching. Saat menerima respon berisi informasi pemetaan, server akan menyimpannya dalam cache memory sebelum mengirimkannya kembali ke client. Jika kemudian client yang sama, atau client lain meminta pemetaan terhadap hal yang sama, server tersebut cukup mencari informasi pemetaan dari cache memory-nya. Untuk memberitahu client bahwa informasi tersebut diperoleh dari cache memory, server menandai responnya sebagai unauthoritative.Caching mempercepat proses penyelesaian masalah, tapi juga dapat menimbulkan masalah lain. Pemetaan yang sudah disimpan dalam cache memory pada waktu yang cukup lama mungkin saja sudah tidak sesuai. Untuk mengatasi hal ini, ada dua teknik yang dapat digunakan. Pertama, authoritative server menambahkan sepotong informasi yang disebut time-to-live (TTL). TTL menyatakan berapa lama (dalam detik) server penerima dapat menyimpan informasi tersebut dalam cache memory-nya. Setelah masa itu dilewati, pemetaan menjadi invalid dan query harus dikirimkan kembali kepada authoritative server. Kedua, DNS mensyaratkan setiap server untuk menyimpan TTL counter bagi setiap pemetaan yang disimpan di dalam cache memory-nya. Secara berkala, cache memory diperiksa, dan pemetaan dengan TTL yang sudah kadaluwarsa harus dibuang.

18.6 DNS MESSAGESAda dua jenis pesan DNS: query dan respon (lihat Gambar 18.13). Kedua jenis pesan ini memiliki format yang sama. Pesan query terdiri atas sebuah header and record pertanyaan; pesan respon terdiri atas sebuah header, record pertanyaan, record jawaban, authoritative record, dan record tambahan (lihat gambar 18.14). Gambar 18.13 Pesan-pesan DNS

Gambar 18.14 Pesan query dan respon

HeaderPesan query dan respon memiliki format header yang sama. Bedanya, beberapa field pada pesan query ditentukan nilainya menjadi nol. Header berukuran 12 byte. Format header ditunjukkan pada Gambar 18.15.Gambar 18.15 Format header

Jenis-jenis field pada header adalah sebagai berikut. Identification (Identifikasi). Ini adalah subfield berukuran 16-bit yang digunakan oleh client untuk mencocokkan respon dengan query. Client menggunakan nomor identifikasi yang berbeda setiap kali mengirimkan query. Server akan menuliskan kembali nomor ini pada respon yang diberikan. Flags. Ini adalah subfield berukuran 16-bit yang terdiri atas beberapa subfield yang ditunjukkan pada Gambar 18.16.Gambar 18.16 Flags field

Penjelasan singkat mengenai setiap subfield pada flag adalah sebagai berikut.

a. QR (query/response). Subfield ini berukuran 1-bit yang mendefinisikan jenis pesan. Jika nilainya 0, maka pesan berupa query. Jika nilainya 1, maka pesan berupa respon.b. OpCode. Subfield ini berukuran 4-bit yang mendefinisikan jenis query atau respon (nilanya 0 jika jenisnya standar, 1 jika inverse, dan 2 jika merupakan server status request).c. AA (authoritative answer). Ini adalah subfield berukuran 1-bit, hanya digunakan pada pesan respon.. Jika nilainya 1, berarti server nama merupakan suatu authoritative server.. d. TC (truncated). Subfield ini berukuran 1-bit. Jika (nilainya 1, berarti ukuran respon semula lebih dari 512 byte dan telah dipotong menjadi 512. Ini digunakan jika DNS menggunakan layanan UDP (lihat Bagian 16.11 terntang Encapsulation).e. RD (recursion desired). Subfield ini berukuran 1-bit. Jika (nilainya 1, berarti client menginginkan jawaban rekursif. Nilai ini ditentukan pada pesan query dan dituliskan kembali pada pesan respon yang diberikan.f. RA (recursion available). Subfield berukuran 1-bit ini hanya digunakan pada pesan respon. Jika nilainya 1, berarti respon rekursif dapat diberikan.g. Reserved. Subfield ini berukuran 3-bit yang nilainya 000. h. rCode. Subfield berukuran 4-bit ini menunjukkan error pada respon. Keputusan ini hanya dapat diambil oleh suatu aurhoritative server. Tabel 18.3 menyajikan nilai-nilai yang mungkin untuk field ini. Tabel 18.3 Nilai rCodeNilaiArti

0Tidak ada kesalahan (no error)

1Kesalahan format (format error)

2Masalah pada server nama

3Masalah domain reference

4Query type tidak didukung

5Administratively prohibited

6-15Reserved

Jumlah record pertanyaan. Subfield berukuran 16-bit ini berisi jumlah query pada bagian pertanyaan dalam pesan.. Jumlah query record. Subfield berukuran 16-bit ini berisi jumlah record jawaban pada bagian jawaban dalam pesan respon. Nilainya nol dalam pesan query.. Jumlah authoritative record. Subfield berukuran 16-bit ini berisi jumlah authoritative record pada bagian authoritative dalam pesan respon. Nilainya nol dalam pesan query.. Jumlah record tambahan. Subfield berukuran 16-bit ini berisi jumlah record tambahan pada bagian tambahan dalam pesan respon. Nilainya nol pada pesan query..Bagian Pertanyaan (Question Section)Bagian ini terdiri atas satu atau lebih record pertanyaan, terdapat pada pesan query maupun respon. Bagian Jawaban (Answer Section)Bagian ini terdiri atas satu atau lebih resource record, hanya ada pada pesan respon. Bagian ini menyertakan jawaban dari server kepada client (resolver). Bagian Authoritative (Authoritative Section)Bagian ini terdiri atas satu atau lebih resource record, hanya ada pada pesan respon. Bagian ini memberi informasi (nama domain) mengenai satu atau lebih authoritative server.Bagian Informasi Tambahan (Additional Information Section)Bagian ini terdiri atas satu atau lebih resource record, hanya ada pada pesan respon. Bagian ini menyediakan informasi tambahan yang dapat membantu resolver. Contohnya, server memberikan nama domain suatu authoritative server kepada resolver pada bagian authoritative, dan menyertakan alamat IP-nya pada bagian informasi tambahan.

18.7 JENIS-JENIS RECORDSeperti yang telah dijelaskan pada bagian sebelumnya, ada dua jenis record yang digunakan pada DNS: record pertanyaan dan resource record. Record pertanyaan digunakan pada bagian yang berisi pertanyaan dalam pesan query dan pesan respon. Resource record digunakan pada bagian yang berisi jawaban, authoritative, dan informasi tambahan pada pesan respon.Record Pertanyaan (Question Record)Client menggunakan record pertanyaan untuk mendapatkan informasi dari server. Record ini berisi nama domain. Gambar 18.17 menyajikan format sebuah record pertanyaan.Gambar 18.17 Format pertanyaan

Nama query (query name). Variable-length field Ini berisi nama domain (lihat Gambar 18.18).Gambar 18.18 Format nama query

Jenis query (query type). Field berukuran 16-bit ini mendefinisikan jenis query. Tabel 18.4 menyajikan jenis-jenis yang umum digunakan. Dua yang terakhir hanya berlaku pada query.Tabel 18.4 Jenis-jenis queryJenisMnemonicDeskripsi

1AAddress (alamat). Sebuah alamat IPv4 32-bit, digunakan untuk mengkonversi sebuah nama domain menjadi sebuah alamat IPv4.

2NSName server (server nama). Digunakan untuk mengidentifikasi authoritative servers bagi suatu zone.

5CNAMECanonical name (nama kanonik). Mendefinisikan sebuah alias bagi nama resmi (official) suatu host.

6SOAStart of authority. Menandai permulaan suatu zone. Biasanya merupakan record pertama dalam suatu zone file.

11WKSWell-known service. Mendefinisikan layanan jaringan yang disediakan oleh host.

12PTRPointer. Digunakan untuk mengkonversi sebuah alamat IP menjadi sebuah nama domain.

13HINFOHost information. Memberikan deskripsi hardware dan sistem operasi yang digunakan oleh host.

15MXMail exchange. Mengalihkan tujuansurat (mail) kepada suatu mail server.

28AAAAAddress. Suatu alamat IPv6 (lihat Bab 31).

252AXFRRequest pemindahan keseluruhan zone.

255ANYRequest untuk seluruh record.

Query class. Field berukuran 16-bit ini mendefinisikan protokol spesifik yang menggunakan DNS. Tabel 18.5 menunjukkan nilai terkininya. Buku ini hanya membicarakan class 1 (Internet). Tabel 18.5 ClassesClassMnemonicDeskripsi

1INInternet

2CSNETJaringan CSNET (obsolete)

3CSJaringan COAS

4HSHesiod server yang dikembangkan oleh MIT

Resource RecordTiap nama domain (tiap node pada struktur pohon) dihubungkan dengan resource record. Database server terdiri atas sejumlah resource record. Resource record adalah record yang dikirimkan (dikembalikan) oleh server kepada client. Gambar 18.19 menampilkan format suatu resource record.Gambar 18.19 Format resource record

Nama domain (domain name). Variable-length field ini berisi nama domain. Field ini merupakan duplikasi nama domain pada record pertanyaan. Karena DNS mensyaratkan digunakannya kompresi pada tempat di mana sebuah nama diulang, field ini merupakan sebuah offset pointer terhadap field nama domain pada record pertanyaan. Lihat Bagian 18.8 tentang Kompresi (Compression). Jenis domain (domain type). Field ini sama seperti query type field pada bagian pertanyaan, kecuali bahwa dua jenis terakhir hanya berlaku pada query. Lihat Tabel 18.4 untuk mendapatkan informasi lebih lanjut. Domain class. Field ini sama seperti query type field pada bagian pertanyaan (lihat Tabel 18.5). Time to live. Field berukuran 32-bit ini mendefinisikan lama waktu (dalam detik) suatu jawaban dinyatakan valid. Receiver dapat menyimpan jawaban di dalam cache memory selama masa yang dinyatakan dalam field ini. Jika nilainya nol, resource record hanya digunakan pada transaksi tunggal dan tidak perlu disimpan dalam cache memory. Panjang resource data (Resource data length). Field berukuran 16-bit ini mendefinisikan panjang resource data. Resource data. Variable-length field ini berisi jawaban terhadap query (pada bagian jawaban), atau nama domain dari authoritative server (dalam bagian authoritative), atau informasi tambahan (dalam bagian informasi tambahan). Format dan isi field bergantung pada nilai type field. Nilai ini dapat berupa:a. Sebuah bilangan. Bilangan ini ditulis dalam oktet. Contohnya, alamat IPv4 adalah sebuah integer 4-oktet sedangkan alamat IPv6 adalah integer 16-oktet.b. Sebuah nama domain. Nama domain dinyatakan sebagai serangkaian label. Tiap label didahului oleh field sepanjang 1-byte yang mendefinisikan jumlah karakter dalam label. Karena setiap domain name berakhir dengan null label, byte terakhir dari setiap nama domain adalah length field dengan nilai 0. Untuk membedakan length field dan offset pointer (seperti yang akan kita diskusikan nanti), dua bit orde tinggi (high-order bit) dari suatu length field harus selalu bernilai nol (00). Hal ini tidak akan menjadi masalah karena panjang label tidak boleh lebih dari 63 yang merupakan nilai maksimum 6 bit (111111).c. Sebuah offset pointer. Nama domain dapat digantikan dengan sebuah offset pointer. Offset pointer adalah field berukuran 2-byte dengan 2 bit orde-tinggi yang nilainya 1 (11).d. Sebuah string karakter (character string). Sebuah string karakter diwakili oleh sebuah length field berukuran 1-byte yang diikuti oleh jumlah karakter yang didefinisikan pada length field. Length field ini tidak dibatasi seperti length field nama domain. String karakter ini dapat mencapai 256 karakter (termasuk length field-nya).

18.8 KOMPRESI (COMPRESSION)DNS mensyaratkan bahwa nama domain dapat digantikan oleh offset pointer jika ia mengalami perulangan. Contohnya, pada resource record, nama domain biasanya merupakan perulangan nama domain pada record pertanyaan. Untuk menghindari duplikasi, DNS mendefinisikan sebuah offset pointer berukuran 2-byte yang menunjuk keberadaan domain atau bagian dari domain tersebut sebelumnya. Format field-nya ditunjukkan pada Gambar 18.20.Gambar 18.20 Format suatu offset pointer

Dua bit orde-tinggi yang pertama diisi dua angka 1 untuk membedakan sebuah offset pointer dengan length field. Sisanya, sebanyak 14 bit, mewakili sebuah bilangan yang menunjuk pada byte number yang sesuai dalam pesan. Byte dalam pesan dihitung mulai dari awal pesan. Byte pertama dihitung sebagai byte 0. Contohnya, jika sebuah offset pointer merujuk pada byte 12 (byte ke-13) dalam pesan, nilainya seharusnya menjadi 1100000000001100. Di sini, 2 bit yang paling kiri menyatakan field sebagai offset pointer dan bit sisanya menyatakan bilangan desimal 12. Penggunaan offset pointer akan ditunjukkan pada contoh-contoh berikut.

18.9 CONTOH-CONTOHPada bagian ini, disajikan beberapa contoh query and respon pada DNS. Contoh 1

Resolver mengirimkan pesan query kepada server lokal untuk menemukan alamat IP bagi host chal.fhda.edu.. Pesan Query. Gambar 18.21 menampilkan contoh sebuah pesan query yang dikirimkan oleh resolver. Dua byte pertama (1333) merupakan identifier. Identifier ini digunakan sebagai sequence number dan mengkaitkan sebuah respon dengan sebuah query. Karena resolver dapat mengirimkan sejumlah query kepada server yang sama, identifier membantu mengurutkan respon yang datangnya tidak berurutan. Byte selanjutnya berisi flag dengan nilai 0x0100 dalam bilangan hexadesimal, atau 0000000100000000 dalam bilangan biner. Nilai flag ini lebih mudah dibaca jika ditampilkan dalam field sebagai berikut..QROpCodeAATCRDRAReservedrCode

0000000100000000

Gambar 18.21 Contoh suatu pesan query

Bit QR mendefinisikan pesan sebagai sebuah query. Nilai OpCode 0000, berarti jenis query-nya standar. Bit RD bernilai 1. (Lihat kembali Gambar 18.16 tentang deskripsi flag field.) Pesan hanya berisi satu record pertanyaan. Nama domain-nya adalah 4chal4fhda3edu0. Dua byte berikutnya mendefinisikan jenis query yang berupa suatu alamat IP; 2 byte terakhir mendefinisikan class Internet.Pesan Respon. Gambar 18.22 menampilkan contoh respon dari server. Responnya mirip dengan query. Bedanya, flag-nya berbeda dan jumlah record jawabannya satu. Nilai flag adalah 0x8180 dalam bilangan heksadesimal. Dalam bilangan biner, nilanya 1000000110000000. Nilai flag jika dinyatakan dalam field:QROpCodeAATCRDRAReservedrCode

1000000110000000

Gambar 18.22 Contoh suatu pesan respon

Bit QR mendefinisikan pesan sebagai sebuah respon. Nilai OpCode 0000, berarti jenis query-nya standar. Bit RA dan RD bernilai . Pesan hanya berisi satu record pertanyaan dan satu record jawaban. Record pertanyaan merupakan perulangan dari pesan query. Record jawaban memiliki pointer 0xC00C (dibagi menjadi dua baris), yang mengacu pada record pertanyaan, bukan perulangan terhadap nama domain. Field berikutnya mendefinisikan jenis domain (alamat). Field sesudahnya mendefinisikan class (Internet). Field yang bernilai 12 000 merupakan TTL (12 000 detik). Field terakhir adalah panjang data resource, yang merupakan sebuah alamat IP (153.18.8.105).Contoh 2

Sebuah FTP server menerima sebuah paket dari FTP client dengan alamat IP 153.2.7.9. FTP server ingin memeriksa apakah FTP client ini merupakan client yang sah (authorized client). FTP server dapat memeriksa daftar client yang dimilikinya, tapi file 6ersebut hanya berisi nama domain, sementara. FTP server hanya mengetahui alamat IP client yang mengirimkan request. Untuk menyelesaikan masalah ini, FTP server meminta resolver (DNS client) mengirimkan inverse query kepada DNS server untuk menanyakan nama FTP client. Pesan Query Gambar 18.23 menampilkan contoh pesan query yang dikirim oleh resolver kepada server. Dua byte yang pertama merupakan identifier (0x1200). Nilai flag adalah 0x0900 dalam bilangan heksadesimal. Dalam bilangan biner, nilainya 0000100100000000.QROpCodeAATCRDRAReservedrCode

0000100100000000

Gambar 18.23 Contoh suatu inverse query message

Nilai OpCode adalah 0001, berarti pesan tersebut adalah sebuah inverse query. Pesan ini hanya berisi satu record pertanyaan. Nama domain-nya adalah 19171231537in-addr4arpa. Dua byte selanjutnya mendefinisikan jenis query sebagai PTR, dan 2 byte terakhir mendefinisikan class Internet.Pesan Respon. Gambar 18.24 menampilkan contoh pesan respon. Nilai flag adalah 0x8D80 dalam bilangan heksadesimal. Dalam biner, nilainya 10001101100000000.QROpCodeAATCRDRAReservedrCode

0000110110000000

Pesan tersebut hanya berisi satu record pertanyaan dan satu record jawaban. Record pertanyaan merupakan perulangan dari pesan query. Record jawabannya memiliki pointer 0xC00C, yang menunjuk kepada record pertanyaan, bukan perulangan nama domain. Field-field berikutnya mendefinisikan jenis domain (PTR), class (Internet), TTL (24 000 detik), dan panjang data resource (10). Field terakhir adalah nama domain 4mhhe3com0 yang diartikan sebagai mhhe.com..Gambar 18.24 Contoh suatu inverse response message

18.10 DDNSSaat DDNS dirancang, tidak seorang pun meramalkan bahwa akan ada sedemikian banyak perubahan yang terjadi terhadap alamat. Pada DNS, jika terjadi perubahan, misalnya penambahan host baru, pengurangan host, atau pengubahan alamat IP, maka pengubahannya harus dilakukan pada DNS master file. Pembaharuan (updating) harus dilakukan secara manual. Hal ini sulit dilakukan mengingat luasnya Internet saat ini.

DNS master file harus diperbaharui secara dinamik. Untuk mengatasi masalah di atas, digunakan Dynamic Domain Name System (DDNS). Pada DDNS, saat kaitan antara nama dan alamat ditentukan, informasi dikirimkan, biasanya oleh DHCP (lihat Bab 17) kepada DNS server primer. Server primer memperbaharui zone. Server sekunder diberi pemberitahuan secara aktif atau pasif. Secara aktif, server primer mengirimkan pesan kepada server sekunder mengenai perubahan pada zone. Secara pasif, server sekunder secara berkala memeriksa perubahan yang terjadi. Pada kedua cara tersebut, setelah menerima pemberitahuan mengenai perubahan yang terjadi, server sekunder mengirim request atas informasi tentang zone secara keseluruhan (zone transfer).

Untuk mengamankan dan mencegah terjadinya pengubahan tidak sah terhadap DNS record, DDNS menggunakan mekanisme pembuktian keaslian (authentication).

18.11 ENCAPSULATIONDNS dapat menggunakan UDP mapupun TCP. Port yang digunakan adalah port 53. UDP digunakan jika ukuran pesan respon kurang dari 512 byte. Jika sebaliknya, digunakan koneksi TCP.

Jika resolver telah mengetahui bahwa ukuran pesan respon lebih dari 512 byte, maka koneksi yang digunakan haruslah TCP. Contohnya, jika suatu server nama sekunder (bertindak sebagai client) menginginkan zone transfer dari suatu server primer, maka ia harus menggunakan koneksi TCP karena ukuran informasi yang dipindahkan biasanya melebihi 512 byte.

Jika resolver tidak mengetahui ukuran pesan respon, ia dapat meggunakan port UDP. Tapi, jika ukuran pesan respon ternyata lebih dari 512 byte, server akan memotong (truncates) pesan tersebut dan mengaktifkan bit TC. Resolver kemudian membuka koneksi TCP dan mengulang request untuk mendapatkan respon lengkap dari server.

DNS dapat menggunakan layanan UDP maupun TCP menggunakan port 53.

18.12 KATA KUNCIcaching

kompresi

country domain

DNS server

domain

domain name space

Domain Name System (DNS)

Dynamic Domain Name System (DDNS)

flat name space

fully qualified domain name (FQDN)

generic domain

hierarchical name space

host file

inverse domain

iterative resolution

name space

name-address resolution

partially qualified domain name (PQDN)

server primer

query message

question record

resource record

response message

root label

root server

server sekunder

akhiran

zone

18.13 RINGKASAN Domain Name System (DNS) adalah sebuah aplikasi client-server yang mengidentifikasi setiap host di Internet dengan nama unik yang bersifat user-friendly. DNS mengorganisasikan name space secara hirarki untuk mendesentralisasikan tanggung jawab penamaan. DNS dapat digambarkan sebagai suatu struktur pohon hirarki terbalik (inverted hierarchical tree structure) dengan satu node akar (root node) pada bagian atas, dan maksimum terdiri atas 128 tingkatan (level). Setiap node di pohon memiliki nama domain.

Domain didefinisikan sebagai anak pohon (subtree) dari sebuah domain name space. Inforrmasi name space didistribusikan pada DNS server. Setiap server memiliki kekuasan (jurisdiction) atas zone-nya.

Zone dari sebuah root server terdiri atas keseluruhan pohon DNS.

Server primer membuat, memelihara, dan memperbaharui informasi tentang zone-nya.

Server sekunder menerima informasinya dari server primer.

Domain name space dibagi ke dalam tiga bagian: generic domain, country domain, dan inverse domain. Ada tujuh generic domain, masing-masing menyatakan jenis organisasi.

Country domain menyatakan suatu negara.

Inverse domain mencari nama domain bagi alamat IP tertentu. Ini disebut address-to-name resolution. Server nama (name server), komputer yang menjalankan program DNS server, diorganisasikan secara hirarki.

DNS client, yang disebut resolver, memetakan sebuah nama kepada sebuah alamat, atau sebaliknya. Pada recursive resolution, client hanya perlu mengirimkan request kepada sebuah server untuk memperoleh respon.

Pada iterative resolution, client mungkin harus mengirimkan request kepada beberapa server untuk memperoleh respon.

Caching adalah metode di mana jawaban atas sebuah query disimpan di memori (selama jangka waktu tertentu) untuk memudahkan akses bagi request berikutnya. FQDN (fully qualified domain name) adalah nama domain yang terdiri atas serangkaian label yang diawali dengan host, dilanjutkan dengan tingkatan-tingkatan (levels) berikutnya, dan diakhiri oleh root node. PQDN (partially qualified domain name) adalah nama domain yang tidak mencantumkan secara lengkap seluruh tingkatan yang terdapat antara host dan root node. Ada dua jenis pesan DNS: query dan respon.

Ada dua jenis DNS record: question record dan resource record.

DNS menggunakan offset pointer untuk menduplikasi informasi nama domain di dalam pesannya.

Dynamic DNS (DDNS) secara otomatis memperbaharui (updates) DNS master file.

DNS menggunakan layanan UDP untuk pesan yang berukuran kurang dari 512 byte, jika lebih, digunakan layanan TCP.

18.14 PRACTICE SETPertanyaan Pilihan Berganda1. The least spesific label pada nama domain chal.atc.fhda.edu adalah __________.a. chal

b. atc

c. fhda

d. edu

2. The most spesific label pada nama domain chal.atc.fhda.edu adalah __________.a. chal

b. atc

c. fhda

d. edu

3. Manakah dari nama-nama domain berikut ini yang menggunakan country domain untuk me-resolve alamat IP-nya?a. chal.atac.fhda.edub. gsfc.nasa.gov

c. kenz.acct.sony.jp

d. mac.eng.sony.com

4. Sebuah respon DNS diklasifikasikan sebagai __________ jika informasi pada respon diperoleh dari cache memory.a. authoritativeb. unauthoritativec. iteratived. recursive5. Pada __________ resolution, client hanya berhubungan langsung dengan satu server.a. Iecursiveb. iterativec. cached. semua jawaban benar

6. Pada __________ resolution, client dapat berhubungan langsung dengan lebih dari satu server.

a. recursiveb. iterativec. cached. semua jawaban benar

7. Berapa panjang maksimum query name subfield?a. 4 byteb. 63 bytec. 32 byted. semua jawaban salah.

8. Pada address-to-name resolution, digunakan __________ domain.a. inverseb. reversec. genericd. country9. Bagaimana cara mengendalikan masa simpan name-to-address resolution pada cache memory?a. dengan time-to-live field yang ditentukan oleh serverb. dengan time-to-live counter yang ditentukan oleh serverc. dengan time-to-live field yang ditentukan oleh authoritative serverd. jawaban b dan c benar

10. Apa alamat jaringan host yang dicari pada string 219.46.123.107.in-addr.arpa?

a. 219.46.123.0b. 107.123.0.0

c. 107.123.46.0

d. 107.0.0.0

11. Pada struktur pohon hirarki DNS, host dengan nama domain pit.arc.nasa.gov. berada pada level __________. (Root berada pada level 1.)a. ketigab. keempat

c. kelima

d. tidak dapat ditentukan karena kurangnya informasi yang diberikan dalam soal

12. Pada struktur pohon hirarki DNS, host dengan nama domain trinity.blue.vers.inc berada pada level __________. (Root berada pada level 1.)

a. ketiga

b. keempat

c. kelima

d. tidak dapat ditentukan karena kurangnya informasi yang diberikan dalam soal

13. DNS server __________ memperoleh datanya dari DNS server lain.a. primer

b. sekunder

c. rootd. semua jawaban benar

14. DNS server __________ membuat, memelihara, dan memperbaharui zone file-nya

a. primer

b. sekunder

c. rootd. semua jawaban benar

15. Zone dari sebuah DNS server __________ meliputi struktur pohon DNS secara keseluruhan.a. primer

b. sekunder

c. root

d. semua jawaban benar

16. Resolver adalah __________

a. DNS clientb. DNS serverc. host machined. root server17. Pointer query melibatkan __________ domaina. inverseb. reversec. rootd. recursive18. Jika nama domain-nya diketahui, alamat IP suatu host ditentukan menggunakan __________

a. inverse domainb. generic domainc. country domaind. b atau c

19. Field mana yang bernilai nol pada pesan query DNS?

a. Jumlah record jawaban.b. Jumlah authoritative record.

c. Jumlah record tambahan.d. Semua jawaban benar.20. Record pertanyaan terdapat pada bagian record __________.a. pertanyaan

b. jawaban

c. authoritatived. informasi tambahan

Latihan21. Bandingkan struktur DNS dengan struktur direktori UNIX.22. Pada struktur direktori UNIX, apa yang ekivalen dengan titik yang ada pada struktur DNS?

23. Nama domain DNS berawal dari sebuah node dan naik secara berurutan hingga root. Apakah pathname pada UNIX mengikuti cara yang sama?24. Dapatkah kita menyamakan FQDN dalam DNS dengan absolute pathnames pada UNIX dan PQDN dengan relative pathnames pada UNIX?

25. Tentukan mana yang merupakan FQDN dan mana yang PQDN.a. xxxb. xxx.yyy.

c. xxx.yyy.net

d. zzz.yyy.xxx.edu.26. Tentukan mana yang merupakan FQDN dan mana yang PQDN.

a. mil.

b. edu.

c. xxx.yyy.net

d. zzz.yyy.xxx.edu27. Tentukan nilai flags field (dalam heksadesimal) sebuah pesan query berisi request terhadap sebuah alamat. Jawaban yang diminta berupa jawaban rekursif.28. Tentukan nilai flags field (dalam heksadesimal) sebuah pesan unauthoritative yang berisi respon inverse. Resolver meminta respon rekursif, tapi jawaban rekursif yang diinginkan tidak tersedia.29. Cobalah menganalisis nilai flag 0x8F80.

30. Cobalah menganalisis nilai flag 0x0503. Apakah nilai ini valid?

31. Apakah ukuran record pertanyaan bernilai tertentu (fixed)?

32. Apakah ukuran resource record bernilai tertentu (fixed)?33. Berapa ukuran record pertanyaan yang berisi nama domain fhda.edu?34. Berapa ukuran record pertanyaan yang berisi sebuah alamat IP?

35. Berapa ukuran resource record yang berisi nama domain fhda.edu?

36. Berapa ukuran resource record yang berisi sebuah alamat IP?

37. Berapa ukuran pesan query yang berisi request alamat IP untuk callenger.atc.fhda.edu?38. Berapa ukuran pesan query yang berisi request nama domain untuk 185.34.23.12?

39. Berapa ukuran pesan respon untuk pesan query pada latihan 37?40. Berapa ukuran pesan respon untuk pesan query pada latihan 38?

41. Ulangi Contoh 1 menggunakan pesan respon dengan satu record jawaban dan satu authoritative record yang mendefinisikan fhda.edu. sebagai authoritative server-nya.42. Ulang Latihan 41, dengan menambahkan satu record tambahan yang mendefinisikan 153.18.9.0 sebagai alamat authoritative server-nya.

43. Sebuah DNS client mencari alamat IP xxx.yyy.com. Gambarkan bentuk pesan query-nya beserta nilai masing-masing field.44. Gambarkan pesan respon DNS server atas query pada Latihan 43. Asumsikan alamat IP-nya 201.34.23.12.45. Sebuah DNS client mencari alamat IP untuk xxx.yyy.com dan aaa.bbb.edu. Bagaimana bentuk pesan query-nya?

46. Gambarkan pesan respon sebuah DNS server atas query pada Latihan 45 jika diketahui alamatnya 14.23.45.12 dan 131.34.67.89.

47. Gambarkan pesan respon atas query pada Latihan 46 jika DNS server dapat me-resolve inkuiri pertama, tapi tidak dapat me-resolve yang kedua.

48. Sebuah DNS client mencari nama komputer dengan alamat IP 132.1.17.8. Bagaimana bentuk pesan query-nya?

49. Gambarkan pesan respon yang dikirimkan oleh server atas query pada Latihan 48.50. Encapsulate pesan query pada Latihan 43 menggunakan UDP user datagram.51. Encapsulate pesan respon atas query pada Latihan 44 menggunakan UDP user datagram.