大規模向けDNSサーバー

ProDNS は日本シー・エー・ディーがフルスクラッチで開発した ISP やケーブルテレビ等の大規模向けキャッシュサーバーです。海外製品の高すぎる運用コストの削減を目指して、パフォーマンス・セキュリティ・サポートに重点を置いて開発しています。また、DNS は性質上、脆弱性が入り込みやすく攻撃の対象になりやすいプロトコルです。攻撃の手法として主に DOS 系と、インジェクション系の2種類があり ProDNS ではさまざまな対策を取ることにより攻撃の影響を最小限に抑えています。

パフォーマンス

ProDNS は、大量の DNS クエリーを処理する大規模システム向けに絞って、必要な機能のみを実装したシンプルな構造です。これにより、設定が簡素化されて運用コストを削減することができます。機能の絞り込みに加えて、パフォーマンスを向上させる機能を搭載しており、BIND と比較すると、約3倍~7倍の処理能力を発揮します(グラフ参照)。

検証で利用した環境は以下の通りです。
・権威サーバー:CentOS 7.2、Intel Xeon E5645 2.4GHz、コア数1、メモリ2GB、HDD 20GB
・キャッシュサーバー:CentOS 7.2、Intel Xeon E5645 2.4GHz、コア数4、メモリ2GB、HDD 20GB
・クライアント:CentOS 7.2、Intel Xeon E5645 2.4GHz、コア数1、メモリ2GB、HDD 20GB

機能・セキュリティ対策
リソース制限高負荷時でもリソース枯渇で動作が不安定にならないように、メモリサイズ、ポート数、コネクション数等、各種リソースの最大値を細かく設定できます。
アクセスコントロール不正なアクセスや大量アクセスがある接続元のIPを範囲または個別に設定することにより接続の拒否設定が可能です。
統計情報コマンドラインから細かな統計情報の取得が可能です。また、Net-SNMP を使用して、SNMP 経由での統計情報取得も可能です。
セキュリティ対策(スロークエリー)レスポンスに時間がかかるクエリーが大量に発生して、リソースが枯渇してしまう問題です。ProDNS では、一定の割合で遅いリクエストを中断して新規できたリクエストを優先して処理することにより負荷が高い状態でも新規のリクエストを処理できるようにしています。
セキュリティ対策(水責め)短期間での集中した同一権威サーバーへのアクセスにより権威サーバーへ負荷をかけてしまいます。権威サーバーがダウンした後はレスポンスを返せないリクエストがキャッシュサーバーにたまり、キャッシュサーバーにも負荷がかかります。Rate Limit を設定することにより同一ドメインに対しての短期間へのリクエストを制限することにより対応可能です。
セキュリティ対策(バースディアタック)クライアントから同一リクエストを複数送ることにより、エントロピーの一致率上げる攻撃です。ProDNS では同一のリクエストが複数送られた場合、一つにまとめて権威サーバーへ送信することでバースディアタックを対策しています。
セキュリティ対策(エントロピー)権威向けソースポートを独自アルゴリズムでランダムにすることによりエントロピーを上げています。
セキュリティ対策(移転通知インジェクション)設定で親権威サーバーからの Authority の NS 情報がキャッシュされている場合、子の Authority の NS 情報で上書きを行わなくすることで、移転通知インジェクションを回避可能です。
(※実装予定)
セキュリティ対策(幽霊ドメイン)特定ドメインのキャッシュ情報の TTL 切れが起きないようにして、偽装情報を無理やり残す攻撃です。ProDNS では権威サーバーからのキャッシュと同一データで TTL のみ違う NS レコードを取得した場合や、キャッシュとドメイン名が同一で RDATA が違う NS レコードを取得した場合にキャッシュと取得したレコードの短い方の TTL を使用することにより幽霊ドメインを回避できます。また、キャッシュする TTL に上限を持たせることにより、不必要に長い期間キャッシュさせないようにしています。
推奨環境
OSLinux(CentOS 6, 7 RedHat6, 7)
その他Linux環境はご相談ください。
メモリ4GByte
CPUIntel Xeon E5645 @ 2.4GHz 以上
その他環境により性能が大きく変わります。
評価版の貸し出しも可能ですのでお問い合わせください。
対応 RFC
RFC1034、1035、2181、2308、1123、6891、2671 に対応しています。