Sejarah DNS
Pada tahun 70-an, orang mula bosan mengingati alamat IP pelayan yang ingin mereka akses. Pada masa yang sama, idea itu muncul untuk menggunakan nama yang lebih ringkas dan mudah diingati dan bukannya alamat hos berangka.
Pekerja di Institut Penyelidikan Stanford menghasilkan fail teks HOSTS.TXT , yang mengandungi senarai nama rentetan dan alamat berangka komputer yang sepadan pada ARPANET.
Alamat diberikan secara manual. Untuk meminta nama hos dan alamat atau menambah komputer pada fail induk, pengguna menghubungi pusat maklumat rangkaian Stanford melalui telefon semasa waktu perniagaan.
Menjelang awal 1980-an, mengekalkan jadual hos tunggal berpusat telah menjadi perlahan dan menyusahkan, dan rangkaian yang semakin berkembang memerlukan sistem penamaan automatik untuk menangani isu teknikal dan kakitangan.
Pada tahun 1984, empat pelajar UC Berkeley menulis versi pertama sistem nama domain hierarki. Ia kini digunakan secara meluas, terutamanya pada sistem Unix, dan masih merupakan perisian DNS yang paling banyak digunakan di Internet.
Pengenalan kepada DNS
Sistem Nama Domain (DNS) ialah sistem pengedaran untuk menyimpan dan mendapatkan semula maklumat tentang domain. Ia paling biasa digunakan untuk mendapatkan alamat IP daripada nama hos (komputer atau peranti), mendapatkan maklumat penghalaan mel dan/atau menyediakan hos untuk protokol dalam domain.
Sistem ini disusun dalam bentuk hierarki pelayan DNS tertentu yang berinteraksi mengikut protokol tertentu. Asas untuk memahami DNS ialah pemahaman tentang struktur hierarki nama dan zon.
Setiap pelayan yang bertanggungjawab untuk zon domain boleh memindahkan tanggungjawab untuk bahagian selanjutnya domain kepada pelayan lain, yang memungkinkan untuk menyerahkan tanggungjawab untuk perkaitan maklumat kepada pelayan pelbagai organisasi yang hanya bertanggungjawab untuk bahagian "mereka" nama domain.
Sistem DNS mengandungi hierarki pelayan DNS yang sepadan dengan hierarki zon. Setiap zon disokong oleh sekurang-kurangnya satu pelayan DNS berwibawa yang mengehoskan maklumat tentang domain.
Penting! Nama dan alamat IP tidak semestinya berkaitan antara satu sama lain sebagai satu dengan satu. Satu alamat IP boleh mempunyai banyak nama domain, yang membolehkan anda menyokong banyak tapak web pada satu komputer (ini dipanggil pengehosan kongsi ).
Ia juga boleh menjadi sebaliknya - banyak alamat IP boleh dikaitkan dengan satu nama domain: ini membolehkan anda membuat pengimbangan beban dan digunakan secara aktif dalam rangkaian CDN .
Untuk meningkatkan kestabilan sistem, banyak pelayan yang mengandungi maklumat yang sama digunakan, dan protokol mempunyai cara untuk mengekalkan penyegerakan maklumat yang terletak pada pelayan yang berbeza. Terdapat 13 pelayan akar, alamat mereka boleh dikatakan tidak berubah.
Menarik! Protokol DNS menggunakan port TCP atau UDP 53 untuk menjawab pertanyaan. Secara tradisinya, permintaan dan respons dihantar sebagai datagram UDP tunggal. TCP digunakan apabila saiz data tindak balas melebihi 512 bait.
rekod DNS
Pelayan DNS menyimpan set parameter untuk setiap nama domain. Ini adalah rekod tentang nama domain, alamat IPnya, serta pelbagai maklumat perkhidmatan.
Terdapat beberapa dozen penyertaan sedemikian secara keseluruhan, jadi kami akan mempertimbangkan hanya yang paling popular daripada mereka:
A | alamat | alamat IP |
AAAA | Alamat IPv6 | Alamat dalam format IPv6 |
CNAME | Nama kanonik | Nama kanonik untuk alias |
MX | penukar mel | Alamat gerbang mel untuk domain |
NS | pelayan nama | Alamat nod yang bertanggungjawab untuk zon domain |
SOA | Permulaan kuasa | Petunjuk kuasa maklumat |
SRV | pemilihan pelayan | Menentukan Lokasi Pelayan untuk Perkhidmatan |
PTR | penunjuk | Padanan nama alamat - Padanan songsang untuk A dan AAAA |
TXT | rentetan teks | Tulis data binari sewenang-wenangnya, sehingga 255 bait |
Yang paling menarik di sini ialah:
- Rekod A membolehkan anda menentukan alamat IP yang sepadan dengan domain.
- CNAME membenarkan anda menetapkan sinonim untuk nama tersebut, contohnya, www.codegym.cc == codegym.cc.
- Rekod MX mengandungi maklumat tentang pelayan mel: apa yang perlu dilakukan jika surat tiba di xxx@codegym.cc.
- NS - menunjukkan alamat pelayan DNS, yang mengandungi maklumat tentang domain ini. Berguna apabila rekod dicache dan disimpan pada nod bukan asli.
Carian Alamat IP
Mari lihat bagaimana sistem DNS berfungsi.
Katakan anda menaip api.codegym.cc dalam penyemak imbas anda. Penyemak imbas akan menghubungi perkhidmatan DNS tempatan dan meminta anda memberikannya alamat IP untuk domain api.codegym.cc. Inilah yang akan berlaku seterusnya...
Pertama, perkhidmatan DNS melihat untuk melihat sama ada domain ini berada dalam fail hos tempatan pada komputer anda. Jika ada, ia mengambil alamat IP daripadanya. Jika tidak, ia menghantar permintaan kepada pelayan DNS yang diketahuinya: "Apakah alamat IP api.codegym.cc?".
Walau bagaimanapun, pelayan DNS mungkin tidak tahu apa-apa bukan sahaja tentang nama yang diminta, malah tentang keseluruhan domain codegym.cc. Dalam kes ini, pelayan menghubungi pelayan akar - contohnya, 198.41.0.4. Pelayan ini berkata: "Saya tidak mempunyai maklumat tentang alamat ini, tetapi saya tahu bahawa 204.74.112.1 bertanggungjawab untuk zon ru."
Kemudian pelayan DNS menghantar permintaannya ke 204.74.112.1, tetapi ia menjawab: "Saya tidak mempunyai maklumat tentang pelayan ini, tetapi saya tahu bahawa 207.142.131.234 bertanggungjawab untuk zon codegym.cc.". Akhirnya, permintaan yang sama dihantar ke pelayan DNS ketiga dan menerima respons - alamat IP, yang dihantar kepada pelanggan, iaitu penyemak imbas.
Dalam kes ini, dalam proses mencari IP mengikut nama, peraturan berikut berfungsi:
- Penyemak imbas menghantar permintaan rekursif kepada pelayan DNS yang diketahui (sebagai tindak balas kepada jenis permintaan ini, pelayan mesti mengembalikan alamat IP atau respons kosong dan kod ralat NXDOMAIN).
- Pelayan DNS yang menerima permintaan daripada penyemak imbas menghantar permintaan bukan rekursif berturut-turut, yang mana ia menerima respons daripada pelayan DNS lain, sehingga ia menerima respons daripada pelayan yang bertanggungjawab untuk zon yang diminta.
- Selebihnya pelayan DNS yang disebut memproses permintaan secara bukan rekursif (dan kemungkinan besar tidak akan memproses permintaan secara rekursif, walaupun jika keperluan sedemikian ada dalam permintaan).
Kadangkala pelayan yang diminta boleh menghantar pertanyaan rekursif kepada pelayan DNS "hulu" dan menunggu respons sedia.
Penting! Dengan pemprosesan pertanyaan rekursif, semua respons melalui pelayan DNS, dan ia mendapat peluang untuk cache mereka. Permintaan berulang untuk nama domain yang sama biasanya tidak melampaui cache pelayan, dan panggilan ke pelayan lain tidak berlaku sama sekali.
Masa cache yang dibenarkan untuk respons disertakan dengan respons (medan TTL rekod sumber).
fail hos
Kami mendapati bahawa carian pertama adalah dalam fail hos tempatan. Ini adalah pewaris fail HOSTS.TXT, yang telah dicipta pada zaman ARPANET. Ya, ia masih wujud dan masih digunakan.
Ia terletak di sepanjang laluan:
- /etc/hosts di Linux.
- %SystemRoot%\system32\drivers\etc\hosts pada Windows.
- /system/etc/hosts dalam android.
Biasanya, fail termasuk definisi lokasi untuk nod localhost:
127.0.0.1 localhost
Strukturnya sangat mudah: mula-mula datang alamat IP, kemudian nama domain.
Berguna
Menggunakan fail hos, adalah mungkin untuk menapis iklan dengan mengubah hala alamat domain sepanduk ke alamat 127.0.0.0, 127.0.0.1 atau 0.0.0.0.
Penggunaan 127.0.0.1 secara amnya tidak disyorkan, kerana ia mengakibatkan tamat masa respons dan kelewatan yang berkaitan jika pelayan tidak wujud atau salah konfigurasi. Dan jika anda memetakan mana-mana domain pengiklanan ke alamat IP 0.0.0.0, maka semua permintaan kepadanya akan hilang serta-merta).
Pelayan DNS awam
Anda biasanya mendapat pelayan DNS bersama-sama perkhidmatan internet anda apabila anda menyambungkannya. Tetapi pelayan DNS percuma seperti itu tidak selalu menjadi pilihan terbaik. Selain itu, anda mungkin tidak mahu menghantar pertanyaan dengan nama domain setiap kali anda melawat tapak ke pelayan DNS ISP anda.
Oleh itu, ramai orang lebih suka beralih kepada pelayan DNS percuma awam. Pertama, mereka sangat pantas dan mempunyai cache nama domain yang besar. Anda akan mendapat pemuatan tapak yang lebih pantas dan masa beroperasi dengan kemungkinan masalah teknikal yang minimum.
Kedua, keselamatan. Sesetengah perkhidmatan DNS boleh menyekat akses kepada pancingan data dan tapak berniat jahat serta menawarkan penapisan kandungan untuk melindungi kanak-kanak daripada kandungan yang tidak sesuai dalam talian.
Pelayan DNS sedemikian juga boleh melawan penipu. Sebagai contoh, anda pergi ke tapak web bank palsu, dan pelayan DNS akan memberikan anda bukan alamat IP penipu, tetapi perkhidmatan keselamatannya.
Senarai pelayan sedemikian
cloudflare | 1.1.1.1 1.0.0.1 |
Cloudflare berjanji bahawa ia tidak akan menggunakan data pelawat untuk menyiarkan iklan dan tidak akan membakar alamat IP sumber permintaan ke cakera. |
DNS Awam Google | 8.8.8.8 8.8.4.4 |
Menyimpan maklumat lengkap tentang alamat IP peranti yang meminta selama lebih kurang 24-48 jam untuk penyelesaian masalah dan diagnostik |
DNS Secure Comodo | 8.26.56.26 8.20.247.20 |
Menyekat tapak pancingan data, tetapi juga memberi amaran jika anda cuba melawat tapak dengan perisian hasad, perisian pengintip |
Yandex.DNS | 77.88.8.8 77.88.8.1 |
Perkhidmatan DNS percuma daripada enjin carian Rusia yang popular |
GO TO FULL VERSION