DNSサーバーの負荷分散:UDP / TCP


10

データセンターで負荷分散インフラストラクチャを再構築するように依頼されました。

元の要求は、FTPサーバーの負荷を分散することでした。現在のロードバランサー(Piranha / LVS)を使用してそれを実行しようとしましたが、起動して実行できませんでした。このソフトウェアのドキュメントがほとんどないからというだけではありません。以来Piranha非推奨とみなされ、私はに渡ったHAProxy上で費やした時間の割合で仕事をしたしようとして数日後Piranha

そのため、FTP負荷分散(パッシブモード)を用意しています。次に、データセンターのピラニアロードバランサー全体を交換するように依頼されました。現在のピラニア構成では、いくつかのWebサーバー、IISサーバー.... aaaおよびDNSがあります

いいえ
HAProxyこれは問題ではありませんUDP load balancing。一般的に使用されているLBのようですが、処理できませんHAProxy動作が好きなので、これは残念です。それで、私はたくさんググって、いくつかのものに出くわしました。ほとんどの人はLVSDNS(TCP / UDP)のLBとして使用しているようです。一部の用途dlbDNS、一部の用途lbnamed、一部の用途netfilter / iptables

HAProxyFTP、HTTP、IISサーバーを使い続けたいので、と並べて使用することに混乱しましたLVS

要件:
フェイルオーバーのある
2 つのLBインスタンスフェイルオーバーのある2つのDNSサーバー(すでに存在)
複数のバックエンドサーバー(http、アプリケーションなど)

質問:
これは可能ですか?DNSサーバーでのUDP負荷分散は必要ですか?それを始める方法を教えてくれるリソースはありますか?または、TCP / HTTPだけでなくUDP負荷分散も処理できるLBソリューションはありますか?

PS: LBソリューションは、ハードウェアではなく、オープンソース/ GPLライセンス/無料である必要があります。

助けやそれぞれのリソースにつながることは大歓迎です!


Nginxを確認してくださいnginx.com/blog/announcing-udp-load-balancingこれはあなたのDNSの質問に対処しているようです
user433519

回答:


15

DNSの負荷を分散しないでください。

それは信じられないほど軽いプロトコルです-複数のボックスが必要になるには膨大な量のトラフィックが必要です(この場合、ロードバランサーでボトルネックになるだけです)。複数のNSレコードを使用できるため、復元力が組み込まれています。委任(ダウンした場合、他のサーバーが使用されます)。


TCPはDNSでより一般的になるので、複数のNSレコードを必ず使用してください。DNS自体が負荷分散されます。ホイールを再発明するのには理由があります。
cpt_fink 2015

複数のDNSサーバーは冗長性を提供し、完全な障害を防ぎますが、ダウンしたDNSサーバーでも名前解決の遅延が発生します。
200_success 2015

わかりました。ルーティング用のHAProxyとLVSを含む2台のマシンがあるので、誤解しない限り、フェイルオーバーの目的で仮想IPが引き続き必要です。私はこれにどのように取り組みますか?
Mosh Pit

2
@MoshPit vrrpdまたはkeepalivedが適切なオプションです。
シェーンマッデン

私はあなたがアクティブ-アクティブホットスタンバイセットアップについて話していると思います、正しいですか?
Mosh Pit

11

どのような種類のDNSサーバーについて話しているのか、実際には確立されていないので、このQ&Aには不快です。再帰的なDNSの復元力に関しては、いくつかの重大な誤解があります。検索エンジンを介して巡航する人々は、誤った安心感をもってこの議論から離れないことが重要です。

  • 権威DNS:権威DNSサーバーの場合、DNSの回復力に関する一般的な知識はかなり注目されています。地理的に冗長な信頼できるDNSサーバーが複数ある限り、問題ありません。個々のIPに高可用性を追加する主な理由は、多くの信頼できるゾーンをホストしている場合です。これにより、ホストされているすべてのドメインのレジストラ設定を変更する必要なく、サーバーの数を増やすことができます。

  • 再帰DNS:常に何らかの形の高可用性ソリューションを使用します。(BGP、アプライアンスなど)これは、深刻な問題に遭遇する可能性がある場所です。すべてのリゾルバーライブラリは等しく作成されていません。WindowsDNSクライアントはクエリ間で使用される初期サーバーをラウンドロビンしますが、Unixベースのシステムの大部分は常にリストを順番に循環します。さらに知られていないのは、これらのUnixライブラリが次のサーバーに移動する前に、すべての検索ドメインの組み合わせでタイムアウトする必要があることです。複数の検索ドメインが構成されていて、リゾルバー検索順序の最初のサーバーが停止している場合、これにより、すべての単一の要求のDNS解決に大幅な遅延が発生する可能性があります。

再帰DNSに関しては、サーバーインフラストラクチャは、最も頭の痛いクライアント構成と同じように回復力があることに注意してください。あなたの会社が成長するにつれて、これはあなたが制御することができないものです。成長する会社ではほとんど同じ状態が維持されることはないため、同種のサーバーOS環境に基づいて設計を想定しないでください。あなたがそれを前もって計画しないなら、これは間違いなく誰かを噛みます。


今のところ、DNSサービスとしてbind / namedを使用しています。
Mosh Pit

良い点-私は私の回答で信頼できると想定していましたが、そうです、それは再帰者かもしれません。
シェーンマッデン

1
@MoshPit「DNSサービス」のコメントでは、これが再帰的であるか信頼できるものであるかが明確にされていません。権限があるのは、ドメインをホストしている場合です。再帰は、ホストしていないドメインのIPアドレスを取得するために使用するものです。両方を実行するサーバーは「混在」しているため、セキュリティのベストプラクティスに反します。
Andrew B

1
申し訳ありませんが、コメントを投稿したときにそのことに気づきました。私たちは私たち自身のDNSサーバーを制御しており、それらは権威があります。
Mosh Pit

高可用性のためにロードバランサーを使用しないでください。
ウォンブル

2

あなたが使用することができ、これらの日dnsdistPowerDNSにで

READMEから

dnsdistは、非常にDNS、DoS、および悪用を認識するロードバランサーです。その人生の目標は、トラフィックを最適なサーバーにルーティングし、不正なトラフィックを回避またはブロックしながら、正当なユーザーに最高のパフォーマンスを提供することです。

dnsdistは動的であり、その構成は実行時に変更でき、その統計はコンソールのようなインターフェイスから照会できます。

https://github.com/PowerDNS/pdns/tree/master/pdns/dnsdistdist

一般的なOSのリポジトリを提供します:https : //repo.powerdns.com/

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