Как настроить BIND как частный сетевой DNS-сервер в Debian 9

Вступление

Важная часть управления конфигурацией сервера и инфраструктурой включает в себя поддержание простого способа поиска сетевых интерфейсов и IP-адресов по имени путем настройки правильной системы доменных имен (DNS). Использование полных доменных имен (FQDN) вместо IP-адресов для указания сетевых адресов облегчает настройку служб и приложений и повышает удобство сопровождения файлов конфигурации. Настройка собственного DNS для вашей частной сети - отличный способ улучшить управление вашими серверами.

В этом руководстве мы рассмотрим, как настроить внутренний DNS-сервер, используя программное обеспечение сервера имен BIND (BIND9) в Debian 9, которое может использоваться вашими серверами для разрешения частных имен хостов и частных IP-адресов. Это обеспечивает центральный способ управления внутренними именами хостов и частными IP-адресами, что необходимо, когда ваша среда расширяется до нескольких хостов.

Предпосылки

Для завершения этого урока вам понадобится следующая инфраструктура. Создайте каждый сервер * в одном и том же центре данных * с помощью * https: //www.digitalocean.com/docs/networking/private-networking/quickstart/ [частная сеть включена] *:

  • Свежий сервер Debian 9, служащий основным DNS-сервером, * ns1 *

  • (Рекомендуется) Второй сервер Debian 9, служащий вторичным DNS-сервером, * ns2 *

  • Дополнительные серверы в том же центре обработки данных, которые будут использовать ваши DNS-серверы

На каждом из этих серверов настройте административный доступ через пользователя + sudo + и брандмауэр, следуя нашим https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-9[Debian 9 руководство по первоначальной настройке сервера.

Если вы не знакомы с понятиями DNS, рекомендуется прочитать как минимум первые три части нашего Introduction to Managing DNS .

Пример инфраструктуры и целей

Для целей этой статьи мы будем предполагать следующее:

  • У нас есть два сервера, которые будут обозначены как наши DNS-серверы имен. Мы будем ссылаться на них как * ns1 * и * ns2 * в этом руководстве.

  • У нас есть два дополнительных клиентских сервера, которые будут использовать созданную нами инфраструктуру DNS. Мы назовем их * host1 * и * host2 * в этом руководстве. Вы можете добавить столько, сколько хотите для своей инфраструктуры.

  • Все эти серверы находятся в одном центре данных. Предположим, что это центр обработки данных * nyc3 *.

  • На всех этих серверах включена поддержка частных сетей (и они находятся в подсети + 10.128.0.0 / 16 +). Скорее всего, вам придется настроить это для ваших серверов).

  • Все серверы подключены к проекту, который выполняется на «example.com». Поскольку наша система DNS будет полностью внутренней и частной, вам не нужно приобретать доменное имя. Однако использование принадлежащего вам домена может помочь избежать конфликтов с публично маршрутизируемыми доменами.

Исходя из этих предположений, мы решили, что имеет смысл использовать схему именования, которая использует «nyc3.example.com» для ссылки на нашу частную подсеть или зону. Поэтому частное полное доменное имя (FQDN) * host1 * будет * host1.nyc3.example.com *. Обратитесь к следующей таблице соответствующих деталей:

Host Role Private FQDN Private IP Address

ns1

Primary DNS Server

ns1.nyc3.example.com

10.128.10.11

ns2

Secondary DNS Server

ns2.nyc3.example.com

10.128.20.12

host1

Generic Host 1

host1.nyc3.example.com

10.128.100.101

host2

Generic Host 2

host2.nyc3.example.com

10.128.200.102

Note

К концу этого урока у нас будет основной DNS-сервер * ns1 * и, опционально, дополнительный DNS-сервер * ns2 *, который будет служить резервной копией.

Давайте начнем с установки нашего основного DNS-сервера ns1.

Установка BIND на DNS-серверы

Note

На обоих DNS-серверах * ns1 * и * ns2 * обновите кеш пакета + apt +, введя:

sudo apt update

Теперь установите BIND:

sudo apt install bind9 bind9utils bind9-doc

Настройка привязки к режиму IPv4

