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

Кратко о DNS.

DNS (англ. Domain Name System) — компьютерная распределённая система для получения информации о доменах. Можно привести аналогию с телефонной книгой.

За каждым телефонным номером закреплен абонент, который имеет ФИО. Чтобы узнать номер абонента, мы ищем в телефонной книге номер по его ФИО, для того, чтобы позвонить ему. DNS работает по принципу телефонной книги, и определённые серверы DNS (телефонная книга) знают, какая, например, A-запись для домена domain.ru установлена.

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

Основные характеристики DNS:

  • Распределённость хранимой информации - данные о разных зонах хранятся на несколько независимых друг от друга серверах
  • Отказоустойчивость - отказ одного или нескольких серверов с записями о зонах не влияет на работу служб DNS
  • Через DNS-сервера не проходит трафик от сайтов, от корневых серверов DNS приходит только ответ и следующем DNS-сервере, который хранит записи доменных имен и IP-адресов
  • Для распределения нагрузки на DNS серверы применяется алгоритм Round-robin. Round-robin обозначает письмо к одному адресату, подписанное несколькими корреспондентами, к примеру, общественное обращение к должностному лицу.
  • Существуют и альтернативные корневые серверы DNS, которые управляют пространством имён, состоящих из собственных доменов верхнего уровня.
  • Киберсквоттинг - термин описывающий регистрацию доменных имён, которые могут принадлежать другому лицу или торговой марки с целью их дальнейшей перепродажи за высокую стоимость.
  • Тайпсквоттинг - регистрация доменного имени, которое содержит предумышленную ошибку в написании доменного имени, которое визуально будет схожи с другим доменом, например, example.com и exarnple.com

 

Как происходит общение с DNS?

  1. Пользователь запрашивает в браузере доступ к сайту mclouds.ru.
  2. Запрос получает системный DNS-сервер (Local Resolver, например 192.168.0.1), который прописан в настройках.
  3. Local Resolver получает запрос и проверяет, есть ли в кэше данные о записи mclouds.ru
  4. Если записи в кэше нет, то Local Resolver обращается к корневым DNS-серверам и спрашивает, кто отвечает за национальный домен верхнего уровня .ru
  5. Local Resolver получает ответ - 193.232.128.6, 194.85.252.62, 194.190.124.17, 193.232.142.17 и 193.232.156.17, что эти серверы обслуживают зону .ru и требуется обратиться к ним.
  6. Local Resolver обращаться к 193.232.128.6 и запрашивает, какие DNS серверы обслуживают домен mclouds.ru и получает ответ:
    1. ns1.reg.ru
      1. 176.99.13.11
      2. 176.99.13.13
      3. 176.99.13.15
      4. 176.99.13.17
      5. 194.58.117.11
      6. 194.58.117.13
      7. 194.58.117.15
      8. 194.58.117.17
    2. ns2.reg.ru
      1. 176.99.13.12
      2. 176.99.13.14
      3. 176.99.13.16
      4. 176.99.13.18
      5. 194.58.117.12
      6. 194.58.117.14
      7. 194.58.117.16
      8. 194.58.117.18
  7. Local Resolver обращается к, например, 176.99.13.12 и запрашивает IP-адрес для записи mclouds.ru.
  8. 176.99.13.12 отвечает Local Resolver, что для А-записи mclouds.ru соответствует IP-адрес 109.248.46.127.
  9. Local Resolver получив ответ передаёт IP-адрес пользовательской системе, которая изначально и запросила IP-адрес для домена mclouds.ru.

Как самостоятельно посмотреть ответы на DNS-запрос?

Для этого откройте командную строчку в Windows и запустите приложение nslookup.

C:\Users\User01>nslookup > server 1.1.1.1 Default Server:  one.one.one.one Address:  1.1.1.1

Чтобы получить A-запись, просто установите тип запроса A и введите доменное имя, например yandex.ru или mail.ru. В результате получите IP-адрес, который соответствует A-записи.

> set type=A > yandex.ru Server: one.one.one.one Address: 1.1.1.1 Non-authoritative answer: Name: yandex.ru Addresses: 2a02:6b8:a::a 77.88.55.60 5.255.255.50 5.255.255.55 77.88.55.55   > mail.ru Server: one.one.one.one Address: 1.1.1.1 Non-authoritative answer: Name: mail.ru Addresses: 2a00:1148:db00:0:b0b0::1 217.69.139.202 94.100.180.200 94.100.180.202 217.69.139.200

Тип можно сменить на любой, например проверим MX-запись:

> set type=MX > mail.ru Server: one.one.one.one Address: 1.1.1.1 Non-authoritative answer: mail.ru MX preference = 10, mail exchanger = mxs.mail.ru > yandex.ru Server: one.one.one.one Address: 1.1.1.1 Non-authoritative answer: yandex.ru MX preference = 10, mail exchanger = mx.yandex.ru

На этом кратком обзоре и примерах мы закончим обзор такой важной службы как DNS. Если вы работаете с Виртуальными серверами или IaaS сервисом - можете смело создать запрос в поддержку в личном кабинете.

Наш телеграм-канал
Пишем про облака, кейсы, вебинары
Подписаться