2.5.2.4 Настройка кеширования DNS с помощью dnsmasq
Скачать документДля корректной установки и настройки dnsmasq, перейдите в сеанс cуперпользователя:
sudo -i
или
su
На запрос пароля, введите пароль привилегированного пользователя или локального администратора.
DNS - кэш предназначен для ускорения загрузки страниц веб-сайтов, путем сохранения в памяти их IP-адресов. Для настройки кэширования используйте утилиту dnsmasq.
dnf 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, нажмите применить и перезапустите NetworkManager.
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-сервер сети будет испытывать гораздо меньше нагрузки.
Дата последнего изменения: 03.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.