Que se passe-t-il lorsque votre TTL est foutu dans votre enregistrement DNS?

13

Que se passe-t-il lorsque quelqu'un accède à votre contrôle DNS et définit un TTL de 100 ans sur votre domaine, tout en pointant son IP vers un site Web obscur?

(et vous le découvrez trop tard bien sûr)

Dirk Boer
la source
10
Le gars en charge est viré.
Xavier Lucas
5
Juste une petite note: la valeur TTL maximale est 2 ^ 31-1, ce qui est juste un peu plus de 68 ans :) Voir RFC 2181 .
Sven

Réponses:

21

Ryan a fourni une excellente réponse à une interprétation de votre question. Compte tenu de notre public cible et de la situation des personnes les plus susceptibles de tomber sur la question, je vais répondre à une autre.

Que fait une entreprise lorsqu'un mauvais TTL se retrouve dans la nature?

Vous avez ici quelques options. Mais avant tout, vous devez identifier le vecteur de problème et l'éliminer. Essayer de contenir les dégâts est inutile lorsque vous n'avez aucun contrôle sur le problème qui se répète.

  1. Attendez. Si ce n'est pas un record crucial, vous pouvez probablement l'attendre. Comme Ryan l'a couvert, le «dommage maximal» n'est pas de 68 ans, mais en pratique, il est fort probable qu'il soit de 7 jours. Il s'agit de la valeur par défaut la plus courante pour la durée de vie maximale d'une entrée de cache positive (BIND, JunOS, etc.). Même dans les cas où cela n'est pas exact, on peut espérer que le serveur reçoit des mises à jour de sécurité de routine qui forcent un redémarrage du processus. S'exprimant en tant qu'opérateur de plusieurs grands clusters, je ne pense pas qu'un MSO puisse définir cela à une valeur plus élevée exprès: cela ne sert qu'à générer plus de demandes externes (que nous détestons). Vous devrez peut-être passer aux prochaines étapes pour les entreprises utilisant des logiciels moins populaires ou les opérateurs qui se détestent.
  2. Agacer les opérateurs de cache DNS. Si vous avez besoin de supprimer les enregistrements du cache dès que possible, votre seul vrai choix est de contacter les plus grands fournisseurs de DNS récursifs auxquels vous pouvez penser et de progresser. Certaines de ces sociétés sont susceptibles de vous ignorer: soit elles pensent que votre entreprise est trop petite pour que leurs clients s'en soucient, soit elles mettent en place des politiques de purge du cache qui leur sont propres pour minimiser le nombre d'appels de support auxquels elles doivent faire face. Dans ce dernier cas, ils hausseront probablement les épaules et laisseront le problème se régler à l'heure prévue. Votre entreprise a créé ce problème pour elle-même, après tout.
  3. Demandez aux clients FAI de déranger leur FAI pour vous. Si cela fait quelques jours et qu'un grand FAI ignore l'enregistrement mis en cache, essayez d'obtenir un de leurs clients de se plaindre et de générer un ticket interne à cette société. C'est plus difficile pour eux d'ignorer, mais cela ne vous gagnera aucune faveur avec leur équipe d'opérations car de leur point de vue, vous vous êtes fait ça. S'il s'agit d'une répétition, ils commenceront probablement à annuler ces billets juste pour vous contrarier.
  4. Conseillez à vos partenaires de contourner l'enregistrement DNS. S'il s'agit d'un enregistrement DNS critique utilisé par vos partenaires et qu'aucune des options ci-dessus n'est acceptable (c'est-à-dire que vous perdez des revenus à la minute), votre entreprise n'a pas d'autre choix que de travailler avec ses partenaires pour contourner le problème. S'ils ne contrôlent pas leur cache local, cela se fait généralement en insérant des entrées dans la table d'hôtes des systèmes concernés car cela évite d'avoir à modifier les programmes qui utilisent l'enregistrement DNS. Cela n'est viable que si la perte de revenus est liée à la sélection de quelques entreprises consommant les données. Dans tous les autres cas, vous êtes coincé avec les trois premières options.
Andrew B
la source
3
À titre d'exemple pour l'option 2, Google Public DNS a cette page pour effacer son cache.
Bardi Harborow, le
16

Eh bien, tout d'abord, le manuel de configuration de Bind que je regarde indique que TTL est un entier signé 32 bits, exprimé en secondes, ce qui lui donne un maximum théorique de 2 ^ 31. Ça dit

Les TTL valides sont compris entre 0 et 2147483647 secondes.

Ou environ 68 ans. Donc, vous ne pouvez probablement pas le fixer à 100 ans en premier lieu.

Supposons donc que vous le fixiez à 68 ans. Il est assez clair ce qui se passerait. Les résolveurs DNS qui respectaient le TTL extrêmement long sur vos enregistrements DNS les mettaient en cache aussi longtemps qu'ils le pouvaient. Certains résolveurs DNS ne respectent pas du tout les TTL et implémentent simplement leur propre politique de mise en cache comme ils le souhaitent.

La raison pour laquelle nous ne pouvons pas mettre un seul chiffre dur sur les maximums est qu'il existe de nombreuses implémentations différentes de DNS créées par de nombreux fournisseurs différents, et qu'ils utilisent tous des variables légèrement différentes. Par exemple, un serveur DNS fonctionnant sur Juniper JunOS ne durera que 604800 secondes, ou 7 jours, sur le TTL.

Ryan Ries
la source
Cela signifie donc que lorsque quelqu'un pirate le contrôle DNS de la société X le met sur 68 ans et transmet l'IP à pornhub, il a en fait détruit le nom de domaine «pour toujours» ?? : X
Dirk Boer
11
En supposant que vous avez corrigé le problème, il est peu probable que les serveurs DNS en aval passent 68 ans sans que leurs caches soient effacés, par redémarrage, par exemple. Il est également probable que les résolveurs DNS en aval mettent en œuvre leur propre idée de "MAXTTL" qui met un plafond plus raisonnable sur les TTL reçus tels que 3 jours au lieu de 68 ans. Lisez la RFC 2308 comme exemple de ce dont je parle.
Ryan Ries
4
Concernant BIND en particulier, il a une limite par défaut de 7 jours. max-cache-ttl: "Définit la durée maximale pendant laquelle le serveur mettra en cache les réponses ordinaires (positives). La valeur par défaut est une semaine (7 jours)."
Håkan Lindqvist