Поиск по сайту:

Установите и настройте DNS-сервер в Ubuntu 16.04 LTS.

В этом подробном руководстве описывается, как установить и настроить DNS-сервер в 64-разрядной серверной версии Ubuntu 16.04 LTS. Как вы, возможно, уже знаете, DNS — это короткая форма Dmain name system, которая используется для преобразования имен хостов в IP-адреса и наоборот. Для целей данного руководства я буду использовать три системы: одну для основного DNS-сервера, другую для вторичного DNS и третью для DNS-клиента. Все системы работают под управлением операционной системы Ubuntu 16.04. Вот IP-адрес и имя хоста каждой системы.

Основной DNS-сервер:

  • Операционная система: Ubuntu 16.04 LTS, 64-разрядный сервер.
  • Имя хоста: pri.ostechnix.lan
  • IP-адрес: 192.168.1.200/24.

Вторичный DNS-сервер:

  • Операционная система: Ubuntu 16.04 LTS, 64-разрядный сервер.
  • Имя хоста: sec.ostechnix.lan
  • IP-адрес: 192.168.1.201/24.

DNS-клиент:

  • Операционная система: Ubuntu 16.04 LTS, 64-разрядный сервер.
  • Имя хоста: client.ostechnix.lan.
  • IP-адрес: 192.168.1.202/24.

Давайте начнем.

Установите и настройте DNS-сервер в Ubuntu 16.04.

Я разделю это руководство на три части для простоты и легкого понимания.

  1. Установите и настройте сервер имен только для кэширования,
  2. Установите и настройте основной DNS-сервер или главный DNS-сервер.
  3. Установите и настройте дополнительный DNS-сервер или подчиненный DNS-сервер.

Давайте сделаем это шаг за шагом.

Часть 1. Установите и настройте сервер имен только для кэширования.

Убедитесь, что ваш сервер Ubuntu обновлен.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Установите BIND9

После обновления системы выполните следующую команду, чтобы установить пакеты BIND9, которые используются для настройки DNS-сервера.

sudo apt-get install bind9 bind9utils bind9-doc

Установите BIND9

Настройка кэширующего сервера имен

Кэширующий сервер имен сохраняет результаты DNS-запросов локально в течение определенного периода времени. Он снижает трафик DNS-сервера за счет сохранения запросов локально, что повышает производительность и эффективность DNS-сервера.

Чтобы настроить кэширующий сервер имен, отредактируйте файл /etc/bind/named.conf.options:

sudo nano /etc/bind/named.conf.options

Раскомментируйте следующие строки. Затем добавьте IP-адреса общедоступного DNS-сервера вашего интернет-провайдера или Google.

forwarders {
 8.8.8.8;
 };

Сохраните и закройте файл.

А затем перезапустите службуbind9, чтобы изменения вступили в силу.

sudo systemctl restart bind9

Мы успешно установили кэширующий сервер имен.

Тестирование кэширующего сервера имен

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

dig -x 127.0.0.1

Если вы видите что-то подобное ниже, поздравляем! Кэширующий сервер имен работает!

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -x 127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22769
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;1.0.0.127.in-addr.arpa. IN PTR

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa. 604800 IN PTR localhost.

;; AUTHORITY SECTION:
127.in-addr.arpa. 604800 IN NS localhost.

;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1

;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 15:53:59 IST 2016
;; MSG SIZE rcvd: 132

Часть 2. Установка и настройка основного DNS-сервера.

Убедитесь, что ваш сервер Ubuntu обновлен, используя следующие команды:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Установите BIND9

Запустите следующую команду, чтобы установить пакеты BIND9.

sudo apt-get install bind9 bind9utils bind9-doc

Настройка основного DNS-сервера

Весь файл конфигурации будет доступен в каталоге /etc/bind/.

Давайте отредактируем файл конфигурацииbind9.

Отредактируйте ’/etc/bind/named.conf’ с помощью любого редактора по вашему выбору:

sudo nano /etc/bind/named.conf

В этом файле должны быть следующие строки. Если строк нет, просто добавьте их.

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Сохраните изменения и выйдите из файла.

Нам нужно определить файлы прямой и обратной зон.

Для этого отредактируйте файл named.conf.local:

sudo nano /etc/bind/named.conf.local

