Knot Authoritative DNS
Альтернатива BIND, Knot DNS, є сучасним офіційним DNS-сервером, який підтримується чеським реєстром доменів CZ.NIC.
Передумови та припущення¶
- Сервер під керуванням Rocky Linux
- Можливість використання firewalld для створення правил брандмауера
- Доменне ім’я або внутрішній рекурсивний DNS-сервер вказує на ваш авторитетний DNS-сервер
Вступ¶
Зовнішні або загальнодоступні DNS-сервери відображають імена хостів на IP-адреси, а у випадку записів PTR (відомих як «вказівник» або «зворотний»), відображають IP-адреси в імені хоста. Це важлива частина Інтернету. Завдяки цьому ваш поштовий сервер, веб-сервер, FTP-сервер або багато інших серверів і служб працюють належним чином, незалежно від того, де ви знаходитесь.
Встановлення та ввімкнення Knot¶
Спочатку встановіть EPEL:
dnf install epel-release
Далі встановіть Knot:
dnf install knot
Налаштування Knot¶
Перш ніж вносити зміни в будь-який конфігураційний файл, перемістіть вихідний встановлений робочий файл knot.conf
:
mv /etc/knot/knot.conf /etc/knot/knot.conf.orig
Це допоможе в майбутньому, якщо станеться введення помилок у файл конфігурації. Завжди варто зробити резервну копію перед внесенням змін.
Відредагуйте файл knot.conf. Автор використовує vi, але ви можете замінити свій улюблений редактор командного рядка:
vi /etc/knot/knot.conf
Вставте наступне:
server:
listen: 0.0.0.0@53
listen: ::@53
zone:
- domain: example.com
storage: /var/lib/knot/zones
file: example.com.zone
log:
- target: syslog
any: info
Замініть example.com
ім'ям домену, для якого ви запускаєте сервер імен.
Далі створіть файли зони:
mkdir /var/lib/knot/zones
vi /var/lib/knot/zones/example.com.zone
Файли зони DNS сумісні з BIND. У файл вставте:
$TTL 86400 ; How long should records last?
; $TTL used for all RRs without explicit TTL value
$ORIGIN example.com. ; Define our domain name
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2024061301 ; serial
3h ; refresh duration
15 ; retry duration
1w ; expiry duration
3h ; nxdomain error ttl
)
IN NS ns1.example.com. ; in the domain
IN MX 10 mail.another.com. ; external mail provider
IN A 172.20.0.100 ; default A record
; server host definitions
ns1 IN A 172.20.0.100 ; name server definition
www IN A 172.20.0.101 ; web server definition
mail IN A 172.20.0.102 ; mail server definition
Якщо вам потрібна допомога з налаштуванням файлів зон у стилі BIND, Oracle має хороший вступ до файлів зон.
Збережіть зміни.
Включення Knot¶
Далі дозвольте порти DNS у firewalld
і ввімкніть Knot DNS:
firewall-cmd --add-service=dns --zone=public
firewall-cmd --runtime-to-permanent
systemctl enable --now knot
Перевірте дозвіл DNS за допомогою команди host
:
% host example.com 172.20.0.100
Using domain server:
Name: 172.20.0.100
Address: 172.20.0.100#53
Aliases:
example.com has address 172.20.0.100
example.com mail is handled by 10 mail.another.com.
%
Висновок¶
Хоча більшість людей використовують сторонні служби для DNS, є сценарії, коли бажано самостійно розмістити DNS. Наприклад, телекомунікаційні, хостингові та соціальні медіа компанії розміщують багато записів DNS, де розміщені послуги є небажаними.
Knot — це один із багатьох інструментів з відкритим кодом, які роблять можливим розміщення DNS. Вітаємо, у вас є власний DNS-сервер!
Author: Neel Chauhan
Contributors: Steven Spencer, Ganna Zhyrnova