Введение
Метод обновления для DNS-именных серверов
Динамический DNS (DDNS) – это метод автоматического обновления сервера имен в системе доменных имен (DNS), часто в реальном времени, с текущей конфигурацией DDNS его настроенных имен хостов, адресов или другой информации. Этот термин используется для описания двух различных концепций. Первая – «динамическое обновление DNS», которое относится к системам, используемым для обновления традиционных DNS-записей без ручного редактирования. Эти механизмы используют TSIG для обеспечения безопасности. Второй вид динамического DNS позволяет осуществлять быстрые и немедленные обновления, часто с использованием клиентского приложения для обновления, которое не использует стандартный протокол для обновления DNS-записей. Эти клиенты обеспечивают постоянный способ адресации для устройств, которые часто меняют свое местоположение, конфигурацию или IP-адрес.
Предыстория
На начальных этапах развития Интернета (ARPANET) адресация хостов в сети осуществлялась с помощью статических таблиц трансляции, сопоставлявших имена хостов с IP-адресами. Эти таблицы поддерживались вручную в виде хост-файла. Система доменных имен (DNS) предложила способ автоматического распространения той же информации об адресах в сети посредством рекурсивных запросов к удаленным базам данных, настроенным для каждой сети или домена. Даже в этой системе DNS все еще использовались статические таблицы поиска на каждом участвующем узле. IP-адреса, однажды присвоенные определенному хосту, редко менялись, и этого механизма изначально было достаточно. Однако быстрый рост Интернета и распространение персональных компьютеров на рабочих местах и домах создали значительную нагрузку на администраторов по отслеживанию назначенных IP-адресов и управлению адресным пространством. Протокол динамической конфигурации хоста (DHCP) позволил предприятиям и интернет-провайдерам (ISP) автоматически назначать адреса компьютерам при их включении. Кроме того, это помогло сохранить доступное адресное пространство, поскольку не все устройства могли быть активно использованы постоянно, и адреса могли назначаться по мере необходимости. Это требовало автоматического обновления DNS-серверов. Первые реализации динамического DNS решили эту задачу: хост-компьютеры получили возможность уведомлять свой DNS-сервер об адресе, полученном от DHCP-сервера или посредством самоконфигурации. Этот метод обновления DNS на основе протокола был задокументирован и стандартизирован в публикации IETF в 1997 году и стал стандартной частью протокола DNS (см. также программу nsupdate). Взрывной рост и распространение Интернета в домах привели к растущему дефициту доступных IP-адресов. DHCP стал важным инструментом для ISP для управления своими адресными пространствами, позволяя подключать домашних и малых бизнес-пользователей с одним IP-адресом каждый, реализуя сетевой адресной трансляции (NAT) на маршрутизаторе у клиента. Частная сеть за этими маршрутизаторами использует адресное пространство, выделенное для этих целей, маскируемое устройством NAT. Однако это нарушило принцип сквозной связи в архитектуре Интернета, и потребовались методы, позволяющие частным сетям с часто меняющимися внешними IP-адресами определять свой публичный адрес и добавлять его в систему доменных имен для правильного участия в интернет-коммуникациях. Сегодня существует множество провайдеров, называемых провайдерами динамического DNS, которые предлагают такие технологии и услуги в Интернете.
Система доменных имен
DNS основан на распределенной базе данных, для глобального обновления которой требуется определенное время. Когда DNS был впервые внедрен, база данных была небольшой, и ее можно было легко поддерживать вручную. С ростом системы эта задача стала непосильной для одного сайта, и была внедрена новая структура управления, чтобы распределить обновления между множеством регистраторов доменных имен. Сегодня регистраторы предоставляют конечным пользователям возможность обновлять информацию об их аккаунтах, обычно через веб-форму, а затем регистратор распространяет информацию об обновлениях на другие DNS-серверы. Из-за распределенной природы системы доменных имен и ее регистраторов, распространение обновлений в глобальном DNS может занимать несколько часов. Таким образом, DNS подходит только для сервисов, которые нечасто меняют свой IP-адрес, как это обычно происходит с крупными сервисами, такими как Википедия. Однако небольшие сервисы, как правило, гораздо чаще переезжают с одного хоста на другой за короткие промежутки времени. Серверы, работающие на определенных типах интернет-провайдеров, особенно кабельные модемы, могут менять свой IP-адрес за очень короткие периоды времени – в течение нескольких дней или часов. Динамический DNS – это система, предназначенная для решения проблемы оперативных обновлений.
Типы
Термин DDNS используется двумя способами, которые, хотя и технически схожи, имеют совершенно разные цели и пользовательские аудитории. Первый – это DDNS, основанный на стандартах, использующий расширение протокола DNS для запроса обновления; он часто применяется для регистрации адресов корпоративных ноутбуков. Второй – это проприетарный DDNS, как правило, веб-протокол, обычно заключающийся в одном HTTP-запросе с именем пользователя и паролем, который затем обновляет некоторые DNS-записи (каким-либо неопределенным способом); он обычно используется для домашнего компьютера, чтобы зарегистрировать его под общеизвестным именем, чтобы его могли найти другие пользователи, например, в качестве игрового сервера или веб-камеры. Конечные пользователи интернет-доступа получают от своего интернет-провайдера выделение IP-адресов, часто всего один адрес. Выделенные адреса могут быть либо фиксированными (то есть статическими), либо могут периодически меняться, что называется динамическим назначением. Динамические адреса обычно предоставляются только домашним пользователям и малым предприятиям, поскольку большинство организаций конкретно требуют статические адреса. Динамические IP-адреса создают проблему, если пользователь хочет предоставить услуги другим пользователям в интернете, например, веб-сервис. Поскольку IP-адрес может часто меняться, соответствующие доменные имена должны быть оперативно переназначены в DNS, чтобы обеспечить доступность по известному URL-адресу. Многие провайдеры предлагают коммерческие или бесплатные сервисы Dynamic DNS для решения этой задачи. Автоматическая переконфигурация обычно реализована в маршрутизаторе или компьютере пользователя, который запускает программное обеспечение для обновления сервиса DDNS. Коммуникация между оборудованием пользователя и провайдером не стандартизована, хотя со временем появилось несколько общепринятых веб-методов обновления.
DDNS на основе стандартов
Стандартизированный метод динамического обновления записей сервера доменных имен регламентируется, обычно известный как динамическое обновление DNS. Метод, описанный в RFC 2136, является сетевым протоколом для использования с управляемыми DNS-серверами и включает в себя механизм безопасности. RFC 2136 поддерживает все типы DNS-записей, но часто используется лишь как расширение системы DHCP, в рамках которой авторизованные DHCP-серверы регистрируют клиентские записи в DNS. Эта форма поддержки RFC 2136 предоставляется множеством клиентского и серверного программного обеспечения, включая компоненты большинства современных операционных систем. Поддержка RFC 2136 также является неотъемлемой частью многих служб каталогов, таких как LDAP и домены Active Directory Windows.
Приложения
В сетях Microsoft Windows динамическая DNS является неотъемлемой частью Active Directory, поскольку контроллеры доменов регистрируют типы своих сетевых служб в DNS, чтобы другие компьютеры в домене (или лесу) могли к ним обращаться. Растущие усилия по обеспечению безопасности интернет-коммуникаций сегодня включают шифрование всех динамических обновлений через публичный Интернет, так как эти публичные службы динамического DNS все чаще используются злоумышленниками для организации взломов. Методы, основанные на стандартах в рамках протокола DNSSEC, такие как TSIG, были разработаны для защиты обновлений DNS, но не получили широкого распространения. Microsoft разработала альтернативную технологию (GSS TSIG) на основе аутентификации Kerberos. Некоторые бесплатные системы DNS-серверов, такие как dnsmasq, поддерживают процедуру динамического обновления, которая напрямую взаимодействует со встроенным DHCP-сервером. Этот сервер автоматически обновляет или добавляет DNS-записи при назначении адресов, избавляя администратора от необходимости специальной настройки динамических обновлений.
DDNS для устройств доступа к Интернету
Провайдеры динамического DNS предлагают программный клиент, который автоматизирует обнаружение и регистрацию публичных IP-адресов клиентской системы. Клиентская программа выполняется на компьютере или устройстве в частной сети. Она подключается к системам провайдера DDNS с уникальным именем пользователя; провайдер использует это имя для связывания обнаруженного публичного IP-адреса домашней сети с именем хоста в системе доменных имен. В зависимости от провайдера, имя хоста регистрируется в домене, принадлежащем провайдеру, или в собственном доменном имени клиента. Эти сервисы могут работать различными способами. Часто они используют HTTP-запрос, поскольку даже в строгих сетевых средах обычно разрешен доступ к HTTP. Большинство провайдеров имеют API, аналогичный API первого провайдера DynDNS (Dyn.com), поэтому его часто называют DynDNS2. Многие домашние сетевые модемы/маршрутизаторы включают клиентские приложения в свою прошивку, совместимые с различными провайдерами DDNS.
DDNS для производителей устройств безопасности
Динамический DNS является ожидаемой функцией или даже требованием для устройств безопасности на основе IP, таких как видеорегистраторы (DVR) и IP-камеры. Сегодня производители имеют множество вариантов, включая использование существующих DDNS-сервисов или собственных сервисов, размещенных самими производителями. В подавляющем большинстве случаев используется простой API обновления на основе HTTP, поскольку он обеспечивает легкую интеграцию DDNS-клиента в прошивку устройства. Существует несколько готовых инструментов, облегчающих разработку сервера и клиента, например, MintDNS, cURL и Inadyn. Большинство веб-сервисов DDNS используют стандартную схему безопасности, основанную на имени пользователя и пароле. Это требует от пользователя сначала создать учетную запись на веб-сайте DDNS-сервера, а затем настроить устройство для отправки обновлений на сервер DDNS при обнаружении изменения IP-адреса. Некоторые производители устройств идут дальше, разрешая использовать их DDNS-сервис только для устройств собственного производства и полностью отказываясь от необходимости использования имени пользователя и пароля. Обычно это достигается путем шифрования MAC-адреса устройства с помощью криптографического алгоритма, который хранится в секрете как на DDNS-сервере, так и в прошивке устройства. Результат дешифрования или неудачная дешифровка используется для авторизации или отклонения обновлений. Ресурсы для разработки пользовательских DDNS-сервисов обычно ограничены и включают в себя полный цикл разработки программного обеспечения для проектирования и внедрения безопасного и надежного DDNS-сервера.