DNSプロトコルがバックアップネームサーバーやメールサーバーのレコードのように、バックアップAレコードサーバーのアドレスを自然に保持できる方法はありますか?これを検索すると、バックアップネームサーバー(NSレコード)での結果のみが表示されました。
DNSがバックアップAレコードをサポートする方法がない場合、プライマリサーバーが応答しない場合に、ユーザーが稼働中のサーバーに転送されるように結果をシミュレートする最良の方法は何ですか?
はい...ちょっと。
ここでできることは2つあります。ある名前のDNSサーバーに複数のAレコードを置くと、それらはすべてクライアントに提供され、それらのクライアントはセットから1つを選択して接続します。つまり、トラフィックはすべてのサイトに同時に「公平に」均等に分配されます。これは実際にあなたが説明しているように見えるものではありませんが、それは一般的な状況です(さまざまな理由で、私はそれを信頼していません)。
もう1つのオプションは、DNSサーバーにAレコードを1つだけ配置し、DNSサーバー(または監視スクリプトのようなそれに付随するもの)がサイトのメインアドレスを監視し、失敗した場合はDNSサーバーのAレコードは他のサイトに変更されます。これは、一度に1つのサイトだけがトラフィックを受け取ることを意味します。
この2番目の戦略の欠点は、DNSキャッシングです。古いサイトアドレスを取得したユーザーは、SOL)になります。これは、古いアドレスを含むDNSキャッシュエントリが削除されるまで続きます。つまり、TTLを低く保つ必要があります(DNSインフラストラクチャの負荷が増加します)。それはめったに実際的な問題ではありませんが)TTLを尊重しない「悪意のある」DNSキャッシュの問題はまだあります。これらは、DNSエントリを変更する必要があるanyoneにとって大きな苦痛ですが、 DNSエントリを「頻繁に」変更する必要がある人にとっては、100万倍悪いです(おそらく、サイトが1日に数回ダウンしていないことを願っていますが、それでも...)基本的に、これらの不正なDNSキャッシュのいずれかの背後にいる人はあなたのサイトが非常に長い期間「ダウン」しているとみなし、DNSキャッシュに問題があることを説明してみてください...
要するに、あなたが考えているリスクを軽減するより良い方法があるので、私はサイトに対してそれをしませんが、それを軽減する方法についての提案が必要な場合は、そのリスクを説明する必要があります。
動的コンテンツを提供していて、2つのサーバーが同時にコンテンツを提供するだけでは実用的でない場合は、とにかくDNSに複数のレコードを用意し、バックアップサーバーを設定して、接続しようとするクライアントに到達できないICMPポートをスローするようにします。 ;いずれかの時点でメインサーバーがダウンした場合は、バックアップのポート80ブロックを削除するだけで、トラフィックが入り始めます。
他にできる唯一の(予算)方法は、リクエストに対してNAT=)を実行する別のマシン(または2つ)をセットアップすることです。したがって、Webサーバーが停止した場合、簡単にNATルールを削除します。
バックアップAレコードはありませんが、ランダムな順序で与えられる複数のAレコードが存在する可能性があります。
ほとんどのブラウザーは、サーバーに障害が発生した場合に別のサーバーを試すことができます。 (参照: ラウンドロビンDNSによるWebの回復力 )
[〜#〜] vrrp [〜#〜] または [〜#〜] carp [〜#〜] を使用して、1つのクラスターIPアドレスを複数のサーバーでサポートできます。プライマリサーバーに障害が発生すると、バックアップサーバーがアドレスを引き継ぎます。
はい、しかしあなたはそれを自分でしなければなりません;-)
「バックアップAレコード」が必要な理由と、バックアップに移動する方法と状況を詳しく教えてください。
また、プライマリホストとバックアップホスト間のネットワークの観点から関係を理解しておくと役立ちます。
これはかなり古い質問ですが、2つのかなり重要なテクノロジー、つまり動的DNSとCDNは回答に含まれていません。
ダイナミックDNSは、DNSレコードをほぼリアルタイムで変更できるように設定されているため、監視クライアントは、サービスの可用性に応じてパブリックDNS Aレコードへの変更をトリガーできます。 (もちろん、DNSホスティングサービスは動的DNSをサポートしている必要があります。)
CDNは、たとえばCloudflareが行うように(2010年にローンチされたと思います)、DNSの配信にも使用できます。