Apakah struktur yang ada pada DNS? protokol DNS. Ciri DNS Utama

Apabila mengakses nod lain (contohnya, membuka halaman dalam penyemak imbas, panggilan dibuat ke pelayan web dan apabila membuka program mel- akses kepada pelayan mel), pengguna boleh menentukan alamat nod secara langsung atau tidak langsung, yang, seterusnya, memaksa nod pengguna untuk menghantar paket ke nod lain. Walau bagaimanapun, hos tidak boleh menghantar paket yang menentukan nama hos destinasi, jadi kebanyakan rangkaian menggunakan protokol DNS untuk menyelesaikan nama hos ke alamat IP mereka.

Nod bertindak sebagai klien DNS, menghantar mesej ke pelayan DNS pada alamat IPnya yang menunjukkan nama yang diperlukan nod yang pelayan bertindak balas dengan alamat IP nod yang diperlukan. Setelah mengetahui bahawa nama hos sepadan dengan alamat IPnya, hos yang menghantar boleh menyimpan maklumat ini untuk mengelak daripada menjalankan pertanyaan DNS sekali lagi apabila mengakses hos tersebut.

Sistem DNS mengekalkan hierarki yang sepadan dengan hierarki zon. Setiap zon dipetakan kepada sekurang-kurangnya satu pelayan DNS berwibawa di mana maklumat domain berada. Terdapat juga 13 pelayan DNS akar. Ini adalah pelayan DNS yang mengandungi maklumat tentang domain tingkat atas, menunjuk ke pelayan DNS yang menyokong setiap domain ini. Pelayan akar dikekalkan oleh pelbagai organisasi profesional, kebanyakan pelayan ini mempunyai cermin, jadi hampir mustahil untuk melumpuhkan sistem DNS.

Rekod DNS ialah jenis yang berbeza dan mengandungi pelbagai maklumat. Entri utama yang perlu dinyatakan ditunjukkan dalam Jadual 1.

taip Penyahkodan Penerangan
A Alamat Rekod alamat, surat-menyurat antara nama dan alamat IP
CNAME Nama kanonik Nama kanonik untuk alias (pemajuan peringkat tunggal)
N.S. Pelayan nama yang berwibawa Alamat nod yang bertanggungjawab untuk zon domain. Kritikal kepada fungsi sistem nama domain itu sendiri
PTR Penunjuk nama domain Melaksanakan mekanisme ubah hala
SOA Permulaan kuasa Petunjuk kuasa maklumat, digunakan untuk menunjukkan zon baharu

Jadual 1. Asas rekod sumber DNS

A rekod mengandungi surat-menyurat alamat IP kepada nama domain. Digunakan semasa menyelesaikan nama hos, contohnya apabila penyemak imbas perlu membuka halaman web (mengikut nama domain). Permintaan menentukan nama hos dan pelayan DNS bertindak balas dengan alamat IP hos itu, diambil daripada rekod A. Entri mengandungi alamat IP.

CNAME rekod membenarkan anda untuk menentukan "alias" atau "nama kanonik" untuk hos, untuk mengikatnya bukan pada alamat IP tertentu, tetapi untuk merujuk kepada hos lain. Sebagai contoh, jika nod mempunyai beberapa nama domain, ia cukup untuk menentukan satu rekod A dan memautkannya. Rekod mengandungi nama domain.

N.S. rekod digunakan untuk menunjukkan pelayan NS yang menyediakan zon dan zon tertentu peringkat seterusnya. Rekod mengandungi alamat pelayan DNS yang bertanggungjawab.

PTR entri mengaitkan IP hos dengan nama kanoniknya. Entri ini penting semasa memajukan mel. Untuk mengurangkan jumlah spam, ramai yang menerima pelayan emel boleh menyemak kehadiran rekod PTR untuk hos dari mana penghantaran berlaku. Dalam kes ini rekod PTR untuk alamat IP mesti sepadan dengan nama penghantar pelayan mel, yang dia memperkenalkan dirinya dalam proses itu sesi SMTP. Selalunya, pembekal Internet mencipta rekod PTR yang dijana secara automatik untuk alamat IP pelanggan mereka menggunakan templat tertentu. Oleh itu, apabila menyediakan pelayan mel pada salah satu alamat ini, bersama-sama dengan mendaftarkan domain dengan pendaftar nama domain, anda perlu menukar rekod PTR pada pelayan DNS pembekal.

SOA rekod mengandungi maklumat tentang zon DNS (nama pelayan DNS utama zon, alamat hubungan pentadbir bertanggungjawab fail zon, tetapan untuk pelbagai selang masa).

apa dah jadiDNS

DNS (sistem nama domain) ialah sistem yang memastikan operasi nama domain laman web biasa. Komunikasi antara peranti di Internet dijalankan menggunakan alamat IP, contohnya: "192.64.147.209". Walau bagaimanapun, mengingati alamat IP adalah sukar, jadi nama domain mesra manusia dicipta, contohnya: "google.com".

Komputer/pelayan tidak menyimpan jadual surat-menyurat antara domain dan alamat IP mereka. Lebih tepat lagi, ia tidak menyimpan keseluruhan jadual, tetapi menyimpan data buat sementara waktu untuk domain yang kerap digunakan. Apabila domain tapak dimasukkan ke dalam penyemak imbas, komputer secara automatik mengenali alamat IPnya dan menghantar permintaan kepadanya. Proses ini dipanggil penyelesaian domain.

Mari kita fikirkan apa yang terdiri daripada sistem DNS dan cara ia berfungsi.

Bagaimana ia berfungsiDNS

Sistem nama domain terdiri daripada komponen berikut:

Struktur hierarki nama domain:

  • Zon domain peringkat atas (peringkat pertama) – contohnya: “ru”, “com”, atau “org”. Mereka termasuk semua nama domain yang termasuk dalam zon ini. Mana-mana zon domain boleh termasuk bilangan domain yang tidak terhad.
  • Nama domain (zon domain peringkat kedua)– contohnya: “google.com” atau “yandex.ru”. Kerana Sistem nama domain adalah hierarki, maka "yandex.ru" juga boleh dipanggil subdomain zon induk "ru". Oleh itu, adalah lebih tepat untuk menunjukkan tahap domain. Walau bagaimanapun, dalam amalan, zon domain di mana-mana peringkat hanya dipanggil "domain".
  • Subdomain (zon domain peringkat ketiga)– contohnya: “api.google.com” atau “mail.yandex.ru”. Mungkin terdapat zon domain 4, 5 tahap dan seterusnya.

Sila ambil perhatian bahawa "www.google.com" dan "google.com" sebenarnya, domain yang berbeza. Kita tidak boleh lupa untuk menunjukkan rekod A untuk setiap daripada mereka.

Pelayan DNS atau pelayan NS (pelayan nama).– menyokong (melayan) zon domain yang diwakilkan kepadanya. Ia secara langsung menyimpan data rekod sumber untuk zon. Sebagai contoh, bahawa pelayan di mana tapak "example.ru" terletak mempunyai alamat IP "1.1.1.1". Pelayan DNS bertindak balas kepada semua permintaan mengenai zon domain ini. Jika dia menerima permintaan untuk domain yang belum diwakilkan kepadanya, maka dia meminta orang lain untuk jawapannya pelayan DNS.

Rekod DNS (rekod sumber)– ini ialah satu set rekod tentang zon domain pada pelayan NS yang menyimpan data yang diperlukan untuk kerja DNS. Berdasarkan data dalam rekod ini, pelayan DNS bertindak balas kepada pertanyaan untuk domain. Senarai entri dan maksudnya boleh didapati di bawah.

Root pelayan DNS(pada pada masa ini terdapat 13 daripadanya di seluruh dunia) menyimpan data tentang pelayan DNS yang melayani zon peringkat atas.

Pelayan DNS untuk zon domain peringkat atas- menyimpan maklumat tentang pelayan NS yang melayani domain tertentu.

Untuk mengetahui alamat IP, komputer / pelayan domain menghubungi pelayan DNS yang dinyatakan di dalamnya tetapan rangkaian. Biasanya, ini adalah pelayan DNS pembekal Internet. Pelayan DNS menyemak sama ada domain diwakilkan kepadanya atau tidak. Jika ya, maka dia segera menjawab permintaan itu. Jika tidak, maka ia meminta maklumat tentang pelayan DNS yang menyediakan domain ini daripada pelayan akar, dan kemudian pada pelayan zon domain peringkat atas. Selepas ini, ia terus membuat permintaan kepada pelayan NS yang menyediakan domain ini dan menyiarkan respons kepada komputer/pelayan anda.

Cache data digunakan pada semua peranti (komputer, pelayan, pelayan DNS). Iaitu, mereka mengingati jawapan kepada permintaan terakhir yang datang kepada mereka. Dan apabila permintaan serupa datang, mereka hanya menjawab sama seperti masa sebelumnya. Contohnya, jika anda membuka tapak web google.com dalam penyemak imbas anda buat kali pertama selepas menghidupkannya, maka komputer akan Pertanyaan DNS, dan dalam permintaan seterusnya ia akan mengambil data yang dihantar kepadanya oleh pelayan DNS untuk kali pertama. Justeru, untuk pertanyaan popular tidak perlu melalui keseluruhan rantaian setiap kali dan menjana permintaan kepada pelayan NS. Ini dengan ketara mengurangkan beban pada mereka dan meningkatkan kelajuan kerja. Walau bagaimanapun, akibatnya, mengemas kini data dalam sistem DNS tidak berlaku serta merta. Apabila menukar alamat IP domain, maklumat tentang ini akan diedarkan melalui Internet dari 1 hingga 24 jam.

Pendaftaran/peruntukan domain

setiap satu zon domain Tahap pertama mempunyai organisasi sendiri yang menetapkan peraturan untuk memperuntukkan domain dan memastikan operasi zon ini. Sebagai contoh, untuk zon domain RU, SU dan RF - ini ialah Pusat Penyelarasan domain negara Internet https://cctld.ru. Organisasi ini menetapkan peraturan kerja dan keperluan teknikal kepada pendaftar domain.

Pendaftar domain– ini adalah syarikat yang mendaftarkan domain baharu secara terus dalam zon domain peringkat pertama untuk pelanggan akhir. Atur interaksi teknikal dengan pendaftaran nama domain. Dalam mereka akaun peribadi Pemilik domain mengkonfigurasi pelayan DNS yang akan menyokong domain tersebut.

Pentadbir domain (pemilik)– orang yang secara langsung memiliki hak ke atas nama domain. Dia boleh mengurus domain dan pendaftar menerima permintaan untuk perubahan daripadanya.

Perwakilan domain– petunjuk pelayan DNS untuknya yang akan melayaninya.

asasrekod DNS

Rekod DNS (sumber) asas berikut wujud:

A – mengandungi maklumat tentang alamat IPv4 hos (pelayan) untuk domain. Contohnya, 1.1.1.1.

AAA – mengandungi maklumat tentang alamat IPv6 hos (pelayan) untuk domain. Contohnya, 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d.

MX – mengandungi data tentang pelayan mel domain. Dalam kes ini, nama pelayan mel ditunjukkan, contohnya mail.example.com. Kerana Domain boleh mempunyai beberapa pelayan mel, kemudian bagi setiap daripada mereka menunjukkan keutamaan. Keutamaan ditetapkan oleh nombor dari 0 hingga 65535. Dalam kes ini, "0" ialah keutamaan tertinggi. Adalah menjadi kebiasaan untuk menentukan keutamaan "10" untuk pelayan mel pertama.

TXT – maklumat tambahan tentang domain dalam bentuk teks percuma. Panjang maksimum 255 aksara.

SRV – mengandungi maklumat nama hos dan nombor port untuk perkhidmatan/protokol tertentu seperti RFC 2782 http://www.rfc-editor.org/rfc/rfc2782.txt. Mengandungi medan berikut:

  • _Service._Proto.Name (Contoh: _jabber._tcp.jabber), di mana:
    • Perkhidmatan: nama perkhidmatan (contoh: ldap, kerberos, gc dan lain-lain).
    • Proto: protokol yang membolehkan pelanggan menyambung ke perkhidmatan tertentu (contoh: tcp, udp).
    • Nama: Nama domain yang mengehoskan perkhidmatan ini.
  • Keutamaan – sama seperti untuk rekod MX, menunjukkan keutamaan untuk pelayan ini. Ditetapkan oleh nombor dari 0 hingga 65535. Dalam kes ini, "0" ialah keutamaan tertinggi.
  • Berat – Berat relatif untuk mengagihkan beban antara pelayan dengan keutamaan yang sama. Dinyatakan sebagai integer.
  • Port – nombor port di mana perkhidmatan terletak pada pelayan ini.
  • Destinasi - nama domain pelayan yang menyediakan perkhidmatan ini.

NS – nama pelayan DNS yang menyokong domain ini.

CNAME (nama hos kanonik) – digunakan untuk mengubah hala ke nama domain lain. Contohnya, nama pelayan ditukar daripada example.com kepada new.com. Dalam kes ini, dalam medan "Alies" untuk entri cname anda mesti menyatakan example.com, dan dalam medan "Nama kanonik" - new.com. Dengan cara ini, semua permintaan ke example.com akan diubah hala secara automatik ke new.com.

SOA ialah rekod domain asas. Ia menyimpan nama domain itu sendiri dan seumur hidup data domain - TTL. TTL (masa untuk hidup) menentukan untuk tempoh masa pelayan DNS, setelah menerima maklumat tentang zon, akan menyimpannya dalam ingatannya (cache). Nilai yang disyorkan 86400 – 1 hari. Nilai ditunjukkan dalam beberapa saat.

protokol DNS melaksanakan dua fungsi utama. Ia membolehkan komputer pelanggan membuat pertanyaan kepada pelayan DNS untuk alamat IP atau nama mana-mana hos pada rangkaian, dan juga membenarkan maklumat ditukar antara pangkalan data pelayan DNS. Protokol ini menggunakan format respons permintaan standard, di mana pelanggan menghantar paket permintaan dan pelayan bertindak balas dengan sama ada paket yang mengandungi maklumat yang diambil daripada pangkalan data atau mesej ralat yang menunjukkan mengapa permintaan itu tidak dapat diproses. Dalam operasinya, protokol ini menggunakan port 53 dan protokol terkenal - TCP atau UDP. Lebih-lebih lagi, baru-baru ini UDP telah menjadi kaedah yang lebih biasa untuk mengangkut paket melalui Internet. Paket DNS terdiri daripada lima medan: pengepala, soalan, respons, kuasa dan medan maklumat tambahan. Dalam Rajah. 4.5 ditunjukkan struktur umum Pakej DNS.


nasi. 4.5.

Medan tajuk

Medan pengepala mengandungi maklumat tentang pakej dan tujuannya. Ia memberi penerangan umum paket (paket permintaan atau paket tindak balas) dan menunjukkan jumlah data yang terkandung dalam setiap medan data paket. Penerangan Tajuk diberikan dalam jadual. 4.3.

Jadual 4.3.
Medan pengepala paket DNS sedikit
0-15 Penerangan
16 ID
17-20 QR
21 OPCODE
22 A.A.
23 TC
24 R.D.
25-27 R.A.
28-31 Z
32-47 RCODE
48-63 QDCOUNT
64-79 ANCOUNT
80-95 NSCOUNT

ARCOUNT QR Bit ID ialah nombor pengenalan unik 16-bit bagi paket permintaan. Paket respons yang dijana oleh pelayan juga menggunakan nombor pengenalan ini supaya pelanggan boleh memadankan respons pelayan terhadap permintaannya. Bit QR menunjukkan jenis paket (paket permintaan - 0, paket tindak balas - 1). Padang

Empat bit seterusnya mentakrifkan pelbagai parameter paket. Bit AA ditetapkan apabila respons adalah berwibawa (data datang terus daripada pelayan DNS yang bertanggungjawab untuk zon tersebut). Respons tidak berwibawa mungkin datang daripada pelayan DNS yang mempunyai maklumat cache tentang rekod asal daripada permintaan sebelumnya. Maklumat ini dianggap tidak berwibawa, kerana terdapat kemungkinan maklumat telah diubah sejak kali terakhir pelayan diakses. Bit TC ditetapkan apabila perlu untuk memotong data dalam paket kepada bentuk yang mudah untuk penghantaran melalui rangkaian. Ini agak mungkin apabila menggunakan protokol UDP, mengikut mana saiz paket tidak boleh melebihi 512 bait. Bit RD dihidupkan apabila pelanggan ingin menanyakan pelayan DNS secara rekursif secara berterusan. Jika bit ini ditetapkan, pelayan DNS akan menanyakan pelayan DNS lain sehingga ia menerima respons. Jika bit ini tidak ditetapkan, pelayan DNS akan mengembalikan apa sahaja maklumat yang ada pada pertanyaan. Bit RA ditetapkan untuk memberitahu pelanggan tentang kemungkinan itu pertanyaan rekursif ke pelayan ini. Bit Z pada masa ini tidak digunakan dan dikhaskan untuk masa hadapan.

Bit RCODE hanya digunakan dalam paket tindak balas. Mereka memaparkan status tindak balas - tiada ralat (0), ralat dalam paket permintaan (1), ralat dalaman menghalang pelayan daripada memproses permintaan (2), nama yang dinyatakan dalam permintaan tidak wujud (3), jenis ini permintaan tidak disokong oleh pelayan ( 4) dan pelayan enggan memproses permintaan (5).

Baki empat parameter pengepala ialah nombor 16-bit dan digunakan sebagai pembilang. Mereka membantu menjejaki bilangan rekod sumber yang dikembalikan dalam satu kelompok. QDCOUNT memaparkan bilangan permintaan (lebih daripada satu permintaan boleh disertakan dalam satu kelompok). ANCOUNT - bilangan rekod asal yang disertakan dalam respons. NSCOUNT menandakan bilangan entri pelayan nama berwibawa asal, dan ARCOUNT menandakan bilangan entri dalam medan maklumat tambahan.

Medan soalan

Medan soalan mengandungi pertanyaan yang pelanggan mahu pelayan DNS menjawab. Satu paket DNS boleh mengandungi berbilang pertanyaan. Bilangan permintaan dalam paket ditentukan oleh parameter QDCOUNT dari medan pengepala. Medan soalan terdiri daripada tiga bahagian: senarai nama domain untuk ditukar; medan jenis rekod yang pelanggan ingin terima dalam respons dan parameter kelas permintaan. Senarai nama domain yang akan diselesaikan ialah senarai nama yang pelanggan ingin mendapatkan alamat IP. Format khas digunakan untuk menjana senarai nama. Setiap nama didahului oleh nilai satu bait yang menentukan panjang nama. Penghujung senarai ditunjukkan dengan nama panjang sifar. Bahagian teks diikuti dengan entri QTYPE dua bait. Ia menentukan dalam bentuk apa pelanggan ingin menerima maklumat tentang domain yang tersedia. Nilai ini betul-betul sama dengan jenis rekod DNS asal. Contohnya, untuk mencari pelayan mel untuk domain tertentu, anda akan menggunakan jenis rekod MX. Dan akhirnya, parameter terakhir dalam medan soalan ialah QCLASS. Ia mentakrifkan kelas permintaan, yang dalam kes kami adalah untuk Rangkaian Internet akan sentiasa IN .

Memetakan alamat kepada nama

Alamat IP direkodkan dalam tatatanda titik-perpuluhan. Untuk mencari nama domain mengikut alamat IP, domain in-addr.arpa digunakan. Subdomainnya ialah domain dengan nama ringkas dari 0 hingga 255, sepadan dengan oktet paling penting bagi alamat IP. Subdomain mereka ialah domain dengan nama ringkas dari 0 hingga 255, sepadan dengan oktet kedua alamat IP, dsb. sehingga oktet ke-4. Oleh itu, alamat IP ditulis dalam nama domain dalam susunan terbalik. Sebagai contoh, alamat 195.161.72.28 sepadan dengan nama domain 28.72.161.195.in-addr.arpa. (dan nilai PTR – deol.deol.ru). Tulis balik diperlukan untuk memudahkan delegasi zon mengikut peruntukan alamat IP.

Zon peringkat atas dalam domain in-addr.arpa. diwakilkan oleh IANA kepada pendaftar wilayah (RIR, Pendaftar Internet Serantau) bersama-sama dengan blok alamat IP.

RIPE memerlukan LIR untuk memasukkan maklumat ke dalam pangkalan data RIPE untuk mewakilkan subzon. Jika anda mewakili LIR, anda mesti telah menamatkan kursus khas, dan jika tidak, maka anda tidak akan diberi hak untuk memasukkan maklumat ke dalam pangkalan data RIPE dan perlu meminta LIR anda. Pangkalan data mesti mengandungi kedua-dua rangkaian (whois [e-mel dilindungi]), dan zon (whois [e-mel dilindungi])

Pemetaan alamat ke dalam nama mungkin wajib untuk operasi beberapa perkhidmatan Internet: tiada pemetaan - tiada perkhidmatan.

Rekod Sumber (RR, Rekod Sumber)

Rekod sumber boleh diwakili dalam format teks dalam fail data zon dan dalam format binari dalam pemesejan protokol DNS. Format teks zon mungkin berbeza untuk pelaksanaan pelayan DNS yang berbeza, ini menerangkan format yang disebut dalam standard (RFC 1035) dan digunakan dalam BIND 4/8/9. Fail zon mesti mengandungi entri hanya satu kelas.

Setiap entri terletak pada baris yang berasingan. Garis kosong tidak diendahkan. Sempadan baris tidak dikenali di dalam kurungan dan literal teks yang dipetik. Pemisah medan ialah ruang dan tab. Komen bermula dengan koma bertitik di mana-mana pada baris dan berterusan sehingga penghujung baris. Selain rekod sumber, fail zon boleh mengandungi arahan $ORIGIN, $INCLUDE dan $TTL (sejak BIND 8.2). Simbol “@” digunakan untuk menunjukkan akhiran lalai semasa untuk nama domain relatif. Serangan ke belakang melarikan diri daripada maksud istimewa watak seterusnya. Ia adalah mungkin untuk menentukan oktet sewenang-wenangnya dalam bentuk nombor perlapanan(\012). Kes surat tidak diambil kira semasa carian, tetapi dikembalikan dalam jawapan.

Arahan $ORIGIN menentukan akhiran lalai semasa untuk nama domain relatif. Sisipan arahan $INCLUDE fail yang ditentukan kepada fail zon dan menentukan (untuk rekod daripada fail yang disisipkan sahaja) akhiran semasa untuk nama domain relatif (akhiran boleh ditinggalkan). Dalam versi lama BIND dan terbitannya (contohnya, in.named dalam Solaris 2.5), menukar akhiran tidak berfungsi (walaupun tiada mesej ralat!) dan anda perlu "membingkai" arahan $INCLUDE dengan arahan untuk menukar $ORIGIN dan memulihkannya. Arahan $TTL menentukan TTL lalai (RFC 2308).

Rekod sumber terdiri daripada nama domain (jika ditinggalkan, nilai daripada rekod sumber sebelumnya diandaikan), nama kelas (boleh ditinggalkan dan diambil daripada rekod sebelumnya), TTL (bilangan saat, boleh ditinggalkan dan diambil daripada arahan $TTL untuk BIND 8.2, dan lebih baharu atau daripada medan MINIMUMTTL dalam SOA untuk versi yang lebih lama adalah satu hari yang munasabah - dari 1 jam hingga seminggu, TTL bagi semua rekod dengan kunci yang sama; ), jenis rekod dan data rekod (format ditentukan oleh kelas dan jenis). Dalam versi baharu (BIND?), masa boleh ditentukan dalam kedua-dua saat dan minit (akhiran m), jam (akhiran h), hari (akhiran d), minggu (akhiran w). Hanya nama hos mesti sepadan dengan sintaks nama domain (huruf, nombor dan tolak), selebihnya (contohnya, label pertama alamat pos dalam rekod SOA) boleh terdiri daripada aksara ASCII sewenang-wenangnya.

Kelas rekod (hanya IN bertahan dalam perjuangan evolusi yang sukar), dalam kurungan ialah kod untuk mesej protokol DNS:

  • DALAM (1) – Internet
  • CS (2) – CSNET
  • CH (3) – KEkacauan
  • HS (4) – Hesiod

Jenis rekod, dalam kurungan - kod untuk mesej protokol DNS:

versi BIND? membolehkan anda untuk tambahan menggunakan arahan $GENERATE untuk mencipta jujukan RR yang berbeza hanya dalam parameter:

$GENERATE selang bahagian kiri jenis rekod bahagian kanan

Selang nombor ditentukan sama ada sebagai permulaan-akhir atau sebagai permulaan-akhir/langkah. Secara lalai, langkahnya ialah 1. Sebelah kiri menentukan peraturan untuk membentuk nama domain untuk urutan rekod yang indeksnya berjalan dari awal hingga akhir dalam kenaikan langkah. Sebelah kanan menetapkan peraturan untuk menjana data rekod (pada masa ini hanya jenis PTR, CNAME, DNAME, A, AAAA dan NS dibenarkan). Dalam peraturan, aksara tunggal $ digantikan dengan nilai indeks semasa. Nilai indeks boleh diubah suai dengan menyatakan offset (ditolak daripada indeks), lebar medan (digunakan untuk memformat keputusan) dan sistem nombor (d, o, x, X) dalam pendakap kerinting dipisahkan dengan koma. Jika nama relatif diperolehi, maka ia ditambah dengan akhiran semasa. Terutamanya digunakan untuk penjanaan automatik zon terbalik:

$ORIGIN 0.0.192.IN-ADDR.ARPA.
$JANA 1-127 $CNAME $.0

ditukar kepada

1.0.0.192.IN-ADDR.ARPA CNAME 1.0.0.0.192.IN-ADDR.ARPA
2.0.0.192.IN-ADDR.ARPA CNAME 2.0.0.0.192.IN-ADDR.ARPA
...
127.0.0.192.IN-ADDR.ARPA CNAME 127.0.0.0.192.IN-ADDR.ARPA

protokol DNS

Pertanyaan dan respons DNS biasanya digunakan Protokol UDP (port 53, domain), namun mereka juga boleh menggunakan protokol TCP (port 53, domain). Setiap mesej dimuatkan sepenuhnya ke dalam satu paket UDP, jadi ia tidak boleh melebihi 64 KB. Pada hakikatnya, banyak pelaksanaan mempunyai had pada saiz paket UDP yang tidak boleh pecah sebanyak 576 bait. Pakej sedemikian mengandungi maklumat tentang 10 rekod jenis NS dalam kes umum. Nama domain pelayan akar Internet diletakkan dalam satu domain, yang memungkinkan untuk membungkus maklumat menggunakan pautan (lihat di bawah) kira-kira 13 pelayan. Jika respons tidak sesuai dengan satu serpihan UDP, maka bit TC (dipotong) ditetapkan dalam pengepala, yang membawa kepada permintaan berulang menggunakan protokol TCP. Apabila menggunakan protokol TCP, awalan (2 bait) ditambahkan pada setiap mesej yang mengandungi panjang mesej tanpa mengambil kira awalan. Bit kiri (sifar) dihantar dahulu - bit yang paling ketara.

Format permintaan dan respons adalah sama ( lihat RFC 1035 untuk butiran)

Sambungan protokol TSIG

RFC 2845 berkembang protokol DNS keupayaan untuk menyemak integriti permintaan dan respons (QUERY), pemindahan zon, serta pengesahan perubahan dinamik (KEMASKINI, RFC 2136) menggunakan kriptografi yang kukuh jumlah semak– TSIG (tandatangan urus niaga). Apabila menjana cincang, algoritma HMAC-MD5 dan rahsia yang dikongsi antara dua peserta digunakan ( kunci simetri). Mekanisme pengedaran utama tidak ditakrifkan. Peserta dalam transaksi boleh berkongsi berbilang kunci, jadi untuk mengenal pasti kunci tertentu, namanya digunakan dalam format nama domain. Untuk mengelakkan serangan ulang tayang rekod mengandungi masa tandatangan (penyegerakan masa menggunakan, sebagai contoh, NTP diperlukan). Apabila membalas permintaan yang dilindungi, pelayan menghantar respons yang dilindungi oleh algoritma dan kunci yang sama. Adalah disyorkan untuk menggunakan urutan rawak sekurang-kurangnya 128 bit panjang sebagai kunci.

Mekanisme ini memerlukan kurang beban pemproses dan kurang kos infrastruktur dengan bilangan nod yang kecil berbanding DNSSEC dengan mekanisme penyulitan asimetri dan kunci awam(RFC 2535, RFC 2137). Sebaliknya, DNSSEC membolehkan anda dengan mudah menskalakan infrastruktur pengedaran kunci yang dipasang dan menyediakannya tandatangan digital(TSIG, walaupun namanya, tidak membenarkan pengesahan pengarang permintaan disebabkan oleh simetri kunci).

RFC 2845 memperkenalkan jenis rekod TSIG (250) baharu dan beberapa kod respons baharu. Rekod TSIG adalah maya, i.e. dikira semasa transaksi, tidak terkandung dalam fail data zon dan tidak dicache. Entri ditambah ke bahagian data tambahan; termasuk nama kunci kongsi, kelas (ANY), TTL (0), nama algoritma (kini sentiasa HMAC-MD5), masa tandatangan, selang sisihan masa, cincang, ID mesej asal (digunakan semasa menyampaikan perubahan dinamik), kod ralat, data tambahan tentang ralat (contohnya, percanggahan dalam jam peserta). Untuk menjana cincang, mesej asal, nama kunci, kelas, TTL, nama algoritma, masa tandatangan, selang sisihan masa digunakan. Apabila menjana cincang respons, cincang permintaan juga disertakan dalam data sumber.

Perubahan Zon Dinamik

