DNSクライアントは、複数の回答を受け取ったときにIPアドレスをどのように選択しますか?


25

DNSサーバーがクライアントのIPアドレスを検索し、クエリする複数のDNSサーバーのリストを受信した場合、どのように1つを選択しますか?同様に、DNSクライアントがFQDNの複数のIPアドレスのリストを受信した場合、どのように1つを選択しますか?それは実装固有ですか、それともRFCでカバーされていますか?

回答:


18

クエリを解決するDNSサーバーは、応答時間の履歴データ(RFC1035セクション7.2)に基づいて、リストされているサーバーを使用する順序に優先順位を付けることができます。また、より近いサブネットによって優先順位が付けられる場合があります(RFCでこれを見たことがありますが、どれを思い出せません)。履歴またはサブネットの優先度が利用できない場合、ランダムに選択するか、単に最初のものを選択します。上記のさまざまな組み合わせを行うDNSサーバーの実装を見てきました。

(A / AAAAレコードの)リストからIPアドレスを選択するクライアントプログラムは、通常、DNSサーバーから返された順序でアドレスを試行します(ラウンドロビン)。クライアントが返された最初のIPアドレスに接続できない場合、2番目のIPアドレスを試す必要があります。たとえば、すべての主要なブラウザはこれを行いますが、他の多くのインターネットクライアントプログラムはこの手順を「忘れ」、最初のIPアドレスに接続できない場合は失敗します。


4

RFC 1794は、あなたが尋ねているラウンドロビンの質問をカバーしています。

回答に関する限り、ほとんどのDNSクライアントはリストの最初のIPアドレスを使用し、サブネット計算を使用してより近いものを見つけたり、ランダムに選択したりしますが、ほとんどはリストを送信するDNSサーバーに依存します。


3

クライアントによって異なります-Windowsショップを運営している人にとって特に重要なのは、Vista \ Windows Server 2008が最初のアドレスを選択する以前のWindowsバージョンとは異なるメカニズム(ipv6スタックがインストールされている場合)を使用してアドレスを選択するという事実です。多くの場合、これは、常に同じものを選択することを意味します。つまり、以前のバージョンと同じ方法でDNSラウンドロビン応答を「尊重」しません。これに関する詳細な説明は、このtechnetブログ記事にあります。

リンクされた記事は、Windows 7とServer 2008 R2がこのデフォルトの動作を再び変更するが、それをバックアップするものが見つからないことを示しています。

また、これは、私が知る限り、これがipv6の標準に準拠した動作であることを指摘する価値があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.