Компьютерные сети

DNS: телефонная книга интернета

Цели урока

  • Понимать модель DNS: распределённая иерархическая БД, кешируемая всем интернетом
  • Знать роли: stub resolver, recursive resolver, root, TLD, authoritative
  • Различать рекурсивный и итеративный resolve, понимать кто куда ходит
  • Знать структуру корневых серверов: 13 имён A-M, anycast, тысячи физических инстансов
  • Использовать dig/nslookup для диагностики DNS и читать TTL

Набирается google.com - и через долю секунды появляется страница. Но компьютер не знает, что такое «google» - ему нужен IP-адрес. За кулисами DNS мгновенно спрашивает серверы по всему миру: «Кто знает google.com?» - и получает ответ.

  • **Веб-разработка:** настройка DNS для своего домена, понимание TTL при деплое
  • **DevOps:** DNS-based load balancing, failover, service discovery
  • **Безопасность:** DNS-атаки (spoofing, hijacking), мониторинг DNS-трафика

Предварительные знания

  • UDP: fast and without guarantees

Зачем нужен DNS

**DNS** (Domain Name System) - распределённая система, переводящая доменные имена (google.com) в IP-адреса (142.250.74.14). Люди запоминают слова, компьютеры работают с числами - DNS связывает оба мира.

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

**История:** До DNS был файл HOSTS.TXT, который вручную копировали на все компьютеры. К 1983 году это стало невозможно - сеть росла слишком быстро. Paul Mockapetris изобрёл DNS (RFC 1034, 1035).

Какую главную задачу решает DNS?

Иерархия доменов

Домен - это иерархическая структура, читаемая справа налево. **www.example.com.** (точка в конце!) означает: root → com → example → www. Каждый уровень управляется отдельно.

**Trailing dot:** Полное доменное имя (FQDN) заканчивается точкой: `google.com.` Точка означает root. Обычно браузеры добавляют её автоматически, но в DNS-конфигах это важно!

В имени www.example.com, что такое «com»?

DNS-запрос и ответ

DNS использует UDP порт 53 (TCP для больших ответов). Запрос содержит имя и тип записи (A, AAAA, MX...). Ответ содержит одну или несколько записей с данными и TTL.

**Почему UDP?** DNS-запрос и ответ обычно умещаются в один пакет (<512 байт). TCP handshake удвоил бы задержку. Для больших ответов (DNSSEC, много записей) используется TCP или EDNS с бóльшим буфером.

На каком порту работает DNS?

DNS Resolver - посредник

**DNS Resolver** (рекурсивный резолвер) - сервер, который делает всю работу за клиента. Получает запрос, обходит иерархию DNS, кеширует результаты. Клиентский компьютер обычно знает только адрес резолвера.

**Зачем менять DNS?** 1) Скорость - Cloudflare быстрее провайдера. 2) Приватность - провайдер видит все запросы. 3) Безопасность - Quad9 блокирует вредоносные домены. 4) Обход блокировок - DNS-блокировки легко обходятся.

DNS - это один центральный сервер

DNS - распределённая система из миллионов серверов с иерархией и кешированием

Централизованный сервер не выдержал бы нагрузку (триллионы запросов в день) и стал бы единой точкой отказа. Иерархия и кеширование распределяют нагрузку.

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

Ключевые идеи

  • **DNS** - переводит доменные имена в IP-адреса
  • **Иерархия:** root → TLD (.com) → SLD (example) → subdomain (www)
  • **UDP порт 53** - быстрые запросы-ответы
  • **Resolver** - рекурсивный сервер, делающий всю работу за клиента

Связанные темы

DNS - основа работы интернета:

  • DNS записи — Типы записей: A, AAAA, CNAME, MX, TXT
  • DNS резолвинг — Как именно работает рекурсия и кеширование
  • DNSSEC — Криптографическая защита DNS

Вопросы для размышления

  • Что произойдёт, если все DNS-серверы станут недоступны?
  • Почему файл /etc/hosts до сих пор существует?
  • Как провайдер может блокировать сайты через DNS?

Связанные уроки

  • bt-04-dns-tls
DNS: телефонная книга интернета

0

1

Войти