Sistem
Penamaan Domain (bahasa Inggris: (Domain Name System; DNS) adalah
sebuah sistem yang menyimpan informasi tentang nama host ataupun nama domain dalam
bentuk basis data tersebar (distributed database) di dalam
jaringan komputer, misalkan: Internet. DNS menyediakan alamat IP untuk
setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima
surel (email) untuk setiap domain. Menurut
browser Google Chrome, DNS adalah layanan jaringan yang
menerjemahkan nama situs web menjadi alamat internet.
DNS menyediakan pelayanan yang
cukup penting untuk Internet,
ketika perangkat keras komputer dan jaringan bekerja dengan alamat IP untuk
mengerjakan tugas seperti pengalamatan dan penjaluran (routing), manusia pada
umumnya lebih memilih untuk menggunakan nama host dan nama domain, contohnya
adalah penunjukan sumber universal (URL)
dan alamat surel. Analogi yang umum digunakan untuk menjelaskan fungsinya
adalah DNS bisa dianggap seperti buku telepon internet di mana saat pengguna
mengetikkan www.indosat.net.id di peramban web maka pengguna akan diarahkan ke
alamat IP 124.81.92.144 (IPv4) dan 2001:e00:d:10:3:140::83 (IPv6).
Pengertian beberapa bagian
dari nama domain
Sebuah nama domain biasanya
terdiri dari dua bagian atau lebih (secara teknis disebut label), dipisahkan dengan titik.
·
Label paling kanan menyatakan top-level domain -
domain tingkat atas/tinggi (misalkan, alamat www.wikipedia.org memiliki top-level
domain org).
·
Setiap label di sebelah kirinya menyatakan sebuah
sub-divisi atau subdomain dari
domain yang lebih tinggi. Catatan: "subdomain" menyatakan
ketergantungan relatif, bukan absolut. Contoh: wikipedia.org merupakan subdomain dari
domain org, dan id.wikipedia.org dapat membentuk subdomain
dari domain wikipedia.org (pada praktiknya, id.wikipedia.org sesungguhnya mewakili
sebuah nama host - lihat dibawah). Secara teori, pembagian seperti ini dapat
mencapai kedalaman 127 level, dan setiap label dapat terbentuk sampai dengan 63
karakter, selama total nama domain tidak melebihi panjang 255 karakter. Tetapi
secara praktik, beberapa pendaftar nama domain (domain name registry) memiliki batas
yang lebih sedikit.
·
Terakhir, bagian paling kiri dari bagian nama domain
(biasanya) menyatakan nama host. Sisa dari nama domain menyatakan cara untuk
membangun jalur logis untuk informasi yang dibutuhkan; nama host adalah tujuan
sebenarnya dari nama sistem yang dicari alamat IP-nya. Contoh: nama
domain www.wikipedia.org memiliki nama host
"www".
DNS memiliki kumpulan hierarki
dari DNS servers. Setiap
domain atau subdomain memiliki satu atau lebih authoritative DNS Servers (server DNS otorisatif) yang
mempublikasikan informasi tentang domain tersebut dan nama-nama server dari
setiap domain di-"bawah"-nya. Pada puncak hierarki, terdapat root servers- induk server nama:
server yang ditanyakan ketika mencari (menyelesaikan/resolving) dari sebuah nama domain
tertinggi (top-level domain).
Sebuah contoh dari teori
rekursif DNS
Sebuah contoh mungkin dapat
memperjelas proses ini. Andaikan ada aplikasi yang memerlukan pencarian alamat
IP dari www.wikipedia.org. Aplikasi tersebut bertanya
ke DNS recursor lokal.
·
Sebelum dimulai, recursor harus mengetahui di mana dapat menemukan root nameserver; administrator
dari recursive DNS server secara
manual mengatur (dan melakukan update secara berkala) sebuah file dengan
nama root hints zone (panduan akar DNS) yang
menyatakan alamat-alamt IP dari para server tersebut.
·
Proses dimulai oleh recursor yang bertanya kepada para root server tersebut - misalkan:
server dengan alamat IP "198.41.0.4" - pertanyaan "apakah alamat
IP dari www.wikipedia.org?"
·
Root server menjawab dengan
sebuah delegasi, arti
kasarnya: "Saya tidak tahu alamat IP dari www.wikipedia.org, tetapi saya "tahu"
bahwa server DNS di 204.74.112.1 memiliki informasi tentang domain org."
·
Recursor DNS lokal kemudian
bertanya kepada server DNS (yaitu: 204.74.112.1) pertanyaan yang sama seperti
yang diberikan kepada root server.
"apa alamat IP dari www.wikipedia.org?". (umumnya) akan
didapatkan jawaban yang sejenis, "saya tidak tahu alamat dari www.wikipedia.org, tetapi saya "tahu"
bahwa server 207.142.131.234 memiliki informasi dari domain wikipedia.org."
·
Akhirnya, pertanyaan beralih kepada server DNS ketiga
(207.142.131.234), yang menjawab dengan alamat IP yang dibutuhkan.
Proses ini menggunakan pencarian rekursif (recursion / recursive searching).
Pengertian pendaftaran
domain dan glue records
Membaca contoh di atas, Anda
mungkin bertanya: "bagaimana caranya DNS server 204.74.112.1 tahu alamat
IP mana yang diberikan untuk domain wikipedia.org?" Pada awal proses, kita
mencatat bahwa sebuah DNS
recursor memiliki alamat IP dari para root server yang (kurang-lebih) didata secara explisit (hard coded). Mirip dengan hal
tersebut, server nama (name server)
yang otoritatif untuk top-level domain mengalami
perubahan yang jarang.
Namun, server nama yang
memberikan jawaban otorisatif bagi nama domain yang umum mengalami perubahan
yang cukup sering. Sebagai bagian dari proses pendaftaran sebuah nama domain
(dan beberapa waktu sesudahnya), pendaftar memberikan pendaftaran dengan server
nama yang akan mengotorisasikan nama domain tersebut; maka ketika
mendaftar wikipedia.org, domain tersebut terhubung
dengan server nama gunther.bomis.com dan zwinger.wikipedia.org di pendaftar .org.
Kemudian, dari contoh di atas, ketika server dikenali sebagai 204.74.112.1
menerima sebuah permintaan, DNS server memindai daftar domain yang ada,
mencari wikipedia.org, dan mengembalikan server nama
yang terhubung dengan domain tersebut.
Biasanya, server nama muncul
berdasarkan urutan nama, selain berdasarkan alamat IP. Hal ini
menimbulkan string lain
dari permintaan DNS untuk menyelesaikan nama dari server nama; ketika sebuah
alamat IP dari server nama mendapatkan sebuah pendaftaran di zona induk, para
programmer jaringan komputer menamakannya sebuah glue record.
DNS dalam praktik
Ketika sebuah aplikasi
(misalkan web broswer), hendak mencari alamat IP dari sebuah nama domain,
aplikasi tersebut tidak harus mengikuti seluruh langkah yang disebutkan
dalam teori di atas.
Kita akan melihat dulu konsep caching,
lalu mengartikan operasi DNS di "dunia nyata".
Caching dan masa hidup (caching and time to live)
Karena jumlah permintaan yang
besar dari sistem seperti DNS, perancang DNS menginginkan penyediaan mekanisme
yang bisa mengurangi beban dari masing-masing server DNS. Rencana mekanisnya
menyarankan bahwa ketika sebuah DNS
resolver (klien) menerima sebuah jawaban DNS, informasi tersebut
akan di cache untuk jangka waktu
tertentu. Sebuah nilai (yang di-set oleh administrator dari server DNS yang
memberikan jawaban) menyebutnya sebagai time to live (masa hidup), atau TTL yang mendefinisikan
periode tersebut. Saat jawaban masuk ke dalam cache, resolver akan
mengacu kepada jawaban yang disimpan di cache tersebut; hanya ketika TTL usai (atau saat
administrator mengosongkan jawaban dari memori resolver secara manual) maka resolver menghubungi server DNS untuk informasi yang sama.
Waktu propagasi (propagation time)
Satu akibat penting dari
arsitektur tersebar dan cache adalah
perubahan kepada suatu DNS terkadang efektif secara langsung dalam skala
besar/global. Contoh berikut mungkin akan menjelaskannya: Jika seorang
administrator telah mengatur TTL selama 6 jam untuk host www.wikipedia.org, kemudian mengganti alamat IP
dari www.wikipedia.org pada pk 12:01,
administrator harus mempertimbangkan bahwa ada (paling tidak) satu individu
yang menyimpan cache jawaban
dengan nilai lama pada pk 12:00 yang tidak akan menghubungi server DNS sampai
dengan pk 18:00. Periode antara pk 12:00 dan pk 18:00 dalam contoh ini disebut
sebagai waktu propagasi (propagation time), yang bisa
didefiniskan sebagai periode waktu yang berawal antara saat terjadi perubahan
dari data DNS, dan berakhir sesudah waktu maksimum yang telah ditentukan
oleh TTL berlalu. Ini akan mengarahkan
kepada pertimbangan logis yang penting ketika membuat perubahan kepada
DNS: tidak semua akan melihat hal
yang sama seperti yang Anda lihat. RFC1537 dapat membantu penjelasan
ini.
DNS di dunia nyata
Di dunia nyata, user tidak
berhadapan langsung dengan DNS
resolver - mereka berhadapan dengan program seperti web brower (Mozilla Firefox, Safari, Opera, Internet Explorer, Netscape, Konqueror dan
lain-lain dan klien mail (Outlook Express, Mozilla
Thunderbird dan lain-lain). Ketika user melakukan aktivitas
yang meminta pencarian DNS (umumnya, nyaris semua aktivitas yang menggunakan
Internet), program tersebut mengirimkan permintaan ke DNS Resolver yang ada di
dalam sistem operasi.
DNS
resolver akan selalu memiliki cache (lihat di atas) yang
memiliki isi pencarian terakhir. Jika cache dapat memberikan jawaban kepada permintaan DNS, resolver akan menggunakan nilai
yang ada di dalam cache kepada
program yang memerlukan. Kalau cache tidak
memiliki jawabannya, resolver akan
mengirimkan permintaan ke server DNS tertentu. Untuk kebanyakan pengguna di
rumah, Internet
Service Provider(ISP) yang menghubungkan komputer tersebut
biasanya akan menyediakan server DNS: pengguna tersebut akan mendata alamat
server secara manual atau menggunakan DHCP untuk melakukan pendataan
tersebut. Namun jika administrator sistem / pengguna telah mengkonfigurasi
sistem untuk menggunakan server DNS selain yang diberikan secara default oleh
ISP misalnya seperti Google Public DNS ataupun OpenDNS,[1] maka DNS resolver akan mengacu ke DNS
server yang sudah ditentukan. Server nama ini akan mengikuti proses yang
disebutkan di Teori DNS,
baik mereka menemukan jawabannya maupun tidak. Hasil pencarian akan diberikan
kepada DNS resolver;
diasumsikan telah ditemukan jawaban, resolver akan menyimpan hasilnya di cache untuk penggunaan berikutnya,
dan memberikan hasilnya kepada software yang meminta pencarian DNS tersebut.
Sebagai bagian akhir dari
kerumitan ini, beberapa aplikasi seperti web browser juga memiliki DNS cache mereka sendiri, tujuannya adalah untuk mengurangi
penggunaan referensi DNS resolver,
yang akan meningkatkan kesulitan untuk melakukan debug DNS,
yang menimbulkan kerancuan data yang lebih akurat. Cache seperti ini umumnya memiliki masa yang singkat dalam
hitungan 1 menit.
Penerapan DNS lainnya
Sistem yang dijabarkan di atas
memberikan skenario yang disederhanakan. DNS meliputi beberapa fungsi lainnya:
·
Nama host dan alamat IP tidak berarti terhubung secara
satu-banding-satu. Banyak nama host yang diwakili melalui alamat IP tunggal:
gabungan dengan pengasuhan maya (virtual hosting), hal ini
memungkinkan satu komputer untuk malayani beberapa situs web. Selain itu,
sebuah nama host dapat mewakili beberapa alamat IP: ini akan membantu toleransi
kesalahan (fault tolerance dan penyebaran beban
(load distribution), juga
membantu suatu situs berpindah dari satu lokasi fisik ke lokasi fisik lainnya
secara mudah.
·
Ada cukup banyak kegunaan DNS selain menerjemahkan
nama ke alamat IP. Contoh:, agen pemindahan surat Mail transfer
agents(MTA) menggunakan DNS untuk mencari tujuan
pengiriman E-mail untuk alamat
tertentu. Domain yang menginformasikan pemetaan exchange disediakan melalui rekod MX (MX record) yang meningkatkan
lapisan tambahan untuk toleransi kesalahan dan penyebaran beban selain dari
fungsi pemetaan nama ke alamat IP.
·
Kerangka Peraturan Pengiriman (Sender Policy Framework)
secara kontroversi menggunakan keuntungan jenis rekod DNS, dikenal sebagai
rekod TXT.
·
Menyediakan keluwesan untuk kegagalan komputer, beberapa
server DNS memberikan perlindungan untuk setiap domain. Tepatnya, tigabelas
server akar (root servers)
digunakan oleh seluruh dunia. Program DNS maupun sistem operasi memiliki alamat
IP dari seluruh server ini. Amerika Serikat memiliki, secara angka, semua
kecuali tiga dari server akar tersebut. Namun, dikarenakan banyak server akar
menerapkan anycast,
yang memungkinkan beberapa komputer yang berbeda dapat berbagi alamat IP yang
sama untuk mengirimkan satu jenis services melalui
area geografis yang luas, banyak server yang secara fisik (bukan sekadar angka)
terletak di luar Amerika Serikat.
DNS menggunakan TCP dan UDP di port komputer 53
untuk melayani permintaan DNS. Nyaris semua permintaan DNS berisi permintaan
UDP tunggal dari klien yang dikuti oleh jawaban UDP tunggal dari server.
Umumnya TCP ikut terlibat hanya ketika ukuran data jawaban melebihi 512 byte,
atau untuk pertukaaran zona DNS zone transfer
Keamanan DNS
Sistem DNS umumnya tidak
dienkripsi sehingga rawan untuk disadap oleh pihak tertentu, beberapa
implementasi telah dibuat untuk meningkatkan keamanan DNS yaitu DNS over HTTPS, DNS over TLS, dan DNSSEC.
Jenis-jenis catatan DNS
Beberapa kelompok penting dari
data yang disimpan di dalam DNS adalah sebagai berikut:
·
AAAA record atau catatan alamat IPv6 memetakan
sebuah nama host ke alamat IP 128-bit (untuk IPv6).
·
CNAME record atau catatan nama kanonik membuat
alias untuk nama domain. Domain yang di-alias-kan memiliki seluruh subdomain
dan rekod DNS seperti aslinya.
·
MX record' atau catatan pertukaran surat memetakan sebuah nama
domain ke dalam daftar mail exchange server untuk
domain tersebut.
·
PTR record atau catatan penunjuk memetakan sebuah
nama host ke nama kanonik untuk host tersebut. Pembuatan rekod PTR untuk sebuah
nama host di dalam domain in-addr.arpa yang mewakili sebuah
alamat IP menerapkan pencarian balik DNS (reverse DNS lookup) untuk alamat
tersebut. Contohnya (saat penulisan / penerjemahan artikel ini), www.icann.net memiliki alamat IP
192.0.34.164, tetapi sebuah rekod PTR memetakan,,164.34.0.192.in-addr.arpa ke
nama kanoniknya: referrals.icann.org.
·
NS record atau catatan server nama memetakan
sebuah nama domain ke dalam satu daftar dari server DNS untuk domain tersebut.
Pewakilan bergantung kepada rekod NS.
·
SOA record atau catatan otoritas awal (Start of Authority) mengacu server
DNS yang menyediakan otorisasi informasi tentang sebuah domain Internet.
·
Catatan TXT mengizinkan
administrator untuk memasukan data acak ke dalam catatan DNS; catatan ini juga
digunakan di spesifikasi Sender Policy Framework.
Jenis catatan lainnya
semata-mata untuk penyediaan informasi (contohnya, catatan LOC memberikan letak lokasi fisik dari sebuah host,
atau data ujicoba (misalkan, catatan WKS memberikan sebuah daftar dari server yang memberikan
servis yang dikenal (well-known
service) seperti HTTP atau POP3 untuk sebuah domain.
Nama domain yang diinternasionalkan
Nama domain harus menggunakan
satu sub-kumpulan dari karakter ASCII, hal ini mencegah beberapa bahasa
untuk menggunakan nama maupun kata lokal mereka. ICANN telah menyetujui Punycode yang berbasiskan
sistem IDNA, yang memetakan
string Unicode ke karakter
set yang valid untuk DNS, sebagai bentuk penyelesaian untuk masalah ini, dan
beberapa registries sudah mengadopsi metode
IDNS ini.
Perangkat lunak DNS
Beberapa jenis perangkat lunak yang
menerapkan metode DNS, di antaranya:
·
BIND (Berkeley
Internet Name Domain)
·
djbdns (Daniel J. Bernstein's DNS)
·
MaraDNS
·
QIP (Lucent
Technologies)
·
NSD (Name
Server Daemon)
·
Unbound
·
PowerDNS
·
Microsoft DNS (untuk edisi server
dari Windows 2000 dan Windows 2003)
Utiliti berorientasi DNS
termasuk:
·
dig (domain information groper)
Sumber : Wikipedia
Tidak ada komentar:
Posting Komentar