Определите прямой и обратный файлы, как показано ниже.

zone "ostechnix.lan" {
        type master;
        file "/etc/bind/for.ostechnix.lan";
        allow-transfer { 192.168.1.201; };
        also-notify { 192.168.1.201; };
 };
zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/rev.ostechnix.lan";
        allow-transfer { 192.168.1.201; };
        also-notify { 192.168.1.201; };
 };

Здесь for.ostechnix.lan – это файл зоны пересылки. rev.ostechnix.lan — файлы обратной зоны. А 192.168.1.202 – это IP-адрес вторичного DNS-сервера. Мы делаем это, потому что вторичный DNS начнет получать запросы, если основной сервер не работает.

Сохраните и закройте файл.

Давайте теперь создадим файлы зон, которые мы определили на предыдущем шаге.

Сначала давайте создадим файл прямой зоны, как показано ниже.

sudo nano /etc/bind/for.ostechnix.lan

Добавьте следующие строки:

$TTL 86400
@   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          pri.ostechnix.lan.
@       IN  NS          sec.ostechnix.lan.
@       IN  A           192.168.1.200
@       IN  A           192.168.1.201
@       IN  A           192.168.1.202
pri     IN  A           192.168.1.200
sec     IN  A           192.168.1.201
client  IN  A           192.168.1.202

Аналогичным образом вы можете добавить другие записи клиентов, как определено в приведенном выше файле.

Сохраните и закройте файл. Далее создайте обратную зону.

sudo nano /etc/bind/rev.ostechnix.lan

Добавьте следующие строки:

$TTL 86400
@   IN  SOA     pri.ostechnix.lan. root.ostechnix.lan. (
        2011071002  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
@       IN  NS          pri.ostechnix.lan.
@       IN  NS          sec.ostechnix.lan.
@       IN  PTR         ostechnix.lan.
pri     IN  A           192.168.1.200
sec     IN  A           192.168.1.201
client  IN  A           192.168.1.202
200     IN  PTR         pri.ostechnix.lan.
201     IN  PTR         sec.ostechnix.lan.
202     IN  PTR         client.ostechnix.lan.

Сохраните и закройте файл.

Установите правильные разрешения и владельца для каталогаbind9.

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Далее нам необходимо проверить файлы конфигурации DNS и файлы зон.

Проверьте файлы конфигурации DNS с помощью команд:

sudo named-checkconf /etc/bind/named.conf
sudo named-checkconf /etc/bind/named.conf.local

Если приведенные выше команды ничего не возвращают, это означает, что конфигурация DNS действительна.

Далее проверяем файлы зоны командами:

sudo named-checkzone ostechnix.lan /etc/bind/for.ostechnix.lan

Пример вывода:

zone ostechnix.lan/IN: loaded serial 2011071001
OK

Проверьте файл обратной зоны:

sudo named-checkzone ostechnix.lan /etc/bind/rev.ostechnix.lan

Пример вывода:

 zone ostechnix.lan/IN: loaded serial 2011071002
OK

Если вы получили результаты, как показано выше, то все хорошо.

Теперь пришло время проверить, работает ли основной DNS-сервер или нет.

Отредактируйте файл /etc/network/interfaces:

sudo vi /etc/network/interfaces

Добавьте IP-адрес DNS-сервера. В нашем случае IP DNS-сервера — это тот же IP-адрес самой машины.

dns-nameservers 192.168.1.200

Сохраните и закройте файл.

Наконец, перезапустите службу Bind9.

sudo systemctl restart bind9

Тестирование основного DNS-сервера

Проверьте DNS-сервер с помощью команд dig или nslookup.

dig pri.ostechnix.lan

Пример вывода:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> pri.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51989
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pri.ostechnix.lan. IN A

;; ANSWER SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200

;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.

;; ADDITIONAL SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201

;; Query time: 0 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 16:56:13 IST 2016
;; MSG SIZE rcvd: 110

Или используйте команду nslookup, как показано ниже:

nslookup ostechnix.lan

Пример вывода:

Server: 192.168.1.200
Address: 192.168.1.200#53

Name: ostechnix.lan
Address: 192.168.1.200
Name: ostechnix.lan
Address: 192.168.1.201
Name: ostechnix.lan
Address: 192.168.1.202

Если вы получили результаты, подобные приведенным выше, значит, основной DNS-сервер включен и работает отлично!

Часть 2. Установка и настройка вторичного DNS-сервера

Для настройки этого сервера вам понадобится отдельная система. Нам нужен вторичный DNS-сервер, потому что в случае каких-либо проблем с первичным DNS вторичный DNS-сервер все равно будет разрешать запросы.

Сначала обновите сервер с помощью команд:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Установите BIND9

Установите необходимые пакетыbind9:

sudo apt-get install bind9 bind9utils bind9-doc

Настройка вторичного DNS-сервера

Отредактируйте файл конфигурации связывания 9:

sudo nano /etc/bind/named.conf

Добавьте следующие строки, если их там нет.

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

Сохраните и закройте файл.

Далее нам нужно определить файлы зон.

Для этого отредактируйте файл named.conf.local:

sudo nano /etc/bind/named.conf.local

Добавьте или измените следующие строки. Замените файлы IP-адреса и зоны своими значениями.

zone "ostechnix.lan" {
        type slave;
        file "/var/cache/bind/for.ostechnix.lan";
        masters { 192.168.5.200; };
 };
zone "1.168.192.in-addr.arpa" {
        type slave;
        file "/var/cache/bind/rev.ostechnix.lan";
        masters { 192.168.5.200; };
 };

Здесь  192.168.1.200 – IP-адрес основного DNS-сервера.

Обратите внимание, что путь к файлам зоны должен быть /var/cache/bind/ . Это связано с тем, что AppArmor по умолчанию разрешает доступ только на запись внутри него.

Затем установите правильное разрешение и владельца для каталога привязки.

sudo chmod -R 755 /etc/bind
sudo chown -R bind:bind /etc/bind

Затем отредактируйте файл конфигурации сети и добавьте IP-адрес основного и вторичного DNS-сервера.

sudo nano /etc/network/interfaces
[...]
dns-nameservers 192.168.1.200
dns-nameservers 192.168.1.201

Сохраните и закройте файл.

Наконец, перезагрузите систему, чтобы все изменения вступили в силу.

Тестирование вторичного DNS-сервера

Как я уже упоминал, мы используем команды «dig» или «nslookup» для тестирования DNS-сервера.

Давайте проверим вторичный DNS-сервер с помощью команды:

dig sec.ostechnix.lan

Пример вывода:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> sec.ostechnix.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49308
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;sec.ostechnix.lan. IN A

;; ANSWER SECTION:
sec.ostechnix.lan. 86400 IN A 192.168.1.201

;; AUTHORITY SECTION:
ostechnix.lan. 86400 IN NS sec.ostechnix.lan.
ostechnix.lan. 86400 IN NS pri.ostechnix.lan.

;; ADDITIONAL SECTION:
pri.ostechnix.lan. 86400 IN A 192.168.1.200

;; Query time: 2 msec
;; SERVER: 192.168.1.200#53(192.168.1.200)
;; WHEN: Tue Aug 23 18:19:47 IST 2016
;; MSG SIZE rcvd: 110

Аналогичным образом вы можете проверить основной DNS-сервер с помощью команды:

dig pri.ostechnix.lan

Или просто используйте команду nslookup, как показано ниже.

nslookup ostechnix.lan

Примечание Обратите внимание, что файлы зоны будут перенесены только в том случае, если Серийный номер на основном DNS-сервере превышает серийный номер вторичного DNS-сервера.

Настройка DNS-клиента

Измените файл конфигурации сети в клиентской системе:

sudo nano /etc/network/interfaces

Добавьте IP-адреса серверов имен.

[...]
nameserver 192.168.1.200
nameserver 192.168.1.201

Сохраните и закройте файл. Затем перезагрузите систему, чтобы изменения вступили в силу.

Проверьте DNS-серверы, используя любую из следующих команд:

dig pri.ostechnix.lan
dig sec.ostechnix.lan
dig client.ostechnix.lan
nslookup ostechnix.local

На этом этапе у вас будут рабочие первичный и вторичный DNS-серверы.

Это все на данный момент. Если вы найдете это руководство полезным, поделитесь им в социальных сетях и поддержите OSTechNix.

Ваше здоровье!

Статьи по данной тематике