Встановлення та налаштування Dnsmasq на Ubuntu 22.04|20.04|18.04

Вступ

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

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

Підсистеми Dnsmasq

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

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

Крок 1. Встановіть Dnsmasq на Ubuntu 22.04|20.04|18.04

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 є  /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=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 у файл. /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. Тестування функціональності Dnsmasq DNS

Щоб переконатися, що Dnsmasq відповідає на додані нами записи, вкажіть DNS-сервер ваших серверів на сервер Dnsmasq. Відредагуйте /etc/network/interfaces для постійної конфігурації або файл  /etc/netplan/ на серверах Ubuntu.

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

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

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

Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *