DNS (Domain Name System)
Sistem Penamaan Domain (bahasa Inggris: Domain Name System atau DNS) adalah sebuah sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer, seperti Internet. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima surat elektronik untuk setiap domain. Fungsi utama sistem ini adalah menerjemahkan nama domain yang mudah diingat oleh manusia (alfabetik) menjadi alamat IP numerik yang digunakan oleh perangkat keras komputer untuk pengalamatan dan penjaluran (routing).
Sejarah
Sebelum ditemukannya DNS, setiap komputer di jaringan menggunakan file HOSTS.TXT dari SRI International untuk memetakan sebuah alamat ke sebuah nama. Sistem ini memiliki keterbatasan karena setiap kali alamat komputer berubah, setiap sistem yang hendak berhubungan dengan komputer tersebut harus melakukan pembaruan terhadap file hosts.
Pada tahun 1983, Paul Mockapetris menemukan DNS untuk mengatasi keterbatasan tersebut dengan menciptakan sistem yang memungkinkan perubahan alamat host dilakukan di satu tempat dan dipelajari oleh host lain secara dinamis. Spesifikasi asli DNS muncul dalam dokumen RFC 882 dan 883, yang kemudian diperbarui pada tahun 1987 melalui penerbitan RFC 1034 dan RFC 1035.
Arsitektur dan Komponen
Pengelola sistem DNS terdiri dari tiga komponen utama:
- DNS Resolver: Program klien pada komputer pengguna yang membuat permintaan DNS dari aplikasi.
- Recursive DNS Server: Server yang melakukan pencarian melalui DNS sebagai tanggapan permintaan dari resolver dan mengembalikan jawaban.
- Authoritative DNS Server: Server yang memberikan jawaban otorisatif terhadap permintaan, baik berupa jawaban langsung maupun delegasi ke server lain.
Struktur nama domain terdiri dari label yang dipisahkan dengan titik. Label paling kanan disebut top-level domain (TLD), dan label di sebelah kirinya merupakan subdomain dari domain yang lebih tinggi. Secara teori, kedalaman subdomain dapat mencapai 127 level dengan panjang total nama domain tidak melebihi 255 karakter.
Di puncak hirarki terdapat root servers (server akar) yang berjumlah tiga belas server yang digunakan oleh seluruh dunia. Meskipun secara angka berjumlah tiga belas, penggunaan teknologi anycast memungkinkan banyak server secara fisik berbagi alamat IP yang sama untuk melayani area geografis yang luas.
Mekanisme Kerja
DNS menggunakan protokol TCP dan UDP pada port 53 untuk melayani permintaan. Proses pencarian alamat IP (misalnya untuk www.wikipedia.org) melibatkan langkah-langkah berikut:
- Aplikasi bertanya kepada DNS recursor lokal.
- Recursor bertanya kepada root server, yang kemudian memberikan delegasi ke server TLD (misalnya server untuk
.org). - Recursor bertanya kepada server TLD, yang memberikan referensi ke server otoritatif untuk domain tersebut (misalnya
wikipedia.org). - Server otoritatif memberikan alamat IP yang dibutuhkan.
Untuk mengurangi beban server, DNS menggunakan mekanisme caching di mana informasi disimpan sementara oleh resolver selama periode waktu tertentu yang ditentukan oleh Time to Live (TTL). Perubahan pada data DNS membutuhkan waktu propagasi, yaitu periode waktu antara perubahan data hingga data tersebut efektif secara global setelah TTL kedaluwarsa.
Jenis Catatan DNS
Data dalam DNS disimpan dalam berbagai jenis catatan (record), antara lain:
- A record: Memetakan nama host ke alamat IP 32-bit (IPv4).
- AAAA record: Memetakan nama host ke alamat IP 128-bit (IPv6).
- CNAME record: Membuat alias untuk nama domain.
- MX record: Memberikan informasi tentang mail exchange server untuk sebuah domain.
- PTR record: Memetakan alamat IP ke nama host (reverse DNS lookup).
- NS record: Memberitahukan daftar name server yang membawa informasi tentang sebuah domain.
- SOA record: Memberikan informasi server DNS yang memiliki otoritas tertinggi untuk sebuah domain.
- TXT record: Mengizinkan administrator memasukkan data acak, sering digunakan untuk spesifikasi Sender Policy Framework.
Implementasi Perangkat Lunak
Salah satu perangkat lunak DNS yang umum digunakan pada sistem operasi Linux adalah BIND (Berkeley Internet Name Domain). Dalam konfigurasi BIND pada Debian, terdapat dua jenis file konfigurasi zona utama:
- File Forward: Berfungsi mengubah nama domain menjadi alamat IP.
- File Reverse: Berfungsi mengubah alamat IP menjadi nama domain.
Perangkat lunak lain yang menerapkan metode DNS meliputi djbdns, MaraDNS, QIP, NSD, dan PowerDNS.
Keamanan dan Politik
Infrastruktur DNS dapat menjadi target ancaman siber. Salah satu bentuk serangan adalah Distributed Denial of Service (DDoS), seperti serangan terhadap Dyn DNS pada tahun 2016 yang mengganggu layanan situs-situs besar. Selain itu, terdapat kerentanan exploit seperti named overflow yang dapat menyerang server DNS.
Secara administratif, tidak ada individu yang "memiliki" nama domain. Pengguna legal dikenal sebagai pendaftar (registrant) yang menyewa hak penggunaan dari Network Information Centre (NIC) atau pendaftar nama domain (domain name registry). ICANN (Internet Corporation for Assigned Names and Numbers) adalah lembaga internasional yang memelihara industri nama domain. Kritik politik terhadap sistem ini sering kali berkaitan dengan isu monopoli dan masalah penunjukan top-level domain.