Zum Hauptinhalt springen

4. Auswahl der Quelladresse der Serverantwort

Die meisten, wenn nicht alle DNS-Clients erwarten, dass die Adresse, von der eine Antwort empfangen wird, dieselbe Adresse ist wie diejenige, an die die die Antwort auslösende Anfrage gesendet wurde. Dies gilt für Server, die als Clients für die Zwecke der rekursiven Anfrageauflösung handeln, ebenso wie für einfache Resolver-Clients. Die Adresse wird zusammen mit dem Bezeichner (ID) in der Antwort verwendet, um Antworten auseinanderzuhalten und unerwünschte Antworten herauszufiltern. Dies mag bei der Entwicklung des DNS beabsichtigt gewesen sein oder auch nicht, ist aber heute eine Tatsache.

Einige Multi-Homed-Hosts, die DNS-Server betreiben, erzeugen eine Antwort unter Verwendung einer Quelladresse, die nicht mit der Zieladresse aus dem Anfragepaket des Clients übereinstimmt. Solche Antworten werden vom Client verworfen, weil die Quelladresse der Antwort nicht mit derjenigen eines Hosts übereinstimmt, an den der Client die ursprüngliche Anfrage gesendet hat. Das heißt, sie erscheint als unverlangte Antwort.

4.1. Auswahl der UDP-Quelladresse​

Um diese Probleme zu vermeiden, müssen Server beim Beantworten von Anfragen über UDP dafür sorgen, dass die Antwort mit dem Quelladressfeld im IP-Header gesendet wird, das auf die Adresse gesetzt ist, die im Zieladressfeld des IP-Headers des Pakets stand, das die die Antwort auslösende Anfrage enthielt. Wenn dies dazu führen würde, dass die Antwort von einer IP-Adresse gesendet wird, die für diesen Zweck nicht zulässig ist, darf die Antwort von jeder legalen, dem Server zugewiesenen IP-Adresse gesendet werden. Diese Adresse sollte so gewählt werden, dass die Wahrscheinlichkeit maximiert wird, dass der Client sie für weitere Anfragen verwenden kann. Server, die so konfiguriert sind, dass nicht alle ihre Adressen von allen potenziellen Clients gleichermaßen erreichbar sind, müssen besonders sorgfältig vorgehen, wenn sie Anfragen beantworten, die an Anycast-, Multicast- oder ähnliche Adressen gesendet werden.

4.2. Auswahl der Portnummer​

Antworten auf alle Anfragen müssen an den Port gerichtet werden, von dem sie gesendet wurden. Bei über TCP empfangenen Anfragen ist dies ein inhärenter Teil des Transportprotokolls. Bei über UDP empfangenen Anfragen muss der Server den Quellport beachten und ihn als Zielport in der Antwort verwenden. Antworten sollten stets von dem Port gesendet werden, an den sie gerichtet waren. Außer unter außergewöhnlichen Umständen wird dies der wohlbekannte Port sein, der für DNS-Anfragen zugewiesen ist [RFC1700].