Прежде чем продолжить, давайте установим BIND в режим IPv4, поскольку наша частная сеть использует исключительно IPv4. На обоих серверах отредактируйте файл настроек + bind9 + по умолчанию, набрав:

sudo nano /etc/default/bind9

Добавьте «-4» в конец параметра + OPTIONS +. Это должно выглядеть следующим образом:

/ И т.д. / по умолчанию / bind9

. . .
OPTIONS="-u bind "

Сохраните и закройте файл, когда вы закончите.

Перезапустите BIND, чтобы изменения вступили в силу:

sudo systemctl restart bind9

Теперь, когда BIND установлен, давайте настроим основной DNS-сервер.

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

Конфигурация BIND состоит из нескольких файлов, которые включены в основной файл конфигурации + named.conf +. Эти имена файлов начинаются с + named +, потому что это имя процесса, который запускает BIND (сокращение от «демон доменного имени»). Начнем с настройки файла опций.

Настройка файла опций

В * ns1 * откройте файл + named.conf.options + для редактирования:

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

Над существующим блоком + options + создайте блок new ACL (список управления доступом), называемый «доверенный». Здесь мы определим список клиентов, которым мы будем разрешать рекурсивные DNS-запросы (т.е. ваши серверы, которые находятся в том же центре обработки данных, что и * ns1 *). Используя наши примеры частных IP-адресов, мы добавим * ns1 *, * ns2 *, * host1 * и * host2 * в наш список доверенных клиентов:

/etc/bind/named.conf.options - 1 из 3

acl "trusted" {
       ;    # ns1 - can be set to localhost
       ;    # ns2
       ;  # host1
       ;  # host2
};

options {

       . . .

Теперь, когда у нас есть список доверенных DNS-клиентов, нам нужно отредактировать блок + options +. В настоящее время начало блока выглядит следующим образом:

/etc/bind/named.conf.options - 2 из 3

       . . .
};

options {
       directory "/var/cache/bind";
       . . .
}

Ниже директивы + directory + добавьте выделенные строки конфигурации (и замените их на правильный * ns1 * IP-адрес), чтобы он выглядел примерно так:

/etc/bind/named.conf.options - 3 из 3

       . . .

};

options {
       directory "/var/cache/bind";

                        # enables resursive queries
         # allows recursive queries from "trusted" clients
          # ns1 private IP address - listen on private network only
             # disable zone transfers by default






       . . .
};

Когда вы закончите, сохраните и закройте файл + named.conf.options +. Приведенная выше конфигурация указывает, что только ваши собственные серверы («доверенные») смогут запрашивать у вашего DNS-сервера внешние домены.

Далее мы настроим локальный файл, чтобы указать наши DNS-зоны.

Настройка локального файла

В * ns1 * откройте файл + named.conf.local + для редактирования:

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

Помимо нескольких комментариев, файл должен быть пустым. Здесь мы укажем нашу прямую и обратную зоны. * Зоны DNS * определяют конкретную область для управления и определения записей DNS. Поскольку все наши домены будут находиться в поддомене «nyc3.example.com», мы будем использовать его в качестве зоны пересылки. Поскольку каждый из частных IP-адресов наших серверов находится в «+ 10.128.0.0 / 16 +» IP-пространстве, мы настроим обратную зону, чтобы мы могли определять обратные поиски в этом диапазоне.

Добавьте прямую зону следующими строками, заменив имя зоны своим собственным и * личным IP-адресом * вторичного DNS-сервера * в директиве + allow-Transfer +:

/etc/bind/named.conf.local - 1 из 2

zone "" {
   type master;
   file "/etc/bind/zones/db."; # zone file path
   allow-transfer { ; };           # ns2 private IP address - secondary
};

Предполагая, что наша частная подсеть имеет вид + 10.128.0.0 / 16 +, добавьте обратную зону с помощью следующих строк (* обратите внимание, что наше имя обратной зоны начинается с «128.10», что является инверсией октета «10.128» *):

/etc/bind/named.conf.local - 2 из 2

   . . .
};

zone ".in-addr.arpa" {
   type master;
   file "/etc/bind/zones/db.";  # 10.128.0.0/16 subnet
   allow-transfer { ; };  # ns2 private IP address - secondary
};

Если ваши серверы охватывают несколько частных подсетей, но находятся в одном центре данных, обязательно укажите дополнительную зону и файл зоны для каждой отдельной подсети. Когда вы закончите добавлять все нужные зоны, сохраните и выйдите из файла + named.conf.local +.

Теперь, когда наши зоны указаны в BIND, нам нужно создать соответствующие файлы прямой и обратной зон.

Создание файла прямой зоны

Файл прямой зоны - это место, где мы определяем записи DNS для прямого поиска DNS. То есть, когда DNS получает запрос имени, например «host1.nyc3.example.com», он ищет файл зоны пересылки для определения соответствующего частного IP-адреса * host1 *.

Давайте создадим каталог, в котором будут находиться наши файлы зон. В соответствии с нашей * named.conf.local * конфигурацией это расположение должно быть + / etc / bind / zone +:

sudo mkdir /etc/bind/zones

Мы будем основывать наш файл прямой зоны на примере файла зоны + db.local +. Скопируйте его в нужное место с помощью следующих команд:

sudo cp /etc/bind/db.local /etc/bind/zones/db.

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

sudo nano /etc/bind/zones/db.

Изначально это будет выглядеть примерно так:

/etc/bind/zones/db.nyc3.example.com - оригинал

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                             2         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.      ; delete this line
@       IN      A       127.0.0.1       ; delete this line
@       IN      AAAA    ::1             ; delete this line

Сначала вы захотите отредактировать запись SOA. Замените первый «localhost» на полное доменное имя * ns1 *, затем замените «root.localhost» на «admin.nyc3.example.com». Каждый раз, когда вы редактируете файл зоны, вам нужно увеличивать значение * serial * перед тем, как перезапустить процесс + named +. Мы будем увеличивать его до «3». Теперь это должно выглядеть примерно так:

/etc/bind/zones/db.nyc3.example.com - обновлено 1 из 3

