Forum général.cherche-logiciel Cherche cache DNS

Posté par .
Tags : aucun
1
22
déc.
2010
Bonjour à tous,

Histoire de remplacer mon ensemble hétéroclite de scripts fait à la rache (tm) dans un quart de douzaine de langages par un logiciel maintenable et maintenu, je cherche un cache DNS qui fonctionnerait ainsi :
- Si l’info demandée n’est pas en cache, passe la requête à un autre serveur DNS, puis la met en cache et répond (classique ça, on le trouve dans tout cache DNS digne de ce nom ; la différence se trouve dans le point suivant)
- Si l’info demandé est dans le cache, répond immédiatement avec la donnée cachée (même si son TTL a expiré), et lance dans tous les cas en arrière plan la requête de mise à jour de la donnée (même si la donnée date d’il y a quelques secondes).
- Le cache doit être persistant (sur disque). Toujours sans TTL mais avec rafraichissement en arrière-plan pour tout requête.
Le but :
- que ça continue à répondre même si le DNS « parent » meurt pendant plusieurs heures (ce qui n’est pas le cas avec les cache DNS classiques : une réponse dont la durée de vie est dépassée est supprimée, sans se préoccuper de savoir si on peut effectivement avoir une réponse plus fraîche). Voire plusieurs jours (d’où la persistance sur disque).
- que ça réponde TOUJOURS instantanément, même pour la requête qui causerait la suppression de l’enregistrement puis son rafraichissement (car obsolète) dans un cache DNS classique.

Cher forum, si tu pouvais me dénicher cette perle rare, ce serait pour moi un excellent cadeau de noël :)
  • # tu as vu la lune ?

    Posté par . Évalué à 2.

    desolé c'etait facile avec un pseudo comme le tiens.

    Dans les DNS que je connais un peu djbdns, bind9
    ce sont souvent des DNS relay plus que des caches.

    en gros ils prennent les entrées des DNS racines et les conservent le temps du TTL.

    ce qu'il te faudrait en fait c'est simple un DNS secondaire (en mode esclave)
    qui serait donc mis à jour quand le primaire change
    mais qui conserverait les données quand le DNS primaire tombe

    seulement tu ne peux pas etre DNS esclave des DNS "maitre" que tu ne maitrises pas
    • [^] # Re: tu as vu la lune ?

      Posté par . Évalué à 2.

      > ce qu'il te faudrait en fait c'est simple un DNS secondaire (en mode esclave)
      > qui serait donc mis à jour quand le primaire change
      > mais qui conserverait les données quand le DNS primaire
      Pas vraiment, un esclave est le miroir d’un maître, hors ici je n’ai pas de maître, puisque je veux pouvoir cacher n’importe quoi de la base DNS entière, sans pour autant faire un miroir de la base DNS entière.
      C’est bien un récursif qui cache les résultats d’un autre récursif que je cherche, pas un miroir d’un authoritative.
      • [^] # Re: tu as vu la lune ?

        Posté par . Évalué à 2.

        et si la reponse etait d'utiliser un 2e DNS independant

        car finalement, c'est ca le truc

        dans tes machines tu as generalement 2 DNS configurés (/etc/resolv.conf)
        si ces 2 DNS sont chez des fournisseurs differents (ton FAI et google ?)

        quel est la probabilité pour que les 2 soient down en meme temps ?

        du coup tu peux avoir un DNS local à ton installation, qui fait du relay vers les DNS FAI/Google
        et donc toujours avoir une reponse
        • [^] # Re: tu as vu la lune ?

          Posté par . Évalué à 1.

          Sauf que là où je veut mettre en place cette solution, UDP est bloqué au niveau de la gateway vers internet, donc pas la peine de penser à utiliser un DNS externe.
          De toute façon, un DNS externe sera toujours plus lent qu’un DNS local, et la vitesse de résolution m’importe :)
          • [^] # Re: tu as vu la lune ?

            Posté par . Évalué à 2.

            de memoire les requetes DNS sont tentées par defaut en UDP et bascule sur TCP en cas de probleme
  • # Ça ne doit pas exister en l'état

    Posté par (page perso) . Évalué à 1.

    répond immédiatement avec la donnée cachée (même si son TTL a expiré)

    Le cache doit être persistant (sur disque).

    En gros tu voudrais quelque chose qui soit à l'opposé de ce qui est demandé par les normes et les pratiques techniques courantes.

    M'est avis que soit tu as une liste d'hôtes assez limitée et tu peux t'en tirer avec un fichier hosts ou de zone locale, soit il faudra prendre le code d'un resolver DNS existant et l'adapter à tes besoins.

    Et par curiosité je ne vois pas dans quelle situation on peut se retrouver à exiger des réponses DNS aussi rapides et "stables".
    • [^] # Re: Ça ne doit pas exister en l'état

      Posté par . Évalué à 3.

      > il faudra prendre le code d'un resolver DNS existant et l'adapter à tes besoins.
      C’est déjà ce que j’ai fait à gros coups de scripts Python + shell avec unbound, je cherchais juste si une solution plus maintenue était possible.

      > Et par curiosité je ne vois pas dans quelle situation on peut se retrouver à exiger des réponses DNS aussi rapides et "stables".
      Deux situations :
      - Quand j’étais en résidence étudiante, on avait pas d’UDP autorisé sur l’extérieur, et le serveur DNS qui tombait régulièrement les vendredis soir et rétabli le lundi matin. C’est à cette époque que j’avais fait ces scripts, d’ailleurs.
      - Là (ce qui m’a incité à ressortir mes vieux scripts, voir qu’ils marchent plus, et chercher une solution plus maintenue), je suis sur une je-sais-pas-quoi box avec une QoS merdique, et je ne sais pas pour trop quelle raison, chaque résolution DNS prend plusieurs secondes (si je me fie à mon "looking up" dans la barre d’état de firefox).
      • [^] # Re: Ça ne doit pas exister en l'état

        Posté par . Évalué à 4.

        - Quand j’étais en résidence étudiante, on avait pas d’UDP autorisé sur l’extérieur, et le serveur DNS qui tombait régulièrement les vendredis soir et rétabli le lundi matin. C’est à cette époque que j’avais fait ces scripts, d’ailleurs.

        la personne qui partageait la connexion devait couper l'appareil le vendredi soir en quittant le travail et le rallumer le lundi ;)

        ou la fameuse femme de menage du vendredi qui debranche, et l'admin qui rebranche en rentrant le lundi


        - Là (ce qui m’a incité à ressortir mes vieux scripts, voir qu’ils marchent plus, et chercher une solution plus maintenue), je suis sur une je-sais-pas-quoi box avec une QoS merdique, et je ne sais pas pour trop quelle raison, chaque résolution DNS prend plusieurs secondes (si je me fie à mon "looking up" dans la barre d’état de firefox).


        ca me rappelle les problemes livebox <=> machine linux avec ipv6
        ou les requetes sont d'abord tentées en ipv6 puis apres echec, sont tentées en ipv4.
        • [^] # Re: Ça ne doit pas exister en l'état

          Posté par . Évalué à 2.

          > la personne qui partageait la connexion devait couper l'appareil le vendredi soir en quittant le travail et le rallumer le lundi ;)
          Ha non, ça tombait aussi régulièrement les autres soirs (1 sur 5 à peu près), mais comme ça tombait juste pour la nuit, c’était pas aussi chiant. Là, c’était juste un serveur DNS en mousse qui tenait pas la charge, et des admins qui étaient en week-end :)

          > ca me rappelle les problemes livebox <=> machine linux avec ipv6
          C’est peut-être ça. Comme c’est pas ma box, j’ai pas pris la peine d’investiguer :). Je vais rapidement voir si c’est ça, merci
        • [^] # Re: Ça ne doit pas exister en l'état

          Posté par . Évalué à 3.

          C’était ça, merci :)
      • [^] # Re: Ça ne doit pas exister en l'état

        Posté par . Évalué à 2.

        Désactive l'IPV6 dans firefox, j'ai lu quelque part que celui-ci lancait dews requetes DNS en IPV6 et que ça ralentissait les perfs.
    • [^] # Re: Ça ne doit pas exister en l'état

      Posté par . Évalué à 2.

      Par curiosité, quels sont les arguments contre cette approche ? Je l’ai utilisée pendant plusieurs années sans aucun souci.
      • [^] # Re: Ça ne doit pas exister en l'état

        Posté par (page perso) . Évalué à 4.

        Par curiosité, quels sont les arguments contre cette approche ? Je l’ai utilisée pendant plusieurs années sans aucun souci.

        Ce n'est pas tant un problème d'arguments, mais de principe : quand un service proposé est mauvais je veux bien bricoler un peu de choses de mon côté pour combler les manques, mais quand le service est très mauvais, j'aurai plutôt tendance à aller demander des explications au responsable plutôt que de tenir des bricolages à bout de bras.

        Après, je comprends que selon la situation, les tempéraments et l'envie de bidouiller, chacun agisse d'une manière ou d'une autre.
        • [^] # Re: Ça ne doit pas exister en l'état

          Posté par . Évalué à 2.

          Ça se passait dans une résidence du CROUS. Là bas, le responsable est caché derrière un firewall administratif totalement imperméable (des générations d’étudiants ont essayé avant moi ;)).
  • # pdnsd

    Posté par (page perso) . Évalué à 3.

    http://www.phys.uu.nl/~rombouts/pdnsd/index.html#aboutpdnsd

    pdnsd is a proxy DNS server with permanent caching (the cache contents are written to hard disk on exit) that is designed to cope with unreachable or down DNS servers (for example in dial-in networking).


    Ca semble approchant : cache persistant sur le disque, fonctionne sans réponse des DNS "parent".
    • [^] # Re: pdnsd

      Posté par . Évalué à 2.

      C’est presque exactement ce que je cherchais, merci pour le lien :) (manque plus que la réponse immédiate & mise à jour en arrière plan)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.