Soru DNS Önbelleğe Alma PHP'yi Devre Dışı Bırak


Bir komut dosyasında bir DNS'nin en son A kayıtlarını almam gerekiyor. Komut, bazı izleme işlemleri yapıyor. DNS kaydının Varsayılan TTL'si 5 dakikadır, ancak izleme komut dosyası her dakika çalışır. A kayıtları almak için PHP'nin dns_get_record işlevini kullanıyorum ama TTL önbelleğe alma işlemlerini ihmal edip DNS sunucusundaki kayıtları önbelleğe almama ve bir önleme yapmanın bir yolu olup olmadığını merak ediyorum.

Tabi ki, herhangi bir ağ seviyesi önbelleği uygulanmayacak ve betiği her çalıştırdığımda, aslında DNS sunucusuna ulaşır mı?

Teşekkürler Sparsh Gupta


6
2017-08-05 10:01


Menşei




Cevaplar:


Hayır. Normal bir istemci, önbelleğini temizleyen ve yetkili sunuculara gereksinim duyan bir önbellek DNS sunucusu talep etme yeteneğine sahip değildir. Bu tasarım gereğidir - aksi takdirde okuyucu için bir alıştırma olarak alabileceğiniz DDoS hasarı miktarını bırakacağım.

Önbelleğe alınmamış bir kayda kesinlikle sahip olmanız gerekiyorsa, hedef alan adınızın NS kaydı için normal ad sunucunuzu sorgulayın, ardından yetkili sunucuyu doğrudan sorgulayın.

NOT: Bu genellikle kaba bir davranış olarak kabul edilir ve son çare olarak kullanılmamalıdır - tam olarak ne kadar hassas bir şekilde, ne kadar dikkat çekmeden bir kayıt değiştiğinde her dakika mükemmel bir tekrar kontrol etmeniz gerekir.

... Bu nedenle, TTL'leriniz neden varsayılan olarak beş dakikadır?

ETA: Vahşi, özellikle yönlendirici olanların çoğunda bulunan DNS sunucularının çoğu, 3600 saniyeden daha az bir TTL değerini onurlandırmaktan vazgeçer. Şansınız varsa, varsayılan olarak en az 1 saat olurlar; değilseniz, varsayılan olarak 86400 saniyede (24 saat) varsayılan kabul edilirler ...


7
2017-08-05 10:16



... ayrıca 3600 saniyeden daha az bir TTL'nin istenen etkiye sahip olması olası değildir. - symcbean
İyi bir nokta. Cevap değişiyor. - Shadur
Peki .. Birden fazla sunucu arasında trafiği ayıran DNS yuvarlak Robin'imiz var. IP failover konfigürasyonlarına henüz sahip değiliz. Bu, sunuculardan birinin aşağı inmesi durumunda, buna trafik göndermeye devam edeceğimiz anlamına gelir. Bunu önlemek için DNS kayıtlarını aramak ve sunucu durumlarına göre eşlemek istiyorum. Devletlerle ilgili son tahlilde devletler hakkında bilgi vermeden aynı bilgiyi alacağım bir planım var ama bununla ilgili daha fazla mesele olabilir. - Sparsh Gupta
... Çeşitli kalp atışı çözümlerine bakmanızı tavsiye ederim. YAKINDA. DNS yayılımı, iyi bir yük devretme olmak için yeterince hızlı olmak için CLOSE bile değildir. - Shadur
@Sparch Gupta: "Sunuculardan biri aşağı giderse, buna trafik göndermeye devam edeceğiz" - Hayır, TCP el sıkışma zaman aşımına uğramalı ve ardından farklı bir adrese tekrar denemelisiniz - sadece kurulan bağlantıları kaybedersiniz ve yük devretme gecikmesini alırsınız . - symcbean