回答:
注意すべきことの1つは、デフォルトではDNSルックアップがUDPを使用することです。応答が単一のデータグラムに収まるよりも大きい場合、収まるだけの数が返され、ヘッダーにTC(切り捨て)ビットが設定されます。
リクエスタは、返されたものを処理するか、TCPを使用してクエリを再試行するかを選択できます。
キャッシュされたDNSサーバーは、返されたレコードのセットがどの程度完全であるかを知らないため、切り捨てられた応答をキャッシュすることは想定されていません(応答には、「28レコードのうち12レコードを提供しています」とは示されていません)。
したがって、レコードの最大数は、UDPデータグラムをどれだけ固定できるかという要素です。応答には権限セクションを含める必要があることに注意してください。これは、ゾーンのSOAレコードに基づいてサイズが異なります。
CNAMEレコードを使用している場合、CNAMEおよびポイントされたもののAレコードが返されるため、応答のサイズも増加します。
最善の策は、digまたは「host -v」を使用してさまざまな数のAレコードをいじって、クエリがUDP応答の最大サイズを超えたときを確認することです。
厳密な制限はありませんが、ほとんどのサイトでは5つまたは10個を超えるミラーを実行していません。DNSラウンドロビンによるミラーリングは、サイトが地理的に離れていて、負荷分散に加えて冗長性がある場合に最も役立ちます。
ミラーの数が増えると、DNSラウンドロビンはより多くのリソースを必要とするさまざまな要求に対応しないため、負荷分散としてDNSラウンドロビンを使用する効率が低下します。フロントエンドの負荷分散を使用して、CPU負荷とサーバーの可用性によってワークロードを分散することをお勧めします。これにより、DNSを変更せずにサーバーをすぐに停止して、クライアントがキャッシュされたDNSレコードからダウンしたサーバーにアクセスしようとするため、メンテナンスも簡素化されます。 。
私はこの質問に遅れましたが、あなたができることの実際の限界について言及するのは良いことだと思いました。私が知っている理論的な制限はありませんが、いくつかのISPは36を超えることはありません。実際には、それ以上を含めると、追加のサーバーが含まれないだけでなく、完全に無視されます。私が問題を抱えていたのはVerizonとComcastの2つでしたが、他の人も影響を受けていると思います。
つまり、36のミラーを保証するのに十分なトラフィックがある場合は、ラウンドロビンDNSを使用しないでください。
サーバーが多数ある場合、おそらく最良の答えは、Akamaiのように実行し、エニーキャストDNSサーバーとラウンドロビンを使用することです。つまり、ゾーンのDNSサーバーはネット全体に分散され、すべて同じIPアドレスを持ち、最も近いサーバーにあるルーティングポイントクライアントをネットワーク上でルーティングします。各サーバーは、可能なサーバーの完全なリストのサブセットについてラウンドロビンで応答します。