Ringkasan DNS umum

Halaman ini berisi ringkasan tentang Domain Name System (DNS).

Untuk mengetahui ringkasan Cloud DNS, baca Ringkasan Cloud DNS. Untuk mengetahui istilah utama yang terkait dengan Cloud DNS, baca bagian Istilah utama.

DNS adalah database terdistribusi hierarkis yang menyimpan alamat IP dan data lainnya serta memungkinkan kueri berdasarkan nama.

Dengan kata lain, DNS adalah direktori nama domain yang mudah dibaca yang diterjemahkan ke alamat IP numerik yang digunakan oleh komputer untuk berkomunikasi satu sama lain. Misalnya, saat Anda mengetik URL di browser, DNS akan mengonversi URL menjadi alamat IP server web yang terkait dengan nama tersebut. Direktori DNS disimpan dan didistribusikan di seluruh dunia pada server nama domain yang diperbarui secara rutin.

Konsep berikut berguna saat bekerja dengan DNS.

Jenis server DNS

Server DNS menyimpan database nama domain, lalu memproses nama domain berdasarkan kueri DNS yang berasal dari klien dalam jaringan.

Server otoritatif

Server otoritatif adalah server yang menyimpan data nama DNS, termasuk A, AAAA, dan CNAME.

Server non-otoritatif membuat file cache berdasarkan kueri sebelumnya untuk domain. Server ini tidak menyimpan data nama asli.

Resolver rekursif

Resolver rekursif adalah server yang mengirimkan kueri ke server otoritatif atau non-otoritatif untuk resolusi. Resolver rekursif disebut demikian karena menjalankan tiap kueri untuk nama tertentu dan menampilkan hasil akhir.

Hal ini berbeda dengan resolver iteratif, yang hanya menampilkan rujukan ke server DNS berikutnya yang mungkin memiliki jawaban.

Misalnya, saat meresolusi nama google.com., resolver rekursif harus menentukan siapa yang berwenang untuk . (zona root DNS). Kemudian, server tersebut akan bertanya kepada server nama tersebut siapa yang berwenang untuk .com.. Terakhir, server tersebut akan bertanya kepada server nama tersebut siapa yang berwenang untuk google.com., dan rdata untuk data A akan ditampilkan ke klien.

Berikut adalah contoh resolver rekursif yang sedang beroperasi; jika Anda menjalankan dig +trace google.com, resolver rekursif akan melakukan tindakan berikut (8.8.8.8/Google Public DNS adalah salah satu resolver tersebut):

 dig +trace google.com
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> +trace google.com
;; global options: +cmd
.           168383  IN  NS  a.root-servers.net.
.           168383  IN  NS  b.root-servers.net.
.           168383  IN  NS  c.root-servers.net.
.           168383  IN  NS  d.root-servers.net.
.           168383  IN  NS  e.root-servers.net.
.           168383  IN  NS  f.root-servers.net.
.           168383  IN  NS  g.root-servers.net.
.           168383  IN  NS  h.root-servers.net.
.           168383  IN  NS  i.root-servers.net.
.           168383  IN  NS  j.root-servers.net.
.           168383  IN  NS  k.root-servers.net.
.           168383  IN  NS  l.root-servers.net.
.           168383  IN  NS  m.root-servers.net.
.           168383  IN  RRSIG   NS 8 0 518400 20190810170000 20190728160000 59944 .
    ITqCp5bSKwoG1P76GpNfDanh4fXxOtHuld5SJzEm9ez0U/K7kpmBm4TE
    cw82zuqtZlqiGOuq+90KHJEhD1fdX3FujgDqe3kaY/41LgFIo76RBeMP
    CorYg29lKQOBf7pLPiJWewFmnLsRXsvENzxNXl9mynX80EQSS2YlCWpr
    47i2j5SFpGDzmxls7LinB4VvwVLhy0FPwBaVc5NVqQoFS5ZkfKXCUz8x
    urExPT2OtPJeDiGzrQGmT6vDbYZtJRWWGK5tPIKZQyF/08YSJlrjebNa
    1nKZVN8SsO8s7elz6JGmdoM6D/1ByLNFQmKvU55ikaVSnXylqixLbJQI 7LyQoA==
;; Received 525 bytes from 127.0.0.1#53(127.0.0.1) in 22 ms

