web-dev-qa-db-ja.com

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

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

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

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

ありがとう。

8
GetFree

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

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

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

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

CNAMEレコードを使用している場合は、ポイントされたもののCNAMEとAレコードが返されるため、応答のサイズも大きくなります。

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

10
James F

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

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

8
Mike

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

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

3
UltimateBrent

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

2
Andrew McGregor

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

1
Chopper3