Современные информационные технологии/Вычислительная техника и программирование

Мясищев А.А.

Хмельницкий национальный университет, Украина

Настройка сервера имен для Unix FreeBSD 7.3-RELEASE

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

Авторитетный сервер имён нужен, когда:

1.нужно предоставлять информацию о DNS остальному миру, отвечая на запросы.

2. зарегистрированы домены такие как, как tup.km.ua и khnu.km.ua и в этих доменах требуется поставить имена машин в соответствие с их адресами IP.

3. резервный (slave) или вторичный сервер имён должен отвечать на запросы, копируя зону с авторитетного (первичного) сервера имен.

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

Кэширующий сервер имён нужен, когда локальный сервер DNS может кэшировать информацию и отвечать на запросы быстрее, чем это происходит при прямом опросе внешнего сервера имён. Например, если кто-нибудь запрашивает информацию о www.lucky.net, то обычно резолвер обращается к серверу имён провайдера, посылает запрос и ожидает ответа. С локальным кэширующим сервером DNS запрос во внешний мир будет делаться всего один раз. Каждый дополнительный запрос не будет посылаться за пределы локальной сети, потому что информация уже будет иметься в кэше.

         В работе рассматривается создание авторитетного сервера имен для зон tup.km.ua  и khnu.km.ua, которые являются зарегистрированными на сервере зоны km.ua, кэширующего сервера имен, а также сервера slave, обслуживающего локальную зону tup. Эти сервера имен работают в Хмельницком национальном университете.

Рис.1

На рис.1 представлена схема фрагмента сети, из которой понятно расположение DNS серверов и их взаимодействие. Интерфейс 212.111.198.10 DNS сервера server1 подключен к Интернет провайдеру URAN. Сервера имен работают под управлением Unix FreeBSD 7.3-RELEASE. По умолчанию в этой операционной системе используется BIND ver.9.6. В качестве демона BIND выступает  программа named. В каталоге /etc/namedb  будем располагать файлы зон, которые содержат информацию о зоне DNS, за которую отвечает сервер имён.  Конфигурационным файлом демона named является файл  /etc/namedb/ named.conf.

Сервер имен устанавливается по умолчанию при установке операционной системы. Для его запуска необходимо в файл /etc/rc.local поместить команду:

/usr/sbin/named -c /etc/namedb/named.conf

Перед запуском необходимо создать конфигурационный файл /etc/namedb/ named.conf и файлы зон, которые обслуживает сервер имен.

Сформулируем задачу следующим образом:

1.запустить авторитетный сервер имен на узле 212.111.198.33 для зон tup.km.ua и khnu.km.ua

2. запустить кэширующий сервер имен на 212.111.198.33

3. запустить вторичный сервер имен на 212.111.198.33 для зоны tup и зоны 20.172.in-add.arpa. Авторитетным сервером для этих зон является узел 172.20.0.149

4. разрешить использовать DNS BIND только для следующих узлов и сетей:

127.0.0.1; 172.21.8.0/28; 172.20.0.149; 172.20.6.37; 172.20.4.200;  212.111.198.32/27; 212.111.198.10; 212.109.57.237; 192.168.15.126; 195.230.134.99

4. разрешить опрашивать другие DNS с исходящим портом 53 по udp через произвольный интерфейс

5. разрешить прослушивание следующих интерфейсов 127.0.0.1;  212.111.198.33; 212.111.198.10 у созданного DNS сервера.

7.разрешить передачу зон только следующим вторичным серверам - 78.152.160.5; 212.111.192.35; 172.20.0.149.

6. файл корневых серверов должен иметь имя named.root

Для выполнения перечисленных выше условий конфигурационный файл /etc/namedb/ named.conf будет иметь следующий вид:

acl ACCESS { 127.0.0.1;172.21.8.0/28;172.20.0.149; 172.20.6.37; 172.20.4.200; 212.111.198.32/27;212.111.198.10;212.109.57.237;192.168.15.126;195.230.134.99; };

options {

query-source address * port 53;

directory "/etc/namedb";

allow-recursion { ACCESS; };

allow-transfer{78.152.160.5; 212.111.192.35; 172.20.0.149;};

        pid-file        "/var/run/named/pid";

        dump-file       "/var/run/named_dump.db";

        statistics-file "/var/run/named.stats";

        listen-on       { 127.0.0.1; 212.111.198.33;212.111.198.10; };

};

zone "." { type hint; file "/etc/namedb/named.root"; };

zone "0.0.127.IN-ADDR.ARPA" {

        type master;

        file "db.127.0.0";

};

zone "tup.km.ua" {

        type master;

        file "db.tup.km.ua";

};

zone "khnu.km.ua" {

        type master;

        file "db.khnu.km.ua";

};

zone "20.172.in-addr.arpa" {

        type slave;

        file "dbc.20.172";

        masters {

                172.20.0.149;

        };

};

zone "tup" {

        type slave;

        file "dbc.tup";

        masters {

                172.20.0.149;

        };

};

Здесь можно выделить следующие опции:

query-source address * port 53;  - означает, что если BIND не будет знать ответа на запрос, то он будет опрашивать другие DNS сервера с исходящим портом 53 по  udp через свой произвольный интерфейс (*);

acl ACCESS { 127.0.0.1;172.21.8.0/28;172.20.0.149; 172.20.6.37; 172.20.4.200; 212.111.198.32/27;212.111.198.10;212.109.57.237;192.168.15.126;195.230.134.99; }; allow-recursion { ACCESS; }; - правило, разрешающее использовать BIND только с определенных сетей, хостов.

allow-transfer{78.152.160.5; 212.111.192.35; 172.20.0.149;}; - означает разрешение на передачу зоны всем перечисленным здесь компьютерам (вторичным серверам DNS).

listen-on { 127.0.0.1; 212.111.198.33;212.111.198.10; }; - разрешение на прослушивание перечисленных в директиве интерфейсов сервера DNS server1.

Для каждого новой зоны, которую будет обслуживать сервер имён, в файл named.conf должна быть добавлена запись. Например^

zone "khnu.km.ua" {

        type master;

        file "db.khnu.km.ua";

};

Эта запись означает, что зона является первичной, что отражается в поле type (master), и информация о зоне хранится в файле /etc/namedb/master/db.khnu.km.ua, что указывается в поле file.

zone "tup" {

        type slave;

        file "dbc.tup";

        masters {

                172.20.0.149;

        };

};

 

Здесь зона tup является вторичной, что определяется тиром type slave. Информация об этой зоны хранится в файле dbc.tup, который копируется с основного сервера для этой зоны с адресом 172.20.0.149 (рис.1).  Если и когда основной сервер имён выходит и строя или недосягаем, то скачанная информация о зоне будет находиться на вторичных серверах, и они смогут обслуживать эту зону.

zone "." { type hint; file "/etc/namedb/named.root"; };

В этой записи настраивается работа кэширующего сервера имен. В файле /etc/namedb/named.root хранятся сервера, которые отвечают за корневую зону. Кэширующий сервер имён - это сервер имён, не отвечающий ни за какую зону. Он просто выполняет запросы от своего имени и сохраняет результаты для последующего использования.

Фрагменты файлов зон tup.km.ua и khnu.km.ua представлены ниже.

Зона tup.km.ua:

tup.km.ua.      IN      SOA     gamma.tup.km.ua. alex.tup.km.ua. (2008020136 7200 1800 1209600 86400)

                IN      NS      gamma.tup.km.ua.

                IN      NS      ns.ic.km.ua.

                IN      NS      ns2.uran.net.ua.

;

tup.km.ua.      IN      MX      10 mailhub

gamma           IN      A       212.111.198.33

hnu             IN      A       212.111.198.10

                IN      MX      10 mailhub

library         IN      A       212.111.198.46

cel             IN      A       212.111.198.45

ikc1            IN      A       212.111.198.35

prk             IN      A       212.111.198.38

mailhub         IN      A       212.111.198.34

                IN      MX      10 mailhub

                IN      MX      30 ns.km.ua.

img             IN      A       212.111.198.39

sens            IN      A       212.111.198.40

msn             IN      A       212.111.198.50

                IN      MX      10 mailhub

www             IN      CNAME   ikc1

 

Зона khnu.km.ua:

khnu.km.ua.     IN      SOA     gamma.tup.km.ua. alex.tup.km.ua. (2011041202 7200 1800 1209600 86400)

                IN      NS      gamma.tup.km.ua.

                IN      NS      ns.ic.km.ua.

;

rout            IN      A       78.152.183.33

nat             IN      A       78.152.183.34

ed              IN      A       78.152.183.35

nu              IN      A       78.152.183.36

prk             IN      A       212.111.198.38

msn             IN      A       212.111.198.50

isu1            IN      A       212.111.198.58

library         IN      A       212.111.198.46

www             IN      CNAME   nu

 

Из файлов видно, что зоны имеют формат

recordname           IN      recordtype            value

Наиболее часто встречающиеся записи DNS имеют следующие значения:

SOA  -   начало зоны ответственности;

NS     -   авторитетный сервер имен;

A       -   адрес хоста;

CNAME -  каноническое имя для алиаса;

MX   -   обмен почтой.

Самая первая строка

khnu.km.ua.     IN      SOA     gamma.tup.km.ua. alex.tup.km.ua. (2011041202 7200 1800 1209600 86400)

содержит следующие записи:

khnu.km.ua.     – имя домена;

gamma.tup.km.ua. – основной (авторитетный) сервер имен для этой зоны;

alex.tup.km.ua.  – человек, отвечающий за эту зону(его электронный адрес alex@tup.km.ua);

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

7200 – интервал времени в секундах, после которого вторичный (slave) сервер имен обратится к первичному серверу имен для того, чтобы перечитать зону.

1800 – интервал времени для повторной попытки, если предыдущая операция не удалась.

1209600 – время, после которого вторичный сервер имен прекращает раздавание зоны после выключения первичного сервера имен.

86400 – время кэширования ответов соответствия между ip адресом и доменным именем.

zone "0.0.127.IN-ADDR.ARPA" {

        type master;

        file "db.127.0.0";

};

Здесь описывается локальная зона. Файл db.127.0.0 имеет вид:

@ IN  SOA gamma.tup.km.ua. hostmaster.gamma.tup.km.ua. (2 10800 3600 604800 86400)

IN  NS  gamma.tup.km.ua.

1.0.0.127.IN-ADDR.ARPA.         IN  PTR   localhost.

После запуска авторитетного (основного) сервера имен Интернет провайдер на своем сервере имен ns.ic.km.ua должен поднять зону, например khnu.km.ua как на  вторичном севере. Для этого в файл named.conf он должен добавить:

zone "khnu.km.ua"

{

type slave;

file "/etc/namedb/slave/khnu.km.ua";

masters { 212.111.198.33; };

};

А на сервере, который отвечает за зону km.ua необходимо разрешить делегирование зоны khnu.km.ua:

; OK-UNTIL 20120105151916

khnu       IN     NS    ns.ic.km.ua.

               IN     NS   gamma.tup.km.ua.

После выполненных представленных выше настроек и запуска сервера DNS зоны будут видны с любого компьютера сети Интернет.

 

Литература

1. Chern Lee, Tom Rhodes, Daniel Gerzo.Руководство FreeBSD. Domain Name System (DNS). http://www.freebsd.org/doc/ru/books/handbook/network-dns.html