DNSラウンドロビンでのIPアドレスの実際的な制限は何ですか?


8

現在、トラフィックが7つのミラーサーバーに分散されているサイトを実行しています(DNSラウンドロビンを使用)。しかし、恒久的に増加している大量のトラフィックを考慮して、すぐに多くのミラーが必要になります。

ラウンドロビンDNSを使用する場合、特定のドメイン名に関連付けられたIPアドレスの数に実際的な推奨制限はありますか?

また、ミラーの数が多い場合(たとえば、ミラーの数が10または20を超える場合)、どのようなソリューションを推奨しますか?

ありがとう。

回答:


10

注意すべきことの1つは、デフォルトではDNSルックアップがUDPを使用することです。応答が単一のデータグラムに収まるよりも大きい場合、収まるだけの数が返され、ヘッダーにTC(切り捨て)ビットが設定されます。

リクエスタは、返されたものを処理するか、TCPを使用してクエリを再試行するかを選択できます。

キャッシュされたDNSサーバーは、返されたレコードのセットがどの程度完全であるかを知らないため、切り捨てられた応答をキャッシュすることは想定されていません(応答には、「28レコードのうち12レコードを提供しています」とは示されていません)。

したがって、レコードの最大数は、UDPデータグラムをどれだけ固定できるかという要素です。応答には権限セクションを含める必要があることに注意してください。これは、ゾーンのSOAレコードに基づいてサイズが異なります。

CNAMEレコードを使用している場合、CNAMEおよびポイントされたもののAレコードが返されるため、応答のサイズも増加します。

最善の策は、digまたは「host -v」を使用してさまざまな数のAレコードをいじって、クエリがUDP応答の最大サイズを超えたときを確認することです。


1
セクション全体が受信された場合、実際にキャッシュサーバーは応答をキャッシュすることができます。「回答」セクションは問題ないが「追加」セクションが切り詰められている場合、その回答をキャッシュしても問題ありません。
アルニタク

8

厳密な制限はありませんが、ほとんどのサイトでは5つまたは10個を超えるミラーを実行していません。DNSラウンドロビンによるミラーリングは、サイトが地理的に離れていて、負荷分散に加えて冗長性がある場合に最も役立ちます。

ミラーの数が増えると、DNSラウンドロビンはより多くのリソースを必要とするさまざまな要求に対応しないため、負荷分散としてDNSラウンドロビンを使用する効率が低下します。フロントエンドの負荷分散を使用して、CPU負荷とサーバーの可用性によってワークロードを分散することをお勧めします。これにより、DNSを変更せずにサーバーをすぐに停止して、クライアントがキャッシュされたDNSレコードからダウンしたサーバーにアクセスしようとするため、メンテナンスも簡素化されます。 。


3

私はこの質問に遅れましたが、あなたができることの実際の限界について言及するのは良いことだと思いました。私が知っている理論的な制限はありませんが、いくつかのISPは36を超えることはありません。実際には、それ以上を含めると、追加のサーバーが含まれないだけでなく、完全に無視されます。私が問題を抱えていたのはVerizonとComcastの2つでしたが、他の人も影響を受けていると思います。

つまり、36のミラーを保証するのに十分なトラフィックがある場合は、ラウンドロビンDNSを使用しないでください。


2

サーバーが多数ある場合、おそらく最良の答えは、Akamaiのように実行し、エニーキャストDNSサーバーラウンドロビンを使用することです。つまり、ゾーンのDNSサーバーはネット全体に分散され、すべて同じIPアドレスを持ち、最も近いサーバーにあるルーティングポイントクライアントをネットワーク上でルーティングします。各サーバーは、可能なサーバーの完全なリストのサブセットについてラウンドロビンで応答します。


1

非常によく似た方法を使用しますが、ハードウェアロードバランサー(Cisco ACEs btw)を使用します。このように、唯一の制限はサブネットサイズです(その場合)。

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