2.3 Настройка кэширования DNS с помощью dnsmasq

Внимание

Для корректной установки и настройки dnsmasq, перейдите в сеанс cуперпользователя:

sudo -i

или

su

На запрос пароля, введите пароль привилегированного пользователя или локального администратора.

DNS — кэш предназначен для ускорения загрузки страниц веб-сайтов, путем сохранения в памяти их IP-адресов.  Для настройки кэширования используйте утилиту dnsmasq.

yum install dnsmasq

С помощью текстового редактора vi или nano откройте файл, расположенный по адресу /etc/dnsmasq.conf

vi /etc/dnsmasq.conf

или

nano /etc/dnsmasq.conf

Отредактируйте следующие параметры:

resolv-file=/etc/resolv.dnsmasq
no-poll
listen-address=127.0.0.1
cache-size=150
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

А так же допишите следующий параметр:

all-servers

Где:

  • resolv-file — файл с IP-адресами dns — серверов
  • no-poll — параметр, запрещающий автоматическое применение изменений в файлах с именем resolv.
  • listen-address — параметр, указывающий какой адрес слушать.
  • cache-size — размер кэша. Значение по умолчанию позволяет хранить 150 хостов.
  • conf-dir — параметр, отвечающий за дополнительный файл конфигурации.
  • all-servers — перенаправляет dns-запрос всем доступным dns-серверам и возвращает ответ от первого откликнувшегося сервера. Параметр нужно записать вручную.

Также можно указать следующие параметры:

  • no-negcache — не кэшировать негативные ответы от серверов.
  • bind-interfaces — позволяет запускать копии процесса.
  • dns-forward-max — максимальное количество dns-запросов. По умолчанию — 150. Параметр нужно записать вручную.

Теперь создайте файл resolv.dnsmasq с помощью текстового редактора vi или nano и запишите туда адреса dns-серверов.

vi /etc/resolv.dnsmasq

или

nano /etc/resolv.dnsmasq

Потом добавьте IP-адрес 127.0.0.1 в файл resolv.conf. Для этого, используйте утилиту «Сетевые соединения», расположенную в «Меню» → «Параметры» → «Сетевые соединения» в графическом окружении Cinnamon или «Система» → «Параметры» → «Сетевые соединения» в графическом окружении Mate. Выберите ваше активное подключение, нажмите кнопку «Изменить», перейдите на вкладку «Параметры IPv4», поменяйте «Метод» на «Автоматический (DHCP, только адресс)», а в поле «Дополнительные серверы DNS» напишите адрес 127.0.0.1, нажмите применить и перезапустите NetworManager.

Изменение сетевого адаптера

Изменение свойств сетевого адаптера

Редактирование файла resolv.conf с помошь текстовых редакторов не рекомендуется. Файл перезапишется со следующим перезапуском системы.
systemctl restart NetworkManager.service

Чтобы убедиться, что изменения вступили в силу, посмотрите содержимое файла resolv.conf:

cat /etc/resolv.conf

Содержимое должно быть таким:

# Generated by NetworkManager

nameserver 127.0.0.1

Описанные выше операции позволят перенаправлять все dns-запросы на локальную машину.

Добавьте службу dnsmasq в автозапуск и перезайдите в сеанс:

systemctl enable dnsmasq.service --now

Для того, чтобы сбросить кэш, просто перезапустите службу:

systemctl restart dnsmasq.service

Проверка работоспособности

Проверьте, включена ли служба:

systemctl status dnsmasq.service

Проверьте порт 53:

netstat -ntlp | grep :53
tcp  0  0 0.0.0.0:53  0.0.0.0:*  LISTEN 7319/dnsmasq
tcp6 0  0 :::53   :::*   LISTEN 7319/dnsmasq

Теперь попробуйте с помощью утилиты dig несколько раз обратиться к cайту google.com

dig google.com | grep "Query time"
;; Query time: 135 msec

Если кэширование dns-запросов работает, то практически во всех следующих запросах выделенная строчка query time будет равна нулю.

;; Query time: 0 msec

В противном случае она будет варьироваться от 0 и выше с каждым новым запросом.

В результате, основной DNS-сервер сети будет испытывать гораздо меньше нагрузки.

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.