6 votes

Désactiver le cache DNS PHP

J'ai besoin de récupérer les derniers enregistrements A d'un DNS dans un script. Le script effectue certaines opérations de surveillance. Le TTL par défaut de l'enregistrement DNS est de 5 minutes, mais le script de surveillance s'exécute toutes les minutes. J'utilise la fonction PHP dns_get_record pour obtenir les enregistrements A, mais je me demandais s'il y avait un moyen de négliger la mise en cache du TTL et d'obtenir les enregistrements du serveur DNS sans les mettre en cache.

Bien sûr, y a-t-il un moyen de forcer cela de sorte qu'aucun cache au niveau du réseau ne soit applicable et qu'à chaque fois que j'exécute le script, il frappe réellement le serveur DNS ?

Remerciements Sparsh Gupta

7voto

Shadur Points 1247

Un client ordinaire n'a pas la possibilité d'exiger d'un serveur DNS en cache qu'il vide son cache et interroge les serveurs faisant autorité. C'est une question de conception - je laisserai au lecteur le soin de déterminer la quantité de dégâts DDoS que vous pourriez provoquer.

Si vous devez absolument avoir l'enregistrement non mis en cache, interrogez votre serveur de noms habituel pour obtenir l'enregistrement NS du domaine cible, puis interrogez directement le serveur faisant autorité.

NOTE : Ceci est généralement considéré comme un comportement impoli et ne devrait être utilisé qu'en dernier recours - qu'est-ce qui, précisément, est si horriblement critique que vous ayez absolument besoin d'une re-vérification parfaite à chaque minute juste au cas où un enregistrement aurait changé sans que vous vous en rendiez compte ?

... D'ailleurs, pourquoi vos TTL sont-ils par défaut de cinq minutes ?

ETA : La plupart des serveurs DNS, en particulier les serveurs de transfert, refusent catégoriquement d'honorer un TTL inférieur à 3600 secondes. Si vous avez de la chance, leur valeur par défaut sera d'au moins 1 heure ; dans le cas contraire, elle sera de 86400 secondes (24 heures), valeur communément admise...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X