Разное

Dns как работает – Пара слов о DNS / 1cloud.ru corporate blog / Habr

16.01.2018

Содержание

Пара слов о DNS / 1cloud.ru corporate blog / Habr

Являясь провайдером виртуальной инфраструктуры, компания 1cloud интересуется сетевыми технологиями, о которых мы регулярно рассказываем в своем блоге. Сегодня мы подготовили материал, затрагивающий тему доменных имен. В нем мы рассмотрим базовые аспекты функционирования DNS и вопросы безопасности DNS-серверов.

/ фото James Cridland CC

Изначально, до распространения интернета, адреса преобразовывались согласно содержимому файла hosts, рассылаемого на каждую из машин в сети. Однако по мере её роста такой метод перестал оправдывать себя – появилась потребность в новом механизме, которым и стала DNS, разработанная в 1983 году Полом Мокапетрисом (Paul Mockapetris).

Что такое DNS?


Система доменных имен (DNS) является одной из фундаментальных технологий современной интернет-среды и представляет собой распределенную систему хранения и обработки информации о доменных зонах. Она необходима, в первую очередь, для соотнесения IP-адресов устройств в сети и более удобных для человеческого восприятия символьных имен.

DNS состоит из распределенной базы имен, чья структура напоминает логическое дерево, называемое пространством имен домена. Каждый узел в этом пространстве имеет свое уникальное имя. Это логическое дерево «растет» из корневого домена, который является самым верхним уровнем иерархии DNS и обозначается символом – точкой. А уже от корневого элемента ответвляются поддоменые зоны или узлы (компьютеры).


Пространство имен, которое сопоставляет адреса и уникальные имена, может быть организовано двумя путями: плоско и иерархически. В первом случае имя назначается каждому адресу и является последовательностью символов без структуры, закрепленной какими-либо правилами. Главный недостаток плоского пространства имен – оно не может быть использовано в больших системах, таких как интернет, из-за своей хаотичности, поскольку в этом случае достаточно сложно провести проверку неоднозначности и дублирования.

В иерархическом же пространстве имен каждое имя составлено из нескольких частей: например, домена первого уровня .ru, домена второго уровня 1cloud.ru, домена третьего уровня panel.1cloud.ru и т. д. Этот тип пространства имен позволяет легко проводить проверки на дубликаты, и при этом организациям не нужно беспокоиться, что префикс, выбранный для хоста, занят кем-то другим – полный адрес будет отличаться.

Сопоставление имен


Давайте взглянем, как происходит сопоставление имен и IP-адресов. Предположим, пользователь набирает в строке браузера www.1cloud.ru и нажимает Enter. Браузер посылает запрос DNS-серверу сети, а сервер, в свою очередь, либо отвечает сам (если ответ ему известен), либо пересылает запрос одному из высокоуровневых доменных серверов (или корневому).

Затем запрос начинает свое путешествие – корневой сервер пересылает его серверу первого уровня (поддерживающего зону .ru). Тот – серверу второго уровня (1cloud) и так далее, пока не найдется сервер, который точно знает запрошенное имя и адрес, либо знает, что такого имени не существует. После этого запрос начинает движение обратно. Чтобы наглядно объяснить, как это работает, ребята из dnssimple подготовили красочный комикс, который вы можете найти по ссылке.

Также стоит пару слов сказать про процедуру обратного сопоставления – получение имени по предоставленному IP-адресу. Это происходит, например, при проверках сервера электронной почты. Существует специальный домен in-addr.arpa, записи в котором используются для преобразования IP-адресов в символьные имена. Например, для получения DNS-имени для адреса 11.22.33.44 можно запросить у DNS-сервера запись 44.33.22.11.in-addr.arpa, и тот вернёт соответствующее символьное имя.

Кто управляет и поддерживает DNS-сервера?


Когда вы вводите адрес интернет-ресурса в строку браузера, он отправляет запрос на DNS-сервер отвечающий за корневую зону. Таких серверов 13 и они управляются различными операторами и организациями. Например, сервер a.root-servers.net имеет IP-адрес 198.41.0.4 и находится в ведении компании Verisign, а e.root-servers.net (192.203.230.10) обслуживает НАСА.

Каждый из этих операторов предоставляет данную услугу бесплатно, а также обеспечивает бесперебойную работу, поскольку при отказе любого из этих серверов станут недоступны целые зоны интернета. Ранее корневые DNS-серверы, являющиеся основой для обработки всех запросов о доменных именах в интернете, располагались в Северной Америке. Однако с внедрением технологии альтернативной адресации они «распространились» по всему миру, и фактически их число увеличилось с 13 до 123, что позволило повысить надёжность фундамента DNS.

Например, в Северной Америке находятся 40 серверов (32,5%), в Европе – 35 (28,5%), еще 6 серверов располагаются в Южной Америке (4,9%) и 3 – в Африке (2,4%). Если взглянуть на карту, то DNS-серверы расположены согласно интенсивности использования интернет-инфраструктуры.

Защита от атак


Атаки на DNS – далеко не новая стратегия хакеров, однако только недавно борьба с этим видом угроз стала принимать глобальный характер.

«В прошлом уже происходили атаки на DNS-сервера, приводящие к массовым сбоям. Как-то из-за подмены DNS-записи в течение часа для пользователей был недоступен известный всем сервис Twitter, – рассказывает Алексей Шевченко, руководитель направления инфраструктурных решений российского представительства ESET. – Но куда опаснее атаки на корневые DNS-сервера. В частности, широкую огласку получили атаки в октябре 2002 года, когда неизвестные пытались провести DDoS-атаку на 10 из 13 DNS-серверов верхнего уровня».

Протокол DNS использует для работы TCP- или UDP-порт для ответов на запросы. Традиционно они отправляются в виде одной UDP-датаграммы. Однако UDP является протоколом без установления соединения и поэтому обладает уязвимостями, связанными с подделкой адресов – многие из атак, проводимых на DNS-сервера, полагаются на подмену. Чтобы этому препятствовать, используют ряд методик, направленных на повышение безопасности.

Одним из вариантов может служить технология uRPF (Unicast Reverse Path Forwarding), идея которой заключается в определении того, может ли пакет с определенным адресом отправителя быть принят на конкретном сетевом интерфейсе. Если пакет получен с сетевого интерфейса, который используется для передачи данных, адресованных отправителю этого пакета, то пакет считается прошедшим проверку. В противном случае он отбрасывается.

Несмотря на то что, данная функция может помочь обнаружить и отфильтровать некоторую часть поддельного трафика, uRPF не обеспечивает полную защиту от подмены. uRPF предполагает, что прием и передача данных для конкретного адреса производится через один и тот же интерфейс, а это усложняет положение вещей в случае нескольких провайдеров. Более подробную информацию о uRPF можно найти здесь.

Еще один вариант – использование функции IP Source Guard. Она основывается на технологии uRPF и отслеживании DHCP-пакетов для фильтрации поддельного трафика на отдельных портах коммутатора. IP Source Guard проверяет DHCP-трафик в сети и определяет, какие IP-адреса были назначены сетевым устройствам.

После того как эта информация была собрана и сохранена в таблице объединения отслеживания DHCP-пакетов, IP Source Guard может использовать ее для фильтрации IP-пакетов, полученных сетевым устройством. Если пакет получен с IP-адресом источника, который не соответствует таблице объединения отслеживания DHCP-пакетов, то пакет отбрасывается.

Также стоит отметить утилиту dns-validator, которая наблюдает за передачей всех пакетов DNS, сопоставляет каждый запрос с ответом и в случае несовпадения заголовков уведомляет об этом пользователя. Подробная информация доступна в репозитории на GitHub.

Заключение


Система доменных имён разработана в еще 80-х годах прошлого века и продолжает обеспечивать удобство работы с адресным пространством интернета до сих пор. Более того, технологии DNS постоянно развиваются, например, одним из значимых нововведений недавнего времени стало внедрение доменных имен на национальных алфавитах (в том числе кириллический домен первого уровня.рф).

Постоянно ведутся работы по повышению надежности, чтобы сделать систему менее чувствительной к сбоям (стихийные бедствия, отключения электросети и т. д.), и это очень важно, поскольку интернет стал неотъемлемой частью нашей жизни, и «терять» его, даже на пару минут, совершенно не хочется.

Кстати, компания 1cloud предлагает своим пользователям VPS бесплатную услугу «DNS-хостинг» – инструмент, упрощающий администрирование ваших проектов за счет работы с общим интерфейсом для управления хостами и ссылающимися на них доменами.

О чем еще мы пишем:

habr.com

Как работает DNS (domain name system)?

Что такое DNS

DNS (domain name system) — это система, обеспечивающая работу привычных нам доменных имен сайтов. Связь между устройствами в сети Интернет осуществляется по IP адресам, например: «192.64.147.209». Однако, запомнить IP адреса сложно, поэтому были придуманы удобные для человека доменные имена, например: «google.com».

Компьютер / сервер не хранит таблицу соответствия доменов и их IP адресов. Точнее, не хранит всю таблицу, а временно запоминает данные для часто используемых доменов. Когда в браузере вводится домен сайта, компьютер автоматически узнает его IP адрес, и отправляет по нему запрос. Этот процесс называется «разрешение адреса домена» (domain resolving).

Разберемся, из чего состоит система DNS, и как она работает.

Как работает DNS

Система доменных имен состоит из следующих компонентов:

Иерархическая структура доменных имен:

  • Доменные зоны верхнего уровня (первого уровня) – например: «ru», «com», или «org». Они включают в себя все доменные имена, входящие в эту зону. В любую доменную зону может входить неограниченное количество доменов.
  • Доменные имена (доменные зоны второго уровня) – например: «google.com» или «yandex.ru». Т.к. система доменных имен является иерархичной, то «yandex.ru» можно также назвать поддоменом вышестоящей зоны «ru». Поэтому, правильнее указывать именно уровень домена. Однако, на практике, доменную зону любого уровня называют просто «доменом».
  • Поддомены (доменные зоны третьего уровня) – например: «api.google.com» или «mail.yandex.ru». Могут быть доменные зоны 4, 5 уровней и так далее.

Обратите внимание, что «www.gооgle.com» и «google.com» — это, фактически, разные домены. Надо не забывать указывать А-записи для каждого из них.

DNS сервер или NS (name server) сервер – поддерживает (обслуживает) доменные зоны, которые ему делегированы. Он непосредственно хранит данные о ресурсных записях для зоны. Например, что сервер, на котором находится сайт «example.ru», имеет IP адрес «1.1.1.1». DNS сервер отвечает на все запросы, касательной этих доменных зон. Если ему приходит запрос о домене, который ему не делегирован, то он спрашивает ответ у других DNS серверов.

DNS записи (ресурсные записи) – это набор записей о доменной зоне на NS сервере, которые хранят данные необходимые для работы DNS. На основании данных в этих записях, DNS сервер отвечает на запросы по домену. Список записей, и их значение, вы можете найти ниже. 

Корневые DNS сервера (на данный момент их 13 во всем мире) хранят данные о том, какие DNS сервера обслуживают зоны верхнего уровня.

DNS сервера доменных зон верхнего уровня — хранят информацию, какие NS сервера обслуживают тот или иной домен.

Для того, чтобы узнать IP адрес, домена компьютер / сервер обращается к DNS-серверу, который указан у него в сетевых настройках. Обычно, это DNS сервер Интернет провайдера. DNS сервер проверяет делегирован домен ему или нет. Если да, то сразу отвечает на запрос. Если нет, то запрашивает информацию о DNS сервере, обслуживающем этот домен, у корневого сервера, и затем у сервера доменных зон верхнего уровня. После этого, непосредственно делает запрос на NS сервер, обслуживающий этот домен, и транслирует ответ вашему компьютеру / серверу.

Кэширование данных используется на всех устройствах (компьютерах, северах, DNS серверах). То есть, они запоминают ответы на последние пришедшие к ним запросы. И когда приходит аналогичный запрос, они просто отвечают то же самое, что и в предыдущий раз. Например, если вы в браузере открыли сайт google.com  первый раз после включения, то компьютер сделает DNS запрос, а при последующих запросах будет брать данные, которые ему были присланы DNS сервером в первый раз. Таким образом, для популярных запросов не надо каждый раз проходить всю цепочку и генерировать запросы к NS серверам. Это значительно снижает нагрузку на них, и увеличивает скорость работы. Однако, как результат, обновление данных в системе DNS происходит не сразу. При изменении IP адреса домена, информацию об этом будет расходиться по сети Интернет от 1 до 24 часов.

Регистрация/выделение доменов

У каждой доменной зоны первого уровня есть своя организация, которая устанавливает правила выделения доменов и обеспечивает работу этой зоны. Например, для доменных зон RU, SU и РФ – это Координационный центр национального домена сети Интернет https://cctld.ru. Эти организации устанавливают правила работы и технические требования к регистраторам доменов.

Регистраторы доменов – это компании, которые непосредственно регистрируют новые домены в рамках доменной зоны первого уровня для конечных клиентов. Организуют техническое взаимодействие с реестром доменных имен. В их личном кабинете владелец домена настраивает, какой DNS сервер будет поддерживать домен.

Администратор домена (владелец) – лицо, которому непосредственно принадлежат права на доменное имя. Он может управлять доменом, от него регистратор принимает заявки на внесение изменений.

Делегирование домена – указание для него DNS серверов, которые будут его обслуживать.

Основные DNS записи

Существуют следующие основные DNS (ресурсные) записи:

А – содержит информацию об IPv4 адресе хоста (сервера) для домена. Например, 1.1.1.1.

ААА – содержит информацию об IPv6 адресе хоста (сервера) для домена. Например, 2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d.

MX – содержит данные о почтовом сервере домена. При этом указывается именно имя почтового сервера, например mail.example.com. Т.к. у домена может быть несколько почтовых серверов, то для каждого из них указывает приоритет. Приоритет задается числом от 0 до 65535. При этом «0» — это самый высокий приоритет. Принято по умолчанию для первого почтового сервера указывать приоритет «10».

TXT – дополнительная информация о домене в виде произвольного текста. Максимальная длина 255 символов. 

SRV – содержит информацию об имени хоста и номере порта, для определенных служб / протоколов в соответствии с  RFC 2782 http://www.rfc-editor.org/rfc/rfc2782.txt. Содержит следующие поля:

  • _Service._Proto.Name ( Пример: _jabber._tcp.jabber ), где:
    • Service: название службы (пример: ldap, kerberos, gc и другие).
    • Proto: протокол, при помощи которого клиенты могут подключиться к данной службе (пример: tcp, udp).
    • Name: имя домена, в котором размещена данная служба.
  • Приоритет – также как для MX записи указывает приоритет для данного сервера. Задается числом от 0 до 65535. При этом «0» — это самый высокий приоритет.
  • Вес – Относительный вес для распределения нагрузки между серверами с одинаковым приоритетом. Задается целым числом.
  • Порт – номер порта, на котором располагается служба на данном сервере.
  • Назначение — доменное имя сервера, предоставляющего данную службу.

NS – имя DNS сервера, поддерживающего данный домен.

CNAME (каноническое имя хоста / canonical name) – используется для перенаправления на другое доменное имя. Например, имя сервера изменилось с example.com на new.com. В таком случае в поле «Alies» для записи cname надо указать — example.com, а в поле «Canonical name» — new.com. Таким образом, все запросы на example.com автоматически будут перенаправлены на new.com.

SOA – базовая запись о домене. В ней хранится само имя домена и время жизни данных о домене  — TTL. TTL (time-to-live) определяет какой период времени DNS сервер получив информацию о зоне будет хранить ее у себя в памяти (кэшировать). Рекомендуемое значение 86400 – 1 день. Значение указывается в секундах.

neoserver.ru

DNS — Википедия

У этого термина существуют и другие значения, см. DNS (значения).
DNS
Название Domain Name System
Уровень (по модели OSI) Прикладной
Семейство TCP/IP
Порт/ID 53/TCP, 53/UDP
Назначение протокола Разрешение доменных имён
Спецификация RFC 1034, RFC 1035 / STD 13
Основные реализации (клиенты) Встроен во все сетевые ОС
Основные реализации (серверы) BIND, NSD, PowerDNS или Microsoft DNS Server
Пример структуры доменного имени

DNS (англ. Domain Name System «система доменных имён») — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).

Распределённая база данных DNS поддерживается с помощью иерархии DNS-серверов, взаимодействующих по определённому протоколу.

Основой DNS является представление об иерархической структуре доменного имени и зонах. Каждый сервер, отвечающий за имя, может делегировать ответственность за дальнейшую часть домена другому серверу (с административной точки зрения — другой организации или человеку), что позволяет возложить ответственность за актуальность информации на серверы различных организаций (людей), отвечающих только за «свою» часть доменного имени.

Начиная с 2010 года в систему DNS внедряются средства проверки целостности передаваемых данных, называемые DNS Security Extensions (DNSSEC). Передаваемые данные не шифруются, но их достоверность проверяется криптографическими способами. Внедряемый стандарт DANE обеспечивает передачу средствами DNS достоверной криптографической информации (сертификатов), используемых для установления безопасных и защищённых соединений транспортного и прикладного уровней.

