DNS — это служба имен Internet. DNS преобразует имена хостов в IP-адреса, позволяя пользователям находить Web-сайты и почтовые серверы. Традиционно администраторы сетей вручную обновляли базы данных DNS
Протокол DHCP автоматизирует присвоение IP-адресов в сети. Он может дать хосту только временный адрес и используется, когда требуется присваивать много разных адресов, один за другим. Сотни или тысячи компьютеров в каком-то месте Глобальной сети могут получать IP-адреса именно таким путем. В результате число и частота изменений IP-адресов делают ручное администрирование базы DNS делом совершенно непрактичным.
Для решения этой проблемы IETF адаптировала DNS к условиям динамично изменяющейся сетевой среды, разработав технологию, которую теперь называют «динамической DNS» (или DDNS). Она представляет собой стандартный механизм, который предназначен для управления идентичностью динамических IP-сетей, формируемых протоколом DHCP. Кроме того, DDNS — общий термин для трех тесно взаимосвязанных расширений протокола DNS: это Dynamic Update, Notify и Incremental Zone Transfer (IXFR).
Программно реализуемые серверы доменных имен предоставляют информацию DNS всем компьютерам в сети. Информация делится на административные блоки, называемые зонами. До создания DDNS сетевые администраторы обычно управляли зональными данными, выпуская текстовые файлы зональных данных. Чтобы добавить информацию о новом узле, администратор добавлял запись А к имени хоста, обозначая IP-адрес, и указатель PTR к IP-адресу хоста, определяя имя хоста по этому адресу.
Dynamic Update — это основная операция DDNS, позволяющая программному обеспечению (такому, как клиенты или серверы DHCP) посылать специальные сообщения на серверы доменных имен для обновления зональных данных. Сервер DHCP, например, может послать уведомляющее сообщение на первичный сервер имен для конкретной зоны с просьбой добавить запись, чтобы преобразовать имя клиента DHCP в новый, выделенный сервером IP-адрес. Сервер DHCP может послать следующее обновляющее сообщение на первичный сервер имен для обратного преобразования зоны и добавления записи PTR для клиента DHCP.
Динамично обновляемая зона может меняться намного быстрее, чем зона, управляемая с помощью ручного редактирования файлов зональных данных. К сожалению, DNS традиционно использует механизм, дающий отчет об изменениях в сети с интервалом около 15 мин. Этот интервал очень велик по меркам динамического обновления.
Функция Notufy позволяет первичному серверу доменных имен сообщать вторичным серверам имен, что содержание конкретной зоны изменилось. Сервер имен посылает сообщение на вторичные серверы имен данной зоны, чтобы уведомить, например: «Новым серийным номером домена foo.com является число 10». Вторичные серверы имен, получающие эти сообщения, проверяют изменение конфигурации зоны и запрашивают пересылку сообщения. Это позволяет быстро достигать соответствия всех уполномоченных серверов имен внутри данной зоны.
Сервер имен определяет, какие еще серверы имен нужно уведомить, просматривая записи сервера имен для зоны, претерпевшей конфигурационные изменения. Это создает новую проблему — намного более частые пересылки сообщений вторичными серверами. А поскольку каждая пересылка подразумевает передачу полного набора зональных данных, это приводит к необоснованной загрузке полосы пропускания IP-каналов.
Чтобы сделать пересылки уведомлений более эффективными, IETF разработала механизм IXFR, позволяющий вторичному серверу имен запрашивать только изменения между имеющейся у него версией зональных данных и текущей версией. Иными словами, вторичный сервер может сообщить: «У меня серийный номер 10 для зоны foo.com. Пожалуйста, пришлите мне изменения, необходимые для установки соответствия на текущий момент». Первичный сервер имен изучает журнал, чтобы определить, какие изменения каким версиям зоны соответствуют, а затем отсылает запись только этих изменений вторичному серверу.
Крикет Лю (cricket@infoblox.com) — вице-президент по сетевой архитектуре компании Infoblox