4. Server Reply Source Address Selection (サーバー応答元アドレス選択)
ほとんど(すべてではないにしても)のDNSクライアントは、応答を受信するアドレスが、その応答を引き出すクエリを送信したアドレスと同じであることを期待しています。これは、再帰クエリ解決の目的でクライアントとして機能するサーバーと、単純なリゾルバクライアントの両方に当てはまります。アドレスは、応答内の識別子(ID)とともに、応答の曖昧性を解消し、偽の応答をフィルタリングするために使用されます。これはDNSが設計されたときに意図されていたかどうかはわかりませんが、今や事実となっています。
DNSサーバーを実行している一部のマルチホームホストは、クライアントのリクエストパケットの宛先アドレスと同じではないソースアドレスを使用して応答を生成します。このような応答は、応答のソースアドレスがクライアントが元のリクエストを送信したホストのソースアドレスと一致しないため、クライアントによって破棄されます。つまり、それは未承諾の応答のように見えます。
4.1. UDP Source Address Selection (UDPソースアドレス選択)
これらの問題を回避するために、サーバーはUDPを使用してクエリに応答する際、応答を引き起こすクエリを含むパケットのIPヘッダーの宛先アドレスフィールドにあったアドレスにIPヘッダーのソースアドレスフィールドを設定して応答を送信しなければなりません (must)。これにより、この目的で許可されていないIPアドレスから応答が送信される場合、サーバーに割り当てられた任意の合法的なIPアドレスから応答を送信してもよい (may) です。そのアドレスは、クライアントがさらなるクエリにそれを使用できる可能性を最大化するように選択されるべきです (should)。すべてのアドレスがすべての潜在的なクライアントから等しくアクセス可能でないように構成されたサーバーは、エニーキャスト、マルチキャスト、または同様のアドレスに送信されたクエリに応答する際に特に注意する必要があります (need)。
4.2. Port Number Selection (ポート番号選択)
すべてのクエリへの応答は、それらが送信されたポートに向けられなければなりません (must)。TCPを介してクエリが受信される場合、これはトランスポートプロトコルの固有の部分です。UDPによって受信されたクエリの場合、サーバーはソースポートに注意を払い、それを応答の宛先ポートとして使用しなければなりません (must)。応答は常に、それらが向けられたポートから送信されるべきです (should)。特別な状況を除いて、これはDNSクエリに割り当てられた既知のポート [RFC1700] になります。