EngineerSpock

Ускоренный курс DNS (система доменных имен)

ByteByteGo

28 сент. 2023 г.

Что, если бы вы проснулись завтра и больше не смогли бы получить доступ к веб-сайтам, набрав такие имена, как google.com или espn.com? И вместо этого вам пришлось бы запоминать и набирать ряд цифр, чтобы просто выйти в Интернет: 172.217.16.206 — чтобы проверить почту, или 199.181.132.250 — чтобы прочитать спортивные новости. Просмотр страниц сайтов в интернете в одночасье стал бы чрезвычайно утомительным!

Лайкосы / Подписки / Курсы
 
 
 
 
 

В данной статье мы рассмотрим сложную работу этой важной магистрали интернета.

DNS: адресная книга интернета

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

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

Ключевые услуги, предоставляемые DNS

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

Ниже мы опишем некоторые из наиболее важных сервисов DNS.

Сопоставление хостов с IP-адресами

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

Например, рассмотрим доменное имя «www.bytebytego.com». Сопоставление хостов с IP-адресами включает определение IP-адреса, связанного с этим доменом, например «172.67.21.11».

Псевдоним хоста

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

Например, рассмотрим первичный домен «bytebytego.com». Возможно, вы захотите, чтобы ваш веб-сайт был доступен не только через «bytebytego.com», но и через различные псевдонимы, такие как «www.bytebytego.com», «web.bytebytego.com» и «blog.bytebytego.com». Настроив соответствующие записи CNAME в DNS, все эти псевдонимы могут указывать на первичный домен «bytebytego.com». В результате пользователи могут получить доступ к вашему веб-сайту, используя любое из этих доменных имен, ведущих к одному и тому же IP-адресу пункта назначения.

Маршрутизация электронной почты

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

Например, предположим, что основным почтовым сервером, предназначенным для получения электронных сообщений для домена «bytebytego.com», является «mail.bytebytego.com». Возможно, вам захочется иметь определенные адреса электронной почты, например те, которые заканчиваются на «@sales.bytebytego.com» или «@support.bytebytego.com», но при этом направлять всю входящую почту для этих адресов на сервер «mail.bytebytego.com». При соответствующей настройке записей MX электронные письма, отправленные на любой из этих адресов, будут направляться на заданный первичный почтовый сервер.

Сопоставление IP-адресов с хостами

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

Балансировка нагрузки

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

Иерархия DNS

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

Root DNC servers

Корневые DNS-серверы

Root

Корневые

Top level domain

Сервер домена верхнего уровня

Authoritative

Полномочный сервер

Корневые DNS-серверы

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

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

DNS-серверы домена верхнего уровня (TLD)

Под корневыми серверами, на уровень ниже, находятся серверы TLD (домена верхнего уровня), и каждый из серверов на уровне TLD отвечает за преобразование одного из адресов, имеющих такие окончания, как .com, .edu, .net. и .org.

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

Полномочные DNS-серверы

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

Рекурсивные DNS-серверы (преобразователь)

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

Посмотрите на рисунок ниже, там показано размещение некоторых основных DNS-серверов при конвейерной обработке DNS-запроса.

Client

Клиент

DNS resolver

Преобразователь DNS

Root DNS

Корневой DNS-сервер

TLD DNS

Сервер домена верхнего уровня

Authoritative server

Полномочный сервер

Как работает преобразование DNS

В DNS имеется два основных метода разрешения запросов

  • Итеративное разрешение запросов
  • Рекурсивное разрешение запросов

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

Итеративное разрешение запросов

При итеративном разрешении запроса DNS-сервер, получающий запрос, предоставляет ссылки на запрашивающий сервер, направляя его через иерархию DNS. Запрашивающий сервер активно участвует в процессе, отправляя последующие запросы на основе полученных ссылок.

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

Requesting host

Запрашивающий хост

Return .com TLD address

Возврат адреса сервера домена верхнего уровня .com

Root DNS server

Корневой DNS-сервер

Return address of Authoritative DNS server

Возврат адреса полномочного DNS-сервера

TLD DNS server

DNS-сервер домена верхнего уровня

Authoritative DNS server

Полномочный DNS-сервер

DNS resolver

Преобразователь DNS

Web page for www.bytebytego.com

Веб-страница для www.bytebytego.com

Web server for www.bytebytego.com

Веб-сервер для www.bytebytego.com

 

Предположим, что запрашивающий хост отправляет запрос на разрешение имени bytebytego.com. Вот как это будет происходить.

  1. Хост сначала отправляет сообщение запроса локальному DNS-преобразователю. Сообщение запроса содержит имя хоста, которое необходимо перевести в bytebytego.com.
  2. Если в кэше преобразователя нет IP-адреса, он отправляет запрос на корневой DNS-сервер.
  3. Корневой DNS-сервер, после распознания суффикса .com, дает ссылку на серверы домена верхнего уровня, ответственные за .com.
  4. Затем преобразователь отправляет новый запрос на один из этих серверов домена верхнего уровня.
  5. Сервер домена верхнего уровня дает ссылку на полномочный DNS-сервер, отвечающий за bytebytego.com.
  6. Преобразователь отправляет еще один запрос полномочному DNS-серверу.
  7. Полномочный DNS-сервер дает IP-адрес bytebytego.com.
  8. DNS-преобразователь кэширует этот IP-адрес, а затем возвращает его запрашивающему хосту.
  9. После этого запрашивающий хост отправляет HTTP-запрос на IP-адрес веб-сервера http://www.bytebytego.com.
  10. Веб-сервер возвращает веб-страницу для www.bytebytego.com.

Рекурсивное разрешение запросов

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

Давайте воспользуемся предыдущим примером и попытаемся определить IP-адрес bytego.com, используя рекурсивное разрешение запроса, как показано на рисунке ниже:

Requesting host

Запрашивающий хост

Root DNS server

Корневой DNS-сервер

DNS resolver

Преобразователь DNS

TLD DNS server

DNS-сервер домена верхнего уровня

Web page for www.bytebytego.com

Веб-страница для www.bytebytego.com

Web server for www.bytebytego.com

Веб-сервер для www.bytebytego.com

Authoritative DNS server

Полномочный DNS-сервер

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *