web-dev-qa-db-ja.com

軽量LinuxDNS

データセンターに適した軽量LinuxDNSサーバーを誰かが推奨できますか?

編集:データセンターについては、通常10〜20台のサーバー内で、最大100台まで話します。量が多い場合は、確かにBINDを使用する意味があります。

私はBINDのより軽量なものを探しています(このようなものが存在する場合)。

CentOS 5.4の一般的なYUMリポジトリに含まれている場合は、より良いです。

5
SyRenity

どのような種類のDNSが必要ですか?データセンター内のクライアントに再帰的なリゾルバーが必要ですか?あなたがホストしているいくつかのドメインのための信頼できるサーバー?自分のサーバーから依存関係(外部再帰DNSルックアップ)を削除しますか?

短い答え(そしてこれは宗教的な問題のようなものなので、塩の塊でそれを取ってください):

  • 各サーバーのローカルホストで再帰リゾルバーを実行します。各サーバーはそれ自体を再帰DNSに使用します。 PowerDNSは、WindowsおよびUNIXで機能するリゾルバーを作成します。 tinydnsパッケージの一部であるDJBのdnscacheも100%防弾ですが、非常に長いcnameチェーンをたどることができるように調整する必要があるかもしれません(akamai、私はあなたを見ています)。

  • 所有しているアドレスに対して別のDNSサーバーを実行します。繰り返しになりますが、PowerDNSはウィキペディアで使用されている選択肢です。バインドゾーンファイルからpostgresqlデータベースまで、あらゆる種類の素敵なバックエンドがあります。 Tinydnsも素晴らしいですが、バインドランドから来ている場合は少し奇妙です。これらのDNSサーバーを「非ローカルホスト」インターフェースで実行し、それらのアドレスをレジストラで公開します。あなた自身のドメインのマスターになりましょう!

  • データセンター内の他のホストに再帰サービスを提供している場合は、DNSサービスを提供していないマシンでdnscacheまたはpdns-recursorを実行し、リゾルバーのACLをデータセンター内からのサービスリクエストのみに設定します。インターネット上のランダムホストは、DNSサーバーに対して奇抜なキャッシュポイズニング攻撃を行う可能性があるため、選択肢がある場合は信頼されるべきではありません。

PowerDNSは、パッケージからインストールするのがおそらく最も簡単です。遠い昔、DJBは第三者が自分の赤ちゃんをめちゃくちゃにすることについて非常に偏執的だったので、バイナリ配布に奇妙なライセンス制限がありました。これらはその後削除されましたが、DNSユーティリティのDJBスイートに対する不快感は残っています。

7
chris

dnsmasq は良いオプションかもしれません。それはdnsとdhcpの両方を行うことができます。 Hostファイルを使用するだけで、構成は簡単です。そして、それはあなたのディストリビューションのデフォルトのリポジトリにあるはずです。

編集:それはいくつかの反対票とコメントを得ているので、私の答えを明確にしましょう。ユースケース全体と規模については、疑問が明確ではありません。したがって、同意できない場合もありますが、dnsmasqは正しい状況下では完全に有効なソリューションです。 OPは、質問の詳細が少し不足していたため、特定のケースに何が当てはまるかを把握する必要があります。

データセンターのプライベートLANセグメントの内部DNS解決のための場合にのみ、これを実行可能なソリューションとしてお勧めします。何百ものサーバーについて話しているのではないと仮定します。独自のパブリックDNSの実行を検討している場合は、少なくとも2つの地理的に多様なデータセンターで成長したDNSソリューションを実行する準備をしておくことをお勧めします。

8
3dinfluence

http://cr.yp.to/djbdns.html からDJBのDNS(djbdnsとtinydns)を見てください。 BINDのゾーンファイルを使用することも可能です。

7
pfo

管理する権威ネームサーバーには nsd を使用します。 allnsdは信頼できるネームサーバーとして機能するため、再帰クエリには内部で(同じ開発者からの)「unbound」を使用することに注意してください。サーバー自体から。

(やや無意味な)参照の場合、それぞれがおそらく20レコードの半ダースのゾーンにサービスを提供する1つのプライマリネームサーバーには、約1.1MBの常駐メモリフットプリントがあります。

