dnsmasq кэширующий DNS-сервер.
Довольно часто на практике приходится использовать
кэширующий DNS-сервер. Ранее использовал хорошо известный
bind. Однако его настройка занимала немало времени. Да и вся мощь этого пакета не была нужна. Руководствуясь тем, что на текущий момент (2013г.) в репозиториях RedHat, Fedora и CentOS широко предлагается
dnsmasq, выбор пал на него.
Речь в задании будет идти исключительно о пакете dnsmasq.
Данный пакет был установлен, настроен и работает на ОС CentOS 6.3 и 6.4 на 32x и 64x.
Задача.
Необходимо установить кэширующий DNS-сервер для ускорения работы локальных сервисов e.g. сервера MTA, squid, loganalyzer etc.
- установить сервер из репозитория;
- настроить на определённые вышестоящие DNS-сервера;
- настроить на определение локальных FQDN;
- настроить глубину кэша.
Предпочитаю пакетную установку из стандартных репозиториев чтобы в дальнейшем не возникало проблем с обновлением и надёжностью работы пакета.
Установка.
[localhost]# yum install dnsmasq
Настройка конфигурации.
Содаю файл /etc/resolv.conf.dnsmasq для настройки обращения к рекурсивным или вышестоящим DNS-серверам. Системный resolv.conf предпочитаю не трогать. resolv.conf.dnsmasq представляет собой обыкновенный текстовый файл в формате системного
resolv.conf. Там будут располагаться упоминания о DNS провайдера и нашего контроллера домена. Желательно указать три DNS-сервера для повышения гарантии получения ответа на dns-запросы.
Для сохранения конфигурации по умолчанию:
[localhost]# cp /etc/dsnmasq.conf{,.default}
Наши настройки:
# Не перенаправлять запросы вышестоящим,
# если он без доменной части или без точки.
domain-needed
# Перечисление вышестоящих
resolv-file=/etc/resolv.conf.dnsmasq
# Кто занимается разрешением имён локальных хостов нашей интрасети.
# c.domain.local и b.domain.local даны для примера.
# При настройке необходимо использовать имена своих доменов, для которых
# будут настраиватся резолверы. xx.xx - для примера.
# Для своих настроек необходимо указывать IP-адрес резолвера.
server=/c.domain.local/192.168.xx.xx
server=/b.domain.local/192.168.xx.xx
# Кто будет заниматься обратным разрешением
server=/168.192.in-addr.arpa/192.168.xx.xx
# От имени какого пользователя будет работать dsmasq
user=daemon
group=bind
# На каком интерфейсе и адресах слушать DNS-запросы
interface=eth0
listen-address=127.0.0.1
listen-address=192.168.159.71
# DHCP не использовать.
no-dhcp-interface=eth0
# Сколько имён хранить в кэше.
cache-size=5000
Для отладки можно активировать директиву log-queries.
Настраивать межсетевой экран не надо, поскольку служба будет работать исключительно для локальных сервисов.
Запуск:
[localhost]# service dnsmasq start
Автозапуск при старте хоста:
[localhost]# chkconfig dnsmasq on
Проверку можно выполнить утилитами
dig или
host.