DynamicDNS hemen nasıl davranır?


16

DNS'nin temel işlevlerini anladığım, etki alanı adları (ör. blah-whatever.com) Ve IP adresleri (ör. 100.2.3.4 ) arasında bir adlandırma / eşleme hizmeti sağlamaktır .

Ayrıca, Internet DNS sunucularının nasıl çalıştığına ilişkin anlayışım, bir etki alanı / IP eşleme kaydı değiştirildiğinde (örneğin, blah-whatever.comşimdi 105.2.3.4'e işaret ettiğinde ), bu değişikliğin dünyadaki her DNS sunucusu üzerinde yayılması gerektiğidir. önce değişikliğin "tamamlandığı" söylenebilir. Bu yayılma süresi bazen 24 saate kadar sürebilir.

Başlamak için, şimdiye kadar söylediğim herhangi bir şey yanlış veya yanlış ise, lütfen beni düzelterek başlayın!

Az ya da çok doğru olduğumu varsayarsak, CloudFlare veya DynamicDNS gibi şirketlerin "anında rollover" tipi hizmetler sunabileceğini anlamıyorum, böylece DNS kaydınızı onlarla değiştirirsiniz ve - boom - değişiklik anında etkilenir.

Bu anlık rol yapma yeteneğinde rol oynayan "TTL" (yaşama zamanı, sanırım?!?) Adı verilen bir şey olduğunu anlıyorum, ancak zaten başlayabilme yeteneğinde bulanık olduğum için ne anlama geldiğini anlamak zor bu TTL nedir veya hangi amaca hizmet eder.

Bu yüzden soruyorum: Dinamik DNS ve rakipleri hakkında DNS eşlemelerini anında değiştirmelerine izin veren nedir (DNS değişikliklerini herkes gibi yaymak için 24 saat ayırmadan) ve TTL bu sürece nasıl uyuyor? Şimdiden teşekkürler.

Yanıtlar:


3

Önceki cevabım yanlış bilgiler içeriyordu çünkü DNS değişikliklerinin nasıl yayıldığına dair birkaç yanlış fikrim vardı. İşte ikinci bir girişim. Ayrıntılı bir açıklama için Alex cevabını okumanızı tavsiye ederim .

Anladığım kadarıyla, bir DNS değişikliğinin ne kadar hızlı yayıldığına dair 2 faktör var:

  1. Bölge için yetkili olan DNS sunucuları arasında bölge aktarımı.
  2. Bu bölgedeki tek kayıtlar için ayarlanan TTL.

Bölge Transferleri

Bir bölgeyi yönetmek için iki ayrı ad sunucusuna ihtiyacınız olduğu göz önüne alındığında, bu sunucuların o bölgenin en son sürümüne kısa sürede sahip olmasını istersiniz.

Bu, bölgenin en son sürümünü sabit bir aralıkta çekerek veya yetkili bir ad sunucusundan bir NOTIFY bekleyerek elde edilir.

Bu mekanizmanın ad sunucularını çalıştıranın tam kontrolü altında olduğu göz önüne alındığında, bu alandaki gecikmeler tam olarak kontrol edilebilir.

TTL

TTL bir bölgede her kaynak kaydı için belirtilen zaman aşımı olduğunu. Bu değer, kaydın yetkili olmayan DNS sağlayıcıları tarafından ne kadar süreyle önbelleğe alınması gerektiğini tanımlar.

Bu değerin yalnızca mevcut bir kayıt değiştirilirse devreye girdiğini lütfen unutmayın . Yeni kayıtlar henüz önbelleğe alınamaz.

TTL'nin, bölgeyi kimin kontrol edeceğini de tam olarak kontrol ettiği göz önüne alındığında, gecikme tam olarak kontrol edilebilir.


Thanks @Oliver (+1) - Yani "anında rollover" bir şehir efsanesi gibi geliyor! Sanırım takip sorum şu olurdu: Neden sadece DNS kayıtlarımı kendim düzenlemek değil? Bu şirketler, belirli olaylar tetiklendiğinde DNS değişikliklerinin otomatikleştirilebilmesi için API'ler sundukları için mi? İlk etapta hangi amaca hizmet ettiklerini düşünüyorum!
pnongrata

1
@zharvey: Elbette kendi DNS sunucunuzu çalıştırabilir ve bölgelerinizi doğrudan kendiniz düzenleyebilirsiniz. Ancak, bölgenizin kök sunucular tarafından kabul edilebilmesi için yetkili olan en az 2 ayrı DNS sunucusu sağlamanız gerekir. İnsanlar genellikle bu tür bir altyapıya sahip değildirler.
Der Hochstapler

1
DNS kayıtlarını kendiniz düzenleyebilirsiniz. Sadece bir çift ad sunucusu çalıştırmanız gerekir (farklı alt ağlarda). Ancak DynDNS bunu sizin için yapar ve göreceli kolay güncellemelere izin verir. Temelde bazı işleri dış kaynaklardan sağlıyorsunuz.
Hennes

@zharvey Tabii ki bir "anında rollover" olabilir. Bunu tam anlamıyla kastediyorsanız, her iki makinenin IP'lerini değiştirmesine izin verin (bu her zaman mümkün değildir). Bunun dışında her zaman belirli bir gecikme yaşarsınız. Genellikle, hizmetler farklı sunuculara taşınacaksa, yönetici TTL'yi önceden değiştirir (örneğin, 1 saat gibi bir değere indirin) - bu nedenle değişiklik gerçekleştiğinde gecikme en az olacaktır. İşlem tamamlandıktan sonra, DNS sorgularında daha iyi önbellekleme ve daha hızlı yanıtlar sağlamak için TTL tekrar artırılacaktır (örneğin 24 saat veya daha fazla). Ancak bu genellikle DynDNS'yi içermez;)
Izzy

2
Kaba olduğum için üzgünüm, ama bu cevap neredeyse her noktada yanlış .
Alex

18

Bazı yanılgılarınız var, bu yüzden tüm süreci açıklamaya çalışacağım. (Genel dinamik DNS hizmetini kullandığımdan beri ayrıntılarda iyiyim).

Alan adınızın example.com olduğunu varsayalım ve diyelim ki bazı dinamik DNS şirketleriyle barındırılan example.com alan adı, diyelim ki lightfastdns.net (kurgusal ad). - Alan adı DNS kaydını içeren somehost.example.com , şu andaki hedefi 1.1.1.1 .

  1. DNS kaydınızda bir değişiklik yaptığınızda, bu değişiklik ilk olarak lightfastdns.net, ör. Updates.lightfastdns.net tarafından işletilen bazı ara sunuculara gönderilir . Bu neredeyse anında gerçekleşir (ikinci kısımda). Güncellemenizi web arayüzü veya dinamik güncelleme istemcisi veya bir API aracılığıyla gönderebilirsiniz. Bu önemli değil, her durumda bu güncelleştirme DNS güncellemelerini işleyen bazı sunuculara gelecek.

  2. Bu güncelleme sunucusu güncellenmiş kaydınızı (diyelim ki 1.2.3.4 ) alan adınız için " ana " DNS sunucusuna gönderir . Bu DNS sunucusu lightfastdns.net tarafından da işletilmektedir . Bunun ne kadar hızlı gerçekleştiği: DNS sağlayıcısının yazılımlarını nasıl tasarladığına bağlıdır. (Anında olabilir ve her 24 saat olabilir. Saatte bir kez örnek gandi.net itme DNS güncellemeleri için.) Tabii ki, bizim lightfastdns.net anında yapacağız.

  3. Bu ana DNS sunucusu, güncelleştirmeleri example.com etki alanı için bağımlı DNS sunucularına gönderir . Bu sunucular aynı lightfastdns.net şirketi tarafından da işletilmektedir . Bu ne kadar hızlı gerçekleşir: modern yazılım ustası ile kölelere anında NOTIFY mesajı gönderecek ve güncellenmiş kaydı anında master'dan alacaklar . eski yazılımlarda SOA kaydında REFRESH ve RETRY değerlerine sahibiz, ancak bugün nadiren konuyla ilgilidir. Tabii ki, lightfastdns.net NOTIFY uygular ve güncellemeler anında yayılır.

Şu an sahip olduğumuz şey alan adınız için tüm "yetkili" sunucuların güncellenmiş kaydı ( 1.2.3.4 ) almasıdır . İçin lightfastdns.net o iki saniye sürdü.

  1. Şimdi Ivan'ın Rusya'daki evine taşınacağız ve Ivan tarayıcısında " somehost.example.com " u açmak istiyor . Bunu daha önce hiç açmadıysa, tarayıcı adresi bilmiyor, bu yüzden tarayıcı işletim sistemine soracak . Ancak, yakın zamanda siteyi ziyaret ederse, adres yine de tarayıcının içinde saklanabilir ve eski (eski) adresi kullanacaktır! Ne kadar süreliğine ? - Tarayıcıya bağlı olarak, Google Chrome örneğin DNS kayıtlarını yalnızca 60 saniyeye kadar saklar. 60 saniyeye kadar gecikmemiz var . Bu gerçeği, ben DNS değişikliği olmadığını söyleyebilirim yaymak henüz bu tarayıcıya.

  2. Her durumda, 60 saniye sonra veya hemen, tarayıcı sonunda işletim sisteminden adresi almasını ister. İşletim sistemi zaten (eski, eskimiş) cevabı biliyorum ve geri, bu durumda ben yeni kayıt olmadığını söyleyebilirim olabilir yayılır Ivan'ın OS henüz. İşletim sisteminin eski değeri ne kadar süreyle saklayacağı modern işletim sistemlerinde bu TTL parametresi ile kontrol edilir . DNS'deki TTL , bir kaydın önbellekte ne kadar süre saklanabileceğini tanımlar. Bizim lightfastdns.net biz genel olarak 30 saniyeye kadar yeni bir gecikme var, yani 30 saniye - - oldukça düşük bir TTL kullanmasına izin 90 saniye kadar.

  3. İşletim sistemi cevabı bilmiyorsa veya bildiği cevap şimdi TTL tarafından eskimişse, işletim sistemi DNS çözümleyicisine (Ivan'ın İSS'sine dns.moscow-telecom.ru bir DNS çözümleyicisi atadı ) soracaktır . Burada, eski kayıt TTL saniyeye kadar önbelleğe alınabilir veya dns.moscow-telecom.ru adresi bilmiyor olabilir. Dns.moscow-telecom.ru ayrıca DNS'yi TTL değerinden daha uzun süre önbelleğe aldığından 30 saniye daha alıyoruz . Biz var 120 saniye gecikme. Yeni DNS kaydının henüz Moscow-Telecom'un DNS sunucularına yayılmadığı deniyor .

  4. ISS'nin DNS sunucusu cevabını bilmiyor, ya da bildiği cevabı 's TTL süresi dolduğu için zaten eskimiş ise ise - dns.moscow-telecom.ru birini soracaktır yetkili DNS sunucularının example.net (? Onları hatırlıyor musunuz). Bunlar yaklaşık 118 saniye önce değişti ve yeni cevabı geri gönderecekler, bu cevap derhal DNS çözümleyicisine, işletim sistemine ve Ivan'ın tarayıcısına gönderilecek.

Böylece, kaydın çoğaltılması çeşitli önbelleklerin durumuna bağlı olarak 2 ila 120 saniye sürmüştür. Daha uzun TTL - daha uzun gecikmeler olabilir.

Tamamlamak için - bazı İSS'ler standartları ve önbellek kayıtlarını uzun süre ihlal ediyor. Bazı eski işletim sistemleri eski kayıtları uzun süre ve eski tarayıcıları da sakladı. Ancak çoğu kullanıcı için beklendiği gibi çalışır.


Bu ayrıntılı ortaya çıktığı için çok üzgünüm . Belki birisi daha kısa bir varyasyon yapmak ister (ayrı bir cevap olarak) - hoş geldiniz.
Alex

@zharvey Aslında dinamik olmayan ve dinamik olmayan arasındaki farkın ne olduğunu sordunuz - bu 1. Adım (2) ve (3) ve 2'yi ne kadar hızlı ele aldıklarını ayarlamanıza izin veriyorlar.
Alex

3

Hayır değişiklik yok değil yollamaya ihtiyaç duyduğu dünyadaki her DNS sunucusu .

Bir şeyi değiştirirseniz ve birisi DNS sunucunuzdaki değiştirilen kaydı sorgularsa sonuç anlık olur.

Sorun, daha önce bu adı sorguladıysanız ve önbelleğe alınmışsa. Sonra önbellek sona erene kadar eski IP alırsınız. DNS'de eski bir sorgunun ne kadar süreyle geçerli olacağını ayarlayabilirsiniz ve bu süre genellikle birkaç güne ayarlanır. DynDNS için genellikle daha düşük olarak ayarlanır, ancak tüm DNS çözümleyicileri buna uymaz.


Teşekkürler @Hennes (+1) - lütfen Oliver'ın cevabı altındaki soruma bakın - Sizin için de aynı sorum var!
pnongrata
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.