Следует заметить, что время преобразования снижается только в том случае, когда необходимые данные уже содержатся в кэше сервера. Поэтому рассматриваемую здесь конфигурацию имеет смысл использовать только в сетях с относительно большим количеством пользователей, которые часто обращаются к одним и тем же узлам глобальной сети.
Основной конфигурационный файл сервера, предназначенного лишь для кэширования, имеет тот же формат, что и файл, представленный в листинге 18.1, однако в нем присутствует лишь определение зоны, предназначенной для обратного преобразования localhost( 0.0.127.in-addr.arpa), и корневой зоны ( .). Даже эти зоны не являются обязательными.
Наиболее важными компонентами конфигурационного файла сервера DNS, предназначенного только для кэширования, являются опции forwardersи forward, расположенные в разделе options. Опция forwardersдолжна содержать список серверов DNS провайдера. BIND использует эти серверы для выполнения преобразования. Вместо выражения forward first, приведенного в листинге 18.1, необходимо указать forward only. В этом случае сервер прекратит попытки преобразования, если серверы, указанные в качестве значения forwarders, окажутся не доступными.
Внимание
Если вы включите в состав конфигурационного файла корневую зону и зададите опцию forward first, то в случае, когда серверы, предназначенные для перенаправления запроса, станут не доступны, BIND предпримет попытку выполнения стандартной процедуры преобразования адресов. Само по себе это неплохо, но при этом процедура выявления ошибки и генерации соответствующего сообщения окажется длительной. В особенности этот будет заметно в том случае, если соединение с Internet осуществляется посредством линии с большой задержкой.
Ранее в данной главе упоминались серверы, предназначенные лишь для кэширования результатов преобразований. Эти серверы занимают меньше памяти, чем BIND, тем не менее, они используются достаточно редко. Причина в том, что BIND поставляется в составе многих дистрибутивных пакетов и гораздо проще в настройке по сравнению с другими серверами. Если вы захотите сэкономить ресурсы, вы можете вместо BIND использовать dnscacheили pdnsd.
Сконфигурировав и запустив сервер имен (либо полнофункциональный, либо предназначенный только для кэширования), вам необходимо указать его IP-адрес для всех компьютеров, которые должны работать с ним. Если вы забудете сделать это, узлы вашей сети по-прежнему будут обращаться к внешним серверам DNS.
Взаимодействие с сервером DHCP
Если в вашей сети IP-адреса распределяются посредством сервера DHCP, вы не сможете задавать фиксированные адреса в конфигурационном файле зоны, так как адрес, выделенный клиенту DHCP, становится известным лишь при его загрузке и может измениться при следующей загрузке. В главе 5 рассматривались два решения этой проблемы: настройка сервера DHCP для предоставления клиенту одного и того же IP-адреса и настройка DHCP и серверов DNS для совместной работы. Если вы выберете первый способ, т.е. сконфигурируете сервер DHCP так, что он будет выделять конкретным клиентам фиксированные IP-адреса, вам придется уделять много внимания сопровождению этих серверов. Предположим, что вам необходимо указать, что компьютеру birch.threeroomco.comдолжен соответствовать адрес 192.168.1.2. Для этого вам надо изменить как конфигурационный файл сервера DHCP, так и конфигурационные файлы зон сервера DNS, используемых для прямого и обратного преобразования. При этом приходится следить за тем, чтобы значения в обоих файлах совпадали. Несмотря на то что данное решение реализуется относительно просто, для больших доменов оно неприемлемо.
В главе 5 рассматривалась конфигурация сервера DHCP для совместной работы с сервером DNS. Чтобы соответствующим образом настроить BIND, вам надо внести изменения в файл named.conf. Вы должны добавить в определение соответствующей зоны опцию allow-update. В результате определение зоны примет следующий вид:
zone "threeroomco.com" {
type master;
file "named.threeroomco.com";
allow-update { 192.168.1.1; }
};
Теперь BIND будет принимать информацию об IP-адресах от компьютера с адресом 192.168.1.1. Как нетрудно догадаться, это должен быть адрес узла сети, на котором выполняется сервер DHCP. Аналогичные изменения надо внести в определение обратной зоны.
Внимание
Если ваш сервер DNS доступен из Internet или если вы не полностью доверяете пользователям локальной сети, получение информации об обновлении DNS-данных представляет угрозу безопасности системы. Хакер может взломать сервер DHCP или, фальсифицировав адрес, внести необходимые ему изменения в конфигурацию сервера DNS. Чтобы уменьшить опасность атаки, желательно разместить серверы DNS и DHCP на одном компьютере и разрешить обновление только с локального узла (127.0.0.1).
Читать дальше