Bagaimana cara mengaktifkan caching DNS di dnsmasq yang dikendalikan oleh NetworkManager?

8

Ubuntu Desktop 12.04 menggunakan dnsmasq untuk melakukan pencarian DNS, tetapi tidak dikonfigurasikan untuk menyimpan hasil ini. (Saya telah memeriksa ini dengan menggunakan dig untuk menyelesaikan nama dan saya tidak melihat peningkatan besar dalam waktu respon setelah pencarian pertama.) Bagaimana cara mengkonfigurasi dnsmasq yang dikendalikan NetworkManager untuk menyimpan hasil pencarian DNS?

Komunitas
sumber

Jawaban:

10

Di Ubuntu 12.10 Anda dapat mengaktifkan cache instance dnsmasq yang dikendalikan oleh NetworkManager dengan meletakkan barisnya

cache-size=1000

(dengan jumlah nama pilihan Anda, bukan 1000) dalam file baru di /etc/NetworkManager/dnsmasq.d/. Untuk mengaktifkan perubahan ini, Anda harus melakukannya

sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager

atau reboot.

jdthood
sumber
Terima kasih atas informasi anda. Untuk Ubuntu 16.04 (dan 15.10 sejak systemd diperkenalkan), gunakan "sudo service network-manager stop / start" daripada "sudo stop / start network-manager"
Fumisky Wells
Meskipun itu masih berfungsi, menggunakan alat systemd itu harus:sudo systemctl stop NetworkManager
goetzc
4

Saya dapat mengaktifkan caching DNS di Linux Mint 13 (berdasarkan Ubuntu 12.04) menggunakan metode yang dijelaskan dalam jawaban pertama. Saya membuat file yang /etc/NetworkManager/dnsmasq.d/cachednsberisi baris cache-size=100, lalu memulai kembali manajer jaringan. Meskipun dnsmasq dieksekusi oleh network-manager dengan hard-coded --cache-size=0pada baris perintahnya, pengaturan ukuran cache dalam file konfigurasi menimpa nilai itu. Anda dapat memverifikasi bahwa itu berhasil dengan melakukan ini:

sudo killall -USR1 dnsmasq
tail /var/log/syslog

Anda akan melihat garis yang terlihat seperti ini di syslog, yang menunjukkan ukuran cache:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
bloovis
sumber
Saya bertanya-tanya bagaimana terpengaruh -cache-size = 0 jaringan-manajer keras, tetapi posting Anda membuat saya jelas. Terima kasih!
Fumisky Wells
1

Saya tidak ingin memutakhirkan dari 12,04, tetapi masih ingin dnsmasq dikelola oleh NetworkManager dengan caching diaktifkan, tetapi seperti jawaban yang lain mengatakan, --cache-size = 0 adalah hard-coded dan tidak dapat diubah dengan konfigurasi.

Jadi apa yang akhirnya saya lakukan adalah sebagai berikut, sebagai root:

mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.real

dan kemudian membuat file baru, / usr / sbin / dnsmasq dengan konten berikut:

#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args

pastikan Anda chmod +x /usr/sbin/dnsmasq, dan ubah ukuran cache dari 1000 menjadi apa pun yang Anda inginkan, nikmati rilis LTS Anda dengan cache DNS!

moparisthebest
sumber
0

dalam 12,04 dnsmasq dimulai oleh NetworkManager dengan parameter hard-coded (yaitu tidak dapat dikonfigurasi) --cache-size = 0 .

manual untuk dnsmasq mengatakan pengaturan ukuran cache ke nol menonaktifkan caching. Jika Anda ingin mengaktifkan caching, Anda mungkin harus menonaktifkan dnsmasq-plugin untuk NetworkManager untuk mencegah NetworkManager memulai dnsmasq dan memulai instance dnsmasq Anda sendiri dengan ukuran cache lebih besar dari nol.

di sini Anda dapat membaca cara menonaktifkan dnsmasq-plugin untuk NetworkManager: https://askubuntu.com/a/131422/71057

Yevgeniy M.
sumber
0

Untuk mengaktifkan kembali cache (dengan versi NetworkManager yang memiliki direktori /etc/NetworkManager/dnsmasq.d), sebenarnya cukup untuk meletakkan file di direktori itu dengan konten "cache-size = X" (dengan X menjadi 150 untuk dnsmasq default akan memiliki). File-file di sana menimpa parameter hard-coded yang diberikan pada commandline.

memetikan1
sumber
0

Di Ubuntu 14.04, saya harus mengedit /etc/default/dnsmasqdan mengaturENABLED=1

Saya juga meletakkan di cache-size=1000sana dan di semua file konfigurasi dnsmasq lainnya yang saya temukan.

Arthur F
sumber