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