Qu'est-ce qu'une «requête DNS récursive»? [fermé]


15

Quelqu'un peut-il expliquer en bref ce que signifie "requête DNS récursive" et comment elle peut être considérée comme mauvaise ?


Je savais qui avait écrit ça juste à partir du titre. Je ne sais pas pourquoi vous continuez à publier des informations DNS ici, mais ce n'est pas du tout spécifique à Unix / Linux. Personnellement, je pense que c'est une question décente, mais ce n'est pas sur le sujet ici, et je ne pense pas que nous ayons un autre site dans le réseau qui le veuille
Michael Mrozek

Est-ce vraiment hors sujet ici? Considérant que probablement 90% des serveurs DNS du monde fonctionnent sur unix / linux? Peut-être que la question aurait pu être reformulée: "Comment puis-je configurer mon serveur DNS pour répondre aux requêtes récursives, et pourquoi devrais-je éviter cela?" mais est-ce vraiment "hors sujet?" Juste curieux.
gabe.

Il pourrait sans doute être considéré comme un meilleur ajustement sur security.stackexchange.com, mais je ne vois aucune raison réelle de le rejeter ici carrément ...
Shadur

Réponses:


25

TL; DR : les requêtes récursives font partie du fonctionnement d'Internet et du DNS, mais tous les serveurs DNS ne devraient pas recevoir de requêtes récursives, et lorsque ceux qui ne devraient pas répondre répondent, vous pouvez rencontrer des problèmes.

Version plus longue:

Récursion, n: Voir sous Récursivité.

Une requête DNS récursive se produit lorsque le serveur DNS auquel vous avez demandé l'adresse, par exemple, unix.stackexchange.com ne connaît pas la réponse elle-même, il doit donc vérifier auprès d'un autre serveur.

Normalement, c'est en fait ainsi que fonctionne DNS - le serveur DNS de votre FAI n'a pas les enregistrements de domaine Internet en entier mémorisés en permanence pour des raisons évidentes, donc l'échange suivant se produit sous le capot:

  1. Vous: Hey, navigateur, montrez-moi http://unix.stackexchange.com

  2. Navigateur: bien sûr! ... Hm. Je ne sais pas vraiment de quelle adresse IP il s'agit.

    Hé, OS, pouvez-vous me dire où trouver unix.stackexchange.com?

  3. OS: Bien sûr ...

    Hmm. Ce n'est pas dans mon propre fichier d'hôtes. Laissez-moi vérifier ma configuration de résolveur ...

    Hé, le serveur DNS du FAI, pouvez-vous me dire où trouver unix.stackexchange.com?

  4. Serveur DNS du FAI: c'est sûr!

    ... Hmmm. Celui-ci ne figure pas dans ma liste de domaines faisant autorité, et pour l'instant je n'ai pas cette réponse en cache.

    Hé, serveurs racine Internet, pouvez-vous me dire qui fait autorité pour stackexchange.com?

  5. Serveurs racine Internet: c'est sûr! Selon nos dossiers, vous souhaitez ns1.serverfault.com, ns2.serverfault.com ou ns3.serverfault.com.

  6. Serveur DNS du FAI: Merci, serveurs racine Internet!

    Salut, ns2.serverfault.com, pouvez-vous me dire où trouver unix.stackexchange.com?

  7. ns2.serverfault.com : Bien sûr! C'est l'adresse 64.34.119.12

  8. Serveur DNS du FAI : super, merci!

    OS, le nombre que vous recherchez est 64.34.119.12.

  9. OS: Super, merci!

    Navigateur, vous avez besoin de l'adresse 64.34.119.12

  10. Navigateur: super, merci!

    D'accord, appelant la page maintenant.

  11. Vous: oui, merci navigateur!

Gardez maintenant à l'esprit qu'il existe en fait deux types de serveurs de noms interrogés ici - les serveurs DNS faisant autorité (les serveurs dits "racine" qui ont indiqué au serveur DNS de votre FAI où trouver le serveur DNS de SE.com et le serveur DNS faisant autorité de SE.com ) et les serveurs DNS récurrents ou de transfert (le serveur DNS de votre FAI).

Normalement, le premier type n'est pas censé répondre aux requêtes récursives, surtout pas en dehors de leur propre domaine. Les petits FAI économisent parfois sur les coûts en faisant en sorte que leur serveur de noms faisant autorité principal soit le même que leur serveur de noms de transfert principal, mais cela est quelque peu dangereux - en particulier si vous ne configurez pas votre serveur pour refuser les requêtes récursives en dehors de votre propre plage IP.

Lectures complémentaires ici sur Wikipedia .


Autant que je sache, les serveurs racine devraient vous diriger vers les .comserveurs, et à partir de là, le serveur récursif du FAI pointerait vers le serveur de SE.com.
Hanan N.

Oui, mais j'ai pensé que je le garderais au moins / quelque peu / simplifié mais compréhensible.
Shadur

Je pense que vous avez oublié l'étape 12: Michael Mrozek: "Hé, LanceBaynes, je savais qui a écrit ça juste à partir du titre ..."
Alois Mahdal

Excellent! réponse a été upwoted1
Valentin Bajrami

5

S'il y a 2 serveurs DNS, DNS-A est l'autorité pour le domaine-a et DNS-B est l'autorité pour le domaine-b, et quelqu'un envoie une requête DNS à DNS-A pour une recherche du domaine-b. DNS-A serait alors récursif en envoyant une demande à DNS-B afin de rechercher le domaine-b. Essentiellement, une requête récursive est lorsqu'un serveur DNS, au nom du client qui a envoyé la requête, poursuit la piste du DNS afin de répondre à la demande.

C'est très bien si vous hébergez un serveur DNS pour un réseau, comme un bureau et que toutes les machines de ce bureau utiliseront le serveur DNS pour effectuer toutes les recherches. C'est mauvais si vous autorisez quelqu'un à effectuer des requêtes récursives DNS. Cela est également mauvais si vous hébergez un serveur DNS qui est uniquement censé répondre aux demandes d'un certain domaine. Si quelqu'un demande une recherche pour un autre domaine, le serveur DNS doit renvoyer une erreur au lieu de faire une récursivité.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.