Как развивалась система доменных имен: часть вторая

В прошлый раз мы начали рассказывать историю DNS — вспомнили, с чего стартовал проект, и какие проблемы был призван решить в сети ARPANET. Сегодня поговорим о первом DNS-сервере BIND и ключевых обновлениях системы — NOTIFY, IXFR и DNSSEC.

Первые DNS-серверы

После того как в 1983 году Пол Мокапетрис (Paul Mockapetris) и Джон Постел (Jon Postel) предложили концепцию доменных имен для сети ARPANET, она достаточно быстро снискала одобрение ИТ-сообщества. Одними из первых реализовать её на практике взялись инженеры из Университета в Беркли. В 1984 году четыре студента представили первый DNS-сервер — Berkeley Internet Name Domain (BIND). Они работали в рамках гранта, выданного Управлением перспективных исследовательских проектов Министерства обороны США (DARPA).

Разработанная учащимися университета система автоматически преобразовывала DNS-имя в IP-адрес и наоборот. Интересно, что когда её код загрузили на BSD (платформу распространения ПО), первые исходники уже имели номер версии 4.3.

Первое время DNS-сервером пользовались сотрудники лабораторий университета. Вплоть до версии 4.8.3 за разработку BIND отвечали члены исследовательской группы Университета в Беркли — Computer Systems Research Group (CSRG), но во второй половине 1980-х DNS-сервер вырвался за пределы вуза — его передали в руки Пола Викси (Paul Vixie) из корпорации DEC. Пол выпустил обновления 4.9 и 4.9.1, а потом основал Internet Software Consortium (ISC), который с тех пор и отвечает за поддержку BIND. По словам Пола, все предыдущие версии опирались на код студентов из Беркли, и за прошедшие пятнадцать лет он полностью исчерпал свои возможности для модернизации. Поэтому в 2000 году BIND переписали с нуля.

Сервер BIND включает в себя сразу несколько библиотек и компонентов, реализующих «клиент-серверную» архитектуру DNS и отвечающих за настройку функций DNS-сервера. BIND широко распространен, особенно на Linux, и остается популярной реализацией DNS-сервера. Это решение установлено на серверах, обеспечивающих поддержку корневой зоны.

Помимо BIND существуют и другие реализации DNS-серверов. Например, PowerDNS, идущий в комплекте с Linux-дистрибутивами. Он написан Бертом Хубертом (Bert Hubert) из голландской компании PowerDNS.COM и поддерживается open source сообществом. В 2005 году PowerDNS внедрили на серверах фонда «Викимедиа». Решением также пользуются IaaS-провайдеры, европейские телекоммуникационные компании и организации из списка Fortune 500.

Отметим, что BIND и PowerDNS одни из самых распространенных, но не единственные DNS-серверы. Также стоит отметить Unbound, djbdns и Dnsmasq.

Развитие системы доменных имен

За всю историю DNS в её спецификацию вносили множество изменений. В качестве одного из первых и крупных обновлений добавили механизмы NOTIFY и IXFR в 1996 году. Они упростили репликацию баз данных системы доменных имен между первичным и вторичным серверами. Новое решение дало возможность настраивать уведомления об изменении DNS-записей. Такой подход гарантировал идентичность вторичной и первичной DNS-зоны плюс экономил трафик — синхронизация происходила только при необходимости, а не через фиксированные интервалы.

Фото — Richard Masoner — CC BY-SA


Изначально DNS-сеть была недоступна для широкой публики и потенциальные проблемы с ИБ не являлись приоритетом при разработке системы, но такой подход дал о себе знать впоследствии. С развитием интернета уязвимости системы начали эксплуатировать — например, появились такие атаки как DNS-спуфинг. В этом случае кэш DNS-серверов наполняют данными, не имеющими авторитетного источника, и перенаправляют запросы на серверы злоумышленников.

Чтобы решить проблему, в DNS внедрили криптоподписи для DNS-ответов (DNSSEC) — механизм, позволяющий построить цепочку доверия для домена от корневой зоны. Аналогичный механизм добавили для аутентификации хостов при передаче DNS-зоны — он получил название TSIG.

Модификации, упрощающие репликацию баз DNS и исправляющие проблемы безопасности, ИТ-комьюнити всячески приветствовало. Но были и изменения, которые сообщество встретило с критикой. В частности, переход от бесплатных к платным доменным именам. И это пример лишь одной из «войн» в истории DNS. Подробнее об этом мы поговорим в следующем материале.

Что еще почитать в блоге 1cloud

  1. «Как мы строим IaaS»: материалы о работе 1cloud
  2. Как сэкономить с помощью прикладного программного интерфейса (API)
  3. Резервное копирование файлов: как подстраховаться от потери данных

P.S. Мы предлагаем услугу «Виртуальный сервер». С её помощью можно за пару минут арендовать и настроить удаленный VDS/VPS-сервер. Также у нас есть открытая партнерская программа.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

suvorovsda
13 февраля 2022

🌐 Почему данные в интернете не идут по самому короткому пути или как на самом деле работает CDN?

Из этой статьи узнаете, как выглядит интернет изнутри, какие существуют топ...
Библиотека программиста
21 января 2018

Компьютерные сети от А до Я: классификация, стандарты и уровни

Компьютерные сети непросты в изучении, ведь технологий и протоколов много, ...