dnsmasq — компактный сетевой сервис, предназначенный для предоставления локальных служб DNS, DHCP и TFTP в небольших сетях. Проект возник как лёгкая и простая в настройке альтернатива полнофункциональным DNS-серверам и отдельным DHCP-демонам, обеспечивая удобную интеграцию с системами на базе UNIX-подобных ОС. Программа часто используется на маршрутизаторах, в виртуальных средах и на рабочих станциях для кэширования DNS-запросов, распределения адресов в локальной сети и упрощённого управления записями имени-хоста.
Архитектура dnsmasq ориентирована на минимальное потребление ресурсов и простоту конфигурации: большинство параметров задаётся в одном конфигурационном файле или через параметры командной строки. Сервис поддерживает чтение локальных файлов hosts, переадресацию запросов к внешним DNS-серверам, а также применение списков блокировки доменов. Благодаря встроенному кешированию и возможности работы в качестве форвардера, dnsmasq снижает задержки при разрешении имён и уменьшает сетевой трафик к внешним резолверам.
- DNS-кеширование: временное сохранение ответов от внешних резолверов для ускорения последующих запросов.
- DNS-перенаправление и форвардинг: пересылка неподдерживаемых или корневых запросов к указанным рекурсивным DNS-серверам.
- Локальные записи: поддержка статических записей через встроенный hosts-файл и конфигурационные опции для определения локальных имён.
- DHCP-сервер: распределение IP-адресов, выдача шлюза, DNS-серверов и дополнительных опций по DHCP и DHCPv6.
- Интеграция с сетями и виртуальными интерфейсами: привязка служб к конкретным интерфейсам и сегментам сети, поддержка резервирования адресов по MAC.
- Блокировка доменов: применение списков блокировки (blocklists) для предотвращения разрешения нежелательных или вредоносных доменов.
- TFTP и PXE-поддержка: базовая реализация TFTP-сервера для загрузки по сети и поддержки PXE-устройств.
- Низкое потребление ресурсов: оптимизированный код для работы на встраиваемых устройствах и старом аппаратном обеспечении.
- Управление несколькими DNS-процессами: поддержка зон и пересылок для сложных сценариев с несколькими источниками имён.
- Простота конфигурации: единый конфигурационный файл с понятными ключами и возможностью дополнения через командную строку.