たとえば、ドメイン名domain.comを登録し、レジスト
ラーサーバーにネームサーバーレコードns1.domain.comを追加しました。
ns2.domain.com。
ns3.domain.com。
domain.comを検索するよりも。3つのネームサーバーアドレスをすべて取得します。
1.そのサーバーのうち、どれがさらに要求されるのか、そしてその理由は?
2.ゾーンファイル内のNSレコードの順序は重要ですか?
3. RFCで決定されていますか?
たとえば、ドメイン名domain.comを登録し、レジスト
ラーサーバーにネームサーバーレコードns1.domain.comを追加しました。
ns2.domain.com。
ns3.domain.com。
domain.comを検索するよりも。3つのネームサーバーアドレスをすべて取得します。
1.そのサーバーのうち、どれがさらに要求されるのか、そしてその理由は?
2.ゾーンファイル内のNSレコードの順序は重要ですか?
3. RFCで決定されていますか?
回答:
悲しいことに、ここでの答えは「依存する」です。依存する要因は、ドメイン、所有サーバーの設定方法、およびローカルDNSの設定方法によって異なります。
まず、たとえば、返されるNSレコードに関しては、これらのレコードが返される順序をランダム化することは完全に許可されているため、要求するたびに順序が異なる場合があります。一方、それはすべてのDNS実装によって行われるわけではないため、静的に順序付けられたリストを取得する可能性があります。ポイントは、あなたが確信できないことです。
次に、一部のDNS実装は各NSを並列にクエリし、最初に応答した方を使用します。他の人はそれぞれをヒットし、いくつかのリクエストで最速を決定し、そのリクエストを使用します。または、単にラウンドロビンにすることもできます。
DNSには複数のRFCがありますが、私が見つけた2つの有用なRFCは次のとおりです。
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1033.html
これは無回答のものであり、取り上げる決定的なものはありませんが、上記を考えると、特定のドメインの動作を決定する唯一の真の方法はテストすることです。
世界中のISPなど、クライアントレベルで見た最も一般的な実装は次のとおりです。
このプロセスは、すべてのレコード検索に対して繰り返されます。ただし、最初のクエリのみがジョブ全体を実行します。ネームサーバーIPはその後キャッシュされ、ISPのキャッシュDNSサーバーへの後続のクエリはすぐにステップ8にジャンプできます。
ここで、ステップ8のランダム化に関しては、レコードレベルで機能します。そのISPのブロードバンド加入者が次の記録について質問したとしましょう。
各レコードは、独自の個別の「エンティティ」として処理され、個別にキャッシュおよび検索されます。そのため、サブスクライバーとISPが以前にドメインに遭遇したことがなく、両方ともキャッシュされたレコードが完全にゼロだとします。検索は次のようになります。
キャッシュされたレコードの有効期限が切れるたびにプロセスが繰り返されるため、そのレコードに対する後続のリクエストが同じサーバーを再び使用することさえわかりません。
したがって、すべてのDNSサーバーが互いに完全に同期し、すべての DNSレコードをすべてのサーバーに完全にミラーリングすることを確実にすることが絶対的な最大の目標です。あなたは決して DNSクライアントが当たっされるサーバーを知っていないと、あなたはどのような順序を何に頼ることはできません。そのようなことはない。
さらに、Adam Cが述べたように、サーバーレベル(example.com)のDNSサーバー自体がNSレコードを返し、それらの順序をランダム化できます。貧弱なDNS実装が最初に返されたnamserverを常に選択するというわずかな偶然で、通常のDNSサーバーがNSレコードをランダム化することは非常に一般的です。ただし、ルートTLDネームサーバー(前述)はリストをランダム化することはありません。ドメインの解決に関しては、リストが本当に重要です。そのため、ほとんどの実装では、常に同じサーバーにアクセスして過負荷になることを避けるために、ネームサーバーリストからランダムなサーバーを選択します。
さて、これがDNSの仕組みと覚えておくべきことの入門書です。
免責事項:DNSを管理するよりも人生の目標は高いかもしれませんが、別売りです。想像力を働かせてください。;-)