13.3. Настройка сервера DNS

We use cookies. Read the Privacy and Cookie Policy

13.3. Настройка сервера DNS

Локальная сеть с выходом в Интернет может пользоваться сервером имен, работающим на компьютере провайдера. Но, учитывая типичную для бывшего СССР скорость соединения, при которой на обращение к серверу DNS провайдера требуется от 10 до 30 секунд, имеет смысл установить собственный сервер DNS — обычно на шлюзе, который используется для выхода в Интернет.

Внутренняя сеть (intranet) может обойтись и файлами /etc/hosts, но при большом количестве узлов целесообразно завести DNS-сервер и для нее.

Самый известный сервер имен для Linux — это демон named из пакета BIND (Berkeley Internet Name Daemon). Вам понадобится установить еще пакет bind-libs с необходимыми библиотеками и bind-utils, содержащий утилиты командной строки (dig, host, nslookup).

Существуют три версии пакета BIND: 4, 8 и 9 (версий 5-7 никогда не было). Сейчас везде используется девятая версия, о которой я и буду рассказывать.

Для установки девятой версии BIND требуются:

? ядро 2.4 или выше;

? библиотека OpenSLL.

Для работы сервера должен быть активизирован сервис network.

Основным конфигурационным файлом named служит named.conf, который устанавливается по умолчанию в /etc для версии 9 или в /etc/namedb (версия 8). Синтаксис этого файла подобен языку С (листинг 13.1).

Листинг 13.1. Примерный файл named.conf

logging {

 category cname {null; };

};

options {

 directory "/var/named";

};

zone "." {

 type hint;

 file "named.ca";

};

zone "dhsilabs.com" {

 type master;

 file "dhsilabs.com";

 notify no;

};

zone "0.0.127.in-addr.arpa" {

 type master;

 file "named.local";

};

zone "1.168.192.in-addr.arpa" {

 type master;

 file "192.168.1";

 notify yes;

};

Рассмотрим этот пример подробнее. Обслуживаемая сервером зона (домен без поддоменов) — dhsilabs.com. Рабочий каталог сервера, от которого отсчитываются относительные пути файлов, — /var/named. Именно в этом каталоге сервер будет искать файлы dhsilabs.com, named.local, 192.168.1, named.ca.

Блок logging определяет опции протоколирования. За ним следует задание параметров самого сервера — блок options. Параметр directory определяет рабочий каталог сервера. Этот параметр обязателен, но кроме него в блоке options могут присутствовать и другие (forwarders, forward и т.п.), о которых будет сказано несколько позже.

После блока параметров должны быть перечислены зоны, обслуживаемые сервером. Мы будем обслуживать зону dhsilabs.com. Информация об этой зоне хранится в файле /var/named/dhsilabs.com, с помощью которого наш сервер будет преобразовывать имена компьютеров в IP-адреса. Для обратного преобразования служит файл /var/named/192.168.1.

Зоны «.» и «0.0.127.in-addr.arpa» — особые. Я не буду их подробно описывать: их назначение вы поймете из дальнейшего текста главы. Файл named.local — это файл обратного соответствия, предназначенный для преобразования IP-адресов в имена, то есть, в частности, он используется для преобразования адреса 127.0.0.1 в имя localhost.

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

Файл named.ca необходимо регулярно обновлять, чтобы он всегда содержал свежие данные (первый раз его нужно обновить сразу же после установки сервера, несмотря на то, что этот файл будет только что создан). Если ваш DNS-сервер предназначен для обслуживания только внутренней сети без выхода в Интернет, то зону корневых серверов нужно удалить.

Файл данных сервера имен dhsilabs.com непосредственно служит для преобразования имен в IP-адреса (листинг 13.2).

Записи в этом файле называются записями ресурсов. Формат записи ресурса следующий:

[имя_домена] [TTL] <тип_сети> <тип_записи> <данные>

Где:

Имя_домена обязательно для первой записи в файле, оно всегда должно начинаться с первой колонки. Для следующих записей это поле можно опускать. Символ @ обозначает текущий домен.

Необязательное поле TTL (Time to Live) — это время в секундах, в течение которого данные в кэше считаются достоверными. Если значение не указано, то оно берется из записи SOA (см. ниже).

Тип_сети может содержать значение IN (Internet) или HS (информационная служба Hesiod).

