Взаимодействие с DNS-сервером
Взаимодействие с DNS-сервером
Если вы хотите, чтобы к клиенту DHCP мог непосредственно обратиться любой узел сети, добиться этого можно двумя способами. Вы можете сконфигурировать сервер DHCP так, чтобы он предоставлял клиенту фиксированный IP-адрес (необходимые действия обсуждались ранее в этой главе), либо настроить серверы DHCP и DNS для взаимодействия друг с другом; в этом случае записи сервера DNS будут обновляться, отражая текущее назначение адресов клиентам DHCP. Если адреса клиентов DHCP изменяются редко, а обращение к ним выполняется только из локальной сети, второй способ предпочтительнее первого. Если к компьютеру предполагается доступ из Internet, этот способ мало пригоден. Если запись в конфигурационном файле DNS изменится, то для распространения изменений по Internet потребуется определенное время. В течение этого времени могут быть предприняты попытки обращения к компьютеру по его старому адресу.
В версиях dhcpd, предшествующих версии 3.0, отсутствовали средства для поддержки взаимодействия с сервером В версии 3 были реализованы два способа обновления записей DNS: ad-hoc (метод, ориентированный на конкретный узел) и interim (промежуточный метод). Существуют также другие способы; после принятия их в качестве Internet-стандарта они будут реализованы в последующих версиях dhcpd.
На заметку
Прочие способы обновления содержимого сервера DNS реализованы в продуктах независимых производителей. Эти продукты отслеживают изменения в файле протокола DHCP и при появлении в нем записей об изменении соответствия адресов доменным именам, отражают эти изменения в конфигурации DNS.
Для организации взаимодействия с сервером DNS используется параметр ddns-update-style, который может принимать одно из трех значений: ad-hoc, interim и none (последнее значение принимается по умолчанию). Чтобы разрешить динамическое обновления DNS, надо включить параметр ddns-update-style в качестве глобального в начало файла dhcpd.conf и присвоить ему либо значение ad-hoc, либо interim (попытки задать данный параметр для отдельных клиентов не дадут ожидаемого результата).
Внимание
Оба метода обновления DNS работают только в том случае, если сервер DNS воспринимает информацию об обновлении. Соответствующая конфигурация сервера DNS будет обсуждаться в главе 18.
Метод обновления ad-hoc
При использовании метода ad-hoc имя узла задается одним из четырех способов. Эти способы с учетом их приоритета перечислены ниже.
1. Если в декларации host содержится параметр ddns-hostname, используется значение этого параметра.
2. Если клиент передает полностью определенное доменное имя (имя, состоящее из имени узла и имени домена), сервер DHCP принимает содержащееся в нем имя узла.
3. Если клиент передает имя узла без указании имени домена, это имя воспринимается сервером DHCP.
4. Используется имя клиента, указанное в декларации host.
В любом случае применяется только локальное имя компьютера. Если его невозможно определить ни одним из этих способов, сервер DHCP не предпринимает попыток обновить данные сервера DNS. Если сервер DHCP имеет в своем распоряжении имя узла, он объединяет его с именем домена, заданным с помощью параметра ddns-domainname (если этот параметр присутствует), либо посредством параметра domain-name.
Сформированное полное доменное имя сервер DHCP использует для изменения данных сервера DNS. Сначала обновляется запись А, которая управляет прямым преобразованием (когда по заданному имени определяется IP-адрес). Если запись А создается успешно, то сервер DHCP обновляет запись PTR, используемую для обратного преобразования (когда по заданному IP-адресу определяется доменное имя узла).
Метод обновления interim
Метод interim во многом похож на метод ad-hoc, но он предоставляет возможность клиенту обновить запись А сервера DNS. Чтобы разрешить или запретить клиенту самостоятельно выполнять действия по обновлению записей сервера DNS, в файл dhcpd.conf надо включить параметр allow client-updates или ignore client-updates. По умолчанию подобные запросы клиента принимаются для обработки.
Если сервер DHCP сконфигурирован так, что клиентам разрешено обновлять данные сервера DNS, то для создания записи PTR сервер DHCP использует полное доменное имя, переданное клиентом. Если действия клиента по обновлению данных сервера DNS запрещены, сервер DHCP создает полное доменное имя из имени узла, полученного от клиента, и имени домена, заданного в файле dhcpd.conf. Сформированное доменное имя используется для обновления записей А и PTR.
Если клиенту запрещено изменять записи сервера DNS, то метод interim дает те же результаты, что и метод ad-hoc. Если вмешательство клиента в работу сервера DNS разрешено, ситуация несколько изменяется. Клиент может задать имя домена, отличное от того, которое указано при настройке сервера DHCP. Предположим, например, что в конфигурационном файле сервера DHCP указано имя домена threeroomco.com. При использовании метода ad-hoc клиент получает имя, принадлежащее threeroomco.com, даже если в его запросе был указан другой домен. Если же клиент имеет право изменять записи сервера DNS, он может задать любое имя, например dino.pangaea.edu. После обновления записи А по этому имени можно обращаться к клиенту. Если сервер DHCP корректно взаимодействует с сервером DNS, при создании записи PTR также будет использовано имя dino.pangaea.edu. Это имя будет возвращаться при обратном преобразовании. Ответить на вопрос о том, допустима ли такая конфигурация, предстоит вам. Если вашим пользователям необходимы имена, принадлежащие другим доменам, такая конфигурация может быть оправдана. Если же ваша сеть легко доступна извне, от подобных имен следует воздержаться, так как в результате выполнения обратного преобразования возможно некорректное использование имен, кроме того, хакеры получают возможность маскировать свою нелегальную деятельность.
Динамические средства DNS
Многие пользователи получают доступ к Internet через кабельные модемы и DSL-соединения. Для присвоения их компьютерам IP-адресов используются DHCP или другие протоколы. Если в подобной ситуации вам потребуется поставить в соответствие своему компьютеру фиксированное доменное имя, вы не сможете организовать совместную работу DHCP и DNS в системе Linux. В этом случае целесообразно использовать один из бесплатных пакетов динамической поддержки DNS. (Если подобный пакет распространяется на коммерческой основе, цена его обычно небольшая.
Серверы динамической поддержки DNS обеспечивают преобразование имен узлов Internet. На своем компьютере вы можете установить клиентский пакет, который при изменении IP-адреса будет обращаться к серверу DNS провайдера. В результате вы получите возможность использовать фиксированное доменное имя, принадлежащее либо домену, поддерживаемому динамическими средствами DNS провайдера, либо вашему собственному домену. Этому имени будет соответствовать IP-адрес вашего компьютера. Многие провайдеры, предоставляющие услуги динамической DNS, распространяют программы, написанные на Perl или другом языке сценариев, большинство из которых могут выполняться в среде Linux.
Списки провайдеров, предоставляющие услуги динамической DNS, можно найти по адресам http://www.technopagan.org/dynamic/, http://www.geocities.com/kiore_nz/ и http://dns.highsynth.com. Если вы не захотите поддерживать доступный извне сервер DNS, вы наверняка найдете в этих списках информацию о провайдерах, услуги которых соответствуют вашим потребностям.