DNS обладает следующими характеристиками:

  • Распределённость администрирования. Ответственность за разные части иерархической структуры несут разные люди или организации.
  • Распределённость хранения информации. Каждый узел сети в обязательном порядке должен хранить только те данные, которые входят в его зону ответственности, и (возможно) адреса корневых DNS-серверов.
  • Кэширование информации. Узел может хранить некоторое количество данных не из своей зоны ответственности для уменьшения нагрузки на сеть.
  • Иерархическая структура, в которой все узлы объединены в дерево, и каждый узел может или самостоятельно определять работу нижестоящих узлов, или делегировать (передавать) их другим узлам.
  • Резервирование. За хранение и обслуживание своих узлов (зон) отвечают (обычно) несколько серверов, разделённые как физически, так и логически, что обеспечивает сохранность данных и продолжение работы даже в случае сбоя одного из узлов.

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

DNS была разработана Полом Мокапетрисом в 1983 году; оригинальное описание механизмов работы содержится в RFC 882 и RFC 883. В 1987 публикация RFC 1034 и RFC 1035 изменила спецификацию DNS и отменила RFC 882, RFC 883 и RFC 973 как устаревшие.

  • поддержка динамических обновлений
  • защита данных (DNSSEC) и транзакций (TSIG)
  • поддержка различных типов информации

Использование более простого и запоминающегося имени вместо числового адреса хоста относится к эпохе ARPANET. Стэнфордский исследовательский институт (теперь SRI International) поддерживал текстовый файл HOSTS.TXT, который сопоставлял имена узлов с числовыми адресами компьютеров в ARPANET. Поддержание числовых адресов, называемых списком присвоенных номеров, было обработано Джоном Постелем в Институте информационных наук Университета Южной Калифорнии (ISI), команда которого тесно сотрудничала с НИИ.[1]

Адреса назначались вручную. Чтобы запросить имя хоста и адрес и добавить компьютер в главный файл, пользователи связывались с сетевым информационным центром (NIC) SRI, руководимым Элизабет Фейнлер, по телефону в рабочее время.

К началу 1980-х годов поддержание единой централизованной таблицы хостов стало медленным и громоздким, а развивающейся сети требовалась автоматическая система именования для решения технических и кадровых вопросов. Постел поставил перед собой задачу выработать компромисс между пятью конкурирующими предложениями для решения задачи, сформулированной Полом Мокапетрисом. Мокапетрис вместо этого создал концепцию иерархической системы доменных имен.

Рабочая группа IETF опубликовала оригинальные спецификации в RFC 882 и RFC 883 в ноябре 1983 года.

В 1984 году четыре студента UC Berkeley, Дуглас Терри, Марк Пейнтер, Дэвид Риггл и Сонгниан Чжоу, написали первую версию сервера имен BIND (Berkeley Internet Name Daemon). В 1985 году Кевин Данлэп из DEC существенно пересмотрел реализацию DNS. Майк Карел, Фил Альмквист и Пол Викси поддерживали BIND с тех пор. В начале 1990-х годов BIND был перенесен на платформу Windows NT. Он широко распространен, особенно в Unix-системах, и по-прежнему является наиболее широко используемым программным обеспечением DNS в Интернете.

В ноябре 1987 года были приняты спецификации DNS — RFC 1034 и RFC 1035. После этого были приняты сотни RFC, изменяющих и дополняющих DNS.

Первоначально проблемы безопасности не были основными соображениями при разработке программного обеспечения DNS или любого программного обеспечения для развёртывания в раннем Интернете, поскольку сеть не была открыта для широкой общественности. Однако рост Интернета в коммерческом секторе в 1990-х годах изменил требования к мерам безопасности для защиты целостности данных и аутентификации пользователей.

Несколько уязвимостей были обнаружены и использованы злоумышленниками. Одной из таких проблем является отравление кэша DNS, в котором данные распространяются на кэширующие преобразователи под предлогом того, что они являются авторитетным сервером происхождения, тем самым загрязняя хранилище данных потенциально ложной информацией и длительными сроками действия (время жизни). Впоследствии, запросы легитимных приложений могут быть перенаправлены на сетевые хосты, контролируемые злоумышленником.

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

Некоторые доменные имена могут использоваться для достижения эффектов спуфинга. Например, paypal.com и paypa1.com — это разные имена, но пользователи могут не различать их в графическом пользовательском интерфейсе в зависимости от выбранного шрифта пользователя. Во многих шрифтах буква l и цифра 1 выглядят очень похожими или даже идентичными. Эта проблема остро стоит в системах, которые поддерживают интернационализированные доменные имена, поскольку многие коды символов в ISO 10646 могут отображаться на типичных экранах компьютеров. Эта уязвимость иногда используется в фишинге.

Для подтверждения результатов DNS также могут использоваться такие методы, как обратный DNS с подтверждением прямых записей, но криптографически достоверными они не являются; при этом не учитывается вариант подмены маршрутной информации (англ. BGP hijacking).

Ключевыми понятиями DNS являются:

  • Доме́н (англ. domain «область») — узел в дереве имён, вместе со всеми подчинёнными ему узлами (если таковые имеются), то есть именованная ветвь или поддерево в дереве имён. Структура доменного имени отражает порядок следования узлов в иерархии; доменное имя читается слева направо от младших доменов к доменам высшего уровня (в порядке повышения значимости): вверху находится корневой домен (имеющий идентификатор «.»(точка)), ниже идут домены первого уровня (доменные зоны), затем — домены второго уровня, третьего и т. д. (например, для адреса ru.wikipedia.org. домен первого уровня — org, второго — wikipedia, третьего — ru). DNS позволяет не указывать точку корневого домена.
  • Поддомен (англ. subdomain) — подчинённый домен (например, wikipedia.org — поддомен домена org, а ru.wikipedia.org — домена wikipedia.org). Теоретически такое деление может достигать глубины 127 уровней, а каждая метка может содержать до 63 символов, пока общая длина вместе с точками не достигнет 254 символов. Но на практике регистраторы доменных имён используют более строгие ограничения. Например, если у вас есть домен вида mydomain.ru, вы можете создать для него различные поддомены вида mysite1.mydomain.ru, mysite2.mydomain.ru и т. д.
  • Ресурсная запись — единица хранения и передачи информации в DNS. Каждая ресурсная запись имеет имя (то есть привязана к определённому доменному имени, узлу в дереве имён), тип и поле данных, формат и содержание которого зависит от типа.
  • Зона — часть дерева доменных имён (включая ресурсные записи), размещаемая как единое целое на некотором сервере доменных имён (DNS-сервере, см. ниже), а чаще — одновременно на нескольких серверах (см. ниже). Целью выделения части дерева в отдельную зону является передача ответственности (см. ниже) за соответствующий домен другому лицу или организации. Это называется делегированием (см. ниже). Как связная часть дерева, зона внутри тоже представляет собой дерево. Если рассматривать пространство имён DNS как структуру из зон, а не отдельных узлов/имён, тоже получается дерево; оправданно говорить о родительских и дочерних зонах, о старших и подчинённых. На практике большинство зон 0-го и 1-го уровня (‘.’, ru, com, …) состоят из единственного узла, которому непосредственно подчиняются дочерние зоны. В больших корпоративных доменах (2-го и более уровней) иногда встречается образование дополнительных подчинённых уровней без выделения их в дочерние зоны.
  • Делегирование — операция передачи ответственности за часть дерева доменных имён другому лицу или организации. За счёт делегирования в DNS обеспечивается распределённость администрирования и хранения. Технически делегирование выражается в выделении этой части дерева в отдельную зону, и размещении этой зоны на DNS-сервере (см. ниже), управляемом этим лицом или организацией. При этом в родительскую зону включаются «склеивающие» ресурсные записи (NS и А), содержащие указатели на DNS-сервера дочерней зоны, а вся остальная информация, относящаяся к дочерней зоне, хранится уже на DNS-серверах дочерней зоны.
  • DNS-сервер — специализированное ПО для обслуживания DNS, а также компьютер, на котором это ПО выполняется. DNS-сервер может быть ответственным за некоторые зоны и/или может перенаправлять запросы вышестоящим серверам.
  • DNS-клиент — специализированная библиотека (или программа) для работы с DNS. В ряде случаев DNS-сервер выступает в роли DNS-клиента.
  • Авторитетность (англ. authoritative) — признак размещения зоны на DNS-сервере. Ответы DNS-сервера могут быть двух типов: авторитетные (когда сервер заявляет, что сам отвечает за зону) и неавторитетные (англ. Non-authoritative), когда сервер обрабатывает запрос, и возвращает ответ других серверов. В некоторых случаях вместо передачи запроса дальше DNS-сервер может вернуть уже известное ему (по запросам ранее) значение (режим кеширования).
  • DNS-запрос (англ. DNS query) — запрос от клиента (или сервера) серверу. Запрос может быть рекурсивным или нерекурсивным (см. Рекурсия).