com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            86400   IN  DS  30909 8 2
    E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400   IN  RRSIG   DS 8 1 86400 20190811170000 20190729160000 59944 .
    KXPRdZspxd6hZYRFx3cj7Yp3d6HDzOG5CmoK46ZrrlKnZkCYMPKzyFQ2
    15pA+jZ37MbQbhe6+S+C4AHWqv95DDsue85ha3ZmWGhnJxcLnDaL5Twp
    Z/W/a+1cTHhhbMZua1riw74mqvzRAF1kVerj7jrvWnOAOZCh69Dr4AFJ
    gRN4MAn+wCZDmPQCtkcGVJ9vyNV7Xra45B4ISqEo0xi8CXewp9cc+aW5
    TSjFRhj1RM9d3k+3Mrq6AAV8dVgWofYTg6Ihph/SfoIx4TrTrEbgfdsv
    MvuLPXvK6Y7oSh5WknbFduw7HQdo1jH3/QR54FORswBJT8VmYD7Zii88 tAjbRQ==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 2 ms

google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -
    CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2
    86400 20190803044434 20190727033434 17708 com.
    rMmiNL7bYvJpB3Bc+WnqS2iiczm2PwxBvJcl7SL/vcTj88GsxM1ycTSV
    PsHZHxfrv1dv2C5BCSZ+mzeVBu8upLoeraQy+UVf3VXyt3i3rNGzcXYV
    8HSrHcXrRoAJopFim3Ge1xdZ+uERg3cTIcN2tJxxkCeqt/EcUTqtQl8t EAc=
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN NSEC3 1 1 0 -
    S84CFH3A62N0FJPC5D9IJ2VJR71OGLV5 NS DS RRSIG
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN RRSIG NSEC3
    8 2 86400 20190804045723 20190728034723 17708 com.
    jypPsaWVop9rzuf70CFYyiK0hliiJ+YYtkjgb3HVj9ICc57kLmv9DkvG
    DddF5GBQpqNEakzyJtya179MAdDT7RhJB4XfmY6fu5I5QTeIjchfP5wt
    7gU1AL7cqTmBAo2RWu62vtUytV09+O3KGFq5O+Cwr11dSTfq1yYyw6YW cMI=
;; Received 772 bytes from 192.41.162.30#53(l.gtld-servers.net) in 2 ms

google.com.     300 IN  A   172.217.7.14
;; Received 55 bytes from 216.239.32.10#53(ns1.google.com) in 13 ms

Tiap klien DNS mengkueri server nama. Resolver rekursif mengkueri server nama lain, hingga ke server nama level teratas, jika perlu. Data NS untuk zona di server nama tingkat atas akan mengarahkan resolver ke bawah ke server nama lain, yang pada akhirnya akan mencapai server nama yang meng-cache zona atau server resmi untuk zona tersebut.

Zona

Zona publik

Zona publik dapat dilihat di internet. Anda dapat membuat data DNS di zona publik untuk memublikasikan layanan Anda di internet. Misalnya, Anda dapat membuat data A di zona publik bernama example.com. (perhatikan titik di akhirnya) untuk situs publik Anda www.example.com..

Zona pribadi

Zona pribadi adalah zona yang tidak dapat dikueri melalui internet publik.

Subzona yang didelegasikan

Dengan DNS, pemilik zona dapat menggunakan data NS untuk mendelegasikan subdomain ke server nama lain. Resolver mengikuti data ini dan mengirim kueri untuk subdomain ke server nama target yang ditentukan dalam delegasi.

Misalnya, Anda dapat membuat zona terpisah untuk example.com dan subdomain.example.com, yang masing-masing memiliki server nama otoritatifnya sendiri. Karena subdomain.example.com adalah domain turunan dari example.com, metode untuk mengaktifkan server nama otoritatif untuk subdomain yang akan ditemukan dari zona domain induk disebut delegasi. Delegasi pada dasarnya adalah penunjuk ke server nama otoritatif untuk subdomain. Untuk mengaktifkan delegasi di Cloud DNS, Anda dapat menambahkan data NS untuk subdomain di zona domain induk.

DNS split-horizon

Split horizon adalah istilah yang digunakan untuk menggambarkan instance saat dua zona, satu untuk digunakan oleh jaringan internal dan yang lainnya oleh jaringan eksternal (biasanya internet), dibuat untuk domain yang sama. DNS split-horizon dapat Anda gunakan untuk menyajikan jawaban yang berbeda (kumpulan data resource yang berbeda) untuk nama yang sama, bergantung pada sumber kueri.

Misalnya, Anda dapat memberikan versi pengembangan atau staging aplikasi jika kueri berasal dari jaringan pengembangan, dan versi produksi atau publik aplikasi Anda jika kueri berasal dari internet publik.

Data

Data A adalah pemetaan antara resource DNS dan nama domain. Tiap data DNS memiliki jenis (nama dan nomor), waktu habis masa berlaku (time to live/TTL), dan data khusus jenis.

