Интернет работает на коде. Это дикий, хаотичный мир, удерживаемый вместе стандартами, которые мы едва замечаем. В центре всего этого находится DNS.

Люди часто говорят «Domain Name Server» (Сервер доменных имен). Это неверно. Аббревиатура расшифровывается как Domain Name System (Система доменных имен). Это протокол из набора TCP/IP. Его задача проста, но масштабна. Он преобразует понятные человеку имена, такие как howstuffworks.com, в адреса протокола Интернета (IP). Компьютеры не читают слова. Они читают числа. 70.42.251.42 — так машина находит своего друга в сети.

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

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

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

Понимание структуры IP-адресов и процесса разрешения

Сервер DNS переводит доменное имя в IP-адрес. Звучит просто. На самом деле это не так.

  • В использовании находятся миллиарды IP-адресов.
  • У большинства машин есть имена, понятные человеку.
  • Серверы DNS обрабатывают миллиарды запросов одновременно.
  • Миллионы доменов меняются каждый день.

Чтобы справляться с такой нагрузкой, DNS опирается на строгую эффективность. Стандарты управляются Управлением по назначению интернет-номеров (IANA). Каждому устройству нужен уникальный адрес либо в формате IPv4, либо в формате IPv6.

Вот как их различать:

  • IPv4 : Четыре числа, разделенные точками. Пример: 70.74.251.42.
  • IPv6 : Восемь шестнадцатеричных групп, разделенных двоеточиями. Пример: 2001:0cb8:85a3:0000:0000:8a2e:0370:7334.

IPv6 — более новый стандарт. Пока мы будем придерживаться распространенного IPv4.

Каждое число в адресе IPv4 является октетом. Оно представляет собой 8-битное двоичное число. Возьмем число 42. В двоичной системе это 00101010. Каждая цифра соответствует степени двойки. Сложите значения битов, которые включены. 2 + 8 + 32 = 42.

Для каждого октета существует всего 256 возможных значений. От нуля до 255.

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

Веб-серверам нужна стабильность. Они используют статические IP-адреса. Один и тот же адрес всегда назначается сетевому интерфейсу этой системы. Чтобы обеспечить это, IP-адрес связывается с адресом управления доступом к среде (MAC). MAC-адрес вписывается в оборудование производителем. Он уникален. У каждого проводного или беспроводного интерфейса есть такой адрес.

Теперь давайте посмотрим на другую сторону уравнения — доменные имена. Но сначала, где прячется ваш собственный IP-адрес?

Как найти IP-адрес на любом устройстве

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

  • Windows : Откройте командную строку. Введите ipconfig. Нажмите Enter. Ищите IPv4-адрес.
  • Mac : Перейдите в Системные настройки. Нажмите «Сеть». Выберите активное подключение (зеленая точка). Нажмите «Дополнительно». Перейдите на вкладку TCP/IP.
  • Linux или UNIX : Откройте терминал, например XTERM или iTerm. Введите ifconfig. Ищите inet addr.
  • Смартфоны : Проверьте настройки сети в операционной системе. Это зависит от телефона и версии ОС.

Если вы находитесь в домашней сети, вы, скорее всего, увидите 192.168.x.x, 172.16.x.x или 10.x.x.x. Буква x — это число от 0 до 255. Это зарезервированные частные адреса. Ваш маршрутизатор использует их для подключения вас к широкому интернету.

Это локальная сторона. Следующий шаг — понимание самих доменных имен.

Как на самом деле работают доменные имена

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

  • google.com — гигант, которым пользуется каждый
  • mit.edu — ограничен сферой образования
  • bbc.co.uk — вложенная структура кодов стран

Вы видите точки. Вы знаете этот паттерн. Последний фрагмент этого адреса — это домен верхнего уровня (TLD). IANA управляет ими в базе данных корневой зоны. Сейчас их более 1000. Большинство из них открыты для всех. Некоторые ограничены.

  • COM, NET, ORG — их может зарегистрировать кто угодно. Изначально они предназначались для коммерческого использования, сетей и некоммерческих организаций. Сейчас? Просто метки.
  • EDU, MIL, GOV — ограничены. Вы не можете просто так купить адрес .edu, если вы не являетесь учебным заведением.
  • .UK, .US, .RU — коды стран. Управляются местными органами власти.