Система DNS содержит иерархию DNS-серверов, соответствующую иерархии зон. Каждая зона поддерживается как минимум одним авторитетным сервером DNS (от англ. authoritative — авторитетный), на котором расположена информация о домене.

Имя и IP-адрес не тождественны — один IP-адрес может иметь множество имён, что позволяет поддерживать на одном компьютере множество веб-сайтов (это называется виртуальный хостинг). Обратное тоже справедливо — одному имени может быть сопоставлено множество IP-адресов: это позволяет создавать балансировку нагрузки.

Для повышения устойчивости системы используется множество серверов, содержащих идентичную информацию, а в протоколе есть средства, позволяющие поддерживать синхронность информации, расположенной на разных серверах. Существует 13 корневых серверов, их адреса практически не изменяются.[2]

Протокол DNS использует для работы TCP- или UDP-порт 53 для ответов на запросы. Традиционно запросы и ответы отправляются в виде одной UDP-датаграммы. TCP используется, когда размер данных ответа превышает 512 байт, и для AXFR-запросов.

Рекурсия[править | править код]

Термином рекурсия в DNS обозначают алгоритм поведения DNS-сервера: выполнение от имени клиента полный поиск нужной информации во всей системе DNS, при необходимости обращаясь к другим DNS-серверам.

DNS-запрос может быть рекурсивным — требующим полного поиска, — и нерекурсивным (или итеративным) — не требующим полного поиска.

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

При ответе на нерекурсивный запрос, а также при неумении или запрете выполнять рекурсивные запросы, DNS-сервер либо возвращает данные о зоне, за которую он ответственен, либо возвращает ошибку. Настройки нерекурсивного сервера, когда при ответе выдаются адреса серверов, которые обладают большим объёмом информации о запрошенной зоне, чем отвечающий сервер (чаще всего — адреса корневых серверов), являются некорректными, и такой сервер может быть использован для организации DoS-атак.

В случае рекурсивного запроса DNS-сервер опрашивает серверы (в порядке убывания уровня зон в имени), пока не найдёт ответ или не обнаружит, что домен не существует (на практике поиск начинается с наиболее близких к искомому DNS-серверов, если информация о них есть в кэше и не устарела, сервер может не запрашивать другие DNS-серверы).

Рассмотрим на примере работу всей системы.

Предположим, мы набрали в браузере адрес ru.wikipedia.org. Браузер ищет соответствие этого адреса IP-адресу в файле hosts. Если файл не содержит соответствия, то далее браузер спрашивает у сервера DNS: «какой IP-адрес у ru.wikipedia.org»? Однако сервер DNS может ничего не знать не только о запрошенном имени, но и даже обо всём домене wikipedia.org. В этом случае сервер обращается к корневому серверу — например, 198.41.0.4. Этот сервер сообщает — «У меня нет информации о данном адресе, но я знаю, что 204.74.112.1 является ответственным за зону org.» Тогда сервер DNS направляет свой запрос к 204.74.112.1, но тот отвечает «У меня нет информации о данном сервере, но я знаю, что 207.142.131.234 является ответственным за зону wikipedia.org.» Наконец, тот же запрос отправляется к третьему DNS-серверу и получает ответ — IP-адрес, который и передаётся клиенту — браузеру.

В данном случае при разрешении имени, то есть в процессе поиска IP по имени:

  • браузер отправил известному ему DNS-серверу рекурсивный запрос — в ответ на такой тип запроса сервер обязан вернуть «готовый результат», то есть IP-адрес, либо пустой ответ и код ошибки NXDOMAIN;
  • DNS-сервер, получивший запрос от браузера, последовательно отправлял нерекурсивные запросы, на которые получал от других DNS-серверов ответы, пока не получил ответ от сервера, ответственного за запрошенную зону;
  • остальные упоминавшиеся DNS-серверы обрабатывали запросы нерекурсивно (и, скорее всего, не стали бы обрабатывать запросы рекурсивно, даже если бы такое требование стояло в запросе).

Иногда допускается, чтобы запрошенный сервер передавал рекурсивный запрос «вышестоящему» DNS-серверу и дожидался готового ответа.

При рекурсивной обработке запросов все ответы проходят через DNS-сервер, и он получает возможность кэшировать их. Повторный запрос на те же имена обычно не идёт дальше кэша сервера, обращения к другим серверам не происходит вообще. Допустимое время хранения ответов в кэше приходит вместе с ответами (поле TTL ресурсной записи).

Рекурсивные запросы требуют больше ресурсов от сервера (и создают больше трафика), так что обычно принимаются от «известных» владельцу сервера узлов (например, провайдер предоставляет возможность делать рекурсивные запросы только своим клиентам, в корпоративной сети рекурсивные запросы принимаются только из локального сегмента). Нерекурсивные запросы обычно принимаются ото всех узлов сети (и содержательный ответ даётся только на запросы о зоне, которая размещена на узле, на DNS-запрос о других зонах обычно возвращаются адреса других серверов).

Обратный DNS-запрос[править | править код]

DNS используется в первую очередь для преобразования символьных имён в IP-адреса, но он также может выполнять обратный процесс. Для этого используются уже имеющиеся средства DNS. Дело в том, что с записью DNS могут быть сопоставлены различные данные, в том числе и какое-либо символьное имя. Существует специальный домен in-addr.arpa, записи в котором используются для преобразования IP-адресов в символьные имена. Например, для получения DNS-имени для адреса 11.22.33.44 можно запросить у DNS-сервера запись 44.33.22.11.in-addr.arpa, и тот вернёт соответствующее символьное имя. Обратный порядок записи частей IP-адреса объясняется тем, что в IP-адресах старшие биты расположены в начале, а в символьных DNS-именах старшие (находящиеся ближе к корню) части расположены в конце.

Записи DNS, или ресурсные записи (англ. resource records, RR), — единицы хранения и передачи информации в DNS. Каждая ресурсная запись состоит из следующих полей[3]:

  • имя (NAME) — доменное имя, к которому привязана или которому «принадлежит» данная ресурсная запись,
  • тип (TYPE) ресурсной записи — определяет формат и назначение данной ресурсной записи,
  • класс (CLASS) ресурсной записи; теоретически считается, что DNS может использоваться не только с TCP/IP, но и с другими типами сетей, код в поле класс определяет тип сети[4],
  • TTL (Time To Live) — допустимое время хранения данной ресурсной записи в кэше неответственного DNS-сервера,
  • длина поля данных (RDLEN),
  • поле данных (RDATA), формат и содержание которого зависит от типа записи.

Наиболее важные типы DNS-записей:

  • Запись A (address record) или запись адреса связывает имя хоста с адресом протокола IPv4. Например, запрос A-записи на имя referrals.icann.org вернёт его IPv4-адрес — 192.0.34.164.
  • Запись AAAA (IPv6 address record) связывает имя хоста с адресом протокола IPv6. Например, запрос AAAA-записи на имя K.ROOT-SERVERS.NET вернёт его IPv6-адрес — 2001:7fd::1.
  • Запись CNAME (canonical name record) или каноническая запись имени (псевдоним) используется для перенаправления на другое имя.
  • Запись MX (mail exchange) или почтовый обменник указывает сервер(ы) обмена почтой для данного домена.
  • Запись NS (name server) указывает на DNS-сервер для данного домена.
  • Запись PTR (pointer[5][6]) обратная DNS-запись или запись указателя связывает IP-адрес хоста с его каноническим именем. Запрос в домене in-addr.arpa на IP-адрес хоста в reverse-форме вернёт имя (FQDN) данного хоста (см. Обратный DNS-запрос). Например (на момент написания), для IP-адреса 192.0.34.164 запрос записи PTR 164.34.0.192.in-addr.arpa вернёт его каноническое имя referrals.icann.org. В целях уменьшения объёма нежелательной корреспонденции (спама) многие серверы-получатели электронной почты могут проверять наличие PTR-записи для хоста, с которого происходит отправка. В этом случае PTR-запись для IP-адреса должна соответствовать имени отправляющего почтового сервера, которым он представляется в процессе SMTP-сессии.
  • Запись SOA (Start of Authority) или начальная запись зоны указывает, на каком сервере хранится эталонная информация о данном домене, содержит контактную информацию лица, ответственного за данную зону, тайминги (параметры времени) кеширования зонной информации и взаимодействия DNS-серверов.
  • SRV-запись (server selection) указывает на серверы для сервисов, используется, в частности, для Jabber и Active Directory.

Документ RFC 2606 (Reserved Top Level DNS Names — Зарезервированные имена доменов верхнего уровня) определяет названия доменов, которые следует использовать в качестве примеров (например, в документации), а также для тестирования. Кроме example.com, example.org и example.net, в эту группу также входят test, invalid и др.

Доменное имя может состоять только из ограниченного набора ASCII-символов, позволяя набрать адрес домена независимо от языка пользователя. ICANN утвердил основанную на Punycode систему IDNA, преобразующую любую строку в кодировке Unicode в допустимый DNS набор символов.

Серверы имен:

Статьи[править | править код]

Документы RFC[править | править код]

  • RFC 1034 — Domain Names — Concepts and Facilities
  • RFC 1035 — Domain Names — Implementation and Specification
  • RFC 1912 — Common DNS Operational and Configuration Errors
  • RFC 1591 — Domain Name System Structure and Delegation
  • RFC 1713 — Tools for DNS Debugging
  • RFC 2606 — Reserved Top Level DNS Names

ru.wikipedia.org

принцип работы, и как работает ДНС в интернете

Привет уважаемые читатели seoslim.ru! Задумывались ли вы когда-нибудь, каким образом браузер находит сайты в интернете?

Что же тут сложного, скажете вы, пользователь вводит в адресную строку доменное имя нужного сайта и браузер загружает контент с указанного адреса.

На самом деле домен это вовсе не адрес сайта в и интернете, а что-то вроде никнейма абонента, которым вы обозначили своего знакомого в телефонной книге смартфона.

Это интересно: Что такое SSL сертификат и зачем он нужен

Например, чтобы мгновенно узнавать, кто звонит, вы привязываете к телефонному номеру прозвище вашего знакомого. Во время вызова на дисплее смартфона отображаются не цифры сотового номера, а имя, под которым вы занесли собеседника в телефонную книгу.

Аналогично происходит и с доменными именами сайтов. Однако, давайте разбираться с самого начала и подробно.

Зачем в интернете нужны DNS-серверы

На заре существования всемирной сети подключенных компьютеров было немного, а пользователями были опытные специалисты.

Каждую точку подключения (клиентский компьютер) идентифицировали в сети при помощи IP-адреса. Что расшифровывается как Internet Protocol Address – адрес интернет-протокола.

IP-адрес выглядит примерно, как номер сотового телефона:

  • 59.109.189
  • 59.110.48
  • 59.109.207

Со временем количество пользователей интернета значительно увеличилось и тогда, для облегчения задачи серфинга в сети, было предложено ассоциировать цифровые IP-адреса сайтов с вербальными (словесными) доменными именами.

Чтобы обеспечивать назначение каждому цифровому IP-адресу веб-сайта удобного для восприятия имени была создана глобальная система доменных имен.

По-английски Domain Name System или сокращенно DNS.

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

  • Сервера доменных имен верхнего уровня – COM, RU и так далее.
  • Сервера со списками доменных имен второго уровня – google.com.
  • Сервера доменов третьего уровня – api.google.com.

Самую верхнюю позицию в иерархии занимают корневые DNS-сервера, на которых хранятся списки серверов доменных имен верхнего уровня. Корневых ДНС-серверов во всем мире чуть более 10 штук.

Говоря простыми словами, система доменных имен функционирует, как глобальный адресный стол для всемирной сети.

В локальных отделениях DNS хранятся ассоциированные с доменными именами IP адреса сайтов, относящиеся к данному региону. Если на местном сервере DNS оказывается невозможно найти адрес сайта по запрашиваемому доменному имени, запрос делегируется к следующему уровню системы.

Статья по теме: Как сделать выделенный IP адрес сайту

И вот таким образом поиск IP-адреса по заданному браузером доменному имени происходит до тех пор, пока нужный сайт не будет обнаружен на одном из ответственных за его хранение серверов DNS.

Пример работы, как браузер находит сайт

Чтобы понять, как все это работает, давайте рассмотрим на конкретном примере поиска какого-либо сайта.

  • Пользователь набирает в адресной строке доменное имя либо кликает по ссылке на определенную веб-страницу.
  • Первым делом браузер обращается к собственному кэшу и проверяет – не посещался ли данный ресурс ранее.
  • Если искомый веб-сайт ранее уже посещался, тогда его IP-адрес уже сохранен в кэше браузера и необходимости тратить время на обращение к DNS-серверам нет. В данном случае кэширование используется как метод ускорения поиска в интернете.
  • Если в кэш браузера искомый домен не обнаружен, тогда поиск продолжается в записях операционной системы. Если и там сайт не записан, после этого уже происходит обращение к серверу провайдера интернета.
  • Интернет-провайдер, в свою очередь, собирает сведения о посещенных каждым пользователем веб-ресурсах в собственный кэш. Это тоже делается для ускорения поиска и повышения комфортности сервиса.
  • И только после того, как указанный в поисковой строке браузера домен не обнаружен в кэш браузера, операционной системы или у интернет-провайдера, происходит обращение к общей системе серверов DNS.
  • Далее происходит поиск доменного имени по иерархии ДНС-системы сверху вниз.
  • В этом случае поиск по системе DNS-серверов нацелен на выявление делегированного NS-сервера регистратора доменных имен, у которого владелец искомого сайта арендовал домен.

Такой достаточно сложный алгоритм поиска IP адреса сайта по доменному имени получается потому, что сегодня интернет-ресурсов во всемирной сети уже более миллиарда.

Hosts-файл

Чуть выше было упомянуто, что записи об адресах сайтов могут находиться в операционной системе компьютера. Действительно, среди системных файлов имеется документ по имени Hosts.

Это обычный текстовый файл, но не имеющий расширения txt. Дело в том, что Hosts-файлы могут присутствовать на компьютерах и других операционных систем, а не только Windows.

На альтернативных OS расширения файлов могут не совпадать, поэтому договорились использовать текстовый документ Hosts вообще без указания типа файла.

Hosts-файл содержит список сопоставления доменных имен известных пользователю интернет-ресурсов и их IP-адресов.

Сначала прописывается IP-адрес, а затем название интернет-ресурса.

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

Указанная выше запись из Hosts-файла означает, что по такому IP адресу находится сам пользовательский компьютер. В большинстве случаев на современных персональных компьютерах эта запись является единственной.

Иногда продвинутые пользователи, для того, чтобы заблокировать посещение какого-либо сайта, добавляют в Hosts-файл запись, в которой сопоставляют доменное имя нежелательного ресурса с IP-адресом компьютера.

В случае запроса браузера по данному доменному имени происходит обращение к локальной системе и перейти на сайт оказывается невозможно.

Например, пользователь не хочет, чтобы его дети посещали какие-либо сайты. Тогда можно отредактировать Hosts-файл и указать в качестве IP-адреса нежелательного сайта локальный хост.

Hosts-файл иногда используется хакерами для того чтобы перенаправить пользователя на фишинговые страницы. Если пользователь посетит зараженный сайт и загрузит оттуда вирус, то этот вирус может произвести изменения в записях Hosts-файла.

Например, доменному имени надежного онлайн-банка будет ассоциирован IP-адрес мошеннического ресурса. Набрав в браузере адрес банка, пользователь попадет на сайт мошенников и потеряет свои деньги.

Сегодня Host-файл потерял свою значимость и может вообще не содержать никаких записей. Это никак не отразится на функциональности компьютера и возможностях работы в интернете.

Что такое NS серверы

В распределенной системе иерархической доменных имен выделяются NS-сервера, на которых хранится наиболее полная информация о конкретном интернет-ресурсе. Эти NS-сервера являются конечными (делегированными) во всей адресной цепочке по отношению к конкретному сайту.

Для обеспечения надежности и бесперебойности функционирования сайта информация о нем записывается обязательно не менее чем на двух DNS-серверах.

На этом скриншоте мы видим, что мой домен seoslim.ru, который я был получен у партнера-регистратора Link-Host записан сразу на четырех NS-серверах. Один из этих NS-серверов назначается основным (Master), остальные подчиненные (Slave).

В качестве хостинг-провайдера, который и осуществляет бесперебойную работу сайта и который предоставляет бесплатные SSL сертификаты я выбрал McHost, чего и всем советую.

Как задать (сменить) DNS для домена

Чтобы вновь созданный и опубликованный веб-сайт стал доступен пользователям глобальной сети, необходимо сообщить системе DNS о появлении нового ресурса.

Как это сделать практически?

  • Зайти в панель управления сайтом на хостинге.
  • Перейти в раздел управления доменами.
  • Открыть интерфейс «DNS-серверы и зона».
  • Если доменное имя было зарегистрировано на том же хостинге, где и опубликован веб-сайт, NS-сервера прописываются автоматически.
  • Чтобы указать произвольные NS-сервера, нужно снять галочку в чекбоксе «Автоматически использовать NS-сервера регистратора» и вписать желаемые сервисы.

Алгоритм назначения NS-серверов может изменяться в зависимости от конкретного хостинга, доменного регистратора и панели управления сайтом.

Читайте статью: Как получить качественных хостинг бесплатно

Обновление данных о домене на серверах DNS происходит не мгновенно, а через сутки, в некоторых случаях в течение 72-х часов.

Так что придется подождать, пока сайт станет доступен пользователям после делегирования домена определенным NS-серверам.

Что значит DNS сервер не отвечает и что надо делать

Жизнь современного человека без интернета немыслима. И вот в один не самый прекрасный день браузер перестает находить сайты в интернете. Ни одна веб-страница по запросу не отображается.

Вы пытаетесь запустить другие интернет-обозреватели, но и они не работают.

Первая мысль – срочно звонить оператору связи и выяснять, почему интернет не работает и когда авария на линии будет исправлено.

Реальная практика показала, что большая часть проблем с интернетом обусловлена не техническими нарушениями у интернет провайдера, а сбоями в настройках компьютера и проблемами локального программного обеспечения.

Чтобы разобраться, почему отсутствует подключение к интернету, проведите диагностику сети средствами Windows.

  • Наведите стрелку мыши на иконку сетевых подключений в Панели задач и кликните правой кнопкой.
  • Откроется контекстное Меню.

  • Нажмите на пункт «Диагностика неполадок».

Если по результатам диагностики появится уведомление «DNS сервер не отвечает» – это значит, что можно предположить следующие проблемы:

  • Технические неисправности на стороне провайдера.
  • Неисправности или сбой настроек сетевого оборудования: модема, роутера, маршрутизатора.
  • Неисправность или неправильные настройки компьютера.

Для начала попробуйте перезагрузить роутер и компьютер. Если проблема не устранена, следует провести диагностику устройств путем исключения промежуточных элементов.

  1. Если есть возможность, попробуйте подключить компьютер к интернету через альтернативное сетевое устройство. Например, вместо роутера используйте модем. Если после подключения другого сетевого устройства интернет появится, то вы будете знать, что проблема в роутере.
  2. Подключите роутер к другому компьютеру. Если интернет доступен, значит неисправность в первом компьютере.

Если роутер в порядке, вспомните, что вы делали с компьютером перед возникновением неисправности.

  • Причиной нарушения работы интернета может быть установка какого-либо нового программного обеспечения.
  • Некоторые компьютерные приложения глубоко внедряются в реестр и самостоятельно производят изменения в настройках системы.
  • Сделайте откат операционной системы к состоянию до установки подозрительных приложений.
  • Если после окончания процесса восстановления и перезагрузки компьютера интернет будет работать нормально – проблема была в приложении.

Если недоступны только отдельные веб-сайты, проблема может быть в том, что в кэш операционной системы записаны некорректные соответствия IP-адресов и доменных имен.

В этом случае следует очистить кэш. Для того чтобы очистить кэш, требуется использование Командной строки Windows. Если вы не являетесь продвинутым пользователем и не знаете, как это сделать, обратитесь к специалистам во избежание причинение вреда компьютеру.

Можно удалить и заново, «вчистую» переустановить программное обеспечение и драйвера сетевых устройств – модема или роутера. После новой установки переподключение к интернету, поиск DNS-сервера и настройки сети будут произведены автоматически.

Вручную настраивать сеть следует только в том случае, если вы точно знаете, как это делается. Экспериментировать методом тыка не рекомендуется, можно испортить и компьютер, и сетевое оборудование.

Позвоните по горячей линии провайдера интернета и уточните, есть ли текущие нарушение на линии и когда проблема будет исправлена.

Если ничего из перечисленного не помогает, следует обратиться за помощью к специалисту сервисного центра.

seoslim.ru

DNS-сервер домена, что это значит простыми словами

DNS — что такое и для чего используется?

Интернет — это бесчисленное количество физических устройств (серверов, компьютеров, планшетов и т.д.), связанных между собой в сеть. Любой сайт в Интернете по факту находится на физическом устройстве. Каждое устройство имеет свой уникальный номер — IP-адрес вида 123.123.123.123.

Чтобы попасть на сайт, нужно знать IP-адрес устройства, на котором расположен этот сайт. А теперь представьте, сколько сайтов в день вы посещаете и сколько цифр вам пришлось бы запомнить. Конечно, это нереально. Поэтому для удобства работы в Интернете в 80-х годах была создана система доменных имен — DNS (Domain Name System). Смысл её в том, что каждому цифровому IP-адресу присваивается понятное буквенное имя (домен). Когда вы вводите в браузере доменное имя, сервера DNS преобразуют его в IP-адрес. Например, домен reg.ru соответствует IP-адресу сервера 194.58.116.30.

Для чего нужны DNS-серверы?

Служба доменных имён работает благодаря DNS-cерверам. Именно эти жизненно важные «программы» хранят таблицы соответствий вида «имя домена» — «IP-адрес». Кроме того, DNS-серверы служат для хранения ресурсных записей доменов: Что такое ресурсные записи? В Интернете огромное количество DNS-серверов, каждый выполняет свою функцию в общей системе. Служба Domain Name System необходима для того, чтобы мы могли без проблем находить свои любимые сайты, не запоминая вереницы цифр.

Итак, вы вводите название сайта в адресную строку и нажимаете Enter. В те самые секунды, перед тем как сайт отобразится на вашем экране, DNS-серверы работают не щадя себя. Посмотрим, что делают DNS-серверы. Следите за стрелочками.

  1. 1.

    Получив от вас доменное имя, компьютер связывается с DNS-серверами вашего интернет-провайдера (стрелка 1). DNS-серверы провайдера ищут IP-адрес в кеше. Если находят, выдают вам IP-адрес (стрелка 6) и по этому IP-адресу ваш компьютер обращается к серверу, на котором размещён сайт (стрелка 7).Сайт отображается на экране компьютера. И всё 🙂

  2. 2.

    Если же пара «домен — IP-адрес» отсутствует в кеше DNS-серверов интернет-провайдера, DNS-сервер провайдера отправляет запрос корневым DNS-серверам (стрелка 2). Таких серверов всего несколько штук по всему миру, а информация на них обновляется несколько раз сутки. Корневые серверы сообщают адреса DNS-серверов домена (стрелка 3). Тех самых, которые нужно прописать для домена после регистрации и которые хранят всю актуальную информацию о домене (IP-адрес, ресурсные записи и т.д.).

  3. 3.

    Получив адреса DNS-серверов домена, провайдер делает запрос к одному из них (стрелка 4), получает в ответ долгожданный IP-адрес (стрелка 5), запоминает его в кеше (чтобы потом не обращаться каждый раз к корневому DNS-серверу) и наконец сообщает этот IP-адрес вашему браузеру (стрелка 6).

  4. 4.

    И только теперь довольный браузер обращается по IP-адресу к серверу, на котором расположен сайт (стрелка 7), и отображает вам сайт на экране компьютера (стрелка 8).

Зачем прописывать DNS-серверы для домена?

Допустим, вы зарегистрировали домен. Пока никто, кроме вас, об этом не знает. Чтобы о существовании вашего домена узнал Интернет, нужно выбрать и прописать для домена DNS-серверы. Они-то и расскажут другим DNS-серверам Интернета о вашем домене. Так что запоминаем: зарегистрировал домен — пропиши DNS-серверы!

Прописывают DNS-серверы чаще всего парами. Один из DNS является первичным, а остальные серверы, которых может быть от 1 до 12 для каждого домена, называются вторичными. Это делается для лучшей отказоустойчивости: если выйдет из строя один DNS-сервер, домен и сайт продолжат свою работу.

Почему домены начинают работать не сразу?

DNS-серверы интернет-провайдера обновляются раз в сутки (принцип работы DNS-серверов). Если вы только что прописали или сменили DNS-серверы, придётся подождать 24 часа. Смена DNS-сервера чревата временным отсутствием работающего сайта. После обновления DNS сайт станет доступен. Если сайт не работает — в помощь вам инструкция: Прописал DNS-серверы, но сайт недоступен.

