Как установить и настроить Dnsmasq на Ubuntu 18.04 LTS

Как установить и настроить Dnsmasq на Ubuntu 18.04 LTS

 

Это руководство поможет вам установить и настроить DNS-сервер Dnsmasq в Ubuntu 18.04 LTS (Bionic Beaver). Для новичков в Dnsmasq Dnsmasq — это простой, легкий, простой в использовании и управлении DNS-сервер с поддержкой сценариев Lua, IPv6, DNSSEC, сетевой загрузки для PXE, BOOTP и TFTP. Он имеет небольшую площадь, поэтому подходит для ограниченных по ресурсам маршрутизаторов и межсетевых экранов.

Dnsmasq был разработан для предоставления DNS и, при желании, сервисов DHCP / TFTP для сетей малого и среднего размера. Когда он получает DNS-запросы, он либо отвечает на них из своего локального кэша, либо перенаправляет их на другой рекурсивный DNS-сервер, которым может быть BIND или любой другой DNS-сервер.

Настройка для PowerDNS Authoritative DNS-сервера доступна в нашем блоге:

Установите PowerDNS и PowerDNS-Admin в Ubuntu 18.04 / Debian 9 с бэкэндом MariaDB

Подсистемы Dnsmasq

Dnsmasq имеет три основные подсистемы, а именно:

  • Подсистема DNS : обеспечивает кэширование записей A, AAAA, CNAME и PTR, а также записей DNSKEY и DS.
  • Подсистема DHCP : обеспечивает поддержку DHCPv4, DHCPv6, BOTP и PXE. Вы можете использовать как статическую, так и динамическую аренду DHCP, встроенный TFTP-сервер только для чтения для поддержки сетевой загрузки.
  • Подсистема объявления маршрутизатора: обеспечивает базовую автоконфигурацию для хоста IPv6

Шаг 1: Установка Dnsmasq в Ubuntu 18.04

Ubuntu 18.04 поставляется с systemd-resolv, который необходимо отключить, поскольку он привязывается к порту  53,  который конфликтует с портом Dnsmasq.

Выполните следующие команды, чтобы отключить разрешенную службу:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

Также удалите resolv.confфайл с символической ссылкой

 

$ ls -lh /etc/resolv.conf 
lrwxrwxrwx 1 root root 39 Aug  8 15:52 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

$ sudo rm /etc/resolv.conf

Затем создайте новый  файл resolv.conf  .

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Dnsmasq доступен в репозитории apt, простую установку можно выполнить, выполнив:

sudo apt-get install dnsmasq

Основной файл конфигурации для Dnsmasq /etc/dnsmasq.conf. Настройте Dnsmasq, изменив этот файл.

sudo vim /etc/dnsmasq.conf

Здесь минимальная конфигурация

# Listen on this specific port instead of the standard DNS port
# (53). Setting this to zero completely disables DNS function,
# leaving only DHCP and/or TFTP.
port=53
# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv
# By  default,  dnsmasq  will  send queries to any of the upstream
# servers it knows about and tries to favour servers to are  known
# to  be  up.  Uncommenting this forces dnsmasq to try each query
# with  each  server  strictly  in  the  order  they   appear   in
# /etc/resolv.conf
strict-order
# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts
# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
#     as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
#    domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
#domain=thekelleys.org.uk
domain=mypridomain.com

# Set Liste address
listen-address=127.0.0.1 # Set to Server IP for network responses

Если вы хотите включить проверку DNSSEC и кэширование, раскомментируйте

#dnssec

Сделайте любые другие изменения, которые вы считаете актуальными, и перезапустите dnsmasq, когда закончите

sudo systemctl restart dnsmasq

Шаг 2: Добавление DNS-записей в Dnsmasq

Добавьте DNS записи в файл. /etc/hosts, Dnsmasq будет отвечать на запросы клиентов, использующих эти записи.

$ sudo vim /etc/hosts
10.1.3.4 server1.mypridomain.com
10.1.4.4 erp.mypridomain.com 
192.168.10.2 checkout.mypridomain.com 
192.168.4.3 hello.world

Вам необходимо перезапустить службу dnsmasq после добавления записей.

sudo systemctl restart dnsmasq

Шаг 3: Тестирование функциональности DNS Dnsmasq

Чтобы убедиться, что Dnsmasq отвечает на добавленные нами записи, укажите DNS-сервер своих серверов на сервере Dnsmasq. Отредактируйте /etc/network/interfacesдля постоянной конфигурации или файл  /etc/netplan/ на серверах Ubuntu 18.04.

Поскольку это тест, я изменю файл времени выполнения /etc/resolv.conf

$ sudo vim /etc/resolv.conf
nameserver 127.0.0.1
nameserver 8.8.8.8

Тест с использованием dig:

$ dig A erp.mypridomain.com

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> A erp.mypridomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43392
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;erp.mypridomain.com.		IN	A

;; ANSWER SECTION:
erp.mypridomain.com.	0	IN	A	10.1.4.4

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Aug 21 10:35:41 UTC 2018
;; MSG SIZE  rcvd: 64

Вот еще один пример:

$ dig checkout.mypridomain.com A +noall +answer

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> checkout.mypridomain.com A +noall +answer
;; global options: +cmd
checkout.mypridomain.com. 0 IN A 192.168.10.2

You can confirm that we’re getting responses as configured.

Вы можете подтвердить, что мы получаем ответы в соответствии с настройками.

Настройте Dnsmasq в качестве DHCP-сервера (необязательно)

Вы можете использовать Dnsmasq для назначения IP-адресов клиентам, статическим или динамическим.

Отредактируйте файл a /etc/dnsmasq.conf и укажите параметры DHCP. Вам необходимо предоставить:

  • IP-адрес шлюза по умолчанию
  • IP-адрес DNS-сервера (возможно, Dnsmasq или другой DNS-сервер)
  • Маска подсети
  • Диапазон адресов DHCP
  • NTP сервер

См. Пример ниже

dhcp-range=192.168.3.25,192.168.3.50,24h
dhcp-option=option:router,192.168.3.1
dhcp-option=option:ntp-server,192.168.3.5
dhcp-option=option:dns-server,192.168.3.5
dhcp-option=option:netmask,255.255.255.0

Перезапустите dnsmasq и настройте клиенты для получения IP-адреса с этого сервера.

sudo systemctl restart dnsmasq

Вывод

Dnsmasq — это простой в настройке DNS-кэш, который может ускорить работу в Интернете и разрешать записи домена в ваших системах. Вы также можете пользоваться его подсистемой DHCP, которую легко настроить и использовать для небольшой сети.

Прокрутить вверх