Добавление слов перед TLD создает иерархию. Каждая точка отделяет уровень. «howstuffworks» находится в качестве домена второго уровня под .com. Эта структура указывает на конкретные серверы.

Возьмем bbc.co.uk. Это не просто домен. Это поддомен под .co, который сам находится под .uk. Это вложенная система файлов для интернета.

Слово в крайней левой части? Это имя хоста. Обычно это www или mail. Оно сообщает системе, к какому именно компьютеру вы хотите подключиться. Один домен может обслуживать миллионы уникальных имен хостов. Пока они не конфликтуют, все в порядке.

Затем есть префикс. HTTP. Протокол передачи гипертекста. Это рукопожатие между вашим браузером и сервером. Но сейчас вы редко будете его видеть. Вы увидите HTTPS. «S» означает безопасность. Включено шифрование. Номер вашей кредитной карты остается конфиденциальным. Если вы не используете HTTPS, вы кричите своими данными через открытый канал.

Когда вы регистрируете домен, вы должны указать, куда он ведет. Конкретно, вам нужны серверы имен. Эти DNS-серверы обладают полномочиями для вашего домена. Они знают, где находится www.yoursite.com. Обычно этим занимается ваш хостинг-провайдер. У них уже готова DNS-инфраструктура.

Как DNS-серверы маршрутизируют трафик

Здесь происходит магия. Или начинается головная боль, если что-то сломается.

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

Когда вы вводите URL, ваш компьютер не просто угадывает IP-адрес. Он спрашивает.

Сначала он проверяет свой собственный кэш. Посещал ли он этот сайт вчера? Отлично. Он уже знает IP-адрес. Не нужно беспокоить никого другого. Скорость имеет значение. Задержка убивает пользовательский опыт.

Если кэш пуст, он обращается к резолверу. Обычно он предоставляется вашим интернет-провайдером или публичным сервисом, таким как Cloudflare или Google. Резолвер выполняет основную работу. У него еще нет ответа, но он знает, где искать.

Он начинает с верха. Корневые серверы. Их 13 логических кластеров, распределенных по всему миру. Они не знают IP-адреса вашего сайта. Они знают, кто управляет .com. Они направляют резолвер к серверам TLD .com.

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

Резолвер получает этот IP. Он отправляет его обратно на ваш компьютер. Ваш браузер подключается. Страница загружается.

Все это происходит за миллисекунды. Вы не видите рукопожатий. Вы не видите запросы, прыгающие между корневыми, TLD и авторитетными серверами. Вы просто видите страницу.

Но если на каком-либо этапе произойдет сбой? Вы получите ошибку. «DNS_PROBE_FINISHED_NO_INTERNET». Раздражает. Потому что проблема не в вашем соединении. Проблема в телефонной книге.

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

Система полагается на точность. И избыточность. Если ваш авторитетный сервер выходит из строя, но у вас настроены вторичные серверы, трафик продолжает течь. Если нет? Тишина.

Понимание этого потока помогает, когда что-то ломается. Это не магия. Это таблица поиска. Очень большая, очень распределенная таблица поиска.

Что на самом деле делает DNS-сервер в вашей сети

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

Это чудо распределенной инженерии.

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

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

Кэширующий резольвер

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

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

Авторитетный сервер имен

Этот сервер хранит мастер-запись. Он связывает IP-адреса со всеми хостами и поддоменами, за которые несет ответственность.

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

Один служит сокращением пути, другой — источником данных.

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

Почему это различие важно? Потому что настройки безопасности и производительности полностью зависят от роли, которую выполняет ваш сервер. Резольверу нужны надежные политики кэширования. Авторитетному серверу требуется строгое управление зонами.

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

Понимание этого разделения делает остальное управление DNS менее похожим на магию и более похожим на логику.

Как ваш провайдер обрабатывает DNS-запросы

Ваш интернет-провайдер обеспечивает первую линию обороны. Или нападения. В зависимости от того, как вы относитесь к его привычкам ограничивать скорость. При подключении DHCP автоматически передает вам адрес DNS-сервера провайдера. Вы не запрашиваете его. Он просто появляется.

Сервер провайдера работает как ленивый библиотекарь.

  • Он проверяет свои собственные полки. Если у него есть IP-адрес для этого домена, он передает его вам. Готово.
  • Если полка пуста, он обращается к другому серверу. Он может последовательно запросить три или четыре сервера.
  • Он запоминает ответ. Кэширование обеспечивает быструю обработку будущих запросов.
  • Если после тщательных поисков он не находит нужное, он возвращает ошибку. «Домен не найден».

Довольно просто. Но это лишь сторона запрашивающего.

Кто на самом деле владеет данными домена

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

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

SOA является единственным источником достоверной информации. Все остальное — лишь копия.

Корневые серверы и иерархия

На вершине находятся корневые серверы имен. Они обрабатывают домены верхнего уровня, такие как .com или .org. Их сотни. Вы редко общаетесь с ними напрямую. Ваш провайдер обычно останавливается на уровне доменов верхнего уровня (TLD).

Но что, если цепочка прерывается? Если провайдер отказывается от поиска? Система может откатиться к корневому серверу. Это крайняя мера. Страховочная сеть. Она помогает найти правильный SOA, когда путь теряется.

Настройка авторитета вашего домена

Теперь вы видите сеть. Как она связана. Почему она быстрая. Почему иногда она дает сбой.

Следующий шаг — настроить себя как авторитет. Вы больше не просто читаете карту. Вы ее рисуете.

Настройка записей домена

Вы выбрали имя. Оно свободно. Вы зарегистрировали его. Что дальше?

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

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

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

Записи хоста (A)
Это необходимый минимум. A-запись сопоставляет имя хоста с IP-адресом. Без A-записи нет веб-сайта. Это основная связь между yourdomain.com и номером сервера 192.0.2.1.

Записи канонического имени (CNAME)
Это псевдоним. Прозвище. CNAME указывает одно имя на другое. Если вы введете псевдоним, он автоматически перенаправит вас на сервер, определенный в A-записи. Хотите, чтобы www указывал на ваш основной домен? Используйте CNAME.

Записи почтового обменника (MX)
Это отвечает за электронную почту. Она сообщает миру, какой сервер принимает почту для вашего домена. Вам не обязательно размещать собственный почтовый сервер. Большинство людей используют Google или Microsoft. Вы создаете MX-запись, которая указывает на ghs.google.com или аналогичный адрес. Ваш домен сохраняет свою идентичность, но Gmail берет на себя основную работу.

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

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

Запись SOA является единственным источником истины для DNS-зоны вашего домена.

Вот как выглядит необработанный файл зоны для тех, кто редактирует текст напрямую. Средняя колонка показывает тип записи. Символ @ означает «это относится к корневому домену, если не указано иное».

Большинство пользователей интересуются только MX и CNAME записями. Используйте MX, чтобы направить электронную почту в Google Workspace. Используйте CNAME, чтобы «припарковать» поддомены. Возможно, у вас есть игровой сервер на отдельном IP-адресе. Направьте games.example.com на него с помощью CNAME. Просто.

Как меняется безопасность DNS

DNS не статичен. Он меняется.

В конце 2018 года ICANN внедрила новые функции безопасности. Они обновили криптографические ключи для DNSSEC. В частности, ключ подписи ключа корневой зоны (KSK). Для специалистов в области технологий это стало крупным событием.

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

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

Часто задаваемые вопросы о DNS

Что такое DNS?
Это система доменных имен (Domain Name System). Телефонная книга интернета. Она связывает понятные человеку URL-адреса с понятными машинам IP-адресами.

Что делает DNS?
Он сопоставляет URL с конкретным IP-адресом веб-сайта. Без него вам пришлось бы запоминать строки чисел для каждого посещаемого вами сайта.

Могу ли я использовать 8.8.8.8?
Да. Это публичный DNS Google. Google поддерживает его. Им может пользоваться любой. Он часто работает быстрее, чем DNS вашего интернет-провайдера по умолчанию.

Безопасно ли переключать DNS?
Да. Переключение на OpenDNS или Google DNS безопасно. Это обратимо. Это не сломает ваш компьютер или сеть. Вы просто меняете каталог, в котором запрашиваете адреса.

Что означает DNS на моем телефоне?
Любое интернет-соединение использует DNS. Ваш телефон не исключение. Вы можете настроить частный DNS на Android. Перейдите в Настройки > Сеть и интернет > Дополнительно > Частный DNS. Введите имя хоста предпочитаемой вами службы DNS. Нажмите «Сохранить». Это направит ваши запросы через этого провайдера вместо DNS вашего оператора по умолчанию.

Дополнительные ресурсы

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