誰かが私にexactブラウザの動作に関する情報を、ブラウザが特定のホスト名(たとえば、ip1とip2)に対して複数のAレコードを取得し、そのうちの1つにアクセスできない場合に案内できますか?.
次のような正確な詳細に興味があります(ただし、これらに限定されません)。
ここで、ブラウザが最初にip2の動作を試みたと仮定しましょう。
もちろん、それはすべてブラウザに依存している可能性があり、バージョンやプラットフォームによっても異なる可能性があるため、最大限の詳細を提供させていただきます。
これの目的-ラウンドロビンDNSベースが使用され、ホストの1つが失敗したときにユーザーが正確に何を体験するかを理解しようとしています。
DNSロードバランシングがどれほど悪いのかは尋ねていません。「やらない」、「悪い考え」、「ハートビート/プロキシ/ BGP /何でも必要」などの回答は控えてください。
結局のところ、私は自分で「研究」をしなければなりませんでした。これがChromium(バージョン12.0.742.112)の動作(ubuntu 11.04で実行)です。
一般的には、次のように機能します。タイムアウトになると(189秒後)、1番目のIPを試し、2番目のIPを試します。すべてのIPが試行されるまで、エラーメッセージは表示されません。次の接続は、最初のIPから再び開始されます(2秒間前に失敗し、2番目のIPが機能した場合でも、ブラウザーは関係ありません)。
興味深いことの1つ-TCPユーザーがキャンセルを押しても接続試行はドロップされません。つまり、キャンセルを押して60秒後に再試行をクリックすると、ページは130秒で表示されます(最初の試行から189) 。)しかし、[キャンセル]をクリックして[更新]をクリックするとafter190秒経過すると、プロセスは最初から開始されます。
元の質問の項目について:
未検証。 このブログ 状態Chrome chrome:// net-internals /#dnsを見ると、DNSを最大1分間キャッシュします:
容量:100成功エントリの存続時間(ms):60000失敗エントリの存続時間(ms):0
最初のIPが機能する場合、プロセスは同じで、最初の試行で常に成功します。
あなたが望まないことを人々に話す代わりに、それがあなたが達成しようとしていることを説明してみませんか?
必要なものがすべて既知のデータである場合は、自分で調べてみるか、話しているブラウザー(何百ものブラウザー)のドキュメントを読んでください。
ただし、これはDNSとは関係がないことを理解するのに役立ちます。
ブラウザがリクエストを受け取った場合、ブラウザはまずさまざまなキャッシュを調べて、URLが存在しないかどうか、またはホスト名が存在しているかどうかを確認します。
そうでない場合、システムリゾルバにヒットしてホスト名を解決します。
返されたIPが応答しない場合、これは内部的にnegative lookup resultとしてキャッシュされるため、別のAレコードにヒットすることを期待して同じURLを再度直接リクエストすることになります。否定的なIPの結果とともにホスト名の結果を保存するため、何の役にも立ちません。
または、もっと詳しい情報を提供できます。
編集:私はあなたがすべての厳しいとsmartasseryの間でいくつかの情報を提供したのを見ます。
結構:
また、DNSレコードがすべての場所、特にクライアントにキャッシュされていることを知らないようです。これらのレコードは、ドメイン所有者が何を意図しているか、またはあなたと彼の間のキャッシュの構成に応じて、期限切れになります。 1時間から1日が一般的であるため、マッドマンのように更新をヒットした場合にリゾルバーが別のDNSクエリを実行することを期待しないでください。