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

В прошлый раз мы начали рассказывать историю 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-зоны плюс экономил трафик — синхронизация происходила только при необходимости, а не через фиксированные интервалы.

<i>Фото — </i><a href="https://www.flickr.com/photos/bike/266453254" target="_blank" rel="noopener noreferrer nofollow"><i>Richard Masoner</i></a><i> — CC BY-SA</i>
Фото — 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-сервер. Также у нас есть открытая партнерская программа.

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Java Team Lead
Москва, по итогам собеседования
Senior Java Developer
Москва, по итогам собеседования
Go-разработчик
по итогам собеседования

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