Тип_записи: типы записи ресурсов приведены в таблице 13.1. Остальные поля данных зависят от типа записи ресурса.

Пустые строки и строки, начинающиеся с точки с запятой, считаются комментариями.

Листинг 13.2. Файл dhsilabs.com

@ IN SOA den.dhsilabs.com. host.master.dhsilabs.com. (

  93011120 ; серийный номер

  10800    ; обновление каждые 3 часа

  3600     ; повтор каждый час

  3600000  ; хранить информацию 1000 часов

  86400)   ; TTL записи - 24 часа

IN NS den.dhsilabs.com.

IN A  192.168.1.1

IN MX 150 den.dhsilabs.com.

den IN  A     192.168.1.1

IN   HINFO    INTEL CELERON (LINUX)

IN   MX 100   den

IK   MX 150   evg.dhsilabs.com.

ns   IN CNAME den.dhsilabs.com.

www  IN CNAME den.dhsilabs.com.

ftp  IN CNAME den.dhsilabs.com.

mail IN CNAME den.dhsilabs.com.

evg IN A   192.168.1.2

IN  MX 100 den.dhsilabs.com.

localhost IN A 127.0.0.1

Тип записи SOA (Start of Authority) означает начало зоны. Для каждой зоны такая запись единственна и должна стоять первой по порядку. Она содержит имя зоны, почтовый адрес ее администратора (где знак @ заменен на «.») и параметры обновления данных. Круглые скобки служат для разбиения одной записи на несколько строк.

Имя домена может быть сокращенным или полным. Полностью определенные имена заканчиваются символом точки. Если точки нет, то имя считается сокращенным и к нему автоматически добавляется имя текущего домена: так, den.dhsilabs.com без точки будет интерпретировано как den.dhsilabs.com.dhsilabs.com. He делайте этой распространенной ошибки, не забывайте ставить точку после имени домена.

Серийный номер — это число, на которое ориентируются подчиненные серверы, перезапрашивая данные у главного сервера зоны в том случае, если его серийный номер больше, чем у них. Обычно номер представляет собой дату последнего изменения файла данных зоны.

Типы записи ресурсов Таблица 13.1

Запись Назначение SOA Начало полномочий: определение DNS-зоны NS Определение сервера имен A IP-адрес (IPv4), соответствующий имени компьютера. Для IPv6-адресов используется тип A6 PTR Обратное преобразование: имя компьютера, соответствующее IP-адресу MX Mail exchange: почтовый сервер, обслуживающий домен. Можно перечислить несколько почтовых серверов, указав приоритет: чем меньше число, тем приоритет выше CNAME Каноническое имя узла, к которому преобразуются псевдонимы: так, по адресу http://www.dhsilabs.com обращение будет производиться к den.dhsilabs.com HINFO Информация об узле: операционной системе и аппаратном обеспечении. Рекомендую не заполнять эту запись или использовать заведомо неправильные данные. Чем меньше информации о вашей сети получит злоумышленник, тем сложнее ему будет атаковать ее TXT Произвольный текст — комментарии или нестандартная информация

Содержание файлов обратного преобразования, устанавливающих соответствие между IP-адресами и именами при помощи записей типа PTR, приведено в листингах 13.3 и 13.4. Внимание! IP-адреса указываются в обратном порядке: 2.1.168.192. Если указан неполный IP, например, 1, то к нему будет добавлен адрес подсети 1.168.192.

Листинг 13.3. Файл named.local

@ IN SOA dhsilabs.com. root. dhsilabs.com. (

     199609203 ;серийный номер

     28800     ;обновление каждые 8 часов

     7200      ;повтор каждые 2 часа

     604800    ;хранить информацию 168 часов (1 неделю)

     86400)    ;TTL записи - 24 часа

  NS  dhsilabs.com.

1 PTR localhost.

Листинг 13.4. Файл 192.168.1

@ IN SOA den.dhsilabs.com. hostmaster.dhsilabs.com. (

     93011120 ; серийный номер

     10800    ; обновление каждые 3 часа

     3600     ; повтор каждый час

     3600000  ; хранить информацию 1000 часов

     86400 )  ; TTL записи - 24 часа

@           IN NS den.dhsilabs.com

1           IN PTR den.dhsilabs.com

2.1.168.192 IN PTR evg.dhsilabs.com

Данный текст является ознакомительным фрагментом.