DNS kayıtlarımız neden internete yayılmıyor?


22

Etki alanımızın ad sunucularını ağımızda çalıştırıyoruz. Biz bağlayıcı / adlandırılmış kullanın. Example.com alanını arayalım . Son zamanlarda fark ettiğim bir şey, http://network-tools.com gibi bir web sitesine girdiğimde ve ad sunucularımızda tanımlanan URL’lerde sorgular çalıştırdığımda, anında değişiklikleri görüyorum.

Örneğin, funny.example.com URL'si için DNS sunucumuza bir giriş eklerseniz ve http://network-tools.com adresinde bu URL'yi ararsam , hemen listelenen uygun harici statik IP'yi görürüm.

Bu da example.com ile ilgili herhangi bir DNS isteğinin doğrudan DNS sunucularımıza geldiğini söylüyor .

Şüphelerim, DNS sunucularımızın çok kısa bir süre için kullandığı haftanın başlarında doğrulandı. Ve bu süre zarfında, http://network-tools.com 'u example.com veya alt alan adlarından herhangi birini sorgulamak için kullanırsam , sıfır sonuç alırdım. Açıkçası bunun nedeni, DNS sunucularının kapalı olması ve ulaşılamamasıydı.

Yani bu beni soruma getiriyor. DNS sunucularımızdaki değişikliklerin internette diğer DNS sunucularına yayılması gerektiğini düşündüm. Bu şekilde, eğer DNS’m geçici olarak düşerse, internet üzerindeki diğer sunucular example.com’un IP adresini göstermeye devam eder.

Bu DNS’yi yanlış anlıyor muyum? Bizim gibi 3. taraf kontrolündeki DNS sunucularının, DNS bilgilerini ağdaki diğer sunuculara yaymasına izin verilmiyor mu?

Değişikliklerin neden orada gerçekleştirilmediğini araştırmaya nereden başlamalıyım? Güvenlik duvarımızda 53 numaralı bağlantı noktasının bunu DNS sunucularımıza düzgün şekilde yaptığını görebiliyorum.

GÜNCELLEŞTİRME

  1. DNS ayarlarınızı anında yayınlamanın imkansız olduğunu biliyorum, ancak tek bildiğim şudur: DNS sunucularımızda bir DNS değişikliği yaparsam ve hemen http: // network-tools adresinden kontrol edin . com , hemen değişiklikleri görüyorum.

  2. DNS sunucularımızı kapatırsam ve http://network-tools.com adresini kullanarak URL’lerin hiçbirini kontrol etmeye çalışırsam , site URL’lerin hiçbirini bulamaz. Ancak DNS sunucularını tekrar çevrimiçi duruma getirirsem, ani http://network-tools.com URL’leri tekrar bulabilir ... Bu, sunucuların DNS ayarlarımızı önbelleğe alamadığını söylüyor. Yanlış mıyım? Ayrıca, TTL ayarlarımız şu anda 900 (15 dakika) olarak ayarlandı ve DNS sunucularımız bir yıldan fazla bir süredir çalışıyor. Yani internetteki DNS sunucuları gibi henüz önbellekleme şansı bulamadı. Sunucuların ayarları önbelleğe almamasının nedeni TTL'nin şu anda çok düşük olması mı? Sebep bu ise, mantıklı geliyor.


7
Jokerville.com gerçek kayıtlı alan adı olduğundan, aslında sizin alanınız değilse , lütfen example.comyerine kullanın - resmi olarak bu amaç için ayrılmıştır.
mattdm

9
Network-tools.com'un derhal değişiklikleri görmesinin nedeni bir ağ aracı olması ve DELIBERATELY'nin sonuçları önbelleğe almamasıdır. Normal bir DNS istemcisi değil, ad sunucularınıza bakmak için bir araçtır, bu nedenle farklı kurallara uyar.
Michael Kohne

Yanıtlar:


42

Evet, DNS’nin nasıl çalıştığını yanlış anlıyorsunuz. Burada bazı vurguyu kullanacağım, ancak hiçbirinin tasarlanmadığı gibi lütfen kırılmayın.

DNS KAYITLARI SORUMLU DEĞİLDİR. ONARIMLANMIŞTIR.

