DNS bind 9.7

Автор: johnmate от 25-12-2011, 00:29, посмотрело: 571

0

Теория и настройка bind 9.7.3.




Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают. Многие пользователи никогда не слышали о DNS, однако именно эта система делает Интернет таким, каким мы его знаем. DNS, или служба имен, обеспечивает отображение между именами хостов и IP-адресами. Без DNS веб-броузеру и программам электронной почты не были бы понятны удобные имена вроде www.centos.org.ua и пришлось бы набирать числовые IP-адреса, что значительно снизило бы популярность Интернета. Для большинства конечных пользователей нет DNS - нет Интернета. Система DNS необходима всем сервисам Интернета.

Самое популярное программное обеспечение для создания сервера DNS - это BIND(Berkley Internet Name Daemon). На самом деле BIND представляет собой набор инструментов, в состав которого входят такие программы, как host, dig и собственно сервер DNS - named.

Прямой и обратный DNS.


Прямой и обратный DNS - это типы отображения при разрешении имен. Метод прямого преобразования отображает имена хостов в их IP-адреса; он поддерживает псевдонимы и прочие приятные мелочи. Метод обратного преобразования отображает IP-адреса в имена хостов; он не такой гибкий, как метод прямого преобразования. С одним именем хоста может быть связано несколько IP-адресов, но каждый IP-адрес может отображаться только в одно имя хоста.

Первичные и вторичные серверы имен.


Для обслуживания каждого домена требуется по крайней мере два сервера имен. Только один из них может быть первичным, все остальные - вторичные. Первичный (master) сервер имен - последняя авторитетная инстанция для домена. Информацию о домене надо изменять на первичном сервере имен, т.к. именно оттуда эту информацию берет вторичный (slave) сервер. Предполагается, что оба сервера, и первичный и вторичный, являются авторитетными, т.е. окружающий их мир считает, что информация о домене, исходящая от этих серверов, будет верна на все сто процентов.

Конфигурационные файлы BIND


На первичном и вторичном серверах имен используются одни и те же конфигурационные файлы демона службы имен named. В конфигурацию Centos по умолчанию уже входят настройки, необходимые для работы простейшего сервера имен, но чтобы запустить службу имен для собственного домена, вы должны понимать, как она настраивается. Основной каталог с конфигурационными файлами - /var/named/ и /etc/named.*.

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

localhost-forward.db и localhost-reverse.db
Это файлы прямой и обратной зон для хоста localhost на вашем компьютере.

named.conf
Основу конфигурации сервера DNS составляет конфигурационный файл демона named, named.conf. Если в файле named.conf есть ошибки, сервер имен будет неработоспособен. Именно здесь хранятся главные настройки DNS.


Конфигурация BIND


Ну а теперь приступим к конфигурированию сервера. Ставить bind будем на чистую систему. По умолчанию в репозитории Centos 5 BIND числится как caching-nameserver версии 9.3.6, нам она не подходит, так как морально устарела. Для того чтобы установить актуальную версию нужно подключить репозиторий CentALT. Как это сделать я описывал раннее в статье YUM. Подключаем репозитории. Для начала проверим установлен ли уже DNS сервер:


# rpm -qa | grep bind
bind-utils-9.3.6-4.P1.el5_4.2
bind-9.3.6-4.P1.el5_4.2
bind-libs-9.3.6-4.P1.el5_4.2
# named -v
BIND 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2

Если в системе уже есть предустановленный DNS сервер, то он автоматически обновится при обновлении. Обновляем пакеты:

# yum update
Если раннее DNS сервер небыл установлен, с помощью yum ставим его:

# yum install bind bind-libs bind-utils

Итак, переходим в директорию /etc и редактируем конфигурационный файл named.conf:


########################################
# Настройка named
########################################

