dnsmasq (Русский)
Dnsmasq это DHCP и DNS сервера в одной программе. Она может быть использована для создания подключения к интернету с возможностью автоматической выдачи IP адреса и одновременным кэшированием соответствия доменов их IP адресам (DNS-кэширование). Это кэширование дает отличный прирост скорости работы с интернетом, т.к. не нужно постоянно обращаться за IP адресом к DNS-серверу - он держит эти параметры у себя в кэше. Dnsmasq легковесное приложение, разработанное для персонального использования, или как DHCP сервер для сети, в которой не более 50 компьютеров.
Contents |
Установка
Dnsmasq находится в репозиториях и может быть установлен так: dnsmasq
Установка сервера DHCP
Вам нужно отредактировать конфигурационные файлы Dnsmasq. Измените /etc/dnsmasq.conf:
# Only listen to router LAN NIC, also opens up tcp/udp port 53 to localhost # and udp port 67 to world: interface=<LAN-NIC> # dnsmasq will open tcp/udp port 53 and udp port 67 to world to help with # dynamic interfaces (assigning dynamic ips). Dnsmasq will discard world # requests to them, but the paranoid might like to close them and let the # kernel handle them: bind-interfaces # Dynamic range of IPs to make available to LAN pc dhcp-range=192.168.111.50,192.168.111.100,12h # If you’d like to have a static ip, bind the LAN computer's NIC MAC address: dhcp-host=aa:bb:cc:dd:ee:ff,192.168.111.50
If you choose not to bind interfaces the domain port will need to be allowed in /etc/hosts.allow:
domain ALL : ALLOW
Настройка кэша DNS
Когда вы запускаете Dnsmasq как DHCP сервер, он также начинает прослушивать локальный интерфейс (localhost) на запросы DNS. Для запуска функции кэширования DNS отредактируйте пожалуйста /etc/dnsmasq.conf и добавьте в него:
listen-address=127.0.0.1
dhcp клиент должен быть переадресован на адрес 127.0.0.1 (localhost) для обработки запросов DNS. После настройки Dnsmasq, вам нужно задать /etc/resolv.conf список ваших DNS серверов (если вы, конечно это ранее не сделали). Когда DHCP клиент сконфигурирован, вам нужно перезапустить сеть, чтобы изменения вступили в силу.
sudo /etc/rc.d/network restart
dhcpcd
Dhcpcd может сам добавлять или удалять DNS сервера в /etc/resolv.conf создавая /etc/resolv.conf.head и /etc/resolv.conf.tail
echo "nameserver 127.0.0.1" > /etc/resolv.conf.head
dhclient
Если выиспользуете dhclient, добавьте в /etc/dhcp/dhclient.conf:
prepend domain-name-servers 127.0.0.1;
Запуск
Dnsmasq должен быть запущен как демон:
/etc/rc.d/dnsmasq start
Для запуска dnsmasq при загрузке системы, добавьте dnsmasq секцию DAEMONS в /etc/rc.conf:
DAEMONS=(network dnsmasq ...)
Для отслеживания ошибок и сообщений сервера вы можете смотреть log-файл /var/log/messages.log он отправляет свои сообщения в него.
Тестирование DHCP сервера
Клиентом из сети, с установленной и запущенной сетью. Установите подключение к машине с запущенным Dnsmasq.
Тестирование кэширования DNS
Выполните:
dig archlinux.org | grep "Query time"
(dig это часть dnsutils):
Запустите еще раз и сравните результаты.
Заметки
Additional tips for Dnsmasq.
Prevent OpenDNS Redirecting Google Queries
To prevent OpenDNS from redirecting all Google queries to their own search server, add to /etc/dnsmasq.conf:
server=/www.google.com/X.X.X.X
Replace X.X.X.X with your ISP's DNS server/Router IP.