RFC 2136 memanjangkan protokol DNS untuk membenarkan kandungan zon ditukar secara dinamik atas permintaan oleh pelanggan. Ini menghapuskan keperluan untuk perubahan yang kerap (cth. Operasi DHCP) edit fail teks dengan penerangan tentang zon dan mulakan semula pelayan. Dengan menggunakan sambungan ini Anda boleh membuat beberapa perubahan dalam satu kelompok pada zon yang diuruskan oleh pelayan berwibawa utama ini (semua nama domain mesti berada dalam zon):

  • tambah rekod sumber (RR) pada set rekod sumber (RRset); Rekod jenis SOA dan CNAME tidak ditambah, tetapi diganti; jika tiada SOA atau nombor sirinya lebih besar, maka penambahan itu diabaikan; percubaan untuk menggantikan set rekod biasa dengan CNAME atau CNAME dengan set rekod biasa diabaikan; percubaan untuk menambah entri pendua diabaikan
  • alih keluar rekod sumber (RR) dengan nilai yang diberikan daripada set rekod sumber (RRset); rekod NS terakhir dan SOA zon itu sendiri tidak dipadamkan; percubaan untuk memadam entri yang tidak wujud diabaikan
  • padamkan set rekod sumber (RRset); Rekod NS dan SOA zon itu sendiri tidak dipadamkan; percubaan untuk memadam set yang tidak wujud diabaikan
  • padam semua set sumber yang berkaitan dengan nama domain yang ditentukan; Rekod NS dan SOA zon itu sendiri tidak dipadamkan; percubaan untuk memadam set yang tidak wujud diabaikan

Satu set perubahan boleh didahului oleh satu set syarat jenis berikut (semua nama domain mesti berada dalam zon):

  • nama domain yang ditentukan mempunyai sekurang-kurangnya satu rekod sumber bagi jenis yang ditentukan
  • nama domain yang ditentukan mempunyai rekod sumber jenis yang ditentukan dengan nilai yang diberikan(Nilai TTL tidak diambil kira; apabila membandingkan nama, huruf besar dan huruf kecil tidak dibezakan, templat tidak diproses, sinonim (CNAME) tidak diproses)
  • nama domain yang ditentukan tidak mempunyai sebarang rekod sumber bagi jenis yang ditentukan
  • nama domain yang ditentukan mempunyai sekurang-kurangnya satu rekod sumber
  • nama domain yang dinyatakan tidak mempunyai sebarang rekod sumber

Keseluruhan pakej keadaan dan perubahan ini adalah atom, i.e. diproses sebagai satu keseluruhan yang tidak boleh dibahagikan (seperti transaksi dalam DBMS). Dalam kes ini, pelayan mesti menulis perubahan pada cakera sebelum bertindak balas kepada klien. bind menulis perubahan pada log buat sementara waktu dan menggabungkannya dengan fail zon pada masa akan datang. Jika perubahan tidak menjejaskan SOA, maka pelayan harus meningkatkan nombor siri secara automatik. Kaedah tidak ditentukan oleh piawaian. Jika automeningkat nombor siri dilakukan dengan kelewatan, tetapi ia tidak boleh melebihi 300 saat atau 1/3 daripada masa kemas kini zon.

RFC 2136 memperkenalkan kelas baru TIADA (254) dan beberapa kod respons baharu. Format permintaan dan respons adalah sama seperti permintaan dan respons biasa, tetapi mempunyai kod permintaan – KEMASKINI (5). Bahagian permintaan mengandungi nama zon yang diubah suai (tepat satu rekod sumber jenis SOA), bahagian tindak balas - satu set syarat, bahagian pautan ke pelayan berwibawa - rekod untuk ditambah atau dipadamkan, bahagian maklumat tambahan - memautkan rekod nama domain di luar zon (boleh diabaikan oleh pelayan).

Pelanggan boleh mendapatkan senarai pelayan berpotensi daripada rekod SOA, rekod NS, atau melalui cara luaran.

Pelayan boleh menyemak hak pelanggan untuk menukar zon dengan alamat IPnya (tidak disyorkan) atau menggunakan mekanisme TSIG.

Pelayan berwibawa kedua yang menerima permintaan untuk perubahan dinamik zon, boleh mengubah hala ke pelayan utama bagi pihaknya (dengan menukar pengecam permintaan) dan, setelah menerima respons, mengembalikannya kepada klien. Itu, seterusnya, boleh memajukannya lagi, dsb. Senarai pelayan yang digunakan bertepatan dengan senarai pelayan yang permintaan untuk pemindahan zon dikeluarkan. Jika pelanggan menggunakan TCP untuk permintaan (disyorkan jika terdapat pemprosesan hasil), maka pelayan kedua juga harus menggunakan TCP untuk memajukan permintaan.

Memastikan bahawa perubahan digunakan dalam susunan yang betul (supaya perubahan lama yang "berlarutan dalam transit" tidak bertindih dengan yang lebih baru) adalah tugas yang tidak remeh dalam persekitaran TCP/IP, terutamanya apabila terdapat berbilang pelanggan yang meminta dan berbilang pengarah semula pelayan sekunder. Respons pelayan juga mungkin tertangguh atau hilang. Pengarang RFC mengesyorkan menggunakan rekod sumber "token" untuk memastikan penyegerakan (token sedemikian, sebagai contoh, boleh mengandungi masa permintaan dikeluarkan).

Pelanggan DNS (penyelesai)

Pelanggan DNS biasanya dilaksanakan sebagai perpustakaan rutin yang dilampirkan pada setiap program (secara statik atau dinamik) yang memerlukan perkhidmatan nama domain. Pelanggan mudah (stub) mengakses yang ditentukan apabila tetapan DNS pelayan(s), mentafsir respons dan mengembalikan hasilnya kepada program yang meminta. Pelaksanaan pelanggan dalam Solaris (Solaris 2.5.1 dan lebih awal sepadan dengan BIND 4.8.3; dengan patch - BIND 4.9.3; Solaris 2.6, 7 dan 8 - BIND 4.9.4-P1) dan Linux (pelanggan DNS disertakan dalam glibc pakej, bukannya mengikat) membolehkan anda juga mendapatkan maklumat daripada sumber lain ( fail tempatan, NIS, NIS+, dsb.) bergantung pada tetapan Suis Perkhidmatan Nama. Sesetengah pelanggan membenarkan anda menyimpan maklumat cache sendiri, atau menggunakan nscd.