# Параметры
options {
# directory задает каталог конфигурации, в котором
# демон named ищет и хранит файлы DNS.
directory "/var/named/zones";
# pid-file - это имя файла, в котором
# хранится числовой идентификатор
# основного процесса named.
pid-file "/var/run/named/pid";
# dump-file - это кэш ответов демона named.
dump-file "/var/named/data/cache_dump.db";
# statistics-file сохраняет статистику и другие
# сведения о запросах
statistics-file "/var/named/data/named_stats.txt";
# Включаем форвардинг с прокси сервера
# forwarders {
# 10.0.2.1;
# };
# IP-адреса интерфейсов сервера, на котором будет запущена служба named
listen-on port 53 { any; };
listen-on-v6 port 53 { none; };
# Диапазон адресов клиентов, для которых разрешено делать запросы
allow-recursion {
127.0.0.1;
10.0.2.0/24;
};
allow-query {any;};
allow-query-cache {any;};
allow-transfer {none;};
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};

# Корневая зона
zone "." IN {
type hint;
file "named.ca";
};

# Прямая локальная зона
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};

# Обратная локальная зона
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

# Моя зона
zone "mydomain.local" {
type master;
file "mydomain.local";
};


Итак, у нас есть конфигурационный файл, который сообщает демону named, за какой домен тот отвечает и где расположен файл с информацией об этом домене. Но сам этот файл еще надо создать.
В директории /var/named/zones/ создаю файл зоны mydomain.local со следующим содержанием:


$TTL 3600
@ IN SOA ns.mydomain.local. mail.host.ru (
2011010101 ; Serial
3600 ; Refresh
900 ; Retry
360000 ; Expire
3600 ; Minimum
)
@ IN NS ns1.mydomain.local.
@ IN NS ns2.mydomain.local.

localhost IN A 127.0.0.1
mydomain.local. IN A 10.0.2.2
ns1 IN A 10.0.2.2
ns2 IN A 10.0.2.2

Немного поясню, что тут написано.
Инструкция $TTL задает время жизни зоны (в сек.). Это значение определяет, как долго другие серверы будут кэшировать информацию об этой зоне:


$TTL 3600

Следующая запись - Start of Authority (SOA, начало авторитетности).


@ IN SOA ns.mydomain.local. mail.host.ru (
2011010101 ; Serial
3600 ; Refresh
900 ; Retry
360000 ; Expire
3600 ; Minimum
)

Тут представлено краткое описание зоны - каково ее поведение и как серверам следует себя с ней вести.
Символ @ - это специальное сокращение для зоны, указанной в named.conf. В моем случае это mydomain.local.
IN представляет тип данных - данные Интернета.
SOA означает запись Start of Authority.
Следующая часть - имя машины. Обратите внимание, что в конце имени стоит точка. Точка ставится для того ,чтобы в конце имени не добавлялась запись домена. Например, если мы не поставим точку в конце имени ns.mydomain.local, то фактическое имя компьютера станет:

ns.mydomain.local.mydomain.local
Далее следует адрес электронной почты человека, ответственного за эту зону. Первую точку в адресе электронной почты следует рассматривать как заменитель символа @.

mail.host.ru
Ну и последнее это название DNS сервера и соответствия имен с IP-адресами:


@ IN NS ns1.mydomain.local.
@ IN NS ns2.mydomain.local.

localhost IN A 127.0.0.1
mydomain.local. IN A 10.0.2.2
ns1 IN A 10.0.2.2
ns2 IN A 10.0.2.2

Подготовка к запуску.
Для того чтобы демон старотвал вместе с ситемой, в консоли вполняем следующую комманду:

# chkconfig named on
Далее стартуем сам демон:

# /etc/init.d/named start
Ну и далее смотрим лог:

# less /var/log/messages
Если в файле присутсвуют строки:


Mar 20 15:49:05 server named[3866]: starting BIND 9.7.3-RedHat-9.7.3-1.el5 -u named -4
Mar 20 15:49:05 server named[3866]: adjusted limit on open files from 1024 to 1048576
Mar 20 15:49:05 server named[3866]: found 2 CPUs, using 2 worker threads
Mar 20 15:49:05 server named[3866]: using up to 4096 sockets
Mar 20 15:49:05 server named[3866]: loading configuration from '/etc/named.conf'
Mar 20 15:49:55 server named[3866]: zone mydomain.local/IN: loaded serial 2011010101

Значит мы все правильно установили и настроили, на этом все... радуемся)

P.S. Не забываем про права.

# chown -R named:named /var/named

Категория: Статьи » программы

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.