Sejarah DNS

Di tahun 70-an, orang bosan mengingat alamat IP server yang ingin mereka akses. Pada saat yang sama, muncul ide untuk menggunakan nama yang lebih sederhana dan mudah diingat daripada alamat host numerik.

Pekerja di Stanford Research Institute membuat file teks HOSTS.TXT , yang berisi daftar nama string dan alamat numerik komputer yang sesuai di ARPANET.

Alamat diberikan secara manual. Untuk meminta nama host dan alamat atau menambahkan komputer ke file master, pengguna menghubungi pusat informasi jaringan Stanford melalui telepon selama jam kerja.

Pada awal 1980-an, mempertahankan satu tabel host terpusat menjadi lambat dan tidak praktis, dan jaringan yang berkembang membutuhkan sistem penamaan otomatis untuk menangani masalah teknis dan personel.

Pada tahun 1984, empat mahasiswa UC Berkeley menulis versi pertama dari sistem nama domain hirarkis. Sekarang banyak digunakan, terutama pada sistem Unix, dan masih merupakan perangkat lunak DNS yang paling banyak digunakan di Internet.

Pengantar DNS

Domain Name System (DNS) adalah sistem distribusi untuk menyimpan dan mengambil informasi tentang domain. Ini paling sering digunakan untuk mendapatkan alamat IP dari nama host (komputer atau perangkat), mendapatkan informasi perutean email, dan/atau melayani host untuk protokol di domain.

Sistem diatur dalam bentuk hierarki tertentu dari server DNS yang berinteraksi sesuai dengan protokol tertentu. Dasar pemahaman DNS adalah pemahaman tentang struktur hirarki nama dan zona.

Setiap server yang bertanggung jawab atas zona domain dapat mengalihkan tanggung jawab untuk bagian selanjutnya dari domain ke server lain, yang memungkinkan untuk menetapkan tanggung jawab atas relevansi informasi ke server dari berbagai organisasi yang hanya bertanggung jawab atas bagian "mereka" dari nama domain.

Sistem DNS berisi hierarki server DNS yang sesuai dengan hierarki zona. Setiap zona didukung oleh setidaknya satu server DNS otoritatif yang menampung informasi tentang domain tersebut.

Penting! Nama dan alamat IP tidak harus berhubungan satu sama lain sebagai satu ke satu. Satu alamat IP dapat memiliki banyak nama domain, yang memungkinkan Anda mendukung banyak situs web di satu komputer (ini disebut hosting bersama ).

Bisa juga sebaliknya - banyak alamat IP dapat dikaitkan dengan satu nama domain: ini memungkinkan Anda membuat penyeimbangan muatan dan digunakan secara aktif di jaringan CDN .

Untuk meningkatkan stabilitas sistem, banyak server yang berisi informasi identik digunakan, dan protokol memiliki sarana untuk menjaga sinkronisasi informasi yang terletak di server yang berbeda. Ada 13 root server, alamatnya praktis tidak berubah.

Menarik! Protokol DNS menggunakan port TCP atau UDP 53 untuk menanggapi pertanyaan. Secara tradisional, permintaan dan tanggapan dikirim sebagai datagram UDP tunggal. TCP digunakan ketika ukuran data respons melebihi 512 byte.

Catatan DNS

Server DNS menyimpan sekumpulan parameter untuk setiap nama domain. Ini adalah catatan tentang nama domain, alamat IP-nya, serta berbagai informasi layanan.

Total ada beberapa lusin entri seperti itu, jadi kami hanya akan mempertimbangkan yang paling populer:

A Alamat alamat IP
AAAA Alamat IPv6 Alamat dalam format IPv6
CNAME Nama kanonik Nama kanonis untuk alias
MX penukar surat Alamat gateway email untuk domain
NS nama server Alamat node yang bertanggung jawab untuk zona domain
SOA Mulai dari otoritas Indikasi otoritas informasi
SRV pemilihan server Menentukan Lokasi Server untuk Layanan
PTR penunjuk Pencocokan nama alamat - Pencocokan terbalik untuk A dan AAAA
txt rangkaian teks Tulis data biner sewenang-wenang, hingga 255 byte

Yang paling menarik di sini adalah:

  • Catatan A memungkinkan Anda menentukan alamat IP yang sesuai dengan domain.
  • CNAME memungkinkan Anda menyetel sinonim untuk nama tersebut, misalnya, www.codegym.cc == codegym.cc.
  • Catatan MX berisi informasi tentang server surat: apa yang harus dilakukan jika surat tiba di xxx@codegym.cc.
  • NS - menunjukkan alamat server DNS, yang berisi informasi tentang domain ini. Berguna saat rekaman di-cache dan disimpan di node non-asli.

Pencarian Alamat IP

Mari kita lihat bagaimana sistem DNS bekerja.

Katakanlah Anda mengetik api.codegym.cc di browser Anda. Browser akan menghubungi layanan DNS lokal dan meminta Anda memberikan alamat IP untuk domain api.codegym.cc. Inilah yang akan terjadi selanjutnya...

Pertama, layanan DNS melihat apakah domain ini ada di file host lokal di komputer Anda. Jika ada, dibutuhkan alamat IP darinya. Jika tidak, ia mengirimkan permintaan ke server DNS yang dikenalnya: "Apa alamat IP api.codegym.cc?".

Namun, server DNS mungkin tidak tahu apa-apa tidak hanya tentang nama yang diminta, tetapi bahkan tentang seluruh domain codegym.cc. Dalam hal ini, server menghubungi server root - misalnya, 198.41.0.4. Server ini mengatakan: "Saya tidak memiliki informasi tentang alamat ini, tetapi saya tahu bahwa 204.74.112.1 bertanggung jawab atas zona ru."

Kemudian server DNS mengirimkan permintaannya ke 204.74.112.1, tetapi menjawab: "Saya tidak memiliki informasi tentang server ini, tetapi saya tahu bahwa 207.142.131.234 bertanggung jawab atas zona codegym.cc.". Terakhir, permintaan yang sama dikirim ke server DNS ketiga dan menerima respons - alamat IP, yang dikirimkan ke klien, yaitu browser.

Dalam hal ini, dalam proses mencari IP berdasarkan nama, aturan berikut berfungsi:

  • Browser mengirim permintaan rekursif ke server DNS yang dikenal (sebagai tanggapan atas jenis permintaan ini, server harus mengembalikan alamat IP, atau respons kosong dan kode kesalahan NXDOMAIN).
  • Server DNS yang menerima permintaan dari browser mengirimkan permintaan non-rekursif secara berurutan, yang menerima respons dari server DNS lain, hingga menerima respons dari server yang bertanggung jawab atas zona yang diminta.
  • Server DNS lainnya yang disebutkan memproses permintaan secara non-rekursif (dan kemungkinan besar tidak akan memproses permintaan secara rekursif, bahkan jika persyaratan seperti itu ada dalam permintaan).

Kadang-kadang server yang diminta dapat mengirim kueri rekursif ke server DNS "upstream" dan menunggu respons siap.

Penting! Dengan pemrosesan kueri rekursif, semua respons melalui server DNS, dan mendapat kesempatan untuk menyimpannya dalam cache. Permintaan berulang untuk nama domain yang sama biasanya tidak melampaui cache server, dan panggilan ke server lain tidak terjadi sama sekali.

Waktu cache yang diizinkan untuk respons disertakan dengan respons (bidang TTL dari catatan sumber daya).

file host

Kami perhatikan bahwa pencarian pertama ada di file host lokal. Ini adalah pewaris file HOSTS.TXT, yang ditemukan pada zaman ARPANET. Ya, itu masih ada dan masih digunakan.

Itu terletak di sepanjang jalan:

  • /etc/hosts di Linux.
  • %SystemRoot%\system32\drivers\etc\hosts di Windows.
  • /system/etc/hosts di android.

Biasanya, file menyertakan definisi lokasi untuk node localhost:

127.0.0.1   	localhost

Strukturnya sangat sederhana: pertama alamat IP, lalu nama domain.

Berguna

Menggunakan file host, dimungkinkan untuk memfilter iklan dengan mengarahkan ulang alamat domain spanduk ke alamat 127.0.0.0, 127.0.0.1 atau 0.0.0.0.

Penggunaan 127.0.0.1 umumnya tidak disarankan, karena mengakibatkan waktu tunggu respons dan penundaan terkait jika server tidak ada atau salah konfigurasi. Dan jika Anda memetakan domain periklanan apa pun ke alamat IP 0.0.0.0, maka semua permintaan ke sana akan segera dibatalkan).

Server DNS publik

Anda biasanya mendapatkan server DNS bersama dengan layanan internet Anda saat Anda menghubungkannya. Tetapi server DNS gratis seperti itu tidak selalu merupakan pilihan terbaik. Selain itu, Anda mungkin tidak ingin mengirimkan kueri dengan nama domain setiap kali Anda mengunjungi situs ke server DNS ISP Anda.

Oleh karena itu, banyak orang lebih suka beralih ke server DNS publik gratis. Pertama, mereka sangat cepat dan memiliki cache nama domain yang besar. Anda akan mendapatkan pemuatan dan waktu aktif situs yang lebih cepat dengan kemungkinan masalah teknis yang minimal.

Kedua, keamanan. Beberapa layanan DNS dapat memblokir akses ke situs phishing dan berbahaya serta menawarkan pemfilteran konten untuk melindungi anak-anak dari konten online yang tidak pantas.

Server DNS semacam itu bahkan dapat melawan penipu. Misalnya, Anda pergi ke situs web bank palsu, dan server DNS tidak akan memberi Anda alamat IP penipu, tetapi layanan keamanannya.

Daftar server tersebut

cloudflare 1.1.1.1
1.0.0.1
Cloudflare berjanji tidak akan menggunakan data pengunjung untuk menayangkan iklan dan tidak akan pernah membakar alamat IP sumber permintaan ke disk.
DNS Publik Google 8.8.8.8
8.8.4.4
Menyimpan informasi lengkap tentang alamat IP perangkat peminta selama kurang lebih 24-48 jam untuk pemecahan masalah dan diagnostik
DNS Aman Comodo 8.26.56.26
8.20.247.20
Memblokir situs phishing, tetapi juga memperingatkan jika Anda mencoba mengunjungi situs dengan malware, spyware
Yandex.DNS 77.88.8.8
77.88.8.1
Layanan DNS gratis dari mesin pencari populer Rusia