Jak włączyć buforowanie DNS w dnsmasq kontrolowanym przez NetworkManager?

8

Ubuntu Desktop 12.04 używa dnsmasq do wyszukiwania DNS, ale nie jest skonfigurowany do buforowania tych wyników. (Sprawdziłem to za pomocą dig do rozpoznawania nazw i nie widzę dużej poprawy czasu odpowiedzi po pierwszym wyszukiwaniu.) Jak skonfigurować kontrolowane przez NetworkManager dnsmasq do buforowania wyników wyszukiwania DNS?

Społeczność
źródło

Odpowiedzi:

10

W Ubuntu 12.10 można włączyć pamięć podręczną kontrolowanej przez NetworkManager instancji dnsmasq, umieszczając wiersz

cache-size=1000

(z preferowaną liczbą nazw zamiast 1000) w nowym pliku w /etc/NetworkManager/dnsmasq.d/. Aby aktywować tę zmianę, musisz to zrobić

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

lub uruchom ponownie.

jdthood
źródło
Dziękuję za informację. W systemie Ubuntu 16.04 (i 15.10 od czasu wprowadzenia systemd) użyj „sudo service network-manager stop / start” zamiast „sudo stop / start network-manager”
Fumisky Wells,
Chociaż to nadal działa, za pomocą narzędzia systemd powinno być:sudo systemctl stop NetworkManager
goetzc,
4

Udało mi się włączyć buforowanie DNS w Linux Mint 13 (w oparciu o Ubuntu 12.04) przy użyciu metody opisanej w pierwszej odpowiedzi. Utworzyłem plik /etc/NetworkManager/dnsmasq.d/cachednszawierający linię cache-size=100, a następnie ponownie uruchomiłem menedżera sieci. Mimo że dnsmasq jest wykonywany przez menedżera sieci z zakodowanym --cache-size=0na stałe w wierszu polecenia, ustawienie wielkości pamięci podręcznej w pliku konfiguracyjnym przesłania tę wartość. Możesz sprawdzić, czy to działa, wykonując następujące czynności:

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

Powinieneś zobaczyć linię, która wygląda następująco w syslog, pokazując rozmiar pamięci podręcznej:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
bloovis
źródło
Zastanawiałem się, jak wpłynęło to na zakodowane na stałe w menedżerze sieci - rozmiar-pamięci podręcznej = 0, ale twój post wyjaśnia. Dziękuję Ci!
Fumisky Wells,
1

Nie chciałem aktualizować z wersji 12.04, ale nadal chciałem dnsmasq zarządzany przez NetworkManager z włączonym buforowaniem, ale jak mówi druga odpowiedź: - rozmiar pamięci podręcznej = 0 jest zakodowany na stałe i nie można go zmienić w konfiguracji.

Skończyło się na tym, że jako root:

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

a następnie utworzenie nowego pliku / usr / sbin / dnsmasq o następującej treści:

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

upewnij się chmod +x /usr/sbin/dnsmasqi zmień rozmiar pamięci podręcznej z 1000 na cokolwiek chcesz, ciesz się wersją LTS dzięki pamięci podręcznej DNS!

moparisthebest
źródło
0

w 12.04 dnsmasq jest uruchamiany przez NetworkManager z zakodowanym na stałe (tzn. nie można konfigurować) parametrem - rozmiar pamięci podręcznej = 0 .

Manpages dla dnsmasq mówi, że ustawienie wielkości bufora na zero wyłącza buforowanie. Jeśli chcesz włączyć buforowanie, prawdopodobnie będziesz musiał wyłączyć wtyczkę dnsmasq dla NetworkManager, aby uniemożliwić NetworkManagerowi uruchomienie dnsmasq i uruchomienie własnej instancji dnsmasq z wielkością pamięci podręcznej większą niż zero.

tutaj możesz przeczytać, jak wyłączyć wtyczkę dnsmasq dla NetworkManager: https://askubuntu.com/a/131422/71057

Jewgienij M.
źródło
0

Aby ponownie włączyć pamięć podręczną (w wersji NetworkManager, która ma katalog /etc/NetworkManager/dnsmasq.d), wystarczy usunąć plik z tego katalogu z zawartością „cache-size = X” (gdzie X wynosi 150 dla domyślnego byłoby dnsmasq). Pliki tam zastępują parametry zakodowane na stałe podane w wierszu polecenia.

incase1
źródło
0

W Ubuntu 14.04 musiałem edytować /etc/default/dnsmasqi ustawiaćENABLED=1

Umieściłem również cache-size=1000tam i we wszystkich innych plikach konfiguracyjnych dnsmasq, które znalazłem.

Arthur F.
źródło