Если вы зарегистрировали домен, но ещё не создали на нём сайт, после обновления DNS-серверов на вашем домене будет открываться парковочная страница с надписью «Домен надёжно припаркован». Если вы хотите создать на домене сайт, вам поможет статья: Я зарегистрировал домен, что дальше?

Помогла ли вам статья?

855 раз уже
помогла

www.reg.ru

Основы работы со службой DNS (domain name system)

Общая информация

В этой статье рассмотрены необходимые для практического применения базовые аспекты функционирования DNS.

DNS (Domain Name System — система доменных имен) представляет собой распределенную систему хранения и обработки информации о доменных зонах. Она необходима, в первую очередь, для соотнесения IP-адресов устройств в сети и более адаптированных для человеческого восприятия символьных имен. Предоставление информации об IP-адресах хостов по символьному адресу — не единственная задача DNS. Система работает с разными типами ресурсных записей, позволяющими реализовывать весьма широкий круг задач: переадресация между доменными именами, балансировка нагрузки между хостами, привязка специфических сервисов (напр., эл. почты) к домену.

 

 

Система доменных имен является одной из фундаментальных технологий современной интернет-среды, так как информация об IP-адресе запрашиваемого узла — обязательное условие получения ответа на любой интернет-запрос. Но IP-адрес представляет собой числовое значение вида «1.23.45.67», неподходящее для комфортного восприятия человеком. К тому же основной принцип распределения IP-адресов в сети — уникальность. Важно и то, что сетевой адрес — не самый устойчивый параметр. Он может изменяться (напр., при смене хоста, обслуживающего запрашиваемый узел, смене хостинг-провайдера, и т.п.). Все перечисленные особенности делают систему навигации по сетевым адресам сложной для человека.

DNS обеспечивает преобразование запрашиваемого клиентом символьного имени домена в IP-адрес (адреса) обслуживающего эту доменную зону сервера (серверов). Изначально, до разрастания сети интернет, адреса преобразовывались согласно содержимому файла «hosts», составлявшегося централизованно и автоматически рассылавшегося на каждую из машин в сети. По мере роста глобальной сети такой метод перестал оправдывать себя — появилась потребность в новом механизме, которым и стала DNS, разработанная в 1983 году Полом Мокапетрисом.

Ключевыми характеристиками DNS являются:

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

Иерархия и делегирование доменных имен

Домен представляет собой именованную ветвь в дереве имен, включающую в себя сам узел (напр., домен первого уровня «.com»), а также подчиненные ему узлы (напр., домен второго уровня «example.com», домен третьего уровня «mail.example.com» и т.д.). Для обозначения иерархической принадлежности доменных имен принято использовать понятие «уровень» — показатель положения узла в дереве доменов. Чем ниже значение уровня, тем выше иерархическое положение домена

  • «.» — домен нулевого уровня
  • «.ru» — домен первого (верхнего) уровня
  • «example.com» — домен второго уровня
  • «mail.example.com» — домен третьего уровня
  • Этот список можно продолжать
 

 

Обратите внимание на домен нулевого уровня «.» (dot — точка), также называемый корневым. На практике точку обычно не указывают («example.com» вместо «example.com.»), т.е. указание корневого домена не является обязательным условиям разрешения IP-адреса. Большинство клиентских программ (интернет-браузеров и т.д.) добавляют домен нулевого уровня автоматически и не отображают его пользователю. Доменное имя, не включающее обозначение домена нулевого уровня называется относительным, включающее же точку на конце — полностью определенным (FQDN — Fully Qualified Domain Name).

Доменная зона — часть иерархического дерева доменных имен (напр. «.ru»), целиком переданная на обслуживание определенному DNS-серверу (чаще нескольким) с целью делегирования другому лицу ответственности за этот и все подчиненные домены («anyaddress.ru», «any.anyaddress.ru»).

Делегирование — передача ответственности за определенную ветвь дерева доменных имен другому физическому или юридическому лицу. Именно эта процедура практически реализует важный принцип работы DNS — распределенность хранения записей и обработки запросов. Сам процесс делегирования представляет собой добавление в ресурсные записи родительской зоны («.ru»), так называемых «склеивающих» («glue») NS-записей для делегируемой дочерней зоны («example.com»), указывающих на DNS-сервера принимающей домен стороны (например, DNS-сервера нашей компании). С этого момента все ресурсные записи домена второго уровня «example.com» и всех его дочерних доменов (например, «mail.example.com» и т.д.) хранятся на DNS-серверах этой компании, а родительская зона «.ru» хранит только указывающие на эти сервера NS-записи.

DNS-сервер — хост, хранящий ресурсные записи и обрабатывающий DNS-запросы. DNS-сервер может самостоятельно разрешать адреса, относящиеся к зоне его ответственности (в примере выше это зона example.com), или передавать запросы по зонам, которые он не обслуживает, вышестоящим серверам.

DNS-клиент — набор программных средств для работы с DNS. Сам DNS-сервер периодически также выступает в качестве клиента.

 

Основные типы ресурсных записей

Ресурсная запись (RR — Resource Record) — единица хранения и передачи информации в DNS, включающая в себя следующие элементы (поля):

  • Имя (Name) — имя домена, к которому относится запись
  • TTL (Time To Live) — допустимое время хранения записи неответственным сервером
  • Тип (Type) — параметр, определяющий назначение и формат записи в поле данных (Rdata)
  • Класс (Class) — тип сети передачи данных (подразумевается возможность DNS работать с типами сетей, отличных от TCP/IP)
  • Длина поля данных (Rdlen)
  • Поле данных (Rdata) — содержание и формат поля зависят от типа записи

 

Ниже представлены типы ресурсных записей, используемые чаще всего:

  • A (IPv4 Address Record — адресная запись) — связывает доменное имя с IPv4-адресом хоста
  • AAAA (IPv6 Address Record) — связывает доменное имя с IPv6-адресом хоста (аналогично А-записи)
  • CNAME (Canonical Name Record — каноническая запись имени) — используется для перенаправления на другое доменное имя
  • MX (Mail Exchange — почтовый обменник) — ссылается на почтовый сервер, обслуживающий домен
  • NS (Name Server — сервер имен) — ссылается на DNS-сервер, ответственный за домен
  • TXT — текстовое описание домена. Зачастую требуется для выполнения специфических задач (например, подтверждения права собственности на домен при привязке его к почтовому сервису)
  • PTR (Point to Reverse — запись указателя) — связывает ip-адрес машины с доменом, используется преимущественно для проверки сторонними почтовыми сервисами отправляемых через эту машину электронных писем на отношение к домену, указанному в параметрах почтового сервера. При несоответствии этих параметров письмо проверяется более тщательно по другим критериям.

 

Рекурсивные и нерекурсивные DNS-запросы

Рекурсией называется модель обработки запросов DNS-сервером, при которой последний осуществляет полный поиск информации, в том числе о доменах, неделегированных ему, при необходимости обращаясь к другим DNS-серверам.

DNS-запросы (DNS queries) от клиента (сервера) к серверу бывают рекурсивными и нерекурсивными. В первом случае DNS-сервер, принявший запрос, опрашивает все узлы в порядке убывания уровня зон, пока не получит положительный ответ или информацию о том, что запрашиваемый домен не существует. В случае с нерекурсивными запросами сервер даст положительный ответ только при запросе узла, входящего в доменную зону, за которую этот сервер ответственен. Отсутствие рекурсии может быть обусловлено не только типом запроса, но и запретом на выполнение таких запросов со стороны самого DNS-сервера.

 

 

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

 

P. S. Другие инструкции:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

1cloud.ru

Что такое DNS-сервер и для чего он нужен?

480 auto

Если спросить среднего пользователя интернета, что такое сайт, скорее всего, он назовёт, например, yandex.ru, mail.ru, google.com, facebook.com, …

В практическом смысле этого вполне достаточно: нашёл интересный сайт, сообщил знакомым его доменное имя (или проще, «адрес»).

Однако настоящим адресом доменное имя не является. Ну это примерно так же, как отправить письмо с надписью на конверте: «город Екатеринбург, Петру Иванову». Здесь дело даже не в том, что Петров Ивановых в Екатеринбурге может быть несколько (представим, что человек с таким именем там единственный). Проблема в том, что адресат может перемещаться, минимум, по городу, и вручить ему письмо будет крайне проблематично.

Но письма-то доставляют и получают! — Да, конечно. Потому что они отправляют по почтовым адресам. Например, «город Ленинград, 3-я улица Строителей, дом 25, квартира 12».

