Демистификация серверов доменных имен (DNS)

Демистификация серверов доменных имен (DNS)

29 апреля 2023 г.

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

Происхождение серверов доменных имен (DNS)

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

Чтобы получить доступ к веб-сайту, размещенному на компьютере, мы используем его IP-адрес. Однако людям трудно запомнить IP-адреса для доступа к доменным именам, например 142.250.180.14 для google.com. Поэтому нам требуется репозиторий, который функционирует как телефонная книга и поддерживает все сопоставления доменных имен с IP-адресами.

Что такое DNS?

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

Основные блоки DNS

Серверы имен

DNS — это не отдельный сервер, а комплексная инфраструктура с несколькими серверами. Серверы имен — это DNS-серверы, отвечающие за ответы на запросы пользователей.

Записи ресурсов

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

Кэширование

Чтобы свести к минимуму задержку запросов, DNS реализует кэширование на нескольких уровнях. Кэширование — важная функция, которая снижает нагрузку на инфраструктуру DNS, которая должна обрабатывать запросы со всего Интернета.

Иерархия

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

н

Давайте более подробно рассмотрим, как работает DNS.

Иерархия

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

* Преобразователи DNS: преобразователи DNS инициируют последовательность запросов и перенаправляют запросы на другие серверы имен DNS, а также могут называться локальными серверами или серверами по умолчанию.

* Серверы имен корневого уровня: локальные серверы отправляют запросы на эти серверы, которые поддерживают серверы имен на основе доменных имен верхнего уровня, таких как .com, .edu, .us и т. д. Например, когда кто-то запрашивает IP-адрес google.com, корневые серверы имен предоставляют список серверов доменов верхнего уровня (TLD), которые содержат IP-адреса домена .com.

* Серверы имен доменов верхнего уровня (TLD): Эти серверы отвечают за хранение IP-адресов авторитетных серверов имен. При запросе IP-адреса запрашивающая сторона получает список IP-адресов, принадлежащих полномочным серверам организации.

* Авторитетные серверы имен. Это серверы имен DNS, специфичные для организации, которые предоставляют IP-адреса своих веб-серверов или серверов приложений.

Существует два метода выполнения DNS-запроса:

  1. Итеративный: локальный сервер последовательно отправляет запросы на получение IP-адреса корневому, TLD и уполномоченным серверам.
  2. Рекурсивный: конечный пользователь отправляет запрос на локальный сервер, который затем запрашивает корневые серверы имен DNS. Затем корневые серверы имен пересылают запрос другим серверам имен.

Как правило, итеративный запрос предпочтительнее для снижения нагрузки запросов на инфраструктуру DNS.

DNS – распределенная система

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

* Избегание единой точки отказа (SPOF). * Достижение низкой задержки запросов, позволяя пользователям получать ответы от ближайших серверов. * Обеспечение более высокой степени гибкости для обслуживания, обновлений и модернизаций. В случае сбоя или перегрузки DNS-сервера другой DNS-сервер может отвечать на запросы пользователей.

Существует 13 логических корневых серверов имен, обозначенных буквами от A до M, с несколькими экземплярами, распределенными по всему миру. Эти серверы управляются 12 отдельными организациями.

Кэширование

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

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

Масштабируемость

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

Последовательность

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

Иногда кешированная информация может вызывать проблемы с согласованностью. Это происходит, когда сервер выходит из строя, и организации необходимо обновить свои записи ресурсов. Кэшированные записи на локальных серверах и серверах интернет-провайдера могут не содержать самой последней информации. Чтобы решить эту проблему, у каждой записи есть срок действия, называемый временем жизни (TTL).


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE