Сегодня настроим 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

[endtxt]

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 голос
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять