web-dev-qa-db-fra.com

Qu'est-ce que RFC encourage les serveurs DNS à répondre refusés à des requêtes pour des domaines inconnus?

Cette question est très très Semblable à RFC nécessitant des serveurs DNS pour répondre aux demandes de domaine inconnus Mais je pensais que je devrais la poser comme une nouvelle question.

Il semble qu'il s'agisse d'une pratique standard pour un serveur DNS faisant réagir avec RCODE REFUSED à une requête pour un nom de domaine pour lequel le serveur n'est pas autoritaire. Par exemple:

$ Dig @ns1.google.com yahoo.com A | grep status
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 53533

Il y a quelques comportements alternatifs qui pourraient avoir un sens ici, a priori:

  • Blackhole la requête entièrement
  • Renvoyer une réponse non autoritaire NXDOMAIN
  • Renvoie une réponse non autoritaire NOERROR (ceci est stupide, mais je le mentionne pour la complétude)
  • Renvoyez une référence en conserve sur les serveurs de noms de racine (c'est même Sillier)

Existe-t-il un document RFC ou similaire qui dit: "Thou Shalt Retour REFUSED dans ce cas"?

Je m'attendrais à voir une discussion sur cette situation dans RFC 1034 Section 4.3.1 et 4.3.2 , mais je ne le fais pas.

4
Quuxplusone

C'est vraiment simple, RFC1035 Section 4.1.1 RCode 5

Refused - The name server refuses to perform the specified operation 
for policy reasons.  For example, a name server may not wish to
provide the information to the particular requester, or a name server 
may not wish to perform a particular operation (e.g., zone transfer) 
for particular data.

Les administrateurs du système ont décidé de configurer leur système pour renvoyer une réponse refusée plutôt que de faire autre chose.

5
user9517

Je ne crois pas qu'il existe une déclaration pivotante dans les documents de normalisation (au moins pas les RFC DNS originaux) de la manière de traiter ce scénario particulier.
[.____] Cela dit, au fil des ans, le consensus a plus ou moins devenir que REFUSED est la meilleure option de quels outils que nous avons disponibles.

Je vais décrire certaines réflexions sur certaines des différentes options ci-dessous:

Les options décrites dans la question

Blackhole la requête entièrement

C'est mauvais pour l'opérateur du serveur autoritaire, car cette approche rendrait le serveur apparaître en panne, ouverture des scénarios où le recouvrement de serveurs l'a observé à plusieurs reprises ne répondant pas à leurs requêtes et n'abandonnez-la tout à fait que le QNAME.

Il est également mauvais de la perspective du client car cela pourrait conduire à attendre que le délai d'expiration expire plutôt que d'avoir rapidement une erreur.

(Je considérerais cela la pire option.)

Renvoyer une réponse non autoritaire NXDOMAIN

Cela n'est pas conforme à la manière dont NXDOMAIN est utilisé autrement. NXDOMAIN est utilisé pour indiquer que vous savez qu'un nom n'existe pas, pas cela vous ne savez rien du nom.

Renvoie une réponse non autoritaire NOERROR (ceci est stupide, mais je le mentionne pour la complétude)

Tout d'abord, je vais noter que la variante "référence à la racine" est un cas particulier de celui-ci.

L'argument contre NXDOMAIN s'applique à NODATA (NOERROR + SOA dans la section de l'autorité) également avec un ajustement mineur; C'est un statut qui est utilisé pour indiquer que vous savez qu'il n'y a pas de tels rrset), pas si vous manquez de connaissances.
[.____] En outre, NODATA suggère que vous sachiez que ce nom existe sous une forme ou une forme (par exemple, il peut avoir des enregistrements d'autres types ou qu'il peut s'agir d'un non-terminal vide).

NOERROR indique que la requête a été considérée comme valide et responsable, il devrait donc y avoir une forme de réponse. Si cette question qui ne peut pas être répondue, NOERROR semble être un mauvais ajustement.

Renvoyez une référence en conserve sur les serveurs de noms de racine (c'est même Sillier)

C'était un moyen très courant de traiter cela dans le passé. Le contenu de la réponse n'est pas utile en soi, mais il s'agit d'une réponse de référence valablement formée qui indique au moins clairement que le serveur interrogé ne connaît pas ce nom.

(Je pense que c'est probablement la forme la moins idiote de NOERROR utiliser dans ce contexte.)

Autres options

Statut REFUSED

REFUSED est généralement considéré comme la meilleure approche, indique que le serveur est configuré pour ne pas répondre à cette requête. Globalement, une bonne ajustement, que ce soit ou non, il n'est pas explicitement mandaté qu'il doit être utilisé dans ce cas particulier.

Statut SERVFAIL

Également utilisé par certaines implémentations de serveur.
[.____] moins clair que REFUSED en ce sens qu'il indique clairement que la non-réponse est délibérée; SERVFAIL est normalement utilisé pour des erreurs inattendues rencontrées lors du traitement des requêtes valides.

5
Håkan Lindqvist

Voici une réponse partielle, commençant par ce blog Dyndns J'ai trouvé.

Du point de vue du serveur de noms, il est demandé de répondre à une question en dehors de sa capacité de réponse configurée (DNS Pun!). Il n'a pas de fichier de zone pour ce nom de domaine et, par conséquent, il n'a rien à répondre avec. Après - RFC 1035 , n serveur de noms conforme doit émettre une réponse de RCODE 5 (refusée). Ceci est un refus car le "Le serveur de noms refuse d'exécuter l'opération spécifiée pour des raisons de politique" .

En principe, il devrait être vraiment étrange qu'un serveur de noms reçoive une requête pour un nom pour lequel il n'est pas faisant autorité. Après tout, l'acte même de déléguer un serveur de noms d'un parent implique de réclamer (à autorité) que les serveurs de noms nommés par NS enregistrements sont les bons noms de noms. Donc, historiquement, de nombreux noms de noms a répondu avec une référence à la racine.

Il apparaît aujourd'hui que cette réponse est largement dédaignée par les opérateurs DNS (en partie parce qu'il peut être utilisé dans des attaques d'amplification), et de nombreux noms de noms ces jours-ci rendront une erreur. L'erreur est souvent RCODE 5 (refusée), sur le motif que le serveur de noms refuse d'effectuer l'opération spécifiée pour des raisons politiques. Parfois, vous verrez un RCode 2 (servfail), pour la même raison pour laquelle vous voyez que lorsqu'une zone est en cours de chargement par un serveur de noms: le serveur ne peut pas réellement répondre à la requête encore, et ne sait pas si cela pourra le faire.

Googling for "référence à la racine" a révélé une publication du DNS-OCARC intitulé "Références ascendantes jugées nuisibles" :

Récemment, la société d'hébergement Isprime est devenue la victime d'une attaque DDO basée au DNS utilisant des adresses source spoofed. Certains l'appellent une attaque d'amplification parce que la requête ". Dans NS" est assez petite (47 octets) tandis qu'une réponse de référence ascendante est un peu plus grande (256 octets). ... L'attaque apporte un ancien débat de retour dans la lumière: Qu'est-ce qu'une réponse appropriée du serveur de nomeraud à une requête qui ne peut pas être répondue ? La configuration et/ou la mise en œuvre de certains serveurs de noms faisant autorité leur permet de renvoyer une référence ascendante à la zone racine. Nous recommandons à ce comportement pour un certain nombre de raisons:

  • Les références ascendantes sont généralement inutiles. Le résolveur qui est itérant à travers l'espace sait déjà où commencer.
  • Un résolveur itératif approprié devrait envisager la référence ascendante "hors de BAILIWICK" et ignorer les données de toute façon.
  • Les "astuces" de la zone racine du serveur de noms faisant autorité peuvent devenir obsolètes au fil du temps si elles ne sont pas correctement maintenues, entraînant une délivrance de requêtes aux adresses de serveur racine à déclirement.
  • Des références ascendantes sont connues pour causer des "boucles de référence" qui entraînent des centaines de requêtes inutiles.

Nous pensons qu'un code de réponse refusé est meilleur qu'une référence ascendante. ...

De plus, dans RFC 7719 (publié en décembre 2015), nous trouvons:

Historiquement, de nombreux serveurs faisant autorité ont répondu avec une référence à la zone racine lorsqu'ils sont interrogés pour un nom pour lequel ils n'étaient pas faisant autorité, mais cette pratique a diminué.

Ainsi, "référence à la racine" est clairement une idée horrible - mais en toute justice, c'était déjà mon alternative "plus si la plus si". Je n'ai pas encore compris ce qui serait faux avec une nxomaine non autoritaire ou similaire. Je pourrais mettre à jour cette réponse plus tard.

3
Quuxplusone