3

Домены, адреса и "телефонная книга" Интернета

Как браузер находит сайты по имени — магия DNS

⏱️ 90 минут
🎯 Понимание инфраструктуры
📅 Занятие 3 из 22-24

"Паспортная система" Интернета: IP-адреса

Каждый сервер в интернете имеет уникальный цифровой "паспорт" — IP-адрес. Это как номер телефона, только для компьютеров.

87.240.137.114
IP-адрес серверов VK.com

IPv4: Стандартный адрес

4 числа от 0 до 255 (например, 192.168.1.1). Всего возможно ~4.3 миллиарда комбинаций. Почти закончились!

IPv6: Новый стандарт

2001:0db8:85a3:0000:0000:8a2e:0370:7334
Огромное количество адресов (340 секстиллионов!). Пока мало используется.

Иерархическая структура

87.240.0.0/16 — сеть VK
87.240.137.0/24 — дата-центр
87.240.137.114 — конкретный сервер
Как адрес: страна→город→улица→дом

Проблема: Люди не запоминают цифры!

Представьте, что вместо "позвони Кате" вам нужно говорить "позвони +7-XXX-XXX-XX-XX". Забыли цифры — всё, человека не найдёте. Так же и с сайтами. Нам нужны имена: vk.com, google.com. Кто переводит имена в цифры?

Иерархия DNS: Глобальная справочная служба

DNS (Domain Name System) — распределённая база данных, которая переводит имена в IP-адреса. Устроена как иерархическая справочная служба.

1 КОРНЕВЫЕ СЕРВЕРЫ
13 кластеров по всему миру (A-M)
Знают только: "Спроси у .com, .ru, .org..."
2 СЕРВЕРЫ ЗОН (.com, .ru, .org)
Специализированные справочные
Знают: "vk.com делегирован компании VK"
3 АВТОРИТАТИВНЫЕ СЕРВЕРЫ
Серверы владельца домена (ns1.vk.com)
Знают ВСЁ про свои домены
ВАШ ПОСЫЛЬНЫЙ (РЕЗОЛВЕР)
Сервер вашего провайдера или публичный (8.8.8.8)
Бегает по цепочке, запоминает ответы
1
Вы вводите
vk.com
2
Резолвер проверяет
кэш
3
Спрашивает
корневые серверы
4
Спрашивает
серверы .com
5
Спрашивает
ns1.vk.com
6
Получает IP
87.240.137.114
7
Запоминает
(кэширует)
8
Отдаёт вам
ответ
300

TTL — Time To Live

Время жизни записи в кэше. "Запомни этот ответ на 300 секунд (5 минут), потом забудь".
Зачем? Чтобы узнали о смене IP-адреса.

Факт: 99% запросов выполняются мгновенно

Благодаря кэшированию на резолвере, большинство DNS-запросов занимают 0-10 мс. Ответ уже лежит в памяти. Только первый запрос к новому сайту проходит всю цепочку (50-300 мс).

Практическая демонстрация: Следим за DNS

Давайте посмотрим, как это работает на практике с помощью командной строки.

$
ping vk.com
PING vk.com (87.240.137.114) 56(84) bytes of data.
64 bytes from vk.com (87.240.137.114): icmp_seq=1 ttl=54 time=17.8 ms
# Компьютер сразу знает IP vk.com (кэш!)
$
dig vk.com
;; ANSWER SECTION:
vk.com. 300 IN A 87.240.137.114

;; Query time: 0 msec ← Мгновенно! (кэш)
$
dig +trace vk.com
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
# Спросили корневые серверы

com. 172800 IN NS a.gtld-servers.net.
# Они сказали: "Спроси у .com"

vk.com. 172800 IN NS ns1.vk.com.
# .com сказал: "Спроси у ns1.vk.com"

vk.com. 300 IN A 87.240.137.114
# ns1.vk.com дал окончательный ответ!

Что ещё хранится в DNS? (Не только A-записи)

DNS — это не просто переводчик имён. Это целая картотека информации о домене.

A запись

Адрес офиса

Основной IP-адрес сайта (IPv4).

vk.com → 87.240.137.114
AAAA запись

Адрес офиса (новый)

IP-адрес для IPv6.

vk.com → 2001:67c:2c4::114
CNAME запись

"Также известен как"

Алиас (псевдоним). Указывает на другое имя.

www.vk.com → vk.com
MX запись

Почтовое отделение

Сервер, принимающий почту для домена.

@vk.com → mx.vk.com
TXT запись

"Объявления на доске"

Любая текстовая информация: проверка владения, настройки безопасности.

"v=spf1 include:_spf.google.com ~all"
NS запись

"Официальное справочное бюро"

Серверы, хранящие истину о домене.

vk.com → ns1.vk.com, ns2.vk.com
DNS — это распределённая база данных

Представьте карточку предприятия в справочнике: адрес офиса (A), адрес склада (другая A), почтовый адрес (MX), дополнительные названия (CNAME), контакт для проверок (TXT). Всё это — DNS.

А что если сломается? Проблемы DNS

Сценарий 1: У посыльного плохая память

Резолвер вашего провайдера глючит или перегружен. Симптомы: "Интернет тормозит", "сайты долго открываются".
Решение: Сменить посыльного! Использовать публичные DNS: Google (8.8.8.8) или Cloudflare (1.1.1.1).

Сценарий 2: Забыли продлить аренду

Домен арендуется на год-два. Забыли оплатить — домен удаляют из реестра.
Симптомы: Сайт полностью недоступен.
Решение: Автопродление, напоминания. Случалось даже с крупными компаниями!

Сценарий 3: DDoS-атака на DNS

Толпа "хулиганов" одновременно спрашивает про случайные адреса, серверы захлёбываются.
Симптомы: Массовая недоступность сайтов.
Решение: Защита от DDoS, anycast (геораспределённость).

Важно для DevOps-инженера

При развёртывании нового сервиса одна из первых задач — прописать DNS-записи. Без этого никто не узнает о существовании вашего сервиса. Также нужно следить за TTL при смене IP (уменьшить заранее).

Ключевые термины лекции

IP-адрес Домен DNS Резолвер Root Servers TLD-серверы Авторитативные серверы TTL (Time To Live) A-запись CNAME-запись MX-запись TXT-запись DDoS-атака

💎 Главный вывод

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

Задания для самостоятельного изучения

  • Задание 1: Проверьте IP-адреса ваших любимых сайтов. Откройте командную строку (Windows: cmd, Mac/Linux: Terminal) и выполните: ping vk.com или nslookup google.com. Что вы видите?
  • Задание 2: Узнайте, какой DNS-резолвер использует ваш компьютер. На Windows: ipconfig /all, на Mac/Linux: cat /etc/resolv.conf. Это провайдерский или публичный DNS?
  • Задание 3: Попробуйте сменить DNS на публичный (Google: 8.8.8.8, Cloudflare: 1.1.1.1) в настройках сети вашего компьютера или роутера. Чувствуется ли разница в скорости открытия сайтов?

🔜 Что дальше?

Вы теперь знаете, как браузер находит сервер по имени. Но что происходит, когда запрос доходит до сервера? Из чего сделана страница, которую вы видите в браузере? На следующей лекции мы разберём "лицо" и "мозги" веб-приложений — Frontend и Backend.