Как включить DNS-кэширование в dnsmasq под управлением NetworkManager?

Ubuntu Desktop 12.04 использует dnsmasq для выполнения поиска DNS, но он не настроен для кэширования этих результатов. (Я проверил это, используя dig для разрешения имен, и не вижу значительного улучшения времени отклика после первого поиска.) Как настроить dnsmasq под управлением NetworkManager для кэширования результатов поиска DNS?

8
задан 13 April 2017 в 15:23

6 ответов

В Ubuntu 12.10 вы можете включить кэш экземпляра dnsmasq, управляемого NetworkManager, поместив строку

cache-size=1000

(с вашим предпочтительным числом имен вместо 1000) в новый файл в / etc / NetworkManager / dnsmasq.d /. Чтобы активировать это изменение, вы должны выполнить

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

или перезагрузиться.

0
ответ дан 13 April 2017 в 15:23

Я смог включить DNS, кэширующийся в Linux Mint 13 (на основе Ubuntu 12.04) использование метода, описанного в первом ответе. Я создал файл /etc/NetworkManager/dnsmasq.d/cachedns содержа строку cache-size=100, затем перезапущенный администратор сети. Даже при том, что dnsmasq выполняется администратором сети с трудно кодированным --cache-size=0 на его командной строке, устанавливая размер кэша в файле конфигурации переопределяет то значение. Можно проверить, что это работает путем выполнения этого:

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

Необходимо видеть строку, которая похожа на это в системном журнале, показывая размер кэша:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
4
ответ дан 13 April 2017 в 15:23

в 12.04 dnsmasq запускается NetworkManager с жестко заданным (то есть не настраиваемым) параметром - размер кэша = 0 .

manpages для dnsmasq говорит, что установка нулевого размера кеша отключает кеширование. Если вы хотите включить кэширование, вам, вероятно, придется отключить плагин dnsmasq для NetworkManager, чтобы предотвратить запуск NetworkManager dnsmasq, и запустить собственный экземпляр dnsmasq с размером кэша, большим нуля.

здесь вы можете прочитать, как отключить dnsmasq-плагин для NetworkManager: https://askubuntu.com/a/131422/71057

0
ответ дан 13 April 2017 в 15:23

В Ubuntu 14.04 мне пришлось отредактировать /etc/default/dnsmasq и установить ENABLED=1

. Я также поместил cache-size=1000 туда и во все другие файлы конфигурации dnsmasq, которые я нашел.

0
ответ дан 13 April 2017 в 15:23

Я не хотел обновляться с 12.04, но все же хотел, чтобы dnsmasq управлялся NetworkManager с включенным кэшированием, но, как сказал другой ответ, --cache-size = 0 жестко запрограммирован и не может быть изменен при конфигурации .

Итак, в итоге я сделал от имени root следующее:

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

и затем создал новый файл / usr / sbin / dnsmasq со следующим содержимым:

#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args
[ 116] убедитесь, что вы chmod +x /usr/sbin/dnsmasq, и измените размер кэша с 1000 на любой другой, наслаждайтесь вашей версией LTS с кешем DNS!

0
ответ дан 13 April 2017 в 15:23

Чтобы снова включить кэш (в версии NetworkManager, в которой есть каталог /etc/NetworkManager/dnsmasq.d), на самом деле достаточно поместить файл в этот каталог с содержимым «cache-size = X» Х, равный 150 для значения по умолчанию, dnsmasq будет иметь). Файлы там переопределяют жестко заданные параметры, заданные в командной строке.

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: