Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 68
Текст из файла (страница 68)
Одним из способов классификации серверов является тип отклика на запрос:• авторитетный (authoritative response) ответ серверами, ответственными за зону (фрагмент DNS,управляемый этим сервером);• неавторитетный (non authoritative response) ответ выдается по запросам клиентов серверами, которые не отвечают за зону, а просто по каким-либо причинам обладают (содержат в кэше) необходимую дляответа на запрос информацию.Например, если ваш сервер доменных имен поддерживает зону sipria.msk.ru, и клиент запрашивает у него IP-адрес почтового сервера mail.sipria.msk.ru, то ответ вашего сервера считается авторитетным, т.
к. именно ваш сервер несет ответственность за ответы на запросы, касающиеся хостов в зоне sipria.msk.ru.Если клиент обратится к вашему DNS-серверу, поддерживающего, зону sipria.msk.ru с запросомоб IP-адресе сервера www.yandex.ru, то он, вероятно, выдаст информацию из кэша (кто-то из пользователей мог уже обращаться с таким запросом). В этом случае ответ, скорее всего, является правильным, но неавторитетным. В рассматриваемом примере авторитетный ответ на запрос могут дать либо первичный сервер, отвечающий за зону yandex.ru, или дублирующие его функции вторичные сервера.Администратор первичного сервера доменных имен вручную создает описание файлов зон, за которые отвечает сервер. Все остальные серверы только копируют информацию с первичного сервера. Для зоныможно определить только один первичный сервер, являющийся первоисточником для всех вторичных серверов.Вторичный сервер также предоставляет клиентам авторитетные ответы на запросы, касающиеся обслуживаемых им зон, подстраховывая работу первичного сервера доменных имен и отвечая на часть запросов, адресуемых первичному серверу.
В больших зонах может быть несколько вторичных серверов, так, например, из 13 серверов, обслуживающих корневую зону, 12 являются вторичными серверами.286Часть 5. Служба DSNАдминистратор вторичного сервера не создает файлов описания зон, он только обеспечивает настройку своего сервера таким образом, чтобы он копировал описание зон с первичного сервера, поддерживая описание зон в актуализированном состоянии.Существует оговоренная практика резервирования серверов, которая описана в рекомендациях по ведению зон. Она заключается в том, что для домена второго уровня необходимо иметь, как минимум, двасервера, ответственных за зону, т.
е. дающих авторитетные отклики на запросы. При этом эти серверыдолжны иметь независимые подключения к Интернет для обеспечения бесперебойного обслуживания запросов в случае потери связи или выхода из строя одного из серверов.Наиболее популярным приложением, реализующим систему доменных имен, является BerkeleyInternet Name Domain (BIND) от Internet Software Consortium (ISC). По оценкам, более 90 % компьютеров вИнтернет используют программу ISC BIND, которая cодержит сервер, библиотеку клиента и несколько утилит.
В этой главе мы рассмотрим инсталляцию и настройку ISC BIND на примере организации поддержаниясобственной зоны небольшой компании. Принципиальная схема организации службы DNS представлена нарис. 23.1.В рассматриваемом примере служба DNS реализуется с помощью:• первичного DNS-сервера;• вторичного DNS-сервера, имеющего независимое подключение к Интернет (например, установленного на одной из систем дружественной заокеанской фирмы);• кэширующих DNS-серверов на шлюзе, других серверах и Linux-системах в локальной сети.ЗАМЕЧАНИЕ Если вы используете DNS-сервера провайдера, то необходимость в инсталляции и настройке первичного и вторичного DNS-серверов отпадает. При этом файлы описания вашей зоны должнысоздаваться и актуализироваться провайдером. На шлюзе в Интернет необходимо установить кэширующийDNS-сервер, а на остальных Linux системах в вашей сети желательно установить «облегченный» вариантDNS-сервера - .Ограничения и допущенияИсходные коды находятся в каталоге /var/tmp.Все операции выполняются пользователем с учетной записью root.Используется дистрибутив ASPLinux 7.3 (Vostok).Перекомпиляция ядра не требуется.Процедуры, описанные в этой главе, могут оказаться применимыми для других версий ядра и дистрибутивов Linux, но авторы это не проверяли.ПакетыПоследующие рекомендации основаны на информации, полученной с домашней страницы проектаISC BIND по состоянию на 13.05.2003.
Регулярно посещайте домашнюю страницу проектаhttp://www.isc.org/и отслеживайте обновления.Исходные коды ISC BIND содержатся в архиве bind-version.tar.gz (последняя доступная намомент написания главы стабильная версия bind-9.2.2.tar.gz).Для нормальной работы ISC BIND с поддержкой протокола SSL необходима установка программногообеспечения OpenSSL, описанная в главе 12.Инсталляция с помощью rpm-пакетовЕсли вы предпочитаете использование системы со стандартным ядром и программным обеспечением,установленным из rpm-пакетов, для установки или обновления пакета необходимо выполнить следующиеоперации.ЗАМЕЧАНИЕ Авторы настоятельно рекомендуют устанавливать программное обеспечение из исходных кодов.Шаг 1Проверьте, установлен ли пакет программы bind с помощью следующей команды:[root@drwalbr /]# rpm –iq bindШаг 2Перейдите в каталог, где находится пакет bind-9.2.1-1.asp.i386.rpm.
Если вы в соответствиис рекомендациями главы 2 скопировали все пакеты, входящие в дистрибутив, в каталог /home/distrib,то выполните команду:[root@drwalbr /]# cd /home/distribГлава 23. ISC BIND – программное обеспечение для организации службы DSN287Первичный DNS-серверВторичный DNS-серверзоны contora.ruIP 213.24.76.2IP 194.226.94.138ИнтернетWWW-сервер,кэширующийDNS-серверРоутерПочтовый сервер,кэширующий DNS-серверКонцентраторIP 213.24.76.9IP 213.24.76.5Шлюз,кэширующий DNS-серверIP 213.24.76.1Сервер баз данных,кэширующий DNS-серверIP 213.24.76.3IP 192.168.1.1КонцентраторЛокальная сеть 192.168.1.0/24На всех Linux-системах установлены кэширующие DNS-сервераРис.
23.1 Принципиальная схема организации службы DNS.288Часть 5. Служба DSNи установите:[root@drwalbr distrib]# rpm -ihv bind-utils-9.2.1-1.asp.i386.rpm[root@drwalbr distrib]# rpm –ihv bind-9.2.1-1.asp.i386.rpmили обновите пакет:[root@drwalbr distrib]# rpm –Uhv bind-9.2.1-1.asp.i386.rpmПосле установки пакета перейдите к настройке программы.Компиляция, оптимизация и инсталляция ISC BINDДля инсталляции ISC BIND из исходных кодов необходимо выполнить следующие операции.Шаг 1Осуществите проверку подлинности имеющегося в вашем распоряжении архива с исходными кодамис использованием процедур, описанных в шаге 1 радела «Компиляция, оптимизация и инсталляцияOpenSSL» главы 12.Шаг 2Если вы собираетесь использовать ISC BIND с поддержкой протокола SSL, и на вашей системе не установлено программное обеспечение OpenSSL, установите его в соответствии с рекомендациями главы 12.Шаг 3Распакуйте архивы с исходными кодами ISC BIND в каталоге /var/tmp:[root@drwalbr tmp]# tar xzpf bind-9.2.2.tar.gz[root@drwalbr tmp]# cd bind-9.2.2Шаг 4Создайте специального пользователя named, от имени которого будет запускаться ISC BIND:[root@drwalbr bind-9.2.2]# groupadd -g 25 named > /dev/null || :[root@drwalbr bind-9.2.2]# useradd -u 25 -g 25 -s /bin/false -M -r -d/var/named named > /dev/null 2>&1 || :Шаг 5Для добавления несуществующего командного интерпретатора добавьте в файл /etc/shells строку:/bin/false/Шаг 6Для изменения используемых для хранения файлов named.pid и lwresd.pid в файле/var/tmp/bind-9.2.2/bin/named/include/named/giobals.h замените строку:"/run/named .pid");на:"/run/named/named.pid");Строку:"/run/lwresd.pid");на:"/run/named/lwresd.pid");Шаг 7Отконфигурируйте исходные коды ISC BIND:[root@drwalbr bind-9.2.2]# CFLAGS="-O2 -march=i686 -funroll-loops"; export CFLAGS./configure \--prefix=/usr \--atedir=/var \--mandir=/usr/share/man \--with-openssl \--with-libtool \--disable-ipv6Глава 23.
ISC BIND – программное обеспечение для организации службы DSN289Шаг 8Откомпилируйте, проинсталлируйте ISC BIND, создайте и сохраните в надежном месте список установленных файлов:[root@drwalbr bind-9.2.2]# make[root@drwalbr bind-9.2.2]# find /* > /root/dns1[root@drwalbr bind-9.2.2]# make install[root@drwalbr bind-9.2.2]# strip /usr/sbin/named[root@drwalbr bind-9.2.2]# mkdir -p /var/named[root@drwalbr bind-9.2.2]# mkdir -p /var/run/named[root@drwalbr bind-9.2.2]# install -c -m0600 bin/rndc/rndc.conf /etc/[root@drwalbr bind-9.2.2]# chown named.named /etc/rndc.conf[root@drwalbr bind-9.2.2]# chown named.named /var/named/[root@drwalbr bind-9.2.2]# chown named.named /var/run/named[root@drwalbr bind-9.2.2]# /sbin/ldconfig[root@drwalbr bind-9.2.2]# find /* > /root/dns2[root@drwalbr bind-9.2.2]# diff /root/dns1 /root/dns2 >/root/dns.installed[root@drwalbr bind-9.2.2]# mv /root/dns.installed/very_reliable_place/dns.installed.YYYYMMDDШаг 9Удалите архивы и каталоги с исходными кодами программ:[root@drwalbr /]# cd /var/tmp/[root@drwalbr tmp]# rm -rf bind-9.2.2/[root@drwalbr tmp]# rm -f bind-9.2.2.tar.gzКонфигурирование ISC BINDКонфигурирование ISC BIND осуществляется с использованием следующих файлов:• основного конфигурационного файла /etc/named.conf;• файла/var/named/db.cache, содержащего IP-адреса DNS-серверов, обслуживающих корневую зону;• файлов зон /var/named/db.*;• файлов обратных зон /var/named/*.*.*.in-addr.arp;• системного конфигурационного файла /etc/sysconfig/named, необходимогодля запуска ISC BIND в окружении chroot-jail.• файла инициализации /etc/init.d/named, необходимого для запуска ISCBIND.Конфигурирование ISC BIND в режиме кэширующего DNS-сервераКэширующий DNS-сервер не отвечает ни за какие зоны, кроме локальной, и предназначен для хранения и выдачи по запросам клиентов из локальной сети информации о соответствии имен IP-адресам и наоборот.
При невозможности ответа на запрос клиента из-за отсутствия соответствующей информации в кэше, кэширующий DNS-сервер переадресовывает запрос соответствующим DNS-серверам, получает на негоответ и сохраняет полученную информацию в кэше. В последующем эта информация может быть использована при ответе на другие запросы.Конфигурационный файл /etc/named.confШаг 1Создайте файл /etc/named.conf, руководствуясь своими потребностями и ниже приведеннымирекомендациями:// Authorized source addresses.acl "trusted" {localhost;};// Known fake source addresses shouldn't be replied to.acl "bogon" {0.0.0.0/8;1.0.0.0/8;290Часть 5.