例:ドメイン名を登録しました 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実装は、それぞれにヒットし、いくつかの要求で最も速いものを決定して、それを使用します。または、単にラウンドロビン。
DNSには複数のRFCがあり、私が見つけた2つのより有用なものは次のとおりです。
http://www.faqs.org/rfcs/rfc1912.html
http://www.faqs.org/rfcs/rfc1033.html
私はこれが答えのないものであり、あなたが取り除く決定的なものは何もないことに気づきますが、上記を考えると、特定のドメインの動作を決定する必要がある唯一の真の方法はテストすることです。
世界中のISPなど、私がクライアントレベルで見た最も一般的な実装は次のとおりです。
このプロセスは、すべてのレコード検索で繰り返されます。ただし、最初のクエリだけがすべての作業を行います。その後ネームサーバーIPがキャッシュされ、ISPのキャッシュDNSサーバーへの後続のクエリはすぐにステップ8にジャンプできます。
ステップ8のランダム化については、レコードレベルで機能します。そのISPのブロードバンド加入者が次の記録について尋ねたとしましょう:
各レコードは、独自の個別の「エンティティ」として処理され、個別にキャッシュされて検索されます。したがって、サブスクライバーとISPがドメインに出会ったことがなく、キャッシュされたレコードが完全にゼロであるとします。検索は次のようになります。
キャッシュされたレコードがソフト期限切れになるたびにプロセスが繰り返されるため、そのレコードに対する後続のリクエストで同じサーバーが再び使用されることもわかりません。
したがって、DNSサーバーのallが互いに完全に同期し、完全にミラーリングevery DNSレコードがすべてのサーバーにわたっていることを確認することが絶対最大の目標です。あなたnever DNSクライアントがヒットするサーバーを知っており、いかなる順序にも依存することはできません。そのような事はありません。
さらに、Adam Cが述べたように、サーバーレベル(example.com)のDNSサーバー自体がNSレコードを返し、それらの順序をランダム化します。通常のDNSサーバーがランダム化することは非常に一般的です。彼らのNSレコードは、貧弱なDNS実装が常に最初に返されるnamserverを選択するというわずかなオフチャンスを記録します。ただし、ROOT TLDネームサーバー(前述)は決してリストをランダム化せず、それらのリストはドメインの解決に関して本当に重要なことです。それが、most実装がネームサーバーリストからランダムなサーバーを選択し、常に同じサーバーにヒットして過負荷になるのを防ぐ理由ですそれ。
DNSの仕組みと覚えておくべきことの入門書です。
免責事項:DNSの管理よりも人生の目標が高い場合がありますが、別売りです。想像力を使用してください。 ;-)