Algoritma permintaan umum adalah seperti berikut: program permohonan, yang memerlukan, sebagai contoh, untuk mendapatkan alamat hos dengan namanya, memanggil subrutin gethostbyname(3) atau serupa. Apabila membina program, subrutin daripada perpustakaan libc (glibc) dipautkan kepadanya, yang menyemak kehadiran maklumat yang diperlukan dalam cache nscd (jika, sudah tentu, pelayan nscd sedang berjalan). Jika maklumat tidak dapat diambil daripada cache, NSS digunakan untuk menentukan perkhidmatan nama yang akan digunakan untuk mencari alamat mengikut nama. Khususnya, tetapan NSS boleh menentukan dns sebagai perkhidmatan nama untuk mencari nama domain. Dalam kes ini, fungsi yang dinyatakan dalam resolver(3) digunakan, iaitu klien DNS "sebenar" (mereka membentuk permintaan kepada pelayan mengikut protokol DNS dan memproses respons).

Menyediakan kerja Pelanggan DNS dihasilkan menggunakan fail /etc/resolv.conf atau pembolehubah persekitaran apabila proses bermula.

Setiap baris /etc/resolv.conf mengandungi satu pernyataan, ulasan bermula dengan koma bernoktah atau # aksara (berhati-hati: klien mungkin tidak melaporkan ralat dalam fail ini!):

  • alamat IP pelayan nama pelayan perkhidmatan(anda boleh menentukan sehingga 3 baris dengan alamat pelayan; secara lalai, pelayan yang terletak pada hos yang sama digunakan (ia juga boleh ditentukan menggunakan alamat IP atau alamat 0.0.0.0 atau alamat gelung balik 127.0.0.1); tinjauan pendapat pelanggan pelayan yang ditentukan dalam susunan mereka disenaraikan, jika anda tidak menunggu jawapan daripada pelayan sebelumnya daripada senarai atau menerima mesej ralat (port pada pelayan, hos pelayan atau keseluruhan rangkaian tidak tersedia); tinjauan pendapat dalam senarai diulang beberapa kali bergantung pada versi pelanggan (dari 2 hingga 4); selang menunggu awal bergantung pada versi (dari 2 hingga 5 saat) dan bilangan pelayan dalam senarai; dengan setiap laluan berikutnya melalui senarai, selang menunggu berganda; jumlah masa menunggu mencecah 80 saat untuk versi sehingga 8.2 dan 24 saat untuk versi yang lebih baharu)
  • domain local-domain-name(dilampirkan pada nama domain relatif sebelum mencari; titik di hujung nama tidak diperlukan; secara lalai diperoleh daripada nama domain hos (lihat nama hos(1)); nama domain tempatan juga menetapkan senarai carian lalai (untuk bind 4.8.3: nama domain tempatan dan senarai nenek moyangnya yang mempunyai sekurang-kurangnya 2 nama ringkas; untuk versi bind baharu: hanya nama domain tempatan))
  • cari senarai-nama-domain-dipisahkan-dengan-ruang(sehingga 6 nama domain mengikut keutamaan; nama pertama dalam senarai menetapkan nama domain tempatan; domain dan pernyataan carian adalah saling eksklusif (yang terakhir dilaksanakan); senarai carian digunakan untuk menyelesaikan nama domain relatif; untuk bind 4.8.3, resolusi nama relatif dilakukan terlebih dahulu dengan senarai carian (nama domain daripada senarai carian diberikan secara bergilir-gilir di sebelah kanan nama relatif sebelum permintaan kepada pelayan DNS), jika tidak berjaya, nama itu dianggap mutlak dan permintaan lain dibuat untuk versi baharu bind, terlebih dahulu menyelesaikan nama relatif yang mengandungi sekurang-kurangnya satu titik, dilakukan seolah-olah ia mutlak, jika ia gagal senarai carian digunakan)
  • senarai susun atur IP-rangkaian-alamat/topeng...(versi 4.9 dan lebih tinggi; membolehkan pelanggan memberi keutamaan rangkaian yang ditentukan apabila menerima jawapan yang mengandungi beberapa alamat, dia meletakkannya pada permulaan senarai, selebihnya di hujung; Anda boleh menentukan sehingga 10 rangkaian)
  • pilihan pilihan...(versi 4.9 dan lebih tinggi; membolehkan anda menukar tetapan klien
    • nyahpepijat(pada stdout)
    • titik:bilangan-titik(bilangan minimum titik dalam hujah yang akan menyebabkan carian nama sebelum menggunakan senarai carian; lalai ialah 1)
    • percubaan: bilangan tinjauan pendapat senarai pelayan(lalai – 2; maksimum – 5)
    • tamat masa:initial-wait-interval(lalai – 5 saat; maksimum – 30 saat)
    • berputar(untuk setiap panggilan, gunakan susunan pelayan yang berbeza untuk mengagihkan beban; pengedaran dijalankan hanya dalam satu proses - pada kali berikutnya program dilancarkan, pelayan pertama dalam senarai sekali lagi akan menjadi yang pertama digunakan)
    • tanpa nama semak(lumpuhkan penyemakan leksikal nama ringkas, yang disertakan dalam versi 4.9.4 dan lebih lama)

Pelaksanaan penyelesai(3) tertentu mungkin mempunyai nilai parameter lalai yang berbeza - lihat /usr/include/resolv.h. Pelbagai program boleh disusun dengan versi klien DNS yang berbeza. Nasib baik, klien DNS melangkau baris yang tidak difahami daripada fail /etc/resolv.conf. Versi lama klien DNS (resolv+) mungkin dikawal oleh /etc/host.conf, dalam hal ini lihat host.conf(5). Sesetengah program secara bebas menetapkan nilai bukan standard untuk parameter klien DNS semasa permulaan.

Pembolehubah persekitaran LOCALDOMAIN mengatasi domain dan arahan carian. Pembolehubah persekitaran RES_OPTIONS mengatasi pernyataan pilihan. Pembolehubah persekitaran HOSTALIASES membolehkan anda menentukan nama fail (contohnya, /etc/host.aliases) yang mengandungi senarai sinonim nama domain (satu demi satu nama ringkas dan sinonim domainnya tanpa titik mengekor pada baris yang dipisahkan oleh ruang).

Jika anda memerlukan kerja pelayan tempatan DNS (biasanya disebabkan oleh menentukan nama domain dalam ifconfig atau laluan), maka adalah dinasihatkan untuk menyediakan kaedah sandaran menyelesaikan nama domain dengan menyediakan NSS dan mengisi /etc/hosts, jika tidak komputer pelanggan akan terpaksa menunggu salah satu pelayan DNS dimuatkan. Adalah lebih penting untuk menyediakan kaedah sandaran untuk hos yang menjalankan pelayan DNS. Sebaiknya jangan gunakan DNS semasa but. Terdapat juga fail misteri /etc/ppp/resolv.conf.

Menyediakan DNS dalam MS Windows dilakukan menggunakan GUI. Pengilang memberi jaminan bahawa ia sangat mudah;). Satu-satunya perbezaan ialah pelaksanaan klien DNS dalam versi berbeza MS Windows lebih besar daripada Unix dari Linux (khususnya, susunan TCP/IP dalam W2000 dan XP diambil daripada FreeBSD (NetBSD?):

  • W95 – tindanan berasingan untuk rangkaian tempatan (Panel Kawalan-> Rangkaian -> TCP/IP -> DNS) dan sambungan dail (Komputer Saya -> Rangkaian Dail -> klik kanan pada sambungan yang dikehendaki -> Properties -> Jenis Pelayan -> TCP/IP); Apabila menggunakan akses dail, adalah disyorkan untuk keluar senarai kosong Pelayan DNS dalam timbunan utama dan pilih pilihan "Alamat pelayan nama yang diberikan pelayan" apabila menyediakan sambungan dail
  • W98 – secara visual tetapan tidak berbeza; alamat yang dikembalikan oleh pelayan diisih mengikut jadual penghalaan; klien berfungsi serentak dengan kedua-dua pelayan yang ditentukan untuk timbunan utama dan pelayan yang ditentukan untuk sambungan dail ini
  • NT – secara visual hampir sama dengan W95; tetapan untuk timbunan utama (Panel Kawalan -> Rangkaian -> Protokol -> TCP/IP -> DNS) dan sambungan dail (Komputer Saya -> Rangkaian Dail -> pilih sambungan yang betul daripada menu lungsur -> Lagi -> Edit Entri -> Ciri Modem -> Pelayan -> TCP/IP) digunakan pada masa yang betul; pelanggan menyimpan hasil yang diterima (dalam proses); dalam SP4, selepas kegagalan dengan pelayan pertama, pelanggan mula menghantar permintaan kepada semua pelayan yang dikenalinya secara selari
  • W2000 (Mula -> Tetapan -> Rangkaian dan Dail -> klik kanan pada Kawasan Setempat Sambungan -> Properties -> TCP/IP); tingkah laku klien adalah serupa dengan NT SP4

Pelayan DNS

Tidak lama kemudian saya akan menerbitkan artikel tentang Bind 9

Artikel diambil dari laman web Bog BOS, pengarang Sergey Evgenievich Bogomolov.

Sebagai pembekal infrastruktur maya, syarikat 1cloud berminat teknologi rangkaian, yang selalu kami bincangkan di blog kami. Hari ini kami telah menyediakan bahan mengenai topik nama domain. Di dalamnya kita akan melihat aspek asas fungsi DNS dan isu keselamatan pelayan DNS.

Anda juga patut menyebut beberapa perkataan tentang prosedur padanan terbalik - mendapatkan nama daripada alamat IP yang diberikan. Ini berlaku, sebagai contoh, semasa pemeriksaan pelayan e-mel. Terdapat domain khas in-addr.arpa, entri yang digunakan untuk menukar alamat IP kepada nama simbolik. Contohnya, untuk mendapatkan nama DNS untuk alamat 11.22.33.44, anda boleh menanyakan pelayan DNS untuk rekod 44.33.22.11.in-addr.arpa, dan ia akan mengembalikan nama simbolik yang sepadan.

Siapa yang mengurus dan menyelenggara pelayan DNS?

Apabila anda memasukkan alamat sumber Internet ke dalam penyemak imbas anda, ia menghantar permintaan kepada pelayan DNS yang bertanggungjawab untuk zon akar. Terdapat 13 pelayan sedemikian dan ia diuruskan pelbagai operator dan organisasi. Contohnya, a.root-servers.net mempunyai alamat IP 198.41.0.4 dan dikendalikan oleh Verisign, manakala e.root-servers.net (192.203.230.10) dikendalikan oleh NASA.

Setiap pengendali ini menyediakan perkhidmatan ini percuma dan juga menyediakan operasi tanpa gangguan, kerana jika mana-mana pelayan ini gagal, seluruh kawasan Internet akan menjadi tidak tersedia. Sebelum ini, pelayan DNS akar, yang merupakan asas untuk memproses semua permintaan untuk nama domain di Internet, terletak di Amerika Utara. Walau bagaimanapun, dengan pengenalan teknologi penyelesaian alternatif, mereka "menyebarkan" ke seluruh dunia, dan sebenarnya jumlah mereka meningkat dari 13 kepada 123, yang memungkinkan untuk meningkatkan kebolehpercayaan asas DNS.

Pilihan lain ialah menggunakan ciri Pengawal Sumber IP. Ia bergantung pada teknologi uRPF dan pengintipan paket DHCP untuk menapis trafik palsu pada port suis individu. Pengawal Sumber IP memeriksa trafik DHCP pada rangkaian dan menentukan alamat IP yang telah diberikan kepada peranti rangkaian.

Setelah maklumat ini dikumpulkan dan disimpan dalam jadual pengagregatan pengintipan DHCP, Pengawal Sumber IP boleh menggunakannya untuk menapis paket IP yang diterima peranti rangkaian. Jika paket diterima dengan alamat IP sumber yang tidak sepadan dengan jadual persekutuan pengintipan paket DHCP, maka paket itu dibuang.

Ia juga perlu diperhatikan utiliti dns-validator, yang memantau penghantaran semua paket DNS, memadankan setiap permintaan dengan respons, dan jika pengepala tidak sepadan, memberitahu pengguna mengenainya. Maklumat terperinci tersedia dalam