Bagaimana DynamicDNS bertindak segera?

16

Pemahaman saya tentang fungsionalitas inti dari DNS adalah untuk menyediakan layanan penamaan / pemetaan antara nama domain (mis. blah-whatever.com) Dan alamat IP (mis. 100.2.3.4 ).

Selain itu, pemahaman saya tentang cara kerja server DNS Internet adalah bahwa ketika catatan pemetaan domain / IP diubah (katakanlah, blah-whatever.comsekarang berubah menjadi 105.2.3.4 , dll.), Perubahan ini perlu disebarkan ke setiap server DNS di dunia sebelum perubahan bisa dikatakan "lengkap". Periode propagasi ini kadang-kadang bisa bertahan hingga 24 jam.

Jadi untuk memulainya, jika sesuatu yang saya katakan sejauh ini salah arah atau salah, silakan mulai dengan mengoreksi saya!

Dengan asumsi saya kurang lebih benar, saya tidak mengerti bagaimana perusahaan seperti CloudFlare atau DynamicDNS dapat menawarkan layanan tipe-instan "rollover" di mana Anda mengubah catatan DNS Anda dengan mereka dan - boom - perubahan itu mempengaruhi secara instan.

Saya mengerti ada sesuatu yang disebut "TTL" (waktu untuk hidup, saya kira?!?) Yang berperan dalam kemampuan rollover instan ini, tetapi karena saya sudah tidak jelas pada kemampuan untuk memulai dengan sulit untuk memahami apa TTL ini atau tujuan apa yang dilayaninya.

Jadi saya bertanya: ada apa dengan Dynamic DNS dan pesaingnya yang memungkinkan mereka untuk mengubah pemetaan DNS secara instan (tanpa mengambil 24 jam untuk menyebarkan perubahan DNS seperti orang lain), dan bagaimana TTL masuk ke dalam proses ini? Terima kasih sebelumnya.

pnongrata
sumber

Jawaban:

3

Jawaban saya sebelumnya berisi informasi palsu karena saya memiliki beberapa kesalahpahaman mengenai bagaimana perubahan DNS disebarkan. Jadi di sini adalah upaya kedua. Untuk penjelasan terperinci, saya mendorong Anda untuk membaca jawaban Alex .

Menurut pemahaman saya, ada 2 faktor yang terlibat dalam seberapa cepat perubahan DNS menyebar:

  1. Transfer zona antara server DNS yang otoritatif untuk suatu zona.
  2. Set TTL untuk catatan tunggal di zona itu.

Transfer Zona

Karena Anda memerlukan dua server nama yang berbeda untuk mengelola zona, Anda ingin server ini memiliki versi terbaru zona tersebut dengan cepat.

Ini dapat dicapai dengan menarik versi terbaru dari zona pada interval tetap, atau menunggu NOTIFY dari server nama resmi.

Mengingat bahwa mekanisme ini berada di bawah kendali penuh siapa pun yang menjalankan server nama, penundaan di area ini dapat sepenuhnya dikontrol.

TTL

The TTL adalah batas waktu yang ditentukan untuk setiap catatan sumber daya tunggal dalam zona. Nilai ini menentukan berapa lama catatan harus di-cache oleh penyedia DNS non-otoritatif.

Harap diingat bahwa nilai ini hanya datang ke dalam bermain jika ada record berubah. Catatan baru belum bisa di-cache.

Mengingat bahwa TTL juga di bawah kendali penuh siapa pun yang mengendalikan zona, penundaan juga dapat sepenuhnya dikontrol.

