web-dev-qa-db-ja.com

バックアップの目的で同じホストに複数のAレコードを追加する

私はウェブサーバーを持っています。 2つの異なるISPからの2つの静的IPがあります。 1つのISPのネットワークがダウンしているときに、Webサーバーにアクセスできることを確認したいと思います。

例えば

my Host name a.example.com
my ISP1 IP : x.134.x.100
my ISP1 IP : x.10.x.10

Example.comのDNSの現在のAレコード。

a.example.com x.134.x.100
a.example.com x.10.x.10

私のファイアウォールは両方のリクエストを同じサーバーにルーティングしますが、これは正常に機能します。

私の質問は

「それは問題の正しい解決策ですか?そうでない場合、正しい解決策は何ですか?」

編集:私はこのリンクを見ました http://www.linuxquestions.org/questions/linux-general-1/multiple-a-records-in-dns-734680/

今私の質問は:高可用性を提供するための簡単/最も安い方法は何ですか?

2
Manjoor

このソリューションの問題は、1つのサーバー/ ISPがダウンしている場合でも、DNSが両方のIPを配布し続けることです。つまり、DNSは実際には目標を達成しません。真のバックアップサイトが本当に必要な場合、これを行う最良の方法は、BGPをセットアップすることです。

これはプロセスですが、ISPと協力して、パブリックネットワークをアドバタイズする各サイトにBGPルーターをセットアップします。 1つのルーターまたはISPがダウンした場合、バックアップルーターがバックアップサイトからネットワークのアドバタイズを開始するのはほんの数秒です。 DNSの変更はなく、タイムアウトまたはクリアされるまで待つ必要もありません。機能するだけです。

編集**二次ソリューションを追加します。
予算やその他の制約のためにBGPの設定が簡単に届かない場合は、各サイトに非常に短いTTL)でDNSサーバーを設定することをお勧めします。 (大量のトラフィックがないと仮定した場合の10分など)各DNSサーバーで、そのサイトのサーバーのIPを使用して単一のAレコードを作成します。したがって、サイトAで、IPを使用してホストレコードを構成します。サイトAとサイトBで、サイトBのIPを使用して1つ作成します。これにより、ISPがダウンしたときに、使用できないIPを提供できなくなります。
このソリューションを念頭に置いておくと、「不良」IPをキャッシュしたクライアントが存在し、他のDNSサーバーから「良好」IPを配置する前にタイムアウトするまで待つ必要があります。

2
Paul Ackerman

特定のクライアントタイプのWebサービスの場合、これは機能します。コマンド「Host www.google.com」を実行すると、地理的に重要なWIPのローテーションリストが返されることがわかります。最新のブラウザ(Googleのメインクライアント)は、追加のリゾルバールックアップなしでそのアドレスのプールを順番に利用できることを理解しています。

もちろん、一部のクライアントはこれを行わず、最初のアドレスを使用して続行しません。

これは高可用性の価値のある形式ではありませんが、特定の人々のWebサイトのDNS実装を見るときに何が表示されているかを説明しています。

1
hpavc