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
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 ...