@       IN      SOA     . .. (
                                      ; Serial

                             . . .

Затем удалите три записи в конце файла (после записи SOA). Если вы не уверены, какие строки удалить, они помечены комментарием «удалить эту строку» выше.

В конце файла добавьте записи сервера имен со следующими строками (замените имена на свои). Обратите внимание, что во втором столбце указано, что это записи «NS»:

/etc/bind/zones/db.nyc3.example.com - обновлено 2 из 3

. . .

; name servers - NS records
   IN      NS      ns1..
   IN      NS      ns2..

Теперь добавьте записи A для ваших хостов, которые принадлежат этой зоне. Это включает в себя любой сервер, имя которого мы хотим оканчивать на «.nyc3.example.com» (подставьте имена и частные IP-адреса). Используя наши примеры имен и частных IP-адресов, мы добавим записи A для * ns1 *, * ns2 *, * host1 * и * host2 * следующим образом:

/etc/bind/zones/db.nyc3.example.com - обновлено 3 из 3

. . .

; name servers - A records
ns1..          IN      A
ns2..          IN      A

; 10.128.0.0/16 - A records
.        IN      A
.        IN      A

Сохраните и закройте файл + db.nyc3.example.com +.

Наш последний пример файла зоны пересылки выглядит следующим образом:

/etc/bind/zones/db.nyc3.example.com - обновлено

$TTL    604800
@       IN      SOA     . admin.. (
                      ; Serial
            604800     ; Refresh
             86400     ; Retry
           2419200     ; Expire
            604800 )   ; Negative Cache TTL
;
; name servers - NS records
    IN      NS      ns1..
    IN      NS      ns2..

; name servers - A records
ns1..          IN      A
ns2..          IN      A

; 10.128.0.0/16 - A records
.        IN      A
.        IN      A

Теперь давайте перейдем к файлам обратной зоны.

Создание файла (ов) обратной зоны

Файлы обратной зоны - это место, где мы определяем записи DNS PTR для обратного поиска DNS. То есть, когда DNS получает запрос по IP-адресу, например, «10.128.100.101», он ищет в файле (-ах) обратной зоны разрешение соответствующего полного доменного имени, в данном случае «host1.nyc3.example.com». ,

В * ns1 * для каждой обратной зоны, указанной в файле + named.conf.local +, создайте файл обратной зоны. Мы создадим файл (ы) обратной зоны на примере файла зоны + db.127 +. Скопируйте его в нужное место с помощью следующих команд (подставляя имя файла назначения, чтобы оно соответствовало определению вашей обратной зоны):

sudo cp /etc/bind/db.127 /etc/bind/zones/db.

Отредактируйте файл обратной зоны, который соответствует обратной зоне (ам), определенной в + named.conf.local +:

sudo nano /etc/bind/zones/db.

Изначально это будет выглядеть примерно так:

/etc/bind/zones/db.10.128 - оригинал

$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                             1         ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.      ; delete this line
1.0.0   IN      PTR     localhost.      ; delete this line

Таким же образом, как и файл прямой зоны, вы захотите отредактировать запись SOA и увеличить значение * serial *. Это должно выглядеть примерно так:

/etc/bind/zones/db.10.128 - обновлено 1 из 3

@       IN      SOA     . .. (
                                      ; Serial

                             . . .

Теперь удалите две записи в конце файла (после записи SOA). Если вы не уверены, какие строки удалить, они помечены комментарием «удалить эту строку» выше.

В конце файла добавьте записи сервера имен со следующими строками (замените имена на свои). Обратите внимание, что во втором столбце указано, что это записи «NS»:

/etc/bind/zones/db.10.128 - обновлено 2 из 3

. . .

; name servers - NS records
     IN      NS      ns1..
     IN      NS      ns2..

Затем добавьте записи + PTR + для всех ваших серверов, IP-адреса которых находятся в подсети редактируемого файла зоны. В нашем примере это включает в себя все наши хосты, потому что они все находятся в подсети + 10.128.0.0 / 16 +. Обратите внимание, что первый столбец состоит из двух последних октетов частных IP-адресов ваших серверов в * обратном порядке *. Не забудьте заменить имена и частные IP-адреса в соответствии с вашими серверами:

/etc/bind/zones/db.10.128 - обновлено 3 из 3

. . .

; PTR Records
  IN      PTR     ns1..    ; 10.128.10.11
  IN      PTR     ns2..    ; 10.128.20.12
IN      PTR     .  ; 10.128.100.101
IN      PTR     .  ; 10.128.200.102

Сохраните и закройте файл обратной зоны (повторите этот раздел, если вам нужно добавить больше файлов обратной зоны).

Наш последний пример файла обратной зоны выглядит следующим образом:

/etc/bind/zones/db.10.128 - обновлено

$TTL    604800
@       IN      SOA     . admin.nyc3.example.com. (
                                      ; Serial
                        604800         ; Refresh
                         86400         ; Retry
                       2419200         ; Expire
                        604800 )       ; Negative Cache TTL
; name servers
     IN      NS      ns1..
     IN      NS      ns2..

; PTR Records
  IN      PTR     ns1..    ; 10.128.10.11
  IN      PTR     ns2..    ; 10.128.20.12
IN      PTR     .  ; 10.128.100.101
IN      PTR     .  ; 10.128.200.102

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

Проверка синтаксиса конфигурации BIND

Выполните следующую команду, чтобы проверить синтаксис файлов + named.conf * +:

sudo named-checkconf

Если в ваших именованных файлах конфигурации нет синтаксических ошибок, вы вернетесь к приглашению оболочки и не увидите сообщений об ошибках. Если возникают проблемы с вашими файлами конфигурации, просмотрите сообщение об ошибке и раздел «Настройка основного DNS-сервера», затем попробуйте снова «+ named-checkconf +».

Команда + named-checkzone + может использоваться для проверки правильности файлов вашей зоны. Его первый аргумент указывает имя зоны, а второй аргумент указывает соответствующий файл зоны, которые оба определены в + named.conf.local +.

Например, чтобы проверить «» конфигурацию зоны пересылки, выполните следующую команду (измените имена в соответствии с зоной пересылки и файлом):

sudo named-checkzone  /etc/bind/zones/db.

И чтобы проверить конфигурацию обратной зоны «.in-addr.arpa», выполните следующую команду (измените числа в соответствии с вашей обратной зоной и файлом):

sudo named-checkzone .in-addr.arpa /etc/bind/zones/db.

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

Перезапуск BIND

Перезапустите BIND:

sudo systemctl restart bind9

Если у вас настроен брандмауэр UFW, откройте доступ к BIND, набрав:

sudo ufw allow Bind9

Ваш основной DNS-сервер теперь настроен и готов отвечать на запросы DNS. Давайте перейдем к созданию вторичного DNS-сервера.

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

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

В * ns2 * отредактируйте файл + named.conf.options +:

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

В верхней части файла добавьте ACL с частными IP-адресами всех ваших доверенных серверов:

/etc/bind/named.conf.options - обновлена ​​1 из 2 (дополнительная)

acl "trusted" {
       ;   # ns1
       ;   # ns2 - can be set to localhost
       ;  # host1
       ;  # host2
};

options {

       . . .

Ниже директивы + directory + добавьте следующие строки:

/etc/bind/named.conf.options - обновлено 2 из 2 (вторично)

       recursion yes;
       allow-recursion { trusted; };
       listen-on { ; };      # ns2 private IP address
       allow-transfer { none; };          # disable zone transfers by default

       forwarders {
               8.8.8.8;
               8.8.4.4;
       };

Сохраните и закройте файл + named.conf.options +. Этот файл должен выглядеть точно так же, как файл * + named.conf.options + `* ns1 *, за исключением того, что он должен быть настроен на прослушивание личного IP-адреса * ns2 *.

Теперь отредактируйте файл + named.conf.local +:

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

Определите подчиненные зоны, которые соответствуют основным зонам на основном DNS-сервере. Обратите внимание, что типом является «ведомый», файл не содержит пути, и существует директива «+ masters +», которая должна быть установлена ​​на частный IP-адрес первичного DNS-сервера. Если вы определили несколько обратных зон на основном DNS-сервере, обязательно добавьте их все здесь:

/etc/bind/named.conf.local - обновлено (вторично)

zone "" {
   type slave;
   file "db.";
   masters { ; };  # ns1 private IP
};

zone ".in-addr.arpa" {
   type slave;
   file "db.";
   masters { ; };  # ns1 private IP
};

Теперь сохраните и закройте файл + named.conf.local +.

Выполните следующую команду, чтобы проверить правильность ваших файлов конфигурации:

sudo named-checkconf

Как только это подтвердится, перезапустите BIND:

sudo systemctl restart bind9

Разрешите DNS-соединения с сервером, изменив правила брандмауэра UFW:

sudo ufw allow Bind9

Теперь у вас есть основной и дополнительный DNS-серверы для разрешения имен частных сетей и IP-адресов. Теперь вы должны настроить свои клиентские серверы для использования ваших частных DNS-серверов.

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

Прежде чем все ваши серверы в «доверенном» ACL смогут запрашивать ваши DNS-серверы, вы должны настроить каждый из них для использования * ns1 * и * ns2 * в качестве серверов имен. Этот процесс варьируется в зависимости от ОС, но для большинства дистрибутивов Linux он включает добавление ваших серверов имен в файл + / etc / resolv.conf +.

Клиенты Ubuntu 18.04

В Ubuntu 18.04 сеть настраивается с помощью Netplan, абстракции, которая позволяет вам писать стандартизированную конфигурацию сети и применять ее к несовместимому сетевому программному обеспечению. Чтобы настроить DNS, нам нужно написать файл конфигурации Netplan.

Сначала найдите устройство, связанное с вашей частной сетью, запросив частную подсеть с помощью команды + ip address +:

ip address show to
Output3: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
   inet 10.128.100.101/16 brd 10.128.255.255 scope global eth1
          valid_lft forever preferred_lft forever

В этом примере закрытый интерфейс - + eth1 +.

Затем создайте новый файл в + / etc / netplan + с именем + 00-private-nameservers.yaml +:

sudo nano /etc/netplan/00-private-nameservers.yaml

Внутри вставьте следующее содержимое. Вам нужно будет изменить интерфейс частной сети, адреса ваших DNS-серверов * ns1 * и * ns2 * и зону DNS:

/ etc / netplan 00-private-nameservers.yaml

network:
   version: 2
   ethernets:
       :                                 # Private network interface
           nameservers:
               addresses:
               -                 # Private IP for ns1
               -                 # Private IP for ns2
               search: [  ]  # DNS zone

Сохраните и закройте файл, когда вы закончите.

Затем скажите Netplan попытаться использовать новый файл конфигурации с помощью + netplan try +. Если есть проблемы, которые вызывают потерю сети, Netplan автоматически откатит изменения по истечении времени ожидания:

sudo netplan try
OutputWarning: Stopping systemd-networkd.service, but it can still be activated by:
 systemd-networkd.socket
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 120 seconds

Если обратный отсчет обновляется в нижней части, новая конфигурация по крайней мере достаточно функциональна, чтобы не разорвать ваше соединение SSH. Нажмите * ENTER *, чтобы принять новую конфигурацию.

Теперь убедитесь, что DNS-преобразователь системы определил, была ли применена ваша конфигурация DNS:

sudo systemd-resolve --status

Прокрутите вниз, пока не увидите раздел для интерфейса вашей частной сети. Сначала вы должны увидеть частные IP-адреса для ваших DNS-серверов, а затем некоторые запасные значения. Ваш домен должен быть в «Домене DNS»:

Output. . .
Link 3 (eth1)
     Current Scopes: DNS
      LLMNR setting: yes
MulticastDNS setting: no
     DNSSEC setting: no
   DNSSEC supported: no
        DNS Servers:

                     67.207.67.2
                     67.207.67.3
         DNS Domain:
. . .

Теперь ваш клиент должен быть настроен на использование ваших внутренних DNS-серверов.

Ubuntu 16.04 и клиенты Debian

На серверах Ubuntu 16.04 и Debian Linux вы можете отредактировать файл + / etc / network / interfaces +:

sudo nano /etc/network/interfaces

Внутри найдите строку + dns-nameservers +. Если он подключен к интерфейсу + lo +, переместите его в сетевой интерфейс (например, + eth0 + или + eth1 +). Затем добавьте свои собственные серверы имен перед списком, который в данный момент существует. Ниже этой строки добавьте опцию + dns-search +, указанную на базовый домен вашей инфраструктуры. В нашем случае это будет «nyc3.example.com»:

/ и т.д. / сеть / интерфейсы

   . . .

   dns-nameservers   8.8.8.8


   . . .

Сохраните и закройте файл, когда вы закончите.

Убедитесь, что в вашей системе установлен пакет + resolvconf +:

sudo apt update
sudo apt install resolvconf

Теперь перезапустите свои сетевые службы, применив новые изменения с помощью следующих команд. Убедитесь, что вы заменили + eth0 + на имя вашего сетевого интерфейса:

sudo ifdown --force  && sudo ip addr flush dev  && sudo ifup --force

Это должно перезагрузить вашу сеть, не прерывая ваше текущее соединение. Если это работает правильно, вы должны увидеть что-то вроде этого:

OutputRTNETLINK answers: No such process
Waiting for DAD... Done

Дважды проверьте, что ваши настройки были применены, набрав:

cat /etc/resolv.conf

Вы должны увидеть ваши серверы имен в файле + / etc / resolv.conf, а также ваш поисковый домен:

Output# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.128.10.11
nameserver 10.128.20.12
nameserver 8.8.8.8
search nyc3.example.com

Ваш клиент теперь настроен на использование ваших DNS-серверов.

Клиенты CentOS

В CentOS, RedHat и Fedora Linux отредактируйте файл + / etc / sysconfig / network-scripts / ifcfg- +. Возможно, вам придется заменить + eth0 + на имя вашего основного сетевого интерфейса:

sudo nano /etc/sysconfig/network-scripts/ifcfg-

Найдите параметры + DNS1 + и + DNS2 + и установите для них частные IP-адреса вашего основного и дополнительного серверов имен. Добавьте параметр + DOMAIN + для базового домена вашей инфраструктуры. В этом руководстве это будет «nyc3.example.com»:

/ И т.д. / sysconfig / сети-скрипты / ifcfg-eth0

. . .
DNS1=
DNS2=

. . .

Сохраните и закройте файл, когда вы закончите.

Теперь перезапустите сетевой сервис, набрав:

sudo systemctl restart network

Команда может зависнуть на несколько секунд, но вскоре должна вернуться к приглашению.

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

cat /etc/resolv.conf

Вы должны увидеть свои серверы имен и поисковый домен в списке:

/etc/resolv.conf

nameserver 10.128.10.11
nameserver 10.128.20.12
search nyc3.example.com

Теперь ваш клиент должен иметь возможность подключаться и использовать ваши DNS-серверы.

Тестирование клиентов

Используйте + nslookup +, чтобы проверить, могут ли ваши клиенты запрашивать ваши серверы имен. Вы должны быть в состоянии сделать это на всех клиентах, которые вы настроили и находитесь в «доверенном» ACL.

Для клиентов CentOS вам может потребоваться установить утилиту с:

sudo yum install bind-utils

Для клиентов Debian вы можете установить с:

sudo apt install dnsutils

Мы можем начать с выполнения прямого поиска.

Прямой поиск

Например, мы можем выполнить прямой просмотр для получения IP-адреса * host1.nyc3.example.com *, выполнив следующую команду:

nslookup host1

Запрос «host1» расширяется до «host1.nyc3.example.com», поскольку для вашего частного субдомена установлена ​​опция «+ search +», и DNS-запросы будут пытаться просмотреть этот субдомен, прежде чем искать хост в другом месте. Вывод команды выше будет выглядеть следующим образом:

OutputServer:     127.0.0.53
Address:    127.0.0.53#53

Non-authoritative answer:
Name:   host1.nyc3.example.com
Address: 10.128.100.101

Далее мы можем проверить обратный поиск.

Обратный поиск

Чтобы проверить обратный поиск, запросите DNS-сервер с частным IP-адресом * host1 *:

nslookup 10.128.100.101

Вы должны увидеть вывод, который выглядит следующим образом:

Output11.10.128.10.in-addr.arpa   name = host1.nyc3.example.com.

Authoritative answers can be found from:

Если все имена и IP-адреса соответствуют правильным значениям, это означает, что файлы зоны настроены правильно. Если вы получили неожиданные значения, обязательно просмотрите файлы зон на основном DNS-сервере (например, + db.nyc3.example.com + и + db.10.128 +).

Поздравляем! Ваши внутренние DNS-серверы теперь настроены правильно! Теперь мы рассмотрим ведение записей вашей зоны.

Ведение DNS-записей

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

Добавление хоста в DNS

Всякий раз, когда вы добавляете хост в свою среду (в том же центре данных), вы захотите добавить его в DNS. Вот список шагов, которые вам нужно предпринять:

Основной сервер имен
  • Файл зоны пересылки: добавьте запись «A» для нового хоста, увеличьте значение «Serial»

  • Файл обратной зоны: добавьте запись «PTR» для нового хоста, увеличьте значение «Serial»

  • Добавьте частный IP-адрес вашего нового хоста в «доверенный» ACL (+ named.conf.options)

Проверьте ваши файлы конфигурации:

sudo named-checkconf
sudo named-checkzone  db.
sudo named-checkzone .in-addr.arpa /etc/bind/zones/db.

Затем перезагрузите BIND:

sudo systemctl reload bind9

Ваш основной сервер должен быть настроен для нового хоста сейчас.

Вторичный сервер имен
  • Добавьте частный IP-адрес вашего нового хоста в «доверенный» ACL (+ named.conf.options)

Проверьте синтаксис конфигурации:

sudo named-checkconf

Затем перезагрузите BIND:

sudo systemctl reload bind9

Ваш вторичный сервер теперь будет принимать соединения от нового хоста.

Настройте новый хост для использования вашего DNS
  • Сконфигурируйте + / etc / resolv.conf + для использования ваших DNS-серверов

  • Тест с использованием + nslookup +

Удаление хоста из DNS

Если вы удаляете хост из своей среды или хотите просто извлечь его из DNS, просто удалите все, что было добавлено, когда вы добавили сервер в DNS (т.е. обратный шаг выше).

Заключение

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

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

Related