4. Auswahl der Quelladresse der Serverantwort (Server Reply Source Address Selection)
Fast alle (wenn nicht alle) DNS-Clients erwarten, dass die Adresse, von der sie eine Antwort empfangen, dieselbe ist wie die Adresse, an die sie die Abfrage gesendet haben, die die Antwort ausgelöst hat. Dies gilt unabhängig davon, ob der Client ein Server ist, der im Rahmen der rekursiven Abfrageauflösung als Client fungiert, oder ein einfacher Resolver-Client. Die Adresse wird zusammen mit dem Bezeichner (ID) in der Antwort verwendet, um die Antwort eindeutig zu machen und gefälschte Antworten herauszufiltern. Ob dies bei der Entwicklung des DNS beabsichtigt war, ist nicht bekannt, aber es ist heute eine Tatsache.
Einige Multi-Homed-Hosts, auf denen DNS-Server laufen, erzeugen Antworten mit einer Quelladresse, die nicht dieselbe ist wie die Zieladresse des Abfragetelegramms des Clients. Solche Antworten werden vom Client verworfen, da die Quelladresse der Antwort nicht mit der Quelladresse des Hosts übereinstimmt, an den der Client die ursprüngliche Anfrage gesendet hat. Das heißt, sie erscheint als eine unaufgeforderte Antwort.
4.1. Auswahl der UDP-Quelladresse (UDP Source Address Selection)
Um diese Probleme zu vermeiden, muss die IP-Adresse im IP-Header der Antwort für UDP die Adresse im Zieladressfeld des IP-Headers des Pakets sein, das die Abfrage enthielt, welche die Antwort auslöste. Das heißt, wenn der Server eine Antwort auf eine über UDP eingegangene Abfrage erzeugt, muss er die Quelladresse im IP-Header der Antwort auf die Adresse setzen, die im Zieladressfeld des IP-Headers des Pakets stand, das die auslösende Abfrage enthielt. Dies ist der einzige Fall, in dem die als Quelle einer Antwort verwendete Adresse von der als Quelle der Abfrage (oder Anforderung) verwendeten Adresse abweichen darf. Beachten Sie, dass die als Quelle der Antwort verwendete Adresse dieselbe ist wie die als Ziel der Abfrage verwendete Adresse und somit keine „gefälschte" Adresse ist.
Für TCP ist die als Quelle der Antwort verwendete Adresse stets dieselbe wie die als Ziel der Abfrage verwendete Adresse, und die als Quelle des Antwort-Ports verwendete Portnummer ist stets dieselbe wie die als Ziel der Abfrage verwendete Portnummer. Dies ist dem TCP-Protokoll inhärent.
Für UDP muss die Quelladresse der Antwort die Zieladresse der Abfrage sein, und der Quellport der Antwort muss der Zielport der Abfrage sein. Die Antwort muss von dem Port gesendet werden, an den sie gerichtet ist, mit Ausnahme des Falls eines Servers, der aus Sicherheits- oder anderen Gründen einen anderen Port verwendet.
4.2. Auswahl der Portnummer (Port Number Selection)
Alle Antworten auf Abfragen müssen an den Port gerichtet werden, von dem die Abfrage gesendet wurde. Wenn die Abfrage über TCP empfangen wurde, ist dies dem Transportprotokoll inhärent. Für über UDP empfangene Abfragen muss der Server den Quellport beachten und diesen als Zielport der Antwort verwenden. Die Antwort sollte stets von dem Port gesendet werden, an den sie gerichtet ist, mit Ausnahme des Sonderfalls eines Servers, der aus Sicherheits- oder anderen Gründen einen anderen Port verwendet. Dies wird in der Regel der für DNS-Abfragen zugewiesene well-known Port sein [RFC1700].