Как настроить master BIND DNS в Ubuntu 20.04
Чтобы Интернет обеспечивал мгновенный доступ к ресурсам по всему миру, что предполагает связывание компьютеров или сайтов с уникальным доменным именем, необходима услуга, которая поможет в этом. DNS (система доменных имен) переводит удобочитаемые доменные имена, например www.infoit.com.ua, в компьютерно-читаемый IP-адрес и наоборот.
BIND9 (Berkeley Internet Name Domain) — это пакет, обеспечивающий преобразование имени в функциональность IP.
Давайте рассмотрим, как настроить главный DNS-сервер с помощью BIND9 в Ubuntu 20.04. Прежде чем продолжить, убедитесь, что на вашем сервере настроен статический IP-адрес. Если ваш сервер использует DHCP, вам необходимо настроить статический, чтобы гарантировать, что изменение IP-адреса не произойдет после настройки DNS-сервера.
Bind DNS Server Installation on Ubuntu 20.04
Прежде чем мы начнем установку необходимых пакетов, всегда полезно убедиться, что вы работаете на обновленном сервере Ubuntu:
sudo apt update -y
Загрузите необходимые пакеты из базы Ubuntu, используя apt:
sudo apt install -y bind9 bind9utils bind9-doc dnsutils
Конфигурация DNS-сервера в Ubuntu 20.04
Главный каталог конфигурации DNS — /etc/bind.
это файлы поиска по зоне и другие файлы конфигурации.
Файл глобальной конфигурации DNS находится по адресу /etc/bind/named.conf
. Однако это не используется для локальной конфигурации DNS. /etc/bind/named.conf.local
вместо этого используется.
Создать зоны
Сделаем это в /etc/bind/named.conf.local
файле. Используйте любой текстовый редактор для редактирования файла.
Создадим в файле прямую и обратную зоны. Ниже представлена запись прямой зоны для домена infoit.local . Измените это ваше доменное имя в вашей конфигурации.
zone "infoit.local" IN { // Domain name
type master; // Primary DNS
file "/etc/bind/forwardinfoit.local.db"; // Forward lookup file
allow-update { none; }; // Since this is the primary DNS, it should be none.
};
Где:
- infoit.local — это имя зоны.
- forward.infoit.local.db — это имя зоны прямого просмотра.
Добавьте следующее в /etc/bind/named.conf.local
обратную зону
zone "10.16.172.in-addr.arpa" IN { //Reverse lookup name, should match your network in reverse order
type master; // Primary DNS
file "/etc/bind/reverse.infoit.local.db"; //Reverse lookup file
allow-update { none; }; //Since this is the primary DNS, it should be none.
};
-
- 10.16.172.in-addr.arpa — имя зоны обратного DNS. (Если сеть 172.16.10.0, имя будет обратным, как в 10.16.172 )
- reverse.infoit.local.db — это обратный DNS-файл.
Настройка файлов поиска зоны Bind DNS в Ubuntu 20.04
Файлы поиска зоны содержат записи DNS для прямой и обратной зон.
- Файл поиска передней зоны
Скопируйте образец файла поиска прямой зоны в файл с именем f
orward.infoit.local.db
в/etc/bind
каталоге:
sudo cp /etc/bind/db.local /etc/bind/forward.infoit.local.db
Обратите внимание на синтаксис файла зоны, имена доменов должны заканчиваться точкой (.)
Акронимы в файле имеют следующее описание:
- SOA — Начало полномочий
- NS — Сервер имен
- A — рекорд
- MX — Почта для обмена
- CN — Каноническое имя
Мы должны отредактировать файл зоны и обновить содержимое, как показано ниже. Измените его в соответствии с вашим доменным именем:
sudo vi /etc/bind/forward.infoit.local.db
$TTL 604800
@ IN SOA ns1.infoit.local. root.ns1.infoit.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
;@ IN NS localhost.
;@ IN A 127.0.0.1
;@ IN AAAA ::1
;Name Server Information
@ IN NS ns1.infoit.local.
;IP address of Name Server
ns1 IN A 172.16.10.2
;Mail Exchanger
infoit.local. IN MX 10 mail.infoit.local.
;A – Record HostName To Ip Address
www IN A 172.16.10.3
mail IN A 172.16.10.4
;CNAME record
ftp IN CNAME www.infoit.local.
2. R
2. Файл обратного просмотра зоны
Акронимы в файле зоны Revese:
- PTR — указатель
- SOA — Начало полномочий
Скопируйте образец файла обратной зоны в etc/bind
файл с именемreverse.infoit.local.db
.
sudo cp /etc/bind/db.127 /etc/bind/reverse.infoit.local.db
Отредактируйте содержимое файла, чтобы оно соответствовало вашему домену:
sudo nano /etc/bind/reverse.infoit.local.db
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA infoit.local. root.infoit.local. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
;Name Server Information
@ IN NS ns1.infoit.local.
ns1 IN A 172.16.10.2
;Reverse lookup for Name Server
2 IN PTR ns1.infoit.local.
;PTR Record IP address to HostName
3 IN PTR www.infoit.local.
4 IN PTR mail.infoit.local.
Проверьте синтаксис BIND DNS в Ubuntu 20.04
Команда named-checkconf
используется для проверки правильности синтаксиса или наличия ошибок. Команда должна вернуться в оболочку, если ошибки нет.
sudo named-checkconf
Команда named-checkzone используется для проверки синтаксиса файлов прямой и обратной зоны:
#forward zone file
sudo named-checkzone infoit.local /etc/bind/forward.infoit.local.db
#reverse zone file
named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.infoit.local.db
Результат должен быть:
#forward zone file
[email protected]:~# sudo named-checkzone infoit.local /etc/bind/forward.infoit.local.db
zone infoit.local/IN: loaded serial 2
OK
#reverse zone file
[email protected]:~# named-checkzone 10.16.172.in-addr.arpa /etc/bind/reverse.infoit.local.db
zone 10.16.172.in-addr.arpa/IN: loaded serial 1
OK
Наконец, перезапустите и включите службу BIND:
sudo systemctl restart bind9
sudo systemctl enable bind9
Обновление записей Bind DNS
Необходимо обновить запись DNS как в файлах, так /etc/bind/forward.infoit.local.db
и в /etc/bind/reverse.infoit.local.db
файлах.
При обновлении записи DNS измените серийный номер файла прямой и обратной зоны на номер, превышающий текущий.
Тестирование DNS-сервера
На любом клиентском компьютере измените его DNS-сервер на наш недавно развернутый сервер. В нашем случае это 172.16.10.2.
Настройка DNS-сервера зависит от операционной системы. В Ubuntu:
sudo echo "nameserver 172.16.10.2" >> /etc/resolv.conf
Давайте протестируем наше разрешение DNS с помощью dig
команды. Команда dig используется для получения информации о доменном имени, включая такие вещи, как DNS-сервер, IP-адрес домена, записи MX
[email protected]:~# dig www.infoit.local
; <<>> DiG 9.16.1-Ubuntu <<>> www.infoit.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65241
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: fabd20125b9ccbff010000005f8c7204e1387a993d58c22f (good)
;; QUESTION SECTION:
;www.infoit.local. IN A
;; ANSWER SECTION:
www.infoit.local. 604800 IN A 172.16.10.3
;; Query time: 4 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Sun Oct 18 16:49:08 UTC 2020
;; MSG SIZE rcvd: 100
В выходных данных содержится информация об А-записи infoit.lan.
Чтобы проверить обратный DNS:
[email protected]:~# dig -x 172.16.10.3
; <<>> DiG 9.16.1-Ubuntu <<>> -x 172.16.10.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62529
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7b8c9b8971f74afc010000005f8c72a8bdc5ebbdb4869578 (good)
;; QUESTION SECTION:
;3.10.16.172.in-addr.arpa. IN PTR
;; ANSWER SECTION:
3.10.16.172.in-addr.arpa. 604800 IN PTR www.infoit.local.
;; Query time: 0 msec
;; SERVER: 172.16.10.10#53(172.16.10.10)
;; WHEN: Sun Oct 18 16:51:52 UTC 2020
;; MSG SIZE rcvd: 122
Это рабочее доказательство того, что поиск в прямой и обратной зоне работает нормально.
Вывод
Мы успешно развернули локальный DNS-сервер в Ubuntu 20.04 LTS. Это может быть полезно системному администратору в вашей локальной сети для управления вашими системами и приложениями. Ваши приложения могут обмениваться данными через доменные имена, это избавляет от необходимости повторно настраивать ваши приложения при изменении IP-адресов.