Sıklıkla değişecek bir DNS kaydı mı? [kapalı]


17

Sıklıkla değişebilen bir alan adı kaydını nasıl yapabilirim?

Diyelim ki example.orgpuan verelim 203.0.113.0. İki dakika sonra işaret etmek zorunda 198.51.100.0.

Alan adının arkasındaki normal web siteleri (yalnızca normal web tarayıcıları kullanılarak erişilmesi anlamında "normal") ancak çok kısa ömürlü olacaktır. Alan adı, değiştirilmeden veya kapatılmadan önce en fazla 3-4 saat boyunca bir adrese işaret edecektir. DNS sunucusunu sık sorulan sorgulardan korumaya gerek yoktur.

Benim yaklaşımım TTL'yi 60 saniyeye ayarlamak ve anahtarın yapılması gerektiğinde kaydı değiştirmek olacaktır. En kötü senaryoda, kullanıcının yeni bir sunucuya erişmeden önce en fazla 60 saniye beklemesine neden olur.

Bir şekilde buna güvenmiyorum ... Bazı ISS'ler veya tarayıcılar TTL'yi yok sayabilir veya geçersiz kılabilir, değil mi? Geçerli bir endişe varsa, makul bir TTL ne beklenir?

Teşekkür ederim!


9
Neden tam olarak bu yeteneğe ihtiyacınız var? 3-4 saat sonra kaybolan altyapı üzerinde ne tür bir "normal web sitesi" çalışır? Akla gelen çözümler var, ancak hızlı DNS değişiklikleriyle ne yaptığınızı veya geçişler sırasında ne gibi davranışlar beklediğiniz net değil.
Michael - sqlbot

@ Michael-sqlbot, "normal" anlamda tarayıcı üzerinden erişilen bir web uygulamasıdır, ancak klasik bir web sitesi olmaktan çok uzaktır. Tek bir uygulama örneğinin ömrü birkaç saattir. Ben sadece onlar için paylaşılan alan adları havuzu kullanmak istiyorum. Yük dengeleme tekniğine bakmayı zaten tavsiye ettim. Ancak uygulama örnekleri birbirinin yerine kullanılamadığından, uygulanabileceğinden emin değilim.
Andrew8

4
Deneyimlerime göre, internetin belirsizlikleri DNS'yi 'hizmet takibi' için kötü bir aday yapıyor. Makinenizde, hatta şirket ağınızda veya arkadaşınızın lapa lapa geniş bandında çalışabilse de, dünyanın her yerinde, DNS'nizdeki herhangi bir değişikliği fark etmek için TTL'nizin birçok katını alan gerçekten korkunç müşteriler var gibi görünüyor.
Ralph Bolton

Bunun yerine neden bir IP yük devretme değil?
giammin

Yanıtlar:


38

Buna Fast Flux DNS Kayıtları denir . Ve genellikle kötü amaçlı yazılım yazarları altyapı sunucularını nasıl saklarlar.

Bu planınız için işe yarar olsa da, bu en iyi plan değildir. Çevrimiçi olarak yedek bir sunucuya veya daha fazlasına sahip olmanız ve neredeyse her zaman hiçbir şey yapmamanız gerekecektir. Yalnızca ana sunucu ile ilgili bir sorununuz olduğunda bir sonrakine geçersiniz.

1 dakikalık bir TTL'niz olsa bile, bir kayıt büyük olasılıkla bundan daha fazlası için geçerli olacaktır:

  1. Tarayıcı önbellekleri

    Tarayıcılar genellikle DNS kayıtlarını değişken bir süre için önbelleğe alır. Firefox 60 saniye , Chrome da 60 saniye , IE 3.x ve önceki sürümleri 24 saat , IE 4.x ve üstü 30 dakika önbellek kullanır.

  2. İşletim sistemi önbelleği

    Windows genellikle TTL'yi onurlandırmaz . DND için bir TTL, bir IPv4 paketi için TTL'ye benzemez. Zorunlu bir yenilemeden ziyade tazeliğin bir göstergesidir. Linux, DNS TTL'yi göz ardı ederek kullanıcının istediği süreyi ayarlayacak şekilde yapılandırılmış olabilir. Örneğin, girişleri bir hafta boyunca önbelleğe alabilir.

  3. ISS önbelleği

    İSS'ler trafiği azaltmak için agresif önbellekleme kullanabilir (ve bazıları kullanacaktır). Sadece TTL'yi değiştirmekle kalmaz, aynı zamanda kayıtları önbelleğe alabilir ve akış yukarı DNS sunucuları sormadan istemcilere geri gönderebilirler. Bu, mobil ISS'lerde daha yaygındır, çünkü TTL'yi değiştirirler, böylece mobil istemciler trafik gecikmesinden şikayet etmezler.

