Перейти до змісту

Незв'язаний рекурсивний DNS

Альтернативою BIND, Unbound є сучасний перевіряючий, рекурсивний і кешуючий DNS-сервер, який підтримується NLnet Labs.

Передумови та припущення

  • Сервер під керуванням Rocky Linux
  • Можливість використання firewalld для створення правил брандмауера

Вступ

Існує два типи DNS-серверів: авторитетні та рекурсивні. Якщо авторитетні DNS-сервери повідомляють про зону DNS, рекурсивні сервери вирішують запити від імені клієнтів, пересилаючи їх до Інтернет-провайдера або загальнодоступного DNS-розпізнувача або кореневих зон для більших серверів.

Наприклад, на вашому домашньому маршрутизаторі, ймовірно, працює вбудований рекурсивний DNS-розпізнавач, який пересилає дані до вашого провайдера чи загальнодоступного DNS-сервера, який також є рекурсивним DNS-сервером.

Встановлення та ввімкнення Unbound

Встановлення Unbound:

dnf install unbound

Налаштування Unbound

Перш ніж вносити зміни до будь-якого конфігураційного файлу, перемістіть вихідний встановлений робочий файл unbound.conf:

cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.orig

Це допоможе в майбутньому, якщо станеться введення помилок у файл конфігурації. Завжди варто зробити резервну копію перед внесенням змін.

Відредагуйте файл unbound.conf. Автор використовує vi, але ви можете замінити свій улюблений редактор командного рядка:

vi /etc/unbound/unbound.conf

Вставте наступне:

server:
    interface: 0.0.0.0
    interface: ::
    access-control: 192.168.0.0/16 allow
    access-control: 2001:db8::/64 allow

forward-zone:
    name: "."
    forward-addr: 1.0.0.1@53
    forward-addr: 1.1.1.1@53

Замініть 192.168.0.0/16 і 2001:db8::/64 на підмережі, для яких ви вирішуєте запити DNS. Збережіть зміни.

Придивляючись ближче

  • interface позначає інтерфейси (IPv4 або IPv6), на яких ви хочете прослуховувати запити DNS. Ми прослуховуємо всі інтерфейси з «0.0.0.0» і «::».
  • access-control вказує, з яких підмереж (IPv4 або IPv6) ви хочете дозволити DNS-запити. Ми дозволяємо запити з 192.168.0.0/16 і 2001:db8::/64.
  • forward-addr визначає сервери, на які ми будемо пересилати. Ми пересилаємо на 1.1.1.1 та 1.0.0.1 Cloudflare.

Увімкнення Unbound

Далі дозвольте порти DNS у firewalld і ввімкніть Unbound:

firewall-cmd --add-service=dns --zone=public
firewall-cmd --runtime-to-permanent
systemctl enable --now unbound

Перевірте дозвіл DNS за допомогою команди host:

$ host google.com 172.20.0.100
Using domain server:
Name: 172.20.0.100
Address: 172.20.0.100#53
Aliases:

google.com has address 142.251.215.238
google.com has IPv6 address 2607:f8b0:400a:805::200e
google.com mail is handled by 10 smtp.google.com.

%

Висновок

Більшість людей використовують DNS-розпізнавач свого домашнього маршрутизатора або загальнодоступні DNS-розпізначі, якими керують Інтернет-провайдери та технологічні компанії. У домашніх лабораторіях і великих мережах стандартним є запуск загальномережевого резолвера, щоб зменшити затримку та мережеве навантаження шляхом кешування запитів DNS для часто запитуваних веб-сайтів, таких як Google. Загальномережний резолвер також увімкне інтрамережі, такі як SharePoint і Active Directory.

Unbound — це один із багатьох інструментів із відкритим вихідним кодом, які роблять можливим вирішення DNS. Вітаємо, у вас є власний DNS-розпізнавач!

Author: Neel Chauhan

Contributors: Steven Spencer, Ganna Zhyrnova