Сегодня настроим DNS сервер с FQDN-доменым именем и внешним статическим ip адресом. В качестве DNS сервера будет выступать bind9 и операционная система Ubuntu Server 16.04. Так же разберем настройку двух зон: зона прямого и зона обратного просмотра.
DNS – это система доменных имен для преобразования имени в ip адреса компьютера и наоборот. Зная имя компьютера, вам не нужно запоминать его ip адрес. Простыми словами набирая адрес интернет странички в Вашем браузере DNS сервер всемирной паутины преобразует его в ip-адрес хостинга на котором расположен данный домен.
И так у нас уже есть установленная ОС Ubuntu Server 16.04 LTS и настроенный DHCP сервер isc-dhcp-server. Что от нас требуется, так это установить и настроить DNS сервер bind9
Установка DNS сервера bind9 на Ubuntu | Debian | Linux Mint
Для установки DNS сервера нам необходимо подключиться к серверу при помощи ssh.
Как настроить доступ по ssh описано тут.
После того как подключились в первую очередь необходимо обновить систему. Вводим следующие команды.
sudo apt update
sudo apt dist-upgrade -y
Далее устанавливаем сам DNS сервер
sudo apt install bind9
Настройка зон для DNS
Исходные данные:
- Доменное имя FQDN – obu4alka.ru
- IP адрес сервера – 80.81.82.83/32
- Имя сервера – ns1.obu4alka.ru
Настройка зоны прямого просмотра DNS
Создадим файл в котором будет храниться данные о зоне прямого просмотра. Для этого сделаем копию образца файла прямого просмотра
sudo cp /etc/bind/db.local /var/lib/bind/db.obu4alka.ru
И открываем его на редактирование
sudo nano /var/lib/bind/db.obu4alka.ru
Содержимое файла
$TTL 14400
@ IN SOA ns1.reg.ru. root.obu4alka.ru. (
2018052655 ; serial
604800 ; refresh
86400 ; retry
2419200 ; expire
604800 ; minimum
)
@ IN NS ns1.reg.ru.
@ IN NS ns2.reg.ru.
@ IN A 80.81.82.83
ns1 IN A 80.81.82.83
www IN A 80.81.82.83
- Записи вида А – предназначена для ip адресов версии 4
- Запись вида АААА – предназначена для ip адресов версии 6
- Запись вида NS – для DNS серверов регистратора (обычно).
Настройка зоны обратного просмотра DNS
Обратная зона преобразовывает IP адреса машины в доменное имя FQDN. Обратная зона нужна если у вас на сервере будет запущен ещё и почтовый сервер. Все известные почтовики проверяют сервер по обратной зоне. Если у Вас проблема с отправкой почты, например на mail.ru письма не приходят, а служба безопасности присылает отчёт, что данный почтовый сервер находится в списке недоверенных серверов, то скорее всего для вашего домена нет файла обратной зоны. Выход из сложившейся ситуации, попросить вашего провайдера создать файл зоны обратного просмотра. Ну а мы с вами создадим зону для нашего сервера.
Давайте сделаем копию файла прямого просмотра:
sudo cp /var/lib/bind/db.obu4alka.ru /var/lib/bind/db.revers.obu4alka.ru
Открываем его на редактирование:
sudo nano /var/lib/bind/db.revers.obu4alka.ru
$TTL 14400
@ IN SOA ns1.reg.ru. root.obu4alka.ru. (
2018052655 ; serial
604800 ; refresh
86400 ; retry
2419200 ; expire
604800 ; minimum
)
@ IN NS ns1.reg.ru.
@ IN NS ns2.reg.ru.
83 IN PTR ns1.obu4alka.ru.
Настройка конфигурационных файлов Bind9
Для начала отредактируем файл named.conf.options
sudo nano /etc/bind/named.conf.options
Добавим в него следующий код:
options {
directory "/var/cache/bind";
# с каких сетей или IP адресов будут обслуживаться запросы нашим DNS сервером.
listen-on {
80.81.82.83/32;
127.0.0.1;
};
# вышестоящий dns сервер, используется если URL запроса не найден в нашей базе.
forwarders {
77.88.8.1;
8.8.8.8;
};
# Кому разрешено запрашивать dns сервер
allow-query { any; };
allow-query-cache { any; };
# Кому разрешено посылать рекурсивные запросы
allow-recursion { any;};
# Запросы DNSSEC
dnssec-validation auto;
# Запросы NXDOMAIN
auth-nxdomain no;
# с каких сетей или IPv6 адресов будут обслуживаться запросы нашим DNS сервером
listen-on-v6 { all; };
# Прописываем версию DNS - для защиты от любопытных
version "DNS server v1.0";
};
Теперь открываем файл конфигурации зон и вносим информацию о наших зонах.
sudo nano /etc/bind/named.conf.local
// зона прямого просмотра
zone "obu4alka.ru" {
type master;
file "/var/lib/bind/db.obu4alka.ru";
};
// зона обратного просмотра
zone "83.82.81.80.in-addr.arpa" {
type master;
file "/var/lib/bind/db.revers.obu4alka.ru";
};
Сохраняем, закрываем. Теперь проверим правильность синтаксиса конфигурационных файлов BIND.
sudo named-checkconf
Если конфигурационные файлы не содержат ошибок, вывод этой программы будет пуст.
Перезагружаем bind9
sudo /etc/init.d/bind9 restart
Проверяем работу DNS сервера
nslookup ns1.obu4alka.ru
в ответ вы должны увидеть:
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: ns1.obu4alka.ru
Address: 80.81.82.83
Как видите зона прямого просмотра работает, нам показался ip адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра
nslookup 80.81.82.83
В ответ должны получить:
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
80.81.82.83.in-addr.arpa name = ns1.obu4alka.ru.
Authoritative answers can be found from:
Как видим в ответе мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, то проверяйте что сделали не так.
P.S. Также добавьте в файле resolv.conf свой nameserver
sudo nano /etc/resolv.conf
nameserver 80.81.82.83
nameserver 127.0.0.1
search obu4alka.ru
Для того чтобы ваш DNS сервер был виден из интернета, а также чтобы он обрабатывал все запросы по FQDN-имени (obu4alka.ru), у регистратора Вашего домена необходимо поменять NS сервера на IP вашего сервера DNS
Проверяем версию DNS сервера
dig @ns1.obu4alka.ru version.bind chaos txt
Примерный вывод команды:
; (1 s; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> @ns1.pro-gram.ru version.bind chaos txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36382
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;version.bind. CH TXT
;; ANSWER SECTION:
version.bind. 0 CH TXT "DNS server v1.0"
;; AUTHORITY SECTION:
version.bind. 0 CH NS version.bind.
;; Query time: 0 msec
;; SERVER: 80.81.82.83#53(80.81.82.83)
;; WHEN: Sun Apr 11 09:16:23 +04 2019
;; MSG SIZE rcvd: 84