Tam olarak ne istediğinizi yapmak için bir yük dengeleyici yapılır. Yük dengeleyici takılıyken, yükü bölerek aynı anda çevrimiçi 2 veya 4 veya 10 sunucunuz olabilir. Bunlardan biri çevrimdışı olursa, hizmet bundan etkilenmez. DNS kayıtlarını değiştirmek, sunucunun kapanıp DNS'nin değiştiği zaman arasında bir kesinti süresi olacaktır. Bir dakikadan fazla sürecektir, çünkü kesinti süresini tespit etmeniz, kayıtları değiştirmeniz ve yayılmalarını beklemeniz gerekir.

Bu yüzden bir yük dengeleyici kullanın. Ne istediğinizi yapmak için yapılmış ve ne olacağını tam olarak biliyorsunuz. Hızlı akı DNS kurulumunun karışık ve tutarsız sonuçları olacaktır.


11
Yine de bir yük dengeleyici kullanın. Yüksek kullanılabilirliğe, esnek bir havuza, günlüklere, çok sayıda metrik ve istatistiğe sahip olacaksınız, bir sunucuyu veya diğerini önceliklendirebilir ve daha az baş ağrısına sahip olabilirsiniz.
ThoriumBR

4
Evet, muhtemelen bir yerde korkunç bir İSS'nin DNS değişikliğinizi alması saatler veya bir gün sürdüğünü göreceksiniz.
Robyn

2
@Mehrdad Nasıl tanımladığınıza bağlı olarak, öyle. Almanya'da, bir ADSL hattınız varsa, PPPoE aracılığıyla kimlik doğrulaması yapmanız ve ardından çevirmeli bağlantı aralığından bir IP adresi atamanız gerekir. Yakın zamana kadar (ve bazı hatlarda hala), bağlantınız 24 saat sonra kesildi, bu yüzden tekrar giriş yapmak zorunda kaldınız (veya CPE'niz sizin için yaptı).
glglgl

3
@ Glglgl'nin yorumuna eklemek için: Önemli olan nokta, her yeniden giriş yaptığınızda size başka bir IP adresi atanmasıdır . Bu davranış niyeti vardı: Sağlayıcılar, kullanıcıların SOHO'larında bu şekilde sunucu çalıştırmasını engellemek istemişlerdir.
Binarus

1
@Binarus sadece bu değil, aynı zamanda 2000 aboneli bir ISS'nin havuzlarında 2000 IP yok. Her müşteri aynı anda etkin olmayacağından, bazı kullanıcıların bağlantısı kesilir kesilmez, başka bir müşteri aynı IP'yi bağlayıp alabilir.
ThoriumBR

6

DNS ve nasıl çalıştığı belki de BT'nin herhangi bir yönü olarak daha fazla yanlış anlama, efsane, batıl inanç ve mitolojiye eşlik eder.

Değişikliklerin "yayılması" hakkında konuştuğumuzda aslında yalan söylediğimizi (veya en azından aşırı derecede basitleştirdiğimizi) bilenlerimiz bile - aynı anda - son derece basit ve anlaşılır bir şeyi tanımlamak için bu terimi kullanmaya eğilimlidir ... ancak açıklanması zor ... ve kendiliğinden yayılma ile ilgisi yoktur , ancak her ikisi de sistemin nasıl çalıştığının (ve tartışmasız, doğrudan çöküşü nasıl önlediğinin) temel bir bileşeni olan önbellekleme ve negatif önbellekleme ile ilgili her şey kendi ağırlığı) - esasen iç-dış, gerçek "yayılma" tersi - itme değil.