Beberapa jenis data yang umum digunakan adalah:

  • A: Data alamat, yang memetakan nama host ke alamat IPv4-nya.
  • AAAA: Data Alamat IPv6, yang memetakan nama host ke alamat IPv6-nya.
  • CNAME: Data nama kanonis, yang menentukan nama alias.
  • MX: Data mail exchange, yang digunakan dalam permintaan pemilihan rute ke server email.
  • NS: Data server nama, yang mendelegasikan zona DNS ke server otoritatif.
  • PTR: Data pointer, yang menentukan nama yang terkait dengan alamat IP.
  • SOA: Start of authority, yang digunakan untuk menetapkan server nama utama dan administrator yang bertanggung jawab atas zona. Tiap zona yang dihosting di server DNS harus memiliki data SOA (start of authority). Anda dapat mengubah data sesuai kebutuhan (misalnya, Anda dapat mengubah nomor seri menjadi nomor arbitrer untuk mendukung pembuatan versi berbasis tanggal).

Kumpulan data

Data dengan nama dan jenis yang sama, tetapi dengan nilai data yang berbeda disebut kumpulan data. Saat Anda membuat data, jika terdapat satu kumpulan dengan nama dan jenis yang sama, data akan ditambahkan ke kumpulan yang cocok. Jika tidak ada kumpulan yang cocok, satu kumpulan baru akan dibuat lalu ditambahkan ke daftar kumpulan data.

Berikut adalah contoh kumpulan data dengan lebih dari satu data yang memiliki nama dan jenis yang sama:

Nama DNS Jenis TTL (detik) Data
db-01.dev.gcp.example.com A 50 10.128.1.35
db-01.dev.gcp.example.com A 50 10.128.1.10

Untuk mengetahui daftar jenis data yang didukung di Cloud DNS, baca bagian Jenis data DNS yang didukung.

Delegasi subdomain

Saat membuat data, pastikan data NS dan SOA cocok satu sama lain. Data NS dan SOA yang bertentangan dapat menyebabkan beberapa resolver menolak delegasi sebagai tidak valid dan menolak untuk meng-cache respons NO DATA terhadap kueri. Hal ini dapat menyebabkan sejumlah besar kueri yang tidak terduga terhadap zona terkelola publik Anda oleh resolver rekursif pihak ketiga saat resolver mengkueri zona terkelola publik Anda untuk mencari data yang tidak ada.

Misalnya, ada dua subdomain, example.com dan subdomain.example.com di Cloud DNS. Data NS dan SOA untuk subdomain.example.com tidak cocok. Tidak ada zona yang berisi data AAAA. Saat beberapa resolver rekursif pihak ketiga mengkueri subdomain.example.com untuk data AAAA dan menerima respons NO DATA, jika resolver mendeteksi delegasi subdomain.example.com yang tidak valid, resolver akan menolak untuk meng-cache ketiadaan data AAAA di zona tersebut. Hal ini akan menyebabkan kueri dicoba lagi. Resolver akan mengkueri semua server nama Cloud DNS secara bergiliran untuk mendapatkan informasi ini.

Registrar

Registrar nama domain adalah organisasi yang mengelola reservasi nama domain internet untuk zona publik. Registrar harus terakreditasi oleh registry domain level teratas umum (gTLD) atau registry domain level teratas kode negara (ccTLD). Inilah cara server nama level atas menyetujui SOA dan mengupdate data NS untuk zona tersebut guna mengarahkan permintaan ke server nama caching atau otoritatif.

Nomor seri SOA

Nomor seri SOA adalah nomor versi untuk zona DNS. Agar semua server nama selalu menggunakan versi zona yang terbaru, server nama tersebut harus memiliki nomor seri SOA yang sama. Nomor seri data SOA yang dibuat di zona terkelola DNS akan meningkat secara monoton dengan tiap perubahan transaksional pada kumpulan data zona.

Namun, Anda dapat mengubah nomor seri data SOA menjadi nomor arbitrer, termasuk tanggal berformat ISO 8601, seperti yang direkomendasikan dalam RFC 1912.

DNSSEC

Domain Name System Security Extension (DNSSEC) mengatasi kerentanan pada data DNS. DNSSEC adalah serangkaian spesifikasi IETF yang menyediakan autentikasi data DNS, penolakan keberadaan yang diautentikasi, dan integritas data untuk klien DNS (resolver). Singkatnya, DNSSEC menyediakan cara bagi software untuk memverifikasi asal data DNS dan memvalidasi bahwa data tersebut tidak dimodifikasi saat pengiriman.

Untuk mengetahui detail selengkapnya tentang DNSSEC, lihat RFC 4033.

Untuk mengetahui daftar terminologi DNS umum, lihat RFC 7719.

Langkah berikutnya