Der Hochstapler
sumber
Terima kasih @liver (+1) - Jadi sepertinya "rollover instan" adalah legenda urban! Saya kira pertanyaan tindak lanjut saya adalah: mengapa tidak mengedit sendiri catatan DNS saya? Apakah karena perusahaan-perusahaan ini menawarkan API sehingga perubahan DNS dapat diotomatisasi ketika peristiwa tertentu memicu? Saya kira saya sedang mencari tujuan apa yang mereka layani sejak awal!
pnongrata
1
@ Zharvey: Anda tentu saja dapat menjalankan sendiri server DNS dan mengedit zona Anda secara langsung. Tetapi Anda harus menyediakan setidaknya 2 server DNS berbeda yang otoritatif agar zona Anda diterima oleh server root. Orang biasanya tidak memiliki infrastruktur semacam itu tersedia untuk mereka.
Der Hochstapler
1
Anda dapat mengedit data DNS sendiri. Anda hanya perlu menjalankan sepasang server nama (dalam subnet yang berbeda). Namun DynDNS berfungsi untuk Anda dan memungkinkan pembaruan relatif mudah. Pada dasarnya Anda melakukan outsourcing beberapa pekerjaan.
Hennes
@ Zharvey tentu saja Anda dapat memiliki "rollover instan". Jika Anda memaksudkan itu secara harfiah, biarkan kedua mesin mengganti IP mereka (yang tidak selalu memungkinkan). Selain itu, Anda akan selalu memiliki penundaan tertentu. Biasanya, jika layanan akan dipindahkan ke server yang berbeda, admin mengubah TTL terlebih dahulu (mis. Turunkan ke sesuatu seperti 1 jam) - jadi ketika perubahan itu terjadi, penundaan akan menjadi minimal. Setelah selesai, TTL akan ditingkatkan lagi (misalnya 24 jam atau lebih) untuk memungkinkan caching yang lebih baik dan respons yang lebih cepat pada permintaan DNS. Tapi itu biasanya tidak melibatkan DynDNS;)
Izzy
2
Maaf karena bersikap kasar, tetapi jawaban ini salah hampir di setiap titik.
Alex
18

Anda memiliki beberapa kesalahpahaman, jadi saya akan mencoba menjelaskan seluruh proses. (Saya baik dengan detail karena saya terlibat dalam mengoperasikan layanan DNS dinamis publik).

Katakanlah domain Anda adalah example.com , dan misalkan domain example.com di-host dengan beberapa perusahaan DNS dinamis, sebut saja lightfastdns.net (nama fiksi). Domain Anda berisi data DNS - somehost.example.com , yang saat ini mengarah ke 1.1.1.1 .

  1. Ketika Anda membuat perubahan pada catatan DNS Anda, perubahan ini pertama kali dikirimkan ke beberapa server perantara, yang dioperasikan oleh lightfastdns.net, misalnya pembaruan.lightfastdns.net . Ini terjadi hampir secara instan (dalam sepersekian detik). Anda dapat mengirimkan pembaruan Anda melalui antarmuka web atau dengan klien pembaruan dinamis, atau melalui beberapa API. Itu tidak masalah, dalam hal apa pun pembaruan ini akan tiba di beberapa server yang menangani pembaruan DNS.

  2. Server pembaruan ini mendorong catatan Anda yang diperbarui (katakanlah, 1.2.3.4 ) ke " master " server DNS untuk domain Anda. Server DNS ini juga dioperasikan oleh lightfastdns.net . Seberapa cepat itu terjadi: tergantung pada bagaimana penyedia DNS merancang perangkat lunak mereka. (Ini bisa instan, dan bisa setiap 24 jam. Misalnya gandi.net mendorong pembaruan DNS sekali per jam.) Tentu saja, lightfastdns.net kami akan melakukannya secara instan.

  3. Ini Master DNS server yang akan mendorong pembaruan ke slave server DNS untuk example.com domain. Server ini juga dioperasikan oleh perusahaan lightfastdns.net yang sama . Seberapa cepat ini terjadi: dengan master perangkat lunak modern akan langsung mengirim pesan PEMBERITAHUAN kepada para budak , dan mereka akan langsung mendapatkan catatan terbaru dari master. dengan perangkat lunak yang lebih lama kami memiliki nilai REFRESH dan RETRY dalam catatan SOA, tetapi hari ini jarang relevan. Tentu saja, lightfastdns.net kami mengimplementasikan PEMBERITAHUAN dan pembaruan menyebar secara instan.

Apa yang kita miliki sekarang adalah bahwa semua server "otoritatif" untuk domain Anda menerima catatan yang diperbarui ( 1.2.3.4 ). Untuk lightfastdns.net butuh waktu sekitar dua detik.

  1. Sekarang, kita akan pindah ke rumah Ivan di Rusia, dan Ivan ingin membuka " somehost.example.com " di browser-nya. Jika dia tidak pernah membukanya sebelumnya, browsernya tidak tahu alamatnya, jadi browser akan menanyakan sistem operasinya. Tetapi, jika dia mengunjungi situs tersebut baru-baru ini, alamatnya mungkin masih disimpan di dalam browser, dan dia akan menggunakan alamat lama (usang)! Untuk berapa lama ? - Tergantung pada browser, Google Chrome misalnya menyimpan catatan DNS hanya hingga 60 detik. Kami memiliki penundaan hingga 60 detik . untuk fakta ini, saya akan mengatakan bahwa perubahan DNS belum merambat ke browser ini.

  2. Bagaimanapun, setelah 60 detik, atau segera, browser pada akhirnya akan meminta sistem operasi untuk mendapatkan alamat. Sistem operasi mungkin sudah tahu jawaban (lama, usang), dan mengembalikannya, dalam hal ini saya akan mengatakan bahwa catatan baru belum disebarkan ke OS Ivan. Berapa lama OS akan menyimpan nilai lama - dari sistem operasi modern ini dikendalikan oleh parameter TTL . TTL dalam DNS menentukan berapa lama catatan dapat disimpan dalam cache. Lightfastdns.net kami memungkinkan untuk menggunakan TTL yang sangat rendah - 30 detik, jadi kami mendapat penundaan baru hingga 30 detik, secara keseluruhan - sejauh 90 detik .

  3. Jika OS tidak tahu jawabannya, atau jika jawaban yang diketahuinya sekarang sudah usang oleh TTL, OS akan menanyakan resolver DNS (ISP Ivan menugaskannya dengan resolver DNS dns.moscow-telecom.ru ). Di sini, catatan lama mungkin di-cache hingga detik TTL, atau dns.moscow-telecom.ru mungkin tidak tahu alamatnya. Kami mendapatkan 30 detik lagi, karena dns.moscow-telecom.ru juga melakukan cache DNS tidak lebih dari nilai TTL. Kami memiliki penundaan 120 detik . Itulah yang disebut bahwa catatan DNS baru belum disebarkan ke server DNS Moscow-Telecom .

  4. Jika server DNS ISP tidak tahu jawabannya, atau jika jawaban itu tahu sudah usang karena TTL itu berakhir - dns.moscow-telecom.ru akan meminta salah satu otoritatif server DNS untuk example.net (apakah Anda ingat mereka?). Mereka mendapat perubahan sekitar 118 detik yang lalu, dan mereka akan mengembalikan jawaban baru, jawaban ini akan segera dikirim dengan rantai ke DNS resolver, ke OS, dan ke browser Ivan.

Dengan demikian, menyebarkan catatan memakan waktu 2 hingga 120 detik, tergantung pada keadaan berbagai cache. TTL yang lebih panjang - penundaan yang lebih lama dapat terjadi.

Untuk membuatnya lengkap - beberapa ISP melanggar standar dan catatan cache untuk waktu yang lama. Beberapa OS lama menyimpan catatan lama untuk waktu yang lama, dan browser yang lebih lama juga. Tetapi bagi sebagian besar pengguna itu akan berfungsi seperti yang diharapkan.

Alex
sumber
Saya sangat menyesal bahwa ini keluar verbose ini . Mungkin seseorang ingin membuat varian yang lebih pendek (sebagai jawaban terpisah) - Anda dipersilakan.
Alex
@ Zharvey Sebenarnya Anda bertanya apa perbedaan antara dinamis dan tidak dinamis - ini 1. Seberapa cepat mereka menangani langkah (2) dan (3) dan 2. Seberapa rendah TTL yang mereka izinkan Anda atur.
Alex
3

Tidak. Perubahan tidak perlu disebarkan ke setiap server DNS di dunia .

Jika Anda mengubah sesuatu dan seseorang meminta catatan yang diubah pada server DNS Anda hasilnya langsung.

Masalahnya adalah jika Anda menanyakan nama ini sebelumnya dan di-cache. Maka Anda akan mendapatkan IP lama hingga cache berakhir. Dalam DNS, Anda dapat menetapkan berapa lama kueri lama valid, dan periode itu sering diatur ke beberapa hari. Untuk DynDNS biasanya disetel lebih rendah, tetapi tidak semua resolver DNS menghormatinya.

Hennes
sumber
Terima kasih @ Henry (+1) - silakan lihat pertanyaan saya di bawah jawaban Oliver - Saya punya pertanyaan yang sama untuk Anda!
pnongrata