Як встановити та налаштувати Dnsmasq на Ubuntu 24.04|22.04|20.04

Як встановити та налаштувати Dnsmasq на Ubuntu 24.04|22.04|20.04

 

Цей посібник допоможе вам встановити та налаштувати DNS-сервер Dnsmasq на Ubuntu 24.04|22.04|20.04 LTS. Для тих, хто новачок у Dnsmasq, Dnsmasq — це простий, легкий, легкий у використанні та управлінні DNS-сервер із підтримкою сценаріїв Lua, IPv6, DNSSEC, мережевого завантаження для PXE, BOOTP та TFTP. Він займає невелику площу, тому підходить для маршрутизаторів і брандмауерів з обмеженими ресурсами.

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

Підсистеми DNSMASQ

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

  • DNS subsystem: забезпечує кешування A, AAAAA, CNAME і PTR, а також записів DNSKEY і DS.
  • DHCP subsystem: забезпечує підтримку DHCPv4, DHCPv6, BOTP і PXE. Ви можете використовувати як статичну, так і динамічну оренду DHCP, вбудований TFTP-сервер лише для читання для підтримки netboot.
  • Router Advertisement subsystem: забезпечує базову автоконфігурацію для хоста IPv6

Крок 1: Встановіть Dnsmasq

Ubuntu 18.04+ поставляється з systemd-resolve, який вам потрібно вимкнути, оскільки він прив’язується до порту 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 unlink /etc/resolv.conf

Потім створіть новий файл resolv.conf.

echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf

Dnsmasq доступний у репозиторії apt, просте встановлення можна виконати, виконавши:

sudo apt update
sudo apt install dnsmasq

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

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=example.com

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

Якщо ви хочете увімкнути перевірку та кешування DNSSEC, розкоментуйте

$ sudo dnssec

Внесіть будь-які інші зміни, які ви вважаєте актуальними, і перезапустіть dnsmasq, коли закінчите:

sudo systemctl restart dnsmasq

Крок 2: Додавання DNS-записів до Dnsmasq

Додайте у файл DNS-записи.. Dnsmasq відповідатиме на запити клієнтів, використовуючи ці записи./etc/hosts

$ 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. Відредагуйте для постійної конфігурації або файл на серверах Ubuntu./etc/network/interfaces/etc/netplan/

Оскільки це тест, я зміню файл виконання /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

Ви можете підтвердити, що ми отримуємо відповіді відповідно до налаштувань.

Крок 4: Налаштуйте dnsmasq як DHCP-сервер (необов’язково)

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

Відредагуйте файл a та надайте параметри DHCP. Вам потрібно надати:/etc/dnsmasq.conf

  • 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, яка проста в налаштуванні та використанні для невеликої мережі.

Прокрутка до верху