Bind9の大規模ゾーンファイル:広告ブロック

Bind9の大規模ゾーンファイル:広告ブロック

私のサーバーは小さな(20,000項目)ゾーンファイルを正常に使用していますが、bind9今日私のデータプロバイダは更新を送信しました。ゾーンファイル300,000以上の項目になります(30Mb+)。

問題は、このゾーンファイルを使用してサーバーを起動できないことです。エラーは報告されませnamed-checkconfん。利用可能なログメッセージがありません(または正しく記録できません)。

bind9大容量構成ファイルを処理することが可能かどうか、その場合はどのように解決できるかを知りたいです。そうでない場合は、この問題に対する解決策があるかどうかを知りたいです。アイテムをデータベースに保存することもできますか?

使用したいゾーンファイルは以下からダウンロードできます。ここ

修正する:

service bind9 status潜在的に関連する情報を表示します。

adjusted limit on open files from 4096 to 1048576
found 1 CPU, using 1 worker thread
using 1 UDP listener per interface
using up to 4096 sockets
loading configuration from '/etc/bind/named.conf'

この情報をどのように解釈または使用するのかよくわかりません...どのようなアイデアがありますか?また、bind9ログがどこにあるかが見つかりません。アイテム/var/log/はありません。bind9誰でもDebian Jessieでどこにいるのか教えてもらえますか?

答え1

あなたのゾーンファイルを見ました。 350,000を超えるドメインのリストであるように見え、現在はローカルBINDサーバーをマスターサーバーとして定義しています。ドメインの形式は次のとおりです。

zone "xxxx.com" { type master; notify no; file "null.zone.file"; };

メモリ要件に応じてドメインテーブルがメモリにロードされるため、約40 MB〜80 MBの利用可能なRAMが必要になります。 (ただし、200MB以上であればより楽になりそうです。)

サーバーのRAMが厳しく制限されていない限り、これはほとんど発生しないようですが、発生する可能性があります。

また、複数のドメイン名の名前にアンダースコア( "_")が含まれていることも確認しました。 DNS RRの下線は一部のRFC(RFC 952およびRFC 1123)を中断するため、BINDオプションセクションにディレクティブを追加する必要があります。

check-names master ignore;

ドメイン名をブラックリストに登録する形式と方法は次のとおりです。バージョン9.8以降、BINDはブラックリストドメイン用に特別に作成されたいわゆる応答ポリシー領域(RPZ)をサポートしています。

今日、一部の(商業)ブラックリストプロバイダはこの形式に従います。 (私は仕事と家の両方でRPZを使用しています)。

RPZを使用する方がより合理的で軽量な負荷を意味するため、サービス料を支払う場合は、ベンダーに連絡して使用方法を確認することをお勧めします。 RPZ形式はワイルドカードもある程度サポートしているため、ブラックリストファイルははるかに小さいです。

別の方法は、スクリプトを使用してファイルを処理し、RPZ形式に変更することです。

RPZおよび公式RPZプロバイダーへの関連リンクをここに残します。

https://dnsrpz.info

RPZの設定方法のチュートリアル:

http://www.zytrax.com/books/dns/ch9/rpz.html

すでに知っていますが、現在の構成では開いているファイルも多いので、RPZを使用することをお勧めします。

大規模な電子メール、DNS、またはHTTPサーバーでより多くのオープンファイルを処理するには、通常制限を増やす必要があります。

状況は以前のカーネルほど悪くはありませんが、それでも制限を増やすことをお勧めします。

グローバルオープンファイル制限ディレクティブの編集と修正/追加/etc/sysctl.conffs.file-max

fs.file-max=500000

再起動せずに新しいファイル制限を適用するには、次の手順を実行する必要があります。

sudo sysctl -p

プロセスごとのファイル制限を表示するには、次を編集します/etc/security/limits.conf

* - nofile 400000

プロセス固有のファイル制限を適用するには、ログアウトしてログインするか、次のいずれかを実行します。

sudo ulimit -n 400000

これら2つの制限を増やした後は、BINDを再起動する必要があります。

sudo service bind9 restart

ファイルをRPZ形式に変換するには:

cat bind | tr -d \"  | awk ' { print $2" CNAME ." } ' > /etc/bind/rpz.db

スクリプトは項目を次の形式に変換します。

zeus.developershed.com CNAME .
zeusclicks.com CNAME .
zintext.com CNAME .

名前付きオプションセクションに以下を追加します。

response-policy { zone "rpz"; };

RPZ 領域の宣言を作成します。

zone "rpz" {
  type master;
  file "/etc/bind/rpz.db";
};

ファイルの先頭に追加します/etc/bind/rpz.db

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                          2         ; Serial
                     604800         ; Refresh
                      86400         ; Retry
                    2419200         ; Expire
                     604800 )       ; Negative Cache TTL

@       IN      NS      your_dns_fqdn.

DNS ファイルの構成を解除し、BIND サーバーを再始動します。明らかに、RPZファイルはワイルドカードを使用して最適化して短くすることができますが、これらの最適化がなければ、最近は開いているファイルはあまり必要ありません。

BIND / DNSログクエリの場合、タグ付き/var/log/syslogシステムログが付属していますnamed。次のコマンドを使用できます。

sudo grep named /var/log/syslog

関連情報