Olduğu söyleniyor, işte ne olduğunu basitleştirilmiş bir açıklaması:

  1. Yeni bir DNS kaydı oluşturursunuz (A, CNAME, vb.)

  2. Uzak bir kullanıcı (özellikle kullanıcı tarafından başlatılan bir işlem \ uygulaması), söz konusu DNS kaydıyla erişilen bir hizmete erişmeye çalışır (örneğin, funny.example.com adresinde çalışan web sitesine erişmeye çalışan bir web tarayıcısı)

  3. Kullanıcıların DNS istemcisi kendi DNS sunucusuna bir DNS sorgusu gönderir, DNS sunucusu daha sonra ad sunucularınızı bulur (genellikle bir dizi özyinelemeli DNS sorgusu aracılığıyla) ve onlardan funny.example.com ile ilgili bilgiler ister.

  4. Ad sunucularınız cevaplarla yanıt veriyor

  5. Ardından kullanıcılar DNS sunucusu bu bilgiyi kullanıcıya (daha özel olarak kullanıcı DNS istemcisi çözümleyicisine) gönderir ve bu da bilgiyi işlem \ uygulamasına döndürür. Bu bilgi, DNS istemcisine bu bilginin DNS önbelleğinde (bellekte) ne kadar süre saklanabileceğini ve bilgilerin ne kadar süre içinde geçerli ve doğru olarak değerlendirilebileceğini söyleyen TTL (Yaşam Süresi) ile birlikte gelir.

  6. Kullanıcının DNS istemcisi çözümleyicisi, TTL'nin süresi dolduğunda bu bilgileri temizler. Söz konusu DNS kayıtları için herhangi bir yeni istek, yeni bir DNS araması gerektirir ve yukarıdaki işlem tekrarlanır.

Yani uzun ve kısa bu:

DNS kayıtlarınız yayılmaz. Başka hiçbir DNS sunucusunda DNS kayıtlarınızın veya bölgelerinin bir kopyası yoktur. Bir DNS istemcisi veya sunucusu, DNS kayıtlarınız veya bölgeleriniz hakkındaki bilgileri (DNS kayıtlarınız ve bölgelerinizin DNS sorgularına dayanarak) kendi DNS önbelleklerinde önbelleğe alabilir. Bu bilgiler geçici olarak önbelleğe alınır ve TTL süresi dolduğunda DNS önbellekten kaldırılır.

Ad sunucularınız kapalıysa, yalnızca önbellekte bulunan DNS kayıtlarınızdan herhangi birine sahip olan DNS istemcileri bu DNS kayıtlarını ve yalnızca TTL süresi dolana kadar çözebilir. Ayrıca, TTL'nin süresi dolduğunda (yeni bir DNS lokkup gerekliyse), bu DNS istemcileri artık DNS kayıtlarınızı çözemez.


İyi açıklama ve yayılım olan bir protokol örneği ekleyebilirim (DNS'den farklı olarak): BGP.
bortzmeyer

11

bize gerçek alan adınızı söyleseydiniz çok yardımcı olurdu, o zaman sorunuzu asıl kurulumunuza göre yanıtlayabilir ve herhangi bir hatayı işaret edebiliriz.

DNS sorunlarını hızlı bir şekilde teşhis etmek için http://dns.squish.net/ adresine güvenme eğilimindeyim . Bu, bir değişiklik yaptıktan sonra sorunlarınızın nerede yattığını kesin olarak söyleyecektir - temelde yukarı akıştan delegasyonunuz doğruysa ve 2-3 ad sunucunuzun hepsi aynı cevabı veriyorsa ve birileri yeni kaydı göremiyorsa, sadece yerel ağlarının değişiklikleri görmesini beklemek zorunda kalacaklar. Bu denetleyici, sunucularınızdan birinin diğerleriyle aynı yanıtı vermediğini söylerse, bu sorunu çözmeniz gerekir.

DNS değişikliklerini anında yayınlamanın hiçbir yolu yoktur - peki, bunları anında yayınlayabilirsiniz, ancak dünyanın geri kalanı, her bir kaydın TTL ayarına göre gerisinde kalır, örneğin 86400 saniyelik bir TTL kaydı ayarladıysanız (örneğin bir gün) ve siz bir değişiklik yaparsanız, diğerleri eski rekoru bir güne kadar göreceklerdir, çünkü yerel önbellekleri sizden kaydın süresi sona erene kadar sormaz.

Herhangi bir büyük DNS değişikliği yapmadan önce, İnternet'teki önbellekleri çok eski kayıtlarda tutmamaya teşvik etmek için TTL'nizi 600'e (10 dakika) düşürmenizi öneririm. Ancak bazı önbellekler bunu görmezden gelecek veya 1 gün, hatta 1 hafta sürebilecek.

Başıboş bir soruya başıboş bir cevap, umarım içinde faydalı bir şeyler vardır.


1
+1. Daha açık olmak gerekirse, yalnızca TTL'nin süresi dolmamış olan önbellekte bilgileri olan DNS istemcileri bir değişiklikten etkilenecek. Önbellekte veri olmadığı için yeni istekler derhal çözülür.
joeqwerty


8

Evet, eski atasözü, "DNS değişikliklerinin internet üzerinden yayılması 24-48 saat sürebilir" daha doğru bir şekilde "DNS değişiklikleri, bu kaydı geçen 86400 saniye içinde sorgulayan herhangi bir DNS sunucusunda önbelleğe alınabilir."

Sunucunuzun çevrimdışı olması durumunda DNS’nizin fazlalığını sağlamak istiyorsanız, yedek DNS servisine bakmalısınız (dyndns.com’da olduğu gibi) veya kendi ikincil NS'nizi oluşturmalısınız.


5

İnternet'teki tüm DNS sunucuları "3. taraf kontrolünde" dir (sanırım, kök DNS sunucularını bir şekilde İnternet'e "özel" olarak kabul edersiniz, ancak kendi özel kökünüzü de neden açabilecek teknik bir neden yoktur).

