GNU/Linux >> Belajar Linux >  >> Linux

File Zona Besar Untuk Bind9 :Pemblokiran iklan?

Saya berhasil menggunakan file zona kecil (20.000 entri) dengan bind9 server, tetapi hari ini penyedia data saya mengirim pembaruan yang menyebabkan file zona menjadi 300.000+ entri besar (30Mb+).

Masalahnya adalah server tidak akan memulai dengan file zona ini. named-checkconf tidak akan melaporkan kesalahan apa pun. Tidak ada pesan log yang tersedia (atau saya tidak dapat mencatatnya dengan benar).

Saya ingin tahu apakah bind9 mampu menangani file konfigurasi besar dan jika ya bagaimana cara memperbaikinya. Jika tidak, saya ingin tahu apakah ada solusi untuk masalah ini. Mungkinkah menyimpan entri dalam database?

File zona yang saya coba gunakan dapat diunduh dari sini.

Pembaruan:

service bind9 status menunjukkan beberapa informasi yang mungkin relevan:

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'

Saya tidak yakin bagaimana menafsirkan atau menggunakan informasi ini… Ada ide?
Saya juga tidak dapat menemukan di mana bind9 log berada:/var/log/ tidak memiliki bind9 entri. Adakah yang bisa memberi tahu saya di mana mereka berada di Debian Jessie?

Jawaban yang Diterima:

Saya telah melihat file zona Anda:tampaknya merupakan daftar lebih dari 350k domain, saat ini, di mana server BIND lokal didefinisikan sebagai master. Domain dengan format berikut:

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

Sesuai kebutuhan memori, saya akan mengatakan sebagai sosok kasarnya Anda mungkin memerlukan sekitar 40MB-80MB RAM gratis untuk itu karena tabel domain dimuat dalam memori. (walaupun saya akan merasa lebih nyaman dengan setidaknya 200MB)

Kecuali server sangat dibatasi dalam RAM, tampaknya agak tidak mungkin, tetapi itu bisa terjadi.

Saya juga memperhatikan ada garis bawah (“_”) pada nama beberapa domain. Memiliki garis bawah di DNS RR memecah beberapa RFC (RFC 952 dan RFC 1123), dan Anda perlu menambahkan ke bagian opsi BIND direktif:

check-names master ignore;

Adapun format dan metode yang digunakan untuk daftar hitam domain. Dari versi 9.8 dan seterusnya, BIND mendukung apa yang dikenal sebagai Response Policy Zones (RPZ), yang dibuat khusus untuk domain yang masuk daftar hitam.

Beberapa penyedia daftar hitam (komersial) saat ini mengikuti format itu. (Saya sendiri menggunakan RPZ baik di kantor maupun di rumah).

Menggunakan RPZ seharusnya lebih masuk akal dan juga berarti beban yang lebih ringan, dan karena itu, jika Anda membayar layanan, saya menyarankan Anda untuk menghubungi pemasok Anda untuk mengetahui cara menggunakannya. Format RPZ juga mendukung wildcard sampai batas tertentu, yang berarti file daftar hitam yang jauh lebih kecil.

Alternatifnya juga mengolah file dengan skrip untuk mengubahnya menjadi format RPZ.

Terkait:Apa yang menyebabkan berbagai sinyal dikirim?

Saya akan meninggalkan tautan yang relevan di sini tentang RPZ dan penyedia RPZ resmi:

https://dnsrpz.info

dan tutorial cara mengkonfigurasi RPZ:

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

Seperti yang mungkin telah Anda catat, dengan konfigurasi saat ini, Anda juga akan memiliki banyak file yang terbuka; maka saya sarankan lagi menggunakan RPZ.

Untuk menangani lebih banyak file terbuka, dalam email besar, DNS, atau server HTTP, batasannya sering kali dinaikkan.

Situasinya tidak seburuk sebelumnya dengan kernel yang lebih lama, tetapi saya tetap menyarankan untuk menaikkan batasnya.

Edit /etc/sysctl.conf dan ubah/tambahkan direktif fs.file-max untuk batas global file terbuka:

fs.file-max=500000

Untuk menerapkan batas file baru tanpa me-reboot, Anda perlu menjalankan:

sudo sysctl -p

Dan untuk batasan file per proses, edit, /etc/security/limits.conf :

* - nofile 400000

Untuk menerapkan batas file per proses, baik logout dan login, atau jalankan:

sudo ulimit -n 400000

Setelah menaikkan dua batas ini, Anda perlu memulai ulang BIND:

sudo service bind9 restart

Untuk mengonversi file Anda ke format RPZ, Anda menjalankan:

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

Script akan mengonversi entri ke format berikut:

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

Tambahkan di bagian opsi bernama:

response-policy { zone "rpz"; };

Buat deklarasi zona RPZ:

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

Tambahkan ke bagian atas /etc/bind/rpz.db berkas:

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

@       IN      NS      your_dns_fqdn.

Dekonfigurasi file DNS Anda dan mulai ulang server BIND Anda. Jelas file RPZ dapat dioptimalkan dengan wildcard dan dibuat lebih pendek, namun bahkan tanpa pengoptimalan itu sekarang Anda tidak memerlukan banyak file terbuka.

Adapun untuk berkonsultasi dengan log BIND/DNS, mereka bersama-sama dengan log sistem di /var/log/syslog dengan tag named . Anda dapat menggunakan perintah:

sudo grep named /var/log/syslog

Linux
  1. Satu Liner Untuk Memeriksa Ada File?

  2. Untuk apa file .la libtool?

  3. Hitung baris dalam file besar

  1. Menggunakan nc untuk mentransfer file besar

  2. Diff/patch biner untuk file besar di linux?

  3. Untuk apa Linux test -a command test?

  1. 10 alias Bash yang berguna untuk Linux

  2. Perintah Linux wc Dijelaskan untuk Pemula (6 Contoh)

  3. Script Shell Untuk Memindahkan File Terlama?