Nsdは非常に安定していることがわかりました。唯一の問題は、サーバー間のゾーン転送が難しい場合があることです。確かに、2つのBINDサーバー間のプラグアンドプレイほどではありません。結局、rsyncスクリプトを使用して、セカンダリネームサーバーのレコードを更新/再構築/再読み込みしました。

私が試したもう1つのオプションは、MaraDNSです。これは優れたパフォーマンスを発揮しますが、BINDよりもそれほど軽量ではありません。

5
Geoff Fritz

私見では、DNSサービスの「重み」はソフトウェア自体ではなく、ソフトウェアが処理するトラフィックと、アドレスを解決するために実行する必要のある作業です。負荷を最小限に抑え、単一障害点の可能性を減らすために、データセンターに複数のDNSを展開できます。ただし、パフォーマンスの低いDNSは、他のサービスのパフォーマンスを低下させる可能性があることに注意してください。

4
lrosa

この質問が行われて以来、言及する価値のあるDNSランドスケープに変更が加えられました。質問者はDNSリカーサーを探しているようです。議論する価値のあるオプションは次のとおりです。

  • nbound -フル機能でありながら軽量のDNSリゾルバー。アンバウンドは小さく、しっかりしていて、 安全 です。これは、OSリリースで BINDを置き換える への最初のサードパーティリゾルバです。強くお勧めします。
  • dnscache djbdns の一部としてリリースされました。これは元の軽量DNSリカーサーです。それは堅実で、メモリをリークせず、 非常に安全 であり、優れたパフォーマンスを発揮します。欠点は 少し珍しいインストール 、DNSSECの欠如、複数のCPUのサポートがないこと、そしてCNAME処理が面倒になるのに十分な状況下で失敗することです。
  • PowerDNSRecursor-pdnsを軽量と呼ぶのは難しい。 PowerDNSは、それ自体に「高性能」リカーサーを請求し、dnscacheおよびunboundよりも より悪いセキュリティレコード を持っています。これ以上コメントするのに十分な経験がありません。
  • BIND-BINDを軽量と呼ぶのは公平ではありません。それはその焦点では​​ありません。 BINDは、すべてのOSですべてのDNSプロトコルをサポートする、最大のDNSサーバーになることを目指しています。これには、パフォーマンス、サイズ、特に security で支払われるペナルティが伴うことがよくあります。

軽量で信頼できるDNSサーバーのオプションは、過去数年よりもかなり広くなっています。 Knot、NSD、tinydns、およびYadifaはすべて、セキュリティの脆弱性が低いか、まったくありません(tinydnsは非常に長い間リリースされているため、ボーナスポイントです)。これは非常に軽量なデーモンです。 4つすべてが非常にうまく機能し、それぞれが特定の難解な強みを持っています。

  • ノット、NSD、Yadifa-すべて非常に軽量で安全、そして非常に高速です。これらの3つはそれぞれTLD(少数のゾーン、多くのレコード)を提供するように作成されていますが、それぞれ少数のレコードを持つ多くのゾーンのより一般的なISPワークロードを提供するためにもうまく機能します。
  • tinydns-非常に安全で非常に高速です。 DNSSEC(広く普及している)ではなく、DNSCurve(ほぼ0%の採用)をサポートします。異常なインストールですが、操作は非常に信頼できます。
  • PowerDNS-PowerDNSは十分に機能します。 BINDと同様に、パフォーマンスやセキュリティよりも機能セットにPowerDNSを選択します。
  • BIND-前述のように、軽量ではありません。

もう1つの要件は、ソリューションがHAであることです。つまり、DNSサーバーはサーバー間でデータを同期します。そして最後に(推奨されますが必須ではありません)、すべてのもののためのいくつかの単純なWebフロントエンドを用意することです。

PowerDNSだけがDNSサーバーに「バンドル」されたWebインターフェイスを持っています。 信頼できるDNSを管理するためのWebフロントエンド の場合、いくつかのオプションがあります。 NicToolは、tinydns、BIND、Knot、NSD、Yadifa、またはそれらの任意の組み合わせで使用できるため、明らかに私のお気に入りです。

1
Matt Simerson