ラウンドロビンDNSは高可用性のための可能なソリューションですか?


8

特定のドメインに2つのIPがあるとします(ラウンドロビンDNS)。
1つのIPが応答しなくなった場合、クライアントは他のIPに接続しようとしますか?それとも、ドメインとの通信の確立に失敗するだけですか?


ここに私の答えを参照してください:serverfault.com/questions/327708/...
Sandman4

回答:


13

DNSラウンドロビンは、ロードバランサーの代わりにはなりません。DNSサーバーはダウンしているノードのIPを引き続き提供するため、一部のユーザーはサービスにアクセスでき、一部のユーザーはサービスにアクセスできません。

クライアントがDNSクエリを行うと、DNSサーバーはその名前に関連付けられたすべてのIPアドレスを返します。魔法は、すべてのクエリに対してそのリストの順序をローテーションするDNSサーバーによって行われます。ただし、機能するIPが見つかるまでリストを「ウォーク」する機能を実装するかどうかは、アプリケーション次第です。そして、ほとんどのアプリケーションはそれを行いません。

奇妙なことに、Windows Telnetは、返されたIPのリンクリストをたどるのに十分スマートなアプリケーションの1つです。たとえば、google.comにtelnetしようとすると、この動作を自分で確認できます。あなたはそれがかかることがわかります長い最終的に失敗する時間を。これは、google.comに多数のIPアドレスがあり、Telnetクライアントがすべてを試行していたためです。


クライアントは常にNSから両方のIPを取得することを理解しています。デフォルトでは、リストの最初のものを選択するだけです。しかし、最初のものがダウンした場合はどうなりますか?彼らは2番目のものを試してみますか?
GetFree 2013

9
それは完全にアプリケーションに依存します。たとえばWebブラウザーについて話している場合、ほとんどの最新のWebブラウザーは成功するまでリストをたどりますが、一部のブラウザー(通常は古いブラウザー)は、最初の失敗したIPが試行された直後に失敗します。詳細:nber.org/sys-admin/dns-failover.htmlおよびblog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns
Ryan Ries

あなたが与えたリンクによると、それはうまくいくようです。少なくともHTTPクライアントの場合(これが今気になっていることです)。すべての最新のブラウザーとさらに低レベルのHTTPクライアントは、リスト内の別のIPにフェイルオーバーします。
GetFree 2013

うん。それはアプリケーションに依存するという警告をあなたに与えたかっただけです。YMMVなど
Ryan Ries

@ RyanRies、RFCはクライアントの動作に関する推奨事項を提供していますか?Telnetは、最初のIPを使用するだけでなく、すべてのIPを試すときに準拠していますか?
パチェリエ

14

ロードバランサーを使用しても、単一障害点が残ります。ロードバランサーがオフラインになると、ウェブサイトがダウンします。

上記の答えにConteraryは、ほとんどのHTTPクライアントは、すでにDO有効な応答を持つ1戻るまで、DNSクエリから返された各IPアドレスをしようとしてサポートします。こちらをご覧ください:

http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/

作者は以下のブラウザをテストしたところ、正常に動作することがわかりました。

Windows 7上のChrome 11、Windows 7上の
Firefox 4.0、Windows 7
上のInternet Explorer 8 、Windows 7 上のInternet Explorer 8、Windows 7上の
Opera 11、Windows 7上の
Safari 5
、Windows XP上のInternet Explorer 7(大幅な遅延後)
Windows XP上のFirefox 4.0(顕著な遅延後)
AndroidネイティブブラウザーAndroid 2.3.3の場合
iOS 4.3.3のiPhoneネイティブブラウザ

ラウンドロビンを使用しても、ロードバランシングサーバーのすべての機能が実行されるわけではありません。たとえば、両方のサーバーからの応答時間を監視し、もう一方が必要な速度で応答しない場合は、より多くのトラフィックを一方にルーティングできます。回復力については、単一障害点がなくなったので、ラウンドロビンDNSがおそらくより良いソリューションと言えます。


受け入れられた回答の2番目のコメントを参照してください
GetFree

2

ラウンドロビンDNSは通常、アドレスを提供しているサーバーのステータスへのフィードバックはありませんが、これらのアドレスごとに何らかの種類のロードバランサー(ルーターベースのトリックを含む)がある場合に役立つことがあります。

物事が失敗したときにDNSを更新するトリックがあります。これが発生した場合、TTLが適切に短いラウンドロビンDNSが疑似ロードバランサーになる可能性があります。

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