Aller au contenu principal

4. Sélection de l'adresse source de réponse

La plupart, sinon la totalité, des clients DNS s'attendent à ce que l'adresse depuis laquelle une réponse est reçue soit la même que celle à laquelle la requête ayant suscité cette réponse a été envoyée. Cela vaut pour les serveurs agissant en tant que clients aux fins de la résolution récursive de requêtes, comme pour les simples clients résolveurs. L'adresse, conjointement avec l'identifiant (ID) figurant dans la réponse, sert à lever l'ambiguïté entre les réponses et à filtrer les réponses parasites. Cela a peut-être, ou peut-être pas, été voulu lors de la conception du DNS, mais c'est désormais un fait établi.

Certains hôtes multi-hébergés (multi-homed) exécutant des serveurs DNS génèrent une réponse en utilisant une adresse source différente de l'adresse de destination du paquet de requête du client. De telles réponses seront rejetées par le client, car l'adresse source de la réponse ne correspond pas à celle d'un hôte auquel le client a envoyé la requête d'origine. Autrement dit, elle apparaît comme une réponse non sollicitée.

4.1. Sélection de l'adresse source UDP​

Pour éviter ces problèmes, les serveurs, lorsqu'ils répondent à des requêtes utilisant UDP, doivent faire en sorte que la réponse soit envoyée avec le champ d'adresse source de l'en-tête IP positionné sur l'adresse qui se trouvait dans le champ d'adresse de destination de l'en-tête IP du paquet contenant la requête ayant provoqué la réponse. Si cela devait entraîner l'envoi de la réponse depuis une adresse IP non autorisée à cette fin, la réponse peut alors être envoyée depuis n'importe quelle adresse IP légale allouée au serveur. Cette adresse devrait être choisie de manière à maximiser la probabilité que le client puisse l'utiliser pour des requêtes ultérieures. Les serveurs configurés de telle sorte que toutes leurs adresses ne sont pas également joignables depuis tous les clients potentiels doivent prendre un soin particulier lorsqu'ils répondent à des requêtes envoyées à des adresses anycast, multicast ou similaires.

4.2. Sélection du numéro de port​

Les réponses à toutes les requêtes doivent être dirigées vers le port depuis lequel elles ont été envoyées. Lorsque les requêtes sont reçues via TCP, cela fait partie intégrante du protocole de transport. Pour les requêtes reçues via UDP, le serveur doit tenir compte du port source et l'utiliser comme port de destination dans la réponse. Les réponses devraient toujours être envoyées depuis le port vers lequel elles ont été dirigées. Sauf circonstances extraordinaires, il s'agira du port bien connu attribué aux requêtes DNS [RFC1700].