Приведу пример установки кэширующего DNS сервера Unbound.
Установить Unbound в Ubuntu можно командой:
sudo apt-get install unbound
После установки посмотрим содержимое файла конфигурации:
cat /etc/unbound/unbound.conf
В моем случае там была только строка:
include: "/etc/unbound/unbound.conf.d/*.conf"
Строка выше означает что из директории unbound.conf.d будут загружаться все файлы с расширением .conf.
По этому создадим в ней новый файл:
sudo touch /etc/unbound/unbound.conf.d/test.conf
И откроем в текстовом редакторе:
sudo nano /etc/unbound/unbound.conf.d/test.conf
Приведу пример конфигурации:
server:
port: 53
verbosity: 0
num-threads: 2
outgoing-range: 512
num-queries-per-thread: 1024
msg-cache-size: 16m
rrset-cache-size: 32m
cache-max-ttl: 86400
infra-host-ttl: 60
infra-lame-ttl: 120
interface: 127.0.0.1
interface: 192.168.5.5
outgoing-interface: 192.168.0.2
access-control: 127.0.0.0/8 allow
access-control: 192.168.5.0/24 allow
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
username: unbound
directory: "/etc/unbound"
logfile: "/var/log/unbound.log"
use-syslog: no
hide-version: yes
so-rcvbuf: 4m
so-sndbuf: 4m
Создадим файл логов и назначим права чтобы писались логи:
sudo touch /var/log/unbound.log
sudo chown unbound:unbound /var/log/unbound.log
Перезапустим Unbound чтобы загрузился новый файл конфигурации:
sudo service unbound restart
Убедимся что Unbound запущен:
sudo service unbound status
sudo ps auxw | grep unbound
sudo netstat -anp | grep 53
Опишу несколько параметров из конфигурации:
interface (интерфейсы на которых будет запущен Unbound и будут слушаться запросы)
outgoing-interface (внешний интерфейс через который приходит интернет)
access-control (определяет чьи запросы разрешено обрабатывать)
verbosity (уровень логов от 0 до 4, 4 это debug)
use-syslog: no (не писать логи в syslog)
num-threads (количество потоков, нужно указывать равное количеству ядер процессора)
do-ip4: yes, do-udp: yes, do-tcp: yes (разрешаем IPv4, TCP, UDP)
do-ip6: no (запрещяем IPv6)
username (пользователь, под которым будет запущен Unbound)
hide-version: yes (запретим отображение версии Unbound)
Пример просмотра логов:
sudo tail -f /var/log/syslog
sudo tail -f /var/log/unbound.log
Пример экспорта и импорта кэша:
unbound-control dump_cache > unbound.dump
cat unbound.dump | unbound-control load_cache
Смотрите также мои статьи:
Установка и настройка DNS-сервера BIND9
IPTables правила для DNS