Почтовым адресом в интернете является IP-адрес, состоящий из четырёх чисел от 0 до 255, например, 74.125.131.100. Это — один из IP-адресов сайта google.com. Если в адресной строке вашего браузера ввести эти числа, вы окажетесь на портале google.com, точнее, на google.ru, куда вас автоматически перенаправят.

Почему «один из адресов», и какого типа бывают IP-адреса, пока оставим в стороне.

В интернете IP-адрес задаёт, на какой компьютер нужно доставить данные.

Вам что-то напоминает IP-адрес? — Мне он напоминает длинный номер мобильного телефона.

Телефонная книга

К сожалению, запоминать длинные телефонные номера непросто. Мы их вносим в свои записные книжки («контакты», по-мобильнофонному) и добавляем к ним понятные имена, например,

Пётр Иванов, +7-343-123-45-67.

В дальнейшем нам не потребуется помнить сам телефонный номер Петра, достаточно того, что этот номер записан в нашу телефонную книгу. Когда нам будет нужно позвонить Петру, мы найдём его в списке наших контактов даже не взглянув на его номер.

В интернете роль телефонной книги играет система доменных имён (DNS, Domain Name System). В ней хранится связь между относительно легко запоминаемым названием сайта и его трудно запоминаемым числовым адресом.

Правда, есть одно существенное отличие этой «интернет-книги» от телефонной. — Её ведёт не каждый знакомый Петра Иванова в отдельности, а он сам.

В частной телефонной книге можно написать: «Петя», «Пётр», «Петруша», «Петруха», «Петруня», «любимый», …, а в «телефонной интернет-книге» записи ведут сами владельцы сайтов, например:

Название домена Адрес
pyotr-ivanov.ru 123.123.123.123

Если кто-то пожелает посетить сайт Петра Иванова, в адресной строке браузера он наберёт: pyotr-ivanov.ru, а система доменных имён сообщит браузеру (точнее, компьютеру, на котором работает браузер), соответствующий IP-адрес, в нашем примере: 123.123.123.123. Компьютер, который находится по этому адресу, обработает запрос браузера и пришлёт ему данные, для отображения запрошенной страницы веб-сайта.

 

 

Теперь понятно, как используются доменные имена? — Однако ещё не рассказано, где хранятся записи о связях между доменными именами сайтов и IP-адресами компьютеров, на которых эти сайты размещены.

DNS-сервер

Он-то и служит телефонной книгой. Он хранит информацию о том, какому IP-адресу соответствует то или иное доменное имя. В интернете DNS-серверов очень много. У них двойная роль:

  • главная — «телефонная интернет-книга»;
  • дополнительная (но тоже важная) — кэширование записей других DNS-серверов.

Сначала несколько слов о кэшировании. Выяснять связь между названием сайта и его IP-адресом требуется при каждом обращении к этому веб-сайту. Если сайт, который вы хотите посетить, находится достаточно далеко, многочисленные запросы к далёкому первичному DNS-серверу могут отнять много времени и замедлить загрузку веб-страниц. Чтобы избежать задержек, ближайший к вашему компьютеру DNS-сервер (обычно находящийся у вашего интернет-провайдера), сохраняет сведения о ранее запрошенных IP-адресах, и при повторном обращении к тому же сайту он сообщит его адрес очень быстро, так как будет хранить его в своём кэше.

Но чтобы что-то кэшировать, нужно иметь источник кэшируемого. Таким источником служат первичные DNS-сервера, хранящие изначальные связи между доменами и их IP-адресами.

Для регистрации доменного имени достаточно его придумать. Но для того, чтобы оно начало «работать», вы должны сообщить регистратору доменное имя DNS-сервера, который будет хранить подробные данные о регистрируемом вами домене. Об этих данных будет сказано чуть позже.

Обычно используют два DNS-сервера: первичный и вторичный. Но их может быть и больше. Большее число DNS-серверов повышает надёжность доступа к вашему домену: если один окажется недоступен, ответит другой.

В реальном мире двух — вполне достаточно.

 

 

Многие регистраторы доменных имён и просто интернет-провайдеры предлагают использовать свои DNS-серверы в режиме платной услуги.

Хорошая новость: в облаке 1cloud услугу DNS-хостинга можно получить бесплатно! Достаточно быть клиентом этого публичного облака.

DNS-зона

Для дальнейшего понимания системы доменных имён нужно узнать, что такое DNS-зона.

Дело в том, что мы рассмотрели только один из вариантов связи между доменным именем и IP-адресом: один домен – один сайт – один адрес. Однако с конкретным доменным именем может быть связан не только веб-сайт, но и, например, почтовый сервер. И у них могут быть разные адреса.

 

 

Одному и тому же домену может соответствовать веб-сайт или почтовый сервер с несколькими IP-адресами, каждый. Их используют для повышения надёжности и производительности сайта или почтовой системы.

А ещё нужно вспомнить о возможных поддоменах, например,

mail.company.ru, ftp.company.ru, sklad.company.ru, …

Все необходимые связи между доменным именем и IP-адресами отражаются в специальном файле, расположенном на DNS-сервере. Содержимое этого файла называется описанием DNS-зоны, или просто DNS-зоной.

В ней могут присутствовать записи разных типов.

Тип записи Пояснение
A Адрес «сайта» соответствующего доменного имени
MX Адрес почтового сервера в соответствующем домене
CNAME Синоним описываемого домена.
Например, здесь можно указать, что доменное имя www.company.ru является синонимом доменного имени company.ru, и запросы по этому синониму будут перенаправляться на адрес основного доменного имени
NS Здесь указывается доменные имена DNS-серверов, обслуживающих описываемый домен.
Например, ns1.1cloud.ru и ns2.1cloud.ru
TXT Любое текстовое примечание

Это — не полный перечень возможных типов полей. Он был сокращён для упрощения ознакомительного изложения.

Дополнение

Как в любом деле, в правильном описании доменного имени есть свои детали и нюансы. В этой статье они опущены, чтобы не усложнять начальное знакомство с темой. Однако для общего кругозора уже сейчас следует добавить несколько важных фактов.

  • Выше была описана адресация по стандарту IPv4. Адрес в нём состоит из четырёх чисел. Такая адресация имеет ограничение числа обслуживаемых компьютеров: 4 294 967 296. Это много, но при нынешнем числе устройств, подключенных к интернету адресов стало не хватать.
    Для преодоления этого объективного лимита ввели новый стандарт: IPv6, по которому длина адреса увеличилась, и стало возможным адресовать намного, намного больше компьютеров. В DNS-зоне тип записи для такого адреса обозначается: AAAA.
  • Одному домену могут соответствовать несколько IP-адресов.
    Обычно такое назначение делается для повышения надёжности или быстродействия. Порядок выдачи IP-адреса из списка на запрос по доменному имени зависит от настроек DNS-сервера. Чаще всего адрес выдаётся в случайном порядке.
  • Одному IP-адресу может соответствовать несколько доменов.
    Строго говоря, это противоречит логике системы доменных имён, которая предполагает однозначную связь IP-адреса с соответствующим доменом. Однако, как было сказано ранее, 4-числовой IP-адрес стал дефицитным ресурсом, который уже достаточно давно стараются экономить.
    На практике такая экономия может выглядеть следующим образом. На компьютере размещают несколько не очень больших веб-сайтов с разными доменными именами, которым присвоен одинаковый IP-адрес. Веб-сервер, работающий на этом компьютере и обслуживающий эти сайты, получив запрос, анализирует домен, в который он пришёл, и направляет его на правильный сайт.
    Такая практика не позволяет обеспечить однозначность обратной связи IP-адреса с доменным именем, ведь в этом случае их несколько. Но позволяет экономить IP-адреса.
     

Заключение

Изложенный порядок на первый взгляд может показаться сложным. Однако он позволяет:

  • пользоваться доменными именами, которые запоминаются легче, чем числовые адреса;
  • повышать надёжность доступа к интернет-ресурсам путём использования для них нескольких компьютеров, разнесённых по сети;
  • увеличивать производительность интернет-ресурсов за счёт распределения нагрузки внутри группы обеспечивающих компьютеров;
  • перемещать прикладные компьютеры по интернету, не меняя их доменного адреса.

С учётом изложенного в этой статье, определим DNS кратко так.

DNS (Domain Name System) — это система доменных имён, которая связывает названия доменов с IP-адресами компьютеров, соответствующих этим доменам. Эта система включает в себя как регламентирующие документы, так множество DNS-серверов, работающих в интернете и сообщающих IP-адреса в ответ на запрос по доменным именам.

 

P.S. Еще немного материалов по теме DNS:

1cloud.ru

Добавить комментарий

Ваш адрес email не будет опубликован.