Kısa TTL'lerle ilgili tüm endişe verici ve elle sıkılanlar için, onları denemek sizin çıkarlarınızda olabileceği noktaya kadar, daha sık çalışma eğilimindedirler. $ {Day_job} adresinde, sitelerimiz "eski" bir platformdan "yeni" bir platforma geçtiği zaman, çoğu zaman altyapıdaki hiçbir şeyin paylaşılmayacağı şekilde geçiş yaptıkları anlamına gelir. Böyle bir geçişteki ilk adımım, eski TTL'nin kaçmak için birden fazla katına sahip olması için TTL'yi kesimden yeterince 60s'ye düşürmek ve kısa TTL'leri olan bu geçiş RR'lerinin "yayılacağı konusunda makul bir güvence vermek. ." Kesime hazır olduğumda, eski dengeleyiciyi yeni sisteme (İnternet üzerinden) saç tokası trafiğini yeniden yapılandırmak için yeniden yapılandırıyorum, böylece dengeleyici artık birden fazla dahili sistemi dengelemiyor, bunun yerine "

Sonra DNS'yi kapatıyorum ve yeni dengeleyiciyi ve eskiyi izliyorum.

Geçişin ne kadar hızlı gerçekleştiğine her zaman hoş bir sürprizim var. Mekânlar hemen hemen her zaman arama örümcekleri ve eski kayıtlara açıklanamayan üçüncü taraf "sağlık kontrolü" siteleri gibi görünüyor.

Ancak tahmin edilebilir şekilde çöken bir senaryo var: Bir kullanıcının tarayıcı pencereleri açık kaldığında, zaten keşfedilen adrese geçme eğilimindedir ve çoğu zaman tüm tarayıcı pencereleri kapanana kadar devam eder.

Ancak yukarıdaki anlatıda, sorunun çözümünü bulacaksınız: "yük dengeleyici" - özellikle ve daha kesin olarak, ters bir proxy - maruz kalan DNS kaydınızın işaret ettiği sistem olabilir.

Ters proxy daha sonra isteği doğru hedef IP adresine iletir, bu da kısa bir TTL ile ikinci bir "kukla" ana bilgisayar adını kullanarak çözer, bu da gerçek arka uç sunucuyu işaret eder.³ Çünkü proxy, DNS TTL'sini her zaman kukla DNS girişi, hızlı ve eksiksiz bir geçiş olduğundan emin olabilirsiniz.

Aşağı tarafı, trafiği gereksiz ekstra altyapı üzerinden yönlendiriyor olabilirsiniz veya birden fazla ağ sınırı boyunca taşımacılık için fazladan ödeme yapıyor olabilirsiniz.

Küresel düzeyde bu tür yetenekler sunan hizmetler var ve en çok tanıdığım hizmet CloudFront. (Büyük olasılıkla, Cloudflare yaptığım küçük test ortamının da doğru davrandığını gösterdiğinden ve başkalarının da olduğundan emin olduğumdan tamamen aynı amaca hizmet edecekti.)

Öncelikle bir CDN olarak pazarlansa da, CloudFront özünde , yanıtları isteğe bağlı olarak önbelleğe alma özelliğine sahip küresel bir ters proxy ağıdır . Eğer www.example.comCloudFront ve CloudFront için işaret ettiği bu istekleri iletmek üzere yapılandırılır backend.example.comve DNS kaydını backend.example.comkullanımları kısa TTL o onur yapar kısa TTL çünkü, daha sonra CloudFront, doğru olanı yapacağız. Arka uç kaydı değiştiğinde, trafiğin tümü TTL çalıştığında taşınır.

CloudFront'u gösteren ön taraftaki kayıttaki TTL ve tarayıcıların ve önbellek çözücülerin onurlandırıp onurlandırmadıkları önemsizdir, çünkü arka uç hedefteki değişiklikler www.example.comkayıtta değişiklik gerektirmez ... yani "İnternet" doğru hedef ile ilgili olarak www.example.com, arka uç sisteminin nerede olduğuna bakılmaksızın tutarlıdır.

Bu, benim için, kökeni, sunucunun IP'sindeki değişiklikleri "takip etme" gereksinimini ortadan kaldırarak sorunu tamamen çözer.

tl; dr: istekleri, gerçek web sunucusu için proxy olarak işlev gören bir sisteme yönlendirin, böylece tarayıcıya bakan DNS'yi değil, yalnızca proxy yapılandırmasının kaynak sunucu IP'sindeki değişikliği karşılaması gerekir.

CloudFront'un ayrıca, ön tarafa uyguladığı bazı DNS sihriyle gecikmeyi en aza indirdiğini , bu da www.example.comsorgulayan tarayıcının konumuna bağlı olarak en uygun CloudFront kenar konumuna çözümle sonuçlandığını unutmayın; www.example.comtarayıcıdan kenara, kökenine ... ancak bu bölüm saydam ve otomatiktir ve sorunun kapsamı dışındadır.

Ve tabii ki, içerik önbellekleme de kaynak sunucu veya aktarım üzerindeki yükü azaltarak değerli olabilir - Kaynak sitenin bir ADSL devresinde olduğu ve ADSL'nin akış yukarı bant genişliği için doğal olarak kısıtlandığı CloudFront üzerinde web siteleri yapılandırdım. İçeriği getirmek için CloudFront'un bağlandığı kaynak sunucunun AWS ekosisteminin içinde bir sunucu olması gerekmez.


Multiple Dengeleyiciyi aslında birden fazla düğümü olduğunda tek bir varlık olarak konuşuyorum. Dengeleyici bir ELB olduğunda, dengeleyicinin arkasındaki bir makine kukla bir uygulama sunucusu gibi davranır ve ELB bunu tek başına yapamayacağı için yeni platformun dengeleyicisine gerçek saç tokasını yapar.

² Yeni dengeleyicinin eskisi hakkındaki tek bilgisi, eski dengeleyicinin X-Forwarded-For'a güvenmesi ve eski dengeleyicinin kaynak adreslerinde IP tabanlı bir hız sınırlaması yapmaması gerektiğidir.

Proxy Proxy, denetlediğiniz bir veya daha fazla sunucu olduğunda, arka tarafta DNS kullanarak atlama ve yalnızca proxy yapılandırmasında IP adreslerini kullanma seçeneğiniz vardır, ancak daha sonra tartışılan barındırılan / dağıtılan senaryoda bu ikinci DNS katmanına ihtiyaç vardır .


2
Her zamanki gibi başka bir harika cevap için teşekkürler. "$ {Day_job} $ 'da, sitelerimiz" eski "bir platformdan" yeni "bir platforma geçtiğinde, [...]": Orada bulundum, bunu yaptım. 1!
gf_

4

DNS kayıtlarını değiştirdiğimde, genellikle eski IP adresinin aylarca kullanılacağı anlamına gelir. Bunu söyledikten sonra, örneğin Amazon'un yedek hizmet oluşturmak için kullandığı yalnızca birkaç saniyelik bir TTL'dir.

DNS'yi değiştirmek yerine, önüne bir proxy sunucu / yük dengeleyici koyabilirsiniz.


1
Testlerimde TTLçoğu zaman 60 saniye çalışıyor gibi görünüyor, ancak 10-20 dakika civarında bir gecikme yaşayan bazı müşterilerim vardı.
Andrew8

1

Dinamik DNS kullanmayı düşünebilirsiniz. Bu, @glglgl'nin yukarıdaki yorumda belirttiği senaryo için tasarlanmıştır. Daha önce de belirtildiği gibi, müşteriler görmezden gelmek için özgür oldukları için% 100 etkili olmayabilecek düşük bir TTL kullandıklarına inanıyorum. Ama "oldukça iyi" çalışıyor.

IP'nizi sık sık değiştirmeseniz bile, TTL'nizi makul tutmak önemlidir. Yıllar önce, eskiden çalıştığım şirket IP'lerinizin değişmesine neden olan değişmiş İSS'ler için çalışıyordu. Ne yazık ki, eski DNS kayıtları uzun zamandır tutulmak için TTL'imizi bir ay gibi saçma bir şeye ayarlamıştık.


TTL'yi onurlandırmayan çok sayıda ISS seviyesi DNS sunucusu var. DNS bilgilerini yılda iki kez değiştiren bir ürün üzerinde çalışıyorum. DNS sunucuları olan eski bilgilerimizi değiştirdikten sonra birkaç haftaya kadar önbelleğe alan birçok kişi var. Müşteri tarafını kontrol etmedikçe, bu iyi çalışmaya güvenmeyin.
Michael Gantz
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.