Sistem Penamaan Domain atau Sistem Penamaan Ranah (bahasa Inggris: (Domain Name System, DNS) adalah sistem penamaan hierarkis dan desentralisasi untuk komputer, layanan, atau sumber daya lain yang terhubung ke Internet atau jaringan pribadi. Ini mengaitkan berbagai informasi dengan nama domain yang ditetapkan untuk masing-masing entitas yang berpartisipasi. Yang paling menonjol, ini menerjemahkan nama domain yang lebih mudah dihafal ke alamat IP numerik yang diperlukan untuk mencari dan mengidentifikasi layanan dan perangkat komputer dengan protokol jaringan yang mendasarinya. Dengan menyediakan layanan direktori terdistribusi di seluruh dunia, Domain Name System telah menjadi komponen penting dari fungsi Internet sejak 1985.
Sistem Nama Domain mendelegasikan tanggung jawab untuk menetapkan nama domain dan memetakan nama-nama tersebut ke sumber daya Internet dengan menunjuk server nama resmi untuk setiap domain. Administrator jaringan dapat mendelegasikan wewenang atas sub-domain dari ruang nama yang dialokasikan untuk server nama lain. Mekanisme ini menyediakan layanan terdistribusi dan toleran terhadap kesalahan dan dirancang untuk menghindari database pusat tunggal yang besar.
Sistem Nama Domain juga menentukan fungsionalitas teknis dari layanan basis data yang merupakan intinya. Ini mendefinisikan protokol DNS, spesifikasi terperinci dari struktur data dan pertukaran komunikasi data yang digunakan dalam DNS, sebagai bagian dari Internet Protocol Suite.
Internet memiliki dua ruang nama utama, hierarki nama domain[1] dan ruang alamat Protokol Internet (IP).[2] Sistem Nama Domain memelihara hirarki nama domain dan menyediakan layanan terjemahan antara itu dan ruang alamat. Server nama internet dan protokol komunikasi menerapkan Sistem Nama Domain.[3] Server nama DNS adalah server yang menyimpan catatan DNS untuk domain; server nama DNS merespons dengan jawaban atas pertanyaan terhadap basis datanya.
Jenis catatan paling umum yang disimpan dalam database DNS adalah untuk Start of Authority (SOA), alamat IP (A dan AAAA), penukar surat SMTP (MX), server nama (NS), pointer untuk reverse DNS lookups (PTR), dan alias nama domain (CNAME). Meskipun tidak dimaksudkan sebagai database tujuan umum, DNS telah diperluas dari waktu ke waktu untuk menyimpan catatan untuk tipe data lain untuk pencarian otomatis, seperti catatan DNSSEC, atau untuk pertanyaan manusia seperti catatan orang yang bertanggung jawab (RP). Sebagai basis data tujuan umum, DNS juga telah digunakan dalam memerangi email yang tidak diminta (spam) dengan menyimpan daftar blackhole real-time (RBL). Database DNS secara tradisional disimpan dalam file teks terstruktur, file zona, tetapi sistem database lainnya adalah umum.
Analogi yang sering digunakan untuk menjelaskan Sistem Nama Domain adalah bahwa ia berfungsi sebagai buku telepon untuk Internet dengan menerjemahkan nama host komputer yang ramah manusia ke alamat IP. Misalnya, nama domain www.example.com diterjemahkan ke alamat 93.184.216.34 (IPv4) dan 2606: 2800: 220: 1: 248: 1893: 25c8: 1946 (IPv6). DNS dapat diperbarui dengan cepat dan transparan, memungkinkan lokasi layanan di jaringan berubah tanpa memengaruhi pengguna akhir, yang terus menggunakan nama host yang sama. Pengguna mengambil keuntungan dari ini ketika mereka menggunakan Uniform Resource Locators (URL) dan alamat email yang berarti tanpa harus tahu bagaimana sebenarnya komputer menemukan layanan.
Menggunakan nama yang lebih sederhana dan lebih berkesan menggantikan alamat numerik tuan rumah, kembali ke era ARPANET. Stanford Research Institute (sekarang SRI Internasional) memelihara file teks bernama HOSTS.TXT yang memetakan nama host ke alamat numerik komputer di ARPANET.[4][5] Elizabeth Feinler mengembangkan dan memelihara direktori ARPANET pertama.[6] Pemeliharaan alamat numerik, disebut Daftar Nomor yang Ditugaskan, ditangani oleh Jon Postel di Institut Ilmu Informasi Universitas California Selatan (ISI), yang timnya bekerja sama erat dengan SRI.
Pada awal 1980-an, mempertahankan satu, tabel host terpusat telah menjadi lambat dan berat dan jaringan yang muncul membutuhkan sistem penamaan otomatis untuk mengatasi masalah teknis dan personel. Postel mengarahkan tugas menempa kompromi antara lima proposal solusi yang bersaing untuk Paul Mockapetris. Mockapetris sebagai gantinya menciptakan Sistem Nama Domain pada tahun 1983.
Gugus Tugas Teknik Internet menerbitkan spesifikasi asli dalam RFC 882 dan RFC 883 pada November 1983.[7]
Pada tahun 1984, empat mahasiswa UC Berkeley, Douglas Terry, Mark Painter, David Riggle, dan Songnian Zhou, menulis implementasi server nama Unix pertama untuk Berkeley Internet Name Domain, yang biasa disebut sebagai BIND.[8] Pada tahun 1985, Kevin Dunlap dari DEC secara substansial merevisi implementasi DNS. Mike Karels, Phil Almquist, dan Paul Vixie telah mempertahankan BIND sejak saat itu.[9] Pada awal 1990-an, BIND diangkut ke platform Windows NT. Itu didistribusikan secara luas, terutama pada sistem Unix, dan masih merupakan perangkat lunak DNS yang paling banyak digunakan di Internet.[9]
Pada November 1987, RFC 1034[1] dan RFC 1035[3] menggantikan spesifikasi DNS 1983. Beberapa Permintaan tambahan untuk Komentar telah mengusulkan ekstensi ke protokol DNS inti.[10]
Pengelola dari sistem DNS terdiri dari tiga komponen:
Sebuah nama domain biasanya terdiri dari dua bagian atau lebih (secara teknis disebut label), dipisahkan dengan titik.
www.wikipedia.org
memiliki top-level domain org
).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.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 mungkin dapat memperjelas proses ini. Andaikan ada aplikasi yang memerlukan pencarian alamat IP dari www.wikipedia.org
. Aplikasi tersebut bertanya ke DNS recursor lokal.
www.wikipedia.org
?"www.wikipedia.org
, tetapi saya "tahu" bahwa server DNS di 204.74.112.1 memiliki informasi tentang domain org
."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
."Proses ini menggunakan pencarian rekursif (recursion / recursive searching).
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.
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".
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.
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.
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,[11] 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.
Sistem yang dijabarkan di atas memberikan skenario yang disederhanakan. DNS meliputi beberapa fungsi lainnya:
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
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.
Beberapa kelompok penting dari data yang disimpan di dalam DNS adalah sebagai berikut:
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
.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 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.
Beberapa jenis perangkat lunak yang menerapkan metode DNS, di antaranya:
Utiliti berorientasi DNS termasuk:
Tidak satupun individu di dunia yang "memiliki" nama domain kecuali Network Information Centre (NIC), atau pendaftar nama domain (domain name registry). Sebagian besar dari NIC di dunia menerima biaya tahunan dari para pengguna legal dengan tujuan bagi si pengguna legal menggunakan nama domain tersebut. Jadi sejenis perjanjian sewa-menyewa terjadi, bergantung kepada syarat dan ketentuan pendaftar. Bergantung kepada beberpa peraturan penamaan dari para pendaftar, pengguna legal dikenal sebagai "pendaftar" (registrants) atau sebagai "pemegang domain" (domain holders)
ICANN memegang daftar lengkap untuk pendaftar domain di seluruh dunia. Siapapun dapat menemukan pengguna legal dari sebuah domain dengan mencari melalui basis data WHOIS yang disimpan oleh beberpa pendaftar domain.
Di (lebih kurang) 240 country code top-level domains (ccTLDs), pendaftar domain memegang sebuah acuan WHOIS (pendaftar dan nama server). Contohnya, IDNIC, NIC Indonesia, memegang informasi otorisatif WHOIS untuk nama domain .ID.
Namun, beberapa pendaftar domain, seperti VeriSign, menggunakan model pendaftar-pengguna. Untuk nama domain .COM dan .NET, pendaftar domain, VeriSign memegang informasi dasar WHOIS )pemegang domain dan server nama). Siapapun dapat mencari detail WHOIS (Pemegang domain, server nama, tanggal berlaku, dan lain sebagainya) melalui pendaftar.
Sejak sekitar 2001, kebanyakan pendaftar gTLD (.ORG, .BIZ, .INFO) telah mengadopsi metode pendaftar "tebal", menyimpan otoritatif WHOIS di beberapa pendaftar dan bukan pendaftar itu saja.
Satu pemegang domain biasanya menunjuk kontak administratif untuk menangani nama domain. Fungsi manajemen didelegasikan ke kontak administratif yang mencakup (diantaranya):
Satu kontak teknis menangani server nama dari sebuah nama domain. Beberapa dari banyak fungsi kontak teknis termasuk:
Tidak perlu dijelaskan, pihak ini adalah yang menerima tagihan dari NIC.
Disebut sebagai server nama otoritatif yang mengasuh zona nama domain dari sebuah nama domain.
Banyak penyelidikan telah menyuarakan kritik dari metode yang digunakan sekarang untuk mengatur kepemilikan domain. Umumnya, kritik mengklaim penyalahgunaan dengan monopoli, seperti VeriSign Inc dan masalah-masalah dengan penunjukkan dari top-level domain (TLD). Lembaga international ICANN (Internet Corporation for Assigned Names and Numbers) memelihara industri nama domain.