Dns система доменных имен год создания
Ранее мы начали рассказывать историю системы доменных имен и поговорили о модификациях, сделанных в DNS. На очереди — изменения, которые ИТ-сообщество встретило не лучшим образом.
Фото — Mike Bryant — Unsplash
Появление ARPANET
В 1958 году правительство США основало Агентство передовых исследовательских проектов (ARPA). Усилия организации направили на разработку технологий в сфере хранения и передачи данных. В 60-х годах агентство получило новое аппаратное обеспечение — компьютер Q-32 — одну из крупнейших вычислительных систем на транзисторах весом более 60 тонн. Она имела сразу два запоминающих устройства на магнитных барабанах, каждое из которых считывало и записывало по 50 бит информации. В то время Q-32 использовали для решения задач Министерства обороны США.
Тогда данные между вычислительными системами переносили с помощью перфокарт, что существенно усложняло и замедляло расчёты. Поиск нового решения военные доверили агентству ARPA в 1968 году. Его инженеры объединились с коллегами из MIT и разработали протокол пакетной коммутации. С его помощью они «связали» Q-32 с университетской машиной TX-2 (именно на ней пионер интернета Айвен Сазерленд написал Sketchpad — прародителя современных CAD).
Протокол совершенствовали всю первую половину 1969 года. Специалисты работали над уровнями взаимодействия компьютеров в сети: аппаратным, программным и модемным. Во второй половине года провели первое испытание технологии. Сеть состояла из двух терминалов, установленных на расстоянии 600 км в Калифорнийском и Стэнфордском университетах. В качестве терминалов выступили 16-разрядные мини-компьютеры Honeywell DDP-316 с 12 кибибайтами оперативной памяти. Во время теста первый оператор вводил слово login на одной машине, а второй подтверждал, что видит его на экране другой. Эксперимент прошел удачно, положив начало сети ARPANET.
Рождение DNS
В 1983 году инженеры Пол Мокапетрис (Paul Mockapetris) и Джон Постел (Jon Postel) решили распространить концепцию, описанную в RFC805, на всю сеть ARPANET. Они подготовили два новых RFC, в которых изложили основы DNS. В RFC882 «Domain Names: Concepts and Facilities» были описаны возможности системы доменных имен, а в RFC883 «Domain Names: Implementation and Specification» приведена детализация спецификации и методы внедрения.
Фото — Jordiipa — CC BY-SA / На фото: Пол Мокапетрис
С 1985 года система доменных имен претерпела множество изменений. Например, в неё добавили поддержку механизмов NOTIFY и IXFR, упростивших процессы репликации баз DNS между различными серверами. Подробнее об этих и других модификациях, мы рассказываем в следующей части материала. Также мы говорим о первых DNS-серверах, в частности, о проекте BIND, который до сих пор остается самым популярным решением в этой сфере.
Само имя хоста не даст никакой информации о нахождении конкретной машины, с которой вы собираетесь связаться, поскольку все соединения происходят по IP-адресам.
Сервер доменных имён — это устройство, которое сопоставляет имя хоста с IP-адресом конкретной машины/железа.
В этой статье будет рассказано о деталях различных DNS-запросов, типах DNS-серверов и о разновидностях DNS-записей.
Рождение DNS
В 1983 году инженеры Пол Мокапетрис (Paul Mockapetris) и Джон Постел (Jon Postel) решили распространить концепцию, описанную в RFC805, на всю сеть ARPANET. Они подготовили два новых RFC, в которых изложили основы DNS. В RFC882 «Domain Names: Concepts and Facilities» были описаны возможности системы доменных имен, а в RFC883 «Domain Names: Implementation and Specification» приведена детализация спецификации и методы внедрения.
Фото — Jordiipa — CC BY-SA / На фото: Пол Мокапетрис
С 1985 года система доменных имен претерпела множество изменений. Например, в неё добавили поддержку механизмов NOTIFY и IXFR, упростивших процессы репликации баз DNS между различными серверами. Подробнее об этих и других модификациях, мы расскажем в следующей части материала. Также мы поговорим о первых DNS-серверах, в частности, о проекте BIND, который до сих пор остается самым популярным решением в этой сфере.
Что в итоге?
Даже если вы измените запись у регистраторов, внесение изменений на резолверах всего мира займёт какое-то время. Этот процесс может длиться от 24 до 72 часов, но обычно завершается быстрее, т. к. за это время TTL-записи у провайдеров успевает истечь.
Проблема адресации в сети
Сеть ARPANET стали использовать университеты, телекоммуникационные компании и учёные из разных областей науки. В 80-х к ней были подключены целых 320 компьютеров. Такое количество устройств породило проблему — стало сложно работать с адресами. Для обмена данными каждый из подключенных компьютеров скачивал файл HOSTS.TXT с информацией об остальных хостах. Этот файл существовал в единственном экземпляре на сервере, размещенном в Стэнфордском исследовательском институте. Пользователям становилось все сложнее работать с раздутым списком, учитывая тот факт, что идентификаторы при подключении приходилось прописывать вручную.
Фото — UCLA and BBN — CC BY-SA
Первые 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 и PowerDNS одни из самых распространенных, но не единственные DNS-серверы. Также стоит отметить Unbound, djbdns и Dnsmasq.
Альтернативные корневые серверы
Первым альтернативным сервером стал AlterNIC, его в 1995 году основал инженер Евгений Кашпуреф (Eugene Kashpureff). В рамках AlterNIC были запущены gTLD: .exp, .llc, .lnx, .ltd, .med и др. Но Евгений пошел дальше простого создания нового сервиса. В 1997 году он взломал InterNIC и на три дня перенаправил трафик ресурса на собственный сайт. Такие действия повлекли за собой несколько исков и уголовное преследование. В итоге основателя AlterNIC арестовали, а компанию закрыли.
Фото — Tim Reckmann — CC BY
Рынок альтернативных серверов не погиб, и сегодня такие решения продолжают развиваться. Например, есть dot.love с такими доменами, как .thanks, .joy, .wise и .truth. Также существует dotBERLIN, который управляет единственным доменом .berlin. Свои DNS-серверы настраивают и участники открытого сообщества — GNU Name System работает с доменом .gnu, а децентрализованная система EmerCoin управляет .coin, .lib, .emc и .bazar.
Несмотря на распространение альтернативных корневых серверов, мировые эксперты считают, что их наличие вредит работе интернета. Инженеры из IETF даже описали свои опасения в специальном RFC2826. Они отмечают, что дробление DNS-экосистемы мешает работе резолверов, замедляет поиск необходимых ресурсов для пользователей и затрудняет распространение обновлений безопасности.
Но не все альтернативные сервисы усложняют структуру DNS. Есть решения, подобные Open Root Server Network, которые не ориентированы на получение прибыли и не расширяют корневые зоны дополнительными доменами верхнего уровня. Их задача — снизить зависимость интернет-сообщества от ICANN (которая сегодня отвечает за gTLD).
Ситуация с альтернативными DNS-серверами — это лишь один из примеров «войн» в истории системы доменных имен. В следующий раз мы поговорим о проблемах при внедрении спецификации EDNS для расширения возможностей DNS и дебатах, связанных с переходом на DoH/DoT.
Спасет ли облако ультра-бюджетные смартфоны
«Как мы строим IaaS»: материалы о работе 1cloud
Досмотр электронных устройств на границе — необходимость или нарушение прав человека?
Вот это поворот: почему Apple изменила требования к разработчикам приложений
В прошлый раз мы начали рассказывать историю DNS — вспомнили, с чего стартовал проект, и какие проблемы был призван решить в сети ARPANET. Сегодня поговорим о первом DNS-сервере BIND.
Фото — John Markos O'Neill — CC BY-SA
Проблема адресации в сети
Сеть ARPANET стали использовать университеты, телекоммуникационные компании и учёные из разных областей науки. В 80-х к ней были подключены целых 320 компьютеров. Такое количество устройств породило проблему — стало сложно работать с адресами.
Для обмена данными каждый из подключенных компьютеров скачивал файл HOSTS.TXT с информацией об остальных хостах. Этот файл существовал в единственном экземпляре на сервере, размещенном в Стэнфордском исследовательском институте. Пользователям становилось все сложнее работать с раздутым списком, учитывая тот факт, что идентификаторы при подключении приходилось прописывать вручную.
Фото — UCLA and BBN — CC BY-SA
Развитие системы доменных имен
За всю историю DNS в её спецификацию вносили множество изменений. В качестве одного из первых и крупных обновлений добавили механизмы NOTIFY и IXFR в 1996 году. Они упростили репликацию баз данных системы доменных имен между первичным и вторичным серверами. Новое решение дало возможность настраивать уведомления об изменении DNS-записей. Такой подход гарантировал идентичность вторичной и первичной DNS-зоны плюс экономил трафик — синхронизация происходила только при необходимости, а не через фиксированные интервалы.
Фото — Richard Masoner — CC BY-SA
Изначально DNS-сеть была недоступна для широкой публики и потенциальные проблемы с ИБ не являлись приоритетом при разработке системы, но такой подход дал о себе знать впоследствии. С развитием интернета уязвимости системы начали эксплуатировать — например, появились такие атаки как DNS-спуфинг. В этом случае кэш DNS-серверов наполняют данными, не имеющими авторитетного источника, и перенаправляют запросы на серверы злоумышленников.
Модификации, упрощающие репликацию баз DNS и исправляющие проблемы безопасности, ИТ-комьюнити всячески приветствовало. Но были и изменения, которые сообщество восприняло не лучшим образом. В частности, переход от бесплатных к платным доменным именам. И это пример лишь одной из «войн» в истории DNS. Подробнее об этом мы поговорим в следующем материале.
Мы в 1cloud предлагаем услугу «Виртуальный сервер». С её помощью можно за пару минут арендовать и настроить удаленный VDS/VPS-сервер.
Также есть партнерская программа для всех пользователей. Разместите реферальные ссылки на наш сервис и получайте вознаграждение за приведенных клиентов.
Свое начало система доменных имен берет в 50-х — 60-х годах прошлого века. Тогда она помогла упростить адресацию хостов в сети ARPANET и очень быстро перешла от обслуживания сотен компьютеров к работе с сотнями миллионов, — пишет сайт proglib.io.
Первые 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 и PowerDNS одни из самых распространенных, но не единственные DNS-серверы. Также стоит отметить Unbound, djbdns и Dnsmasq.
Типы DNS-запросов
Существует 3 типа DNS-запросов:
- Рекурсивный: подобные запросы выполняют пользователи к резолверу. Собственно, это первый запрос, который выполняется в процессе DNS-поиска. Резолвером чаще всего выступает ваш интернет провайдер или сетевой администратор.
- Нерекурсивные: в нерекурсивных запросах резолвер сразу возвращает ответ без каких-либо дополнительных запросов на другие сервера имён. Это случается, если в локальном DNS-сервере закэширован необходимый IP-адрес либо если запросы поступают напрямую на авторитативные серверы, что позволяет избежать рекурсивных запросов.
- Итеративный: итеративные запросы выполняются, когда резолвер не может вернуть ответ, потому что он не закэширован. Поэтому он выполняет запрос на корневой DNS-сервер. А тот уже знает, где найти фактический TLD-сервер.
Попробуем рассмотреть этот процесс на рисунке:
Разберём рисунок выше:
DNS-резолвер
Это компьютеры, которые провайдеры используют для поиска в их базе данных конкретного узла, запрашиваемого пользователем. Когда данные получены, пользователь перенаправляется на соответствующий IP-адрес. Резолверы играют крайне важную роль в DNS.
Считается, что в будущем сайт может переместиться на любой другой хост с другим IP, скажем, 35.192.247.235 . Кэши DNS-резолверов по всему миру некоторое время будут хранить прежний IP-адрес. Это может привести к недоступности сайта, пока изменения не дойдут до всех DNS.
Время, в течение которого запись хранится в резолвере, называется TTL (time to live).
Его можно установить в панели управления сервиса, на котором приобретался домен.
Платные домены верхнего уровня
В начале 1990-х вопросами создания и управления доменами верхнего уровня занималась фирма Network Solutions Inc. (NSI), которую наняло американское правительство. Для этих целей в компании открыли дочернее подразделение InterNIC. Позже задачу по управлению DNS возложили на организацию IANA, которая работала по контракту с Министерством обороны США. Руководил ей не кто иной как Джон Постел (Jon Postel) — коллега Мокапетриса и соавтор первой спецификации DNS. После смерти Джона управление gTLD передали другой международной организации — ICANN.
Первые несколько лет работу Network Solutions финансировало Агентство оборонных информационных систем США (DISA). Но в 1995 году другая правительственная структура — Национальный научный фонд Америки (NSF), отвечающий за развитие технологий, — разрешил NSI брать плату за регистрацию доменов. Компания установила цену $100 за каждые два года владения именем.
Решение, принятое NSF и NSI, ИТ-сообщество восприняло не лучшим образом. В первую очередь экспертов беспокоило, что весь доход будет сконцентрирован в руках единственной организации, которая является монополистом на развивающемся рынке. В итоге различные фирмы и энтузиасты в знак протеста стали настраивать альтернативные корневые DNS-серверы и формировать собственные пространства имен с доменами верхнего уровня.
Появление ARPANET
В 1958 году правительство США основало Агентство передовых исследовательских проектов (ARPA). Усилия организации направили на разработку технологий в сфере хранения и передачи данных. В 60-х годах агентство получило новое аппаратное обеспечение — компьютер Q-32 — одну из крупнейших вычислительных систем на транзисторах весом более 60 тонн.
Она имела сразу два запоминающих устройства на магнитных барабанах, каждое из которых считывало и записывало по 50 бит информации. В то время Q-32 использовали для решения задач Министерства обороны США. Тогда данные между вычислительными системами переносили с помощью перфокарт, что существенно усложняло и замедляло расчёты.
Поиск нового решения военные доверили агентству ARPA в 1968 году. Его инженеры объединились с коллегами из MIT и разработали протокол пакетной коммутации. С его помощью они «связали» Q-32 с университетской машиной TX-2 (именно на ней пионер интернета Айвен Сазерленд написал Sketchpad — прародителя современных CAD).
Протокол совершенствовали всю первую половину 1969 года. Специалисты работали над уровнями взаимодействия компьютеров в сети: аппаратным, программным и модемным. Во второй половине года провели первое испытание технологии. Сеть состояла из двух терминалов, установленных на расстоянии 600 км в Калифорнийском и Стэнфордском университетах.
В качестве терминалов выступили 16-разрядные мини-компьютеры Honeywell DDP-316 с 12 кибибайтами оперативной памяти. Во время теста первый оператор вводил слово login на одной машине, а второй подтверждал, что видит его на экране другой.
Эксперимент прошел удачно, положив начало сети ARPANET.
Типы DNS-серверов
Корневой DNS-сервер
Это DNS-сервер, который хранит в себе адреса всех TLD-серверов (TLD — top-level domain, домен верхнего уровня). По пути от имени хоста до IP-адреса запрос сначала попадает на корневой DNS-сервер.
Существует 13 корневых DNS-серверов:
Это не означает, что существует только 13 машин, которые обрабатывают все запросы со всего мира — существуют и второстепенные серверы, по которым распределяется трафик.
TLD-серверы
Эти серверы связаны с доменами верхнего уровня (TLD). Обычно они идут после корневых DNS-серверов. В TLD-серверах содержится информация о домене верхнего уровня конкретного хоста.
Теперь возникает вопрос — откуда TLD-серверы знают адрес авторитативных серверов? Ответ прост — после того, как вы покупаете любой домен у регистраторов вроде Godaddy или Namecheap, регистраторы привязывают авторитативные серверы к TLD-серверу.
Сейчас некоторые провайдеры предоставляют возможность использовать сторонние авторитативные серверы. Вы можете выбрать конкретный авторитативный сервер имён у регистратора.
Авторитативный DNS-сервер
Запрос на эти серверы поступает в самую последнюю очередь. Эти серверы хранят фактические записи типа A, NS, CNAME, TXT, и т. п.
Авторитативные DNS-серверы по возможности возвращают IP-адреса хостов. Если сервер этого сделать не может — он выдаёт ошибку, и на этом поиск IP-адреса по серверам заканчивается.
Развитие системы доменных имен
За всю историю DNS в её спецификацию вносили множество изменений. В качестве одного из первых и крупных обновлений добавили механизмы NOTIFY и IXFR в 1996 году. Они упростили репликацию баз данных системы доменных имен между первичным и вторичным серверами. Новое решение дало возможность настраивать уведомления об изменении DNS-записей. Такой подход гарантировал идентичность вторичной и первичной DNS-зоны плюс экономил трафик — синхронизация происходила только при необходимости, а не через фиксированные интервалы.
Фото — Richard Masoner — CC BY-SA
Изначально DNS-сеть была недоступна для широкой публики и потенциальные проблемы с ИБ не являлись приоритетом при разработке системы, но такой подход дал о себе знать впоследствии. С развитием интернета уязвимости системы начали эксплуатировать — например, появились такие атаки как DNS-спуфинг. В этом случае кэш DNS-серверов наполняют данными, не имеющими авторитетного источника, и перенаправляют запросы на серверы злоумышленников.
Модификации, упрощающие репликацию баз DNS и исправляющие проблемы безопасности, ИТ-комьюнити всячески приветствовало. Но были и изменения, которые сообщество встретило с критикой. В частности, переход от бесплатных к платным доменным именам. И это пример лишь одной из «войн» в истории DNS.
Свое начало система доменных имен берет в 50-х — 60-х годах прошлого века. Тогда она помогла упростить адресацию хостов в сети ARPANET и очень быстро перешла от обслуживания сотен компьютеров к работе с сотнями миллионов. Рассказываем, с чего начиналась DNS.
Фото — Andrew Hart — CC BY-SA
Читайте также: