Инструменты пользователя

Инструменты сайта


srvdns:dnsmasq_freebsd

Установка и настройка dnsmasq

OS: FreeBSD 10

Что это?

В двух словах
dnsmasq - DNS/DHCP/BOOTP-сервер. Прост в настройке и имеет достаточно мощный функционал. На мой взгляд, dnsmasq может быть очень эффективен при создании DNS или DNS+DHCP для «небольшой»1) локальной сети.

Установка

Установка «из пакетов»:

# pkg install dnsmasq
# echo 'dnsmasq_enable="YES"' >> /etc/rc.conf

Далее следует поправить файлы конфигурации.

Настройка

Очень простой сценарий - требуется обеспечить небольшую сеть (в качестве примера: 192.168.0.0/24) DNS-сервером для обслуживания зоны domain.zone, который будет также выступать в качестве «кэширующего» DNS.
Файл конфигурации /usr/local/etc/dnsmasq:

domain-needed
bogus-priv
strict-order
interface=rl0
listen-address=127.0.0.1
listen-address=192.168.0.2
expand-hosts
domain=domain.zone
cache-size=64

Файл конфигурации /etc/resolv.conf:

nameserver 127.0.0.1
nameserver 8.8.4.4
nameserver 8.8.8.8

Файл конфигурации /etc/hosts:

::1			localhost freebsd10 freebsd10.domain.zone
127.0.0.1		localhost freebsd10 freebsd10.domain.zone
192.168.0.1             gw gw.domain.zone
192.168.0.10            server1 server1.domain.zone
192.168.0.20            server2 server2.domain.zone
192.168.200.1           server3 server3.domain.zone

Этого достаточно чтобы обеспечить описанный функционал!

Свободный перевод на русский язык файла конфигурации.

Свободный перевод на русский язык файла конфигурации.

Свободный перевод на русский язык файла конфигурации.

# Файл настроек dnsmasq.
#
# Не пересылать обычные имена (без завершающей точки или доменного имени)
#domain-needed
# Не пересылать адреса из немаршрутизируемых сетей (192.168.0.0/16, 10.0.0.0/8 и т.п.)
#bogus-priv
# Фильтровать все бесполезные запросы windows (это блокирует все SRV запросы Kerberos, SIP, XMMP)
#filterwin2k

# Изменить местонахождение файла /etc/resolv.conf
#resolv-file=
# Опрашивать для каждого запроса каждый доступный сервер строго в порядке следования в файле /etc/resolv.conf
#strict-order
# Игнорировать сервера в файле /etc/resolv.conf
#no-resolv
# Не отслеживать изменения в списке серверов (в том числе в файле /etc/resolv.conf)
#no-poll

# Добавить сервер имен для домена
#server=/localnet/192.168.0.1
# Добавить сервер имен для запроса домена по адресу
#server=/3.168.192.in-addr.arpa/10.1.2.3

# Добавить локальный домен. Информация об адресе берется из /etc/hosts или DHCP
#local=/localnet/

# Добавить определенный адрес для домена (так же как и /etc/hosts)
#address=/doubleclick.net/127.0.0.1
# Допустимы и ipv6 адреса
#address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83

# Контроль запросов по интерфейсам. Запрос к серверу 10.1.2.3 будет исходить с интерфейса eth1
# --server=10.1.2.3@eth1
# или установить исходящий адрес и порт для запроса сервера 10.1.2.3
# --server=10.1.2.3@192.168.1.1#55

# Изменения пользователя и группы под которыми работает dnsmasq
#user=
#group=

# Определение интерфейсов для прослушивания запросов (lo, eth0, ppp0)
# Для определения нескольких интерфесов повторить interface=
#interface=
# Исключение интерфейсов для прослушивания
#except-interface=
# Определить точный адрес для прослушивания
#listen-address=
# Не принимать DHCP запросы с интерфейса
#no-dhcp-interface=

# Биндить сокет только на указанных интерфейсах
#bind-interfaces

# Не использовать /etc/hosts
#no-hosts
# Дополнительный файл с хостами
#addn-hosts=/etc/banner_add_hosts

# Добавлять определенный ниже домен также к хостам в /etc/hosts
#expand-hosts

# Локальный домен для автоматической подстановки в случае неполного доменного имени
#domain=thekelleys.org.uk

# Установка разных доменов для определенных подсетей
#domain=wireless.thekelleys.org.uk,192.168.2.0/24
# Установка разных доменов для определенных адресов
#domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200

# Размер кэша
#cache-size=150

# Не кэшировать негативные ответы от серверов
#no-negcache

# Установить время жизни кэша запросов к файлу /etc/hosts и DHCP
#local-ttl=

# Для возвращения корректного ответа NXDOMAIN от запросов к незарегистрированным .com and .net хостам
#bogus-nxdomain=64.94.110.11

# Исправление результата ответа от серверов (определение псевдонима адреса)
#alias=1.2.3.4,5.6.7.8
# Определение карты ответов 1.2.3.x до 5.6.7.x по маске 255.255.255.0
#alias=1.2.3.0,5.6.7.0,255.255.255.0
# Еще вариант 192.168.0.10->192.168.0.40 до 10.0.0.10->10.0.0.40
#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0

# Возвращает запись MX для домена "maildomain.com" с хостом servermachine.com и весом 50
#mx-host=maildomain.com,servermachine.com,50

# Установка хоста по умолчанию для записей MX при использовании опции localmx
#mx-target=servermachine.com

# Возвращает запись MX с хостом mx-target для всех локальных машин
#localmx

# Возвращает в записи MX себя для всех локальных машин
#selfmx

# Поля SRV записи: <name>,<target>,<port>,<priority>,<weight>
# Примеры:
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389
#srv-host=_ldap._tcp,ldapserver.example.com,389
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2
#srv-host=_ldap._tcp.example.com
#ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services"
#txt-record=example.com,"v=spf1 a -all"
#txt-record=_http._tcp.example.com,name=value,paper=A4

# Определения псевдонимов для локальных хостов (из /etc/hosts или DHCP)
# Пример: bert псевдоним bertrand
#cname=bertand,bert

# Логирование для отладки
#log-queries

# Логирование дополнительной информации о DHCP транзакциях
#log-dhcp

# Включение дополнительных конфигурационных файлов
#conf-file=/etc/dnsmasq.more.conf
#conf-dir=/etc/dnsmasq.d
1) не более 100 машин; опыта эксплуатации ПО «под высокой нагрузкой» у меня нет
srvdns/dnsmasq_freebsd.txt · Последние изменения: 2014/02/19 08:57 — Alex