DNS sunucunuz sağladığı her cevapta önerilen bir "yaşam süresi" (TTL) sunar. Uzaktan rezolverler (istemciler için özyinelemeli çözünürlüğü gerçekleştiren diğer DNS sunucuları, istemci çözümleyici kütüphaneler, vb) olan sözde kendi önbellekten atılmadan önce, o TTL için up cevabını önbelleğe.

Mevcut kayıtlarda yaptığınız değişiklikleri gerçek dünya sorgularına yansıtılmakta olan bir değişiklik görmüyorsanız, muhtemelen TTL değerleriniz, varolan cevapların çözücünün dışında kaldığını görmek için yeterince beklemeyeceğiniz kadar yüksek demektir. net etrafında önbellek.

Sunucu Arızasından Bazı Geçmiş: Neden DNS'e "Yayılım" deniyor?


2

İnternette birileri (veya bir bilgisayarı) dışarıda konuşacak şekilde, makinelerinizden birine bağlanmak istediklerinde, yerel ad sunucusundan ilgilendikleri ana bilgisayar adı ile eşleşen bir IP adresi isterler.

Öyleyse, birisine "hey, http://www.example.com adresindeki harika web siteme bakın" diyorsanız , diğer adamın bilgisayarı yerel ad sunucusuna "hey, www.example.com için IP adresi nedir?"

Yerel ad sunucusunun daha önce bu sorunun cevabını hiç aramadığını varsayarsak, kök sunucularından hangi sunucuların ".com" için aramaları yönettiğini bulmalarını ister. Bu cevabı aldığında, bu sunuculara "example.com" için hangi sunucuların aramaları yönettiğini soracaktır. Bu cevabı aldığında, bu sunuculardan "www.example.com" için bir IP adresi isteyip istemediğini soracaktır.

Example.com sunucusu / sunucuları www.example.com adresi için bir IP adresiyle yanıt verdiğinde, talep eden ad sahibine bu sorunun cevabını ne kadar süreyle hatırlaması gerektiği konusunda da bir ipucu verecektir. Bu ipucu "TTL" veya "yaşama zamanı" olarak adlandırılır ve saniye cinsinden ölçülür. Herhangi bir sunucunun TTL'ye dikkat edeceği garantisi yoktur - bazı ad sunucuları aramaların cevaplarını hiçbir zaman hatırlamayacak şekilde yapılandırılmış olabilir ve saniyede birkaç kez sorulsa bile işlemi her zaman tekrarlar. Diğer ad sunucuları, verinin yalnızca kısa bir süre için saklanmasını önermiş olsanız bile, belki de ağ trafiğini en aza indirmek istediklerinden, cevabı uzun süre saklayacak şekilde yapılandırılmış olabilir. TTL sadece bir öneri, bir gereklilik veya garanti değil.

Sorunuzun tam anlamıyla cevabı - neden DNS kayıtlarınız internete yayılmıyor? - yapmamaları gerektiği için bunu yapmıyor olmaları.

Ayrıca, DNS bilgilerini araştırmak veya hata ayıklamak için tasarlanmış bir siteyi kullanarak kendi DNS bilgilerinize bakıyorsanız, bu sitenin TTL öneriniz ne olursa olsun, verileri uzun süre veya hiçbir zaman önbelleğe almaması olasıdır, çünkü Sitenin amacı muhtemelen DNS sisteminin 5 veya 50 ya da 500 saniye önce değil, ŞİMDİ DOĞRU söyledikleriyle ilgili bilgi sağlamaktır. Bu nedenle değişiklikleriniz hemen yansıtılır ve siz ad sunucularınızın bağlantısını kestikten hemen sonra hizmetin çalışmasını durdurur.

Asıl sorunuzun "DNS sunucum yeniden başlatılırsa veya sabit diski ölürse, internetteki diğer insanlar web sayfalarımı görebilecekler" diye nasıl ayarlayabilirim?

Bu sorunun cevabı, etki alanınız için birkaç ad sunucusu kurmak ve farklı makinelerde çalıştırmalarını sağlamaktır - ideal olarak, sadece farklı fiziksel bilgisayarlar için değil, farklı ağ bağlantılarında, hatta farklı şehirlerde veya eyaletlerde veya kıtalarda bile. Bu isim sunucularının çoğu "köle" olarak ayarlanacaktır, bu da bilgileri için bir "ana" isim sunucusuna bakacakları ve daha sonra bu bilgileri veri isteyen herkes için tekrar edecekleri anlamına gelir.

Bu nedenle, etki alanı adı kayıt şirketinizle birlikte WHOIS verilerinizde, etki alanınız için dört ad sunucusu yapılandırabilirsiniz:

ns1.example.com ns2.example.com ns1.otherguy.com ns2.otherguy.com

ns1.example.com, geçerli DNS sunucunuzdur. ns2.example.com, şirketinizde / kuruluşunuzdaki başka bir makine olabilir - ideal olarak ns1.example.com ile aynı alt ağda ve aynı sunucu rafında (veya aynı adam masasının altında) değil.

ns1.example.com "ana" sunucu olarak kabul edilir ve DNS'inizi değiştirmek istediğinizde, değişikliklerinizi o makinede yaparsınız.

ns2.example.com, yalnızca ns1.example.com adresinde kurduğunuz verileri kopyalayan bir "köle" sunucusu olarak yapılandırılacaktır - ancak dış dünya, ana / köle ayrımını umursamıyor, ns2.example .com, sadece ns1.example.com olarak "resmi" olarak kabul edilecektir.

ns1.otherguy.com ve ns2.otherguy.com, başka bir yere kurulmuş makinelerdir - belki başka bir kuruluştaki bir arkadaşınız / meslektaşınızla, birbirleri için ad sunucusu çalıştırmak üzere bir düzenleme yaparsınız veya belki de dyndns.com ile ayarlanırsınız. veya everydns.net veya diğer ücretsiz veya ticari DNS sağlayıcılarından herhangi biri. Bununla birlikte, bu makineleri köle olarak yapılandırırsınız, böylece ornek.com'un DNS bilgilerini ns1.example.com adresinden ("usta") alırlar ve bu DNS bilgisini o makinedeki herhangi bir makineye sunarlar. bunun için sorar internet.

Etki alanı kayıt şirketiniz, etki alanınız için yeni NS kayıtlarını yayınladığında (yaklaşık olarak anında olması gerekir), ardından internetten çıkan bir kişi, hangi etki alanı adı sunucusunun "example.com" u kullandığını sorduğunda, dört yanıt alırlar -

ns1.example.com, ns2.example.com, ns1.otherguy.com, ns2.otherguy.com

Diğer adamın ad sunucusunun nasıl ayarlandığına bağlı olarak, bu dördü bir liste olarak ele alabilir ve "www.example.com" a nasıl erişeceklerini bir kerede sorabilir - veya dördüne de aynı soruyu sorabilir. Aynı zamanda, ilk önce hangi makinenin yanıtladığına cevap verin. Her iki durumda da, eğer ns1.example.com sabit disk öldüğünden veya yeniden başlatmaya karar verdiğinizden ya da her neyse, kapalıysa, diğer 3 makine soruyu cevaplamak için hazır olacak ve web siteniz görünmeye devam edecektir.

Bu sorunu çözmenin en kolay yolu, etki alanınız için DNS’i idare edecek bir DNS servis sağlayıcısına kaydolmaktır - bunun fiyatı, ay başına bağlı olarak, aylık ücretsiz ila binlerce (muhtemelen onlarca veya yüz binlerce) dolar arasında değişmektedir. İstediğiniz servis seviyesi. 30 ABD Doları / yıl ya da öylesine makul bir şekilde güvenilir hizmet alabilirsiniz. Ücretsiz hizmetler çok kötü değil ve bu nedenle oldukça iyi bir paranın karşılığını alma oranına sahipler, ancak web sitenize para kazanmak için bağımlıysanız, bir yıl boyunca DNS’de 30 ABD doları kazanmanız gerekir. .

Ardından, alan adı kayıt şirketinizdeki NS kayıtlarını değiştirmek için DNS servis sağlayıcısındaki talimatları uygulayın;


0

Diğerleri tarafından yapılan önbellekleme DNS sunucusu, kayıt için atanan TTL'ye bağlıdır. Senin durumunda TTL çok düşük ya da yüksek olabilir. DNS yapılandırmanız hakkında bize daha fazla